Userreading in Verbindung mit webCmd

Begonnen von m8ichael, 28 November 2022, 15:41:26

Vorheriges Thema - Nächstes Thema

m8ichael

Hallo,

auch, wenn ich FHEM nun schon recht lange und auch mit komplexen Perl-Scripten nutze, bestand bishr noch kein großer Bedarf, userReadings zu nutzen. Nun aber...  ;)

Und hier taucht nun das folgende Problem auf. Ich habe einen Dummy wie folgt definiert:


define dm.dg.st.Heizwert dummy
attr dm.dg.st.Heizwert alias Temperatur Studio
attr dm.dg.st.Heizwert devStateIcon AUS:sani_heating_level_0 16:sani_heating_level_0 17:sani_heating_level_10 18:sani_heating_level_20 19:sani_heating_level_40 20:sani_heating_level_50 21:sani_heating_level_60 22:sani_heating_level_70 23:sani_heating_level_80 24:sani_heating_level_90 25:sani_heating_level_100
attr dm.dg.st.Heizwert group Heizung
attr dm.dg.st.Heizwert room Studio
attr dm.dg.st.Heizwert setList state:AUS,16,17,18,19,20,21,22,23,24,25
attr dm.dg.st.Heizwert userReadings heizLog:.* {if(Value("dm.dg.st.Heizwert") eq "AUS") {return 0} else {return (Value("dm.dg.st.Heizwert"))}}
attr dm.dg.st.Heizwert webCmd state


Ich möchte hier nun ein userReading definieren, welches mir den Listeintrag "AUS" in eine Ziffer (0) wandelt. Idee ist, dieses Reading dann später loggen zu lassen und auch grafisch anzuzeigen. Ich habe nun allerdings das Problem, dass in dem Reading immer der letzte Werte angezeigt wird, also nicht der aktuelle Wert. Hängt das ggf. mit dem webCmd zusammen, der intern nur ein setstate und damit kein Event auslöst? Ich stehe gerade etwas auf dem Schlauch...

Viele Grüße

Michael

Otto123

#1
Hi,

Du musst ReadingsVal($name,'state','') abfragen, Du fragst das Internal STATE ab, nicht das Reading state ;)

Tipp: wegen der besonderen Eigenschaften / Behandlung von state ist es meist besser für solche Dinge nicht state sondern ein separates Reading zu verwenden.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

m8ichael

Hallo Otto,

vielen Dank - jetzt passt es!

Viele Grüße

Michael