FHEM Forum

FHEM => Sonstiges => Thema gestartet von: FHEMAN am 29 August 2016, 00:00:11

Titel: OldValue an Device
Beitrag von: FHEMAN am 29 August 2016, 00:00:11
Ich möchte vor jedem SET einen aktuellen Wert, bspw. STATE speichern.
Dazu dachte ich, ich könnte einfach ein userReading verwenden a la
Zitat
attr myDummy userReadings oldState { ReadingsVal($name, "state", -1)}   
attr myDummy userReadings oldState { InternalVal($name, "STATE", -1)}
Leider feuert das zu spät. Kann mir jemand einen Tipp geben, wie ich das möglichst einfach umsetzen kann?

Ziel ist es, nach einer Änderung an beliebiger anderer Stelle mittels SET myDummy ReadingsVal("myDummy", "oldState", -1) den alten Zustand wiederherzustellen. OldValue($NAME), was ja nur innerhalb eines Notifies gültig ist, fällt leider aus, da ich mich in verschiedensten Notifies und Funktionen befinde.

Gruß
Ronny
Titel: Antw:OldValue an Device
Beitrag von: FHEMAN am 29 August 2016, 00:48:22
Ich habe nach einigen Tests festgestellt, dass OldValue("Device") am Device hängt. Somit kann ich mein Anliegen wohl mit

attr myDummy userReadings oldState { OldValue($NAME)}

lösen...
Als Reading taucht es aber nicht irgendwo auf, sondern scheint intern gespeichert zu sein. Allerdings genügt der Aufruf mittels
{fhem("set myDummy " . OldValue("myDummy"))} nicht. Aber es funktioniert

fhem("set myDummy " . ReadingsVal("myDummy", "oldState", -1))

Das ist schonmal sehr cool.