FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: FunkOdyssey am 13 Januar 2020, 10:57:06

Titel: userReadings mit state als Trigger? Alternativen?
Beitrag von: FunkOdyssey am 13 Januar 2020, 10:57:06
In diesem älteren Thread (https://forum.fhem.de/index.php?topic=72103.0) wurde erwähnt, dass man bei einem userReading das Reading 'state' nicht als Trigger nutzen kann. Bei mir klappt das nämlich auch nicht.

attr contactDevice userReadings myDoorOpen:state.* {if (ReadingsVal("$name","state","") =~ "open.*") {ReadingsTimestamp("$name","state","")} else {ReadingsVal("$name","myDoorOpen","")}}

Wenn ich (wie im Thread oben) den Trigger jedoch weg lasse, dann wird mein userReading bei alle Events neu berechnet. Das soll aber nicht so sein, denn ich muss den Timestamp der Veränderung von 'state' haben.

attr contactDevice userReadings myDoorOpen {if (ReadingsVal("$name","state","") =~ "open.*") {ReadingsTimestamp("$name","state","")} else {ReadingsVal("$name","myDoorOpen","")}}

Weiß jemand wie man das lösen kann? Ein Reading, welches nur bei der Veränderung des 'state' aktualisiert wird? Danke.

Folgende Events erzeugt das Device:

2020-01-13 10:39:18.913 HUEDevice contactDevice reachable: 1
2020-01-13 10:39:18.913 HUEDevice contactDevice temperature: 28
2020-01-13 10:39:18.913 HUEDevice contactDevice battery: 100
2020-01-13 10:39:18.925 HUEDevice contactDevice closed
Titel: Antw:userReadings mit state als Trigger? Alternativen?
Beitrag von: marvin78 am 13 Januar 2020, 11:00:13
Beispiel:

attr contactDevice userReadings myDoorOpen:(open|closed).* {if (ReadingsVal("$name","state","") =~ "open.*") {ReadingsTimestamp("$name","state","")} else {ReadingsVal("$name","myDoorOpen","")}}
Titel: Antw:userReadings mit state als Trigger? Alternativen?
Beitrag von: FunkOdyssey am 13 Januar 2020, 11:20:10
Du bist super. Ich habe aus dem Event-Log ein Notify erstellt und der hatte die gleiche Syntax (bzw. nur auf closed in diesem Augenblick).
Ich hatte mir dabei nichts gedacht, weil ich zu sehr auf das Reading fixiert war. Aber die möglichen Events sind es ja, die ich matchen muss.

Vielen Dank. Ich denke, dass wird die Lösung sein.