Hauptmenü

OldValue an Device

Begonnen von FHEMAN, 29 August 2016, 00:00:11

Vorheriges Thema - Nächstes Thema

FHEMAN

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
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

FHEMAN

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.
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB