Hallo Zusammen,
ich habe an meinem FHEM diverse Sensoren.
Was mich interessieren würde wäre es den Maximalwert in einer Variablen zu speichern.
Z.B. Maximaltemperatur heute, Maximale Windgeschwindigkeit in der letzten Stunde, ...
Habe im Forum nichts gefunden (obwohl ich denke die Frage wurde bestimmt schon gestellt) und bin für einen Schubs dankbar :-)
Viele Grüße
Michael
Schubs
https://fhem.de/commandref_DE.html#statistics
Zitat von: hemmi am 09 Februar 2018, 19:44:57
Habe im Forum nichts gefunden (obwohl ich denke die Frage wurde bestimmt schon gestellt) und bin für einen Schubs dankbar :-)
DOIF/notify als Trigger bei einem Update, if/IF als Test ob neuer Wert > alter Wert, wenn ja, dann überschreiben; wenn nein, dann nix machen.
Reset auf 0 jede Stunde ([:00])
Und bitte den Threadtitel nicht schreien, dafür gibt es keinen Grund. (Soll heißen Groß- UND Kleinschreibung nutzen. Danke)
Ich habe das für meinen Temperatursensor außen mit den beiden attributen:
attr SensorAussen event-aggregator tempMax::none:max:86400,tempMin::none:min:86400
attr SensorAussen userReadings tempText { my $val = (ReadingsVal("$name","temperature","Fehler"));; $val =~ s/\./,/;; return $val;;}, tempMax {ReadingsVal("$name","temperature","Fehler")}, tempMin {ReadingsVal("$name","temperature","Fehler")}
tempText ist nur für Ansage.
Gruß Otto
Hallo Zusammen,
ich habe den Statistikansatz versucht. Ich glaube auch das es läuft - aber wie komme ich an die Werte ran?
Viele Grüße
Michael
NAME
statistik_KS300
NR
38
NTFY_ORDER
10-statistik_KS300
PREFIX
stat
STATE
Updated stats for: LaCrosse_0E
TYPE
statistics
Readings
monitoredDevicesKS300
KS300
2018-02-10 12:14:33
Habe die Statistik Werte gefunden ;)
Da wo sie hingehören - bei den Devices selbst!
Danke für den Schubs!
Viele Grüße
Michael :D
Hallo Otto,
irgendwie komm ich da nicht weiter bei einem Problem, welches bei dir anscheinen läuft.
https://forum.fhem.de/index.php/topic,84101.msg763816.html#msg763816
(https://forum.fhem.de/index.php/topic,84101.msg763816.html#msg763816)
Ich will eigentlich nur die Minimal und Maximaltemperatur in ein Userreading schreiben und verwende dazu das Attribut event-aggregator und userreadings
Gewartet habe ich auch schon mehrere Tage, aber die Temperaturen bleiben alle gleich.
Mein Device ist vom Type ModbusRegister, die Userreadings sind angelegt aber bei Minimal und Maximaltemperatur steht bei beiden immer der gleiche Wert.
Mein Device:
Internals:
CHANGED
DEF wago QW256
IODev WAGO
LASTInputDev WAGO
MSGCNT 2973
ModbusRegister_lastRcv 2018-02-14 20:26:55
NAME Aussentemperatur
NOTIFYDEV global
NR 107
NTFY_ORDER 50-Aussentemperatur
STATE -2.9
TYPE ModbusRegister
WAGO_MSGCNT 2973
WAGO_TIME 2018-02-14 20:26:55
Helper:
DBLOG:
state:
DBLogging:
TIME 1518636175.30911
VALUE -2.9
READINGS:
2018-02-14 20:26:55 RAW ffe3
2018-02-14 20:26:55 state -2.9
2018-02-14 20:26:55 tempMax -2.9
2018-02-14 20:26:55 tempMin -2.9
helper:
addr 3 0 256
address 256
disableRegisterMapping 1
lastUpdate 0
nextUpdate 1518636475.89602
nread 1
readCmd
register 256
registerType 3
unitId 0
updateIntervall 60
wago 1
wagoDataType W
cnv:
a 0.1
b 0
max 6553.5
min 0
pr -1
step 10
Attributes:
IODev WAGO
conversion 0.1:0
event-aggregator tempMax::none:max:86400,tempMin::none:min:86400
event-on-change-reading state.*
group Umwelt
plcDataType INT
room WAGO
updateInterval 60
userReadings tempMax {ReadingsVal("$name","state","Fehler")}, tempMin {ReadingsVal("$name","state","Fehler")}
Es wäre nett wenn du mir in dieser Angelegenheit mal die Augen öffnen könntest.
Oder habe ich da etwas komplett falsch verstanden?
Danke, Gruß Reinhard
Hallo Reinhard,
also ich habe keine Idee. Ich poste Dir mal meinen Sensor, vielleicht siehst Du was. Aber bei mir funktioniert das. Bei Dir ist es der state den Du lesen willst. Produziert der eventuell keine Events? Das sehe ich irgendwie als einzigen Unterschied.
Du kannst versuchen Value("$name") zu nehmen, der liest den Status aus. Aber eigentlich ist es gleich.
Gruß Otto
Internals:
DEF 16F6E3
HMLAN1_MSGCNT 9703
HMLAN1_RAWMSG E16F6E3,0000,05F88580,FF,FFBD,B4867016F6E30000007FE646
HMLAN1_RSSI -67
HMLAN1_TIME 2018-02-14 21:43:31
HMUART1_MSGCNT 9507
HMUART1_RAWMSG 05000040B4867016F6E30000007FE646
HMUART1_RSSI -64
HMUART1_TIME 2018-02-14 21:43:31
IODev HMLAN1
LASTInputDev HMLAN1
MSGCNT 19210
NAME SensorAussen
NOTIFYDEV global
NR 115
NTFY_ORDER 50-SensorAussen
STATE T: -2.6 H: 70
TYPE CUL_HM
lastMsg No:B4 - t:70 s:16F6E3 d:000000 7FE646
protLastRcv 2018-02-14 21:43:31
rssi_at_HMLAN1 cnt:9703 max:-63 avg:-72.15 min:-93 lst:-67
rssi_at_HMUART1 lst:-64 min:-86 max:-62 avg:-69.83 cnt:9507
READINGS:
2018-01-28 18:44:25 Activity alive
2015-01-03 13:35:01 CommandAccepted yes
2015-01-03 13:35:00 D-firmware 1.2
2015-01-03 13:35:00 D-serialNr IEQ0206728
2015-01-03 13:35:01 PairedTo 0x200DB8
2015-01-03 13:35:01 R-burstRx off
2015-01-03 13:35:01 R-pairCentral 0x200DB8
2015-01-03 13:35:01 RegL_00. 01:00 02:01 05:00 0A:20 0B:0D 0C:B8 0F:00 00:00
2018-02-14 21:43:31 battery ok
2018-02-14 21:43:31 humidity 70
2015-01-03 13:39:44 powerOn 2015-01-03 13:39:44
2015-01-03 13:39:44 recentStateType info
2018-02-14 21:43:31 state T: -2.6 H: 70
2018-02-14 21:43:31 tempMax 10.6
2018-02-14 21:43:31 tempMin -6.1
2018-02-14 21:43:31 tempText -2,6
2018-02-14 21:43:31 temperature -2.6
helper:
HM_CMDNR 180
mId 003D
rxType 140
supp_Pair_Rep 0
expert:
def 1
det 0
raw 1
tpl 0
io:
newChn +16F6E3,00,00,00
nextSend 1518641011.20595
rxt 2
vccu VCCU
p:
16F6E3
00
00
00
mRssi:
mNo B4
io:
HMLAN1 -65
HMUART1 -64
prt:
bErr 0
sProc 0
q:
qReqConf
qReqStat
role:
chn 1
dev 1
rssi:
at_HMLAN1:
avg -72.1531485107698
cnt 9703
lst -67
max -63
min -93
at_HMUART1:
avg -69.8342274113813
cnt 9507
lst -64
max -62
min -86
tmpl:
Attributes:
IODev HMLAN1
IOgrp VCCU
actCycle 000:10
actStatus alive
autoReadReg 4_reqStatus
event-aggregator tempMax::none:max:86400,tempMin::none:min:86400
event-on-change-reading state,temp.*
expert 2_full
firmware 1.2
model HM-WDS10-TH-O
peerIDs 00000000,
room Outdoor
serialNr IEQ0206728
subType THSensor
userReadings tempText { my $val = (ReadingsVal("$name","temperature","Fehler")); $val =~ s/\./,/; return $val;}, tempMax {ReadingsVal("$name","temperature","Fehler")}, tempMin {ReadingsVal("$name","temperature","Fehler")}