Moin zusammen,
ja eigentlich steht die ganze Frage im Titel ;)
der HUE Sensor liefert als Reading "state" motion oder nomotion:
Zitatstate nomotion 2021-03-13 14:29:26
Jetzt möchte ich die Zeit festhalten, wenn er auf motion springt also ein user Reading welches mit der Zeit erstellt wird, wann die letzte "Motion" war.
Ich kriege das leider nicht zusammengeklöppelt.
Bei meinem Homematic Bewegungsmelder kann ich den Wert per
(ReadingsTimestamp ("HM_554824","motion",0))
abfragen. Das geht so beim HUE aber nicht, da er kein seperates Reading für motion/no motionzur Verfügung stellt und wenn ich so den State abfrage mir immer die Zeit der letzten Veränderung also auch die Änderung auf "no motion" ausgibt.
Danke für eure Hilfe
So sollte es doch gehen:
attr <sensor> userRedings lastmotion:state:.motion {ReadingsTimeStamp($NAME,"state","")}
Gruß
Dan
Hi,
geht einfach so - getestet (analog zu HM Geräten):
attr RH3040 userReadings motion:motion {'on'}
@Dan altes Problem: kein state Event -> kein state im Event :)
Gruß Otto
Zitat von: Otto123 am 13 März 2021, 14:58:26
@Dan altes Problem: kein state Event -> kein state im Event :)
Ja, klar. Hier müsste es auch "addStateEvent" geben. :(
So klappt es aber bei mir am Hue BWM:
attr <sensor> userReadings lastmotion {if (ReadingsVal($NAME,"state","") eq "motion") {ReadingsTimestamp($NAME,"state","")} else {ReadingsVal($NAME,"lastmotion","")} }
Gruß
Dan
Mega Danke. Eine anschließende Frage hab ich aber leider noch...
kann mir jmd nen Tipp geben wie ich das Format
2020-10-18 19:13:22
in etwas gescheites umstellen kann? Der Traum wäe natürlich
Mo 19:13 Uhr
zumindest aber wäre folgendes Format gut:
18.10 19:13 Uhr
Leider reichen da meine Regex oder sonstigen Kenntnisse nicht. Vielen Dank!!!
gescheit ist immer relativ :)
aber hier sind ein paar Möglichkeiten https://wiki.fhem.de/wiki/Zeitangaben,_rechnen_mit
Oder Du machst im Perl einfach ein bisschen split
Zitat von: Otto123 am 13 März 2021, 15:18:57
gescheit ist immer relativ :)
aber hier sind ein paar Möglichkeiten https://wiki.fhem.de/wiki/Zeitangaben,_rechnen_mit
Oder so:
attr <sensor> userReadings lastmotion:motion {"$3.$2 $4" if (ReadingsTimestamp($NAME,"state","")=~/^(\d{4})-(\d\d)-(\d\d)\s(\d\d:\d\d):\d\d$/)}
Gruß
Dan