Dummy State VS UserReadings

Begonnen von Kharim, 26 Oktober 2016, 15:29:01

Vorheriges Thema - Nächstes Thema

Kharim

Hallo Zusammen,

ich habe hier ein Problem zwischen der Aktualisierung des STATE eines Dummys und der Aktualisierung meines UserReadings.

- Dummy repräsentiert ein Gerät (zb TV)
- Dummy hat STATE "on" oder "off"

- Status/Laufzeit des Gerätes soll gelogt und im Plot dargestellt werden -> SVG Plot benötigt Zahlen -> UserReading das on / off auf 1 / 0 umsetzt.

userReadings Status {if(Value("TV_PC") eq "on"){return "1"};;if(Value("TV_PC") eq "off"){return "0"}}

Nun zum Problem:
Es wird anscheinend ERST das UserReading aktualisiert und DANACH der STATE des Dummys.
Angenommen der Dummy steht auf off, Status 0.
-> set Dummy on --> Status 0
(zweites set Dummy on --> Status 1)
-> set Dummy off --> Status 1
(zweites set Dummy off --> Status 0)
-> set Dummy on --> Status 0

Kann man das ändern?

Danke,
Kharim
Raspberry Pi 2 + Minibian + 2x MAX Cube CUN (868/433Mhz) + Thermostate + Fensterkontakte + Taster+RGB-LED Band über pigpiod + TFA Sensoren 30.3169/3125
Raspberry Pi 2 + Minibian +Z-Wave (USB) + Bewegungsmelder + Fensterkontakt + Sirene + SMS Steuer-/Benachrichtigung (ohne Internet)

DeeSPe

userReadings Status:state.* {(Value($name) eq "on")?1:0}

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Kharim

Zitat von: DeeSPe am 26 Oktober 2016, 15:34:09
userReadings Status:state.* {(Value($name) eq "on")?1:0}

Gruß
Dan

Äh...jetzt bitte nochmal auf deutsch *sorry*

Ps.: Ich hab Value() auf ReadingsVal() umgeändert, und schon funktioniert es...nun wird beides korrekt "zeitgleich" geändert.....
By the way: Wo ist der Unterschied zwischen Value() und ReadingsVal()? ...der hier ja ganz entscheidend war..

Danke,
Kharim
Raspberry Pi 2 + Minibian + 2x MAX Cube CUN (868/433Mhz) + Thermostate + Fensterkontakte + Taster+RGB-LED Band über pigpiod + TFA Sensoren 30.3169/3125
Raspberry Pi 2 + Minibian +Z-Wave (USB) + Bewegungsmelder + Fensterkontakt + Sirene + SMS Steuer-/Benachrichtigung (ohne Internet)

DeeSPe

ZitatValue($name) == ReadingsVal($name,"state","")

Ist das damit verständlicher?

Allerdings habe ich auch schon ein paar Mal die Erfahrung gemacht dass wenn man Value() verwendet teilweise noch der alte Wert drin steht.
Wenn man dann ReadingsVal() verwendet scheint wirklich der aktuelle Wert drin zu stehen.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

igami

Zitat von: DeeSPe am 26 Oktober 2016, 16:27:37
Ist das damit verständlicher?
Das ist nicht korrekt, Value liefert das Internal STATE, welches erst nach den Readings ein update bekommt.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

DeeSPe

Zitat von: igami am 26 Oktober 2016, 18:40:33
Das ist nicht korrekt, Value liefert das Internal STATE, welches erst nach den Readings ein update bekommt.

Danke für die Erklärung.
Somit ist auch klar warum ReadingsVal($name,"state","") aktueller als Value() ist.
Auch wieder was dazu gelernt.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Kharim

Zitat von: igami am 26 Oktober 2016, 18:40:33
Das ist nicht korrekt, Value liefert das Internal STATE, welches erst nach den Readings ein update bekommt.

Das pinn ich mir ganz oben an. Danke :-)
Raspberry Pi 2 + Minibian + 2x MAX Cube CUN (868/433Mhz) + Thermostate + Fensterkontakte + Taster+RGB-LED Band über pigpiod + TFA Sensoren 30.3169/3125
Raspberry Pi 2 + Minibian +Z-Wave (USB) + Bewegungsmelder + Fensterkontakt + Sirene + SMS Steuer-/Benachrichtigung (ohne Internet)