FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: tschaedl am 11 Februar 2018, 10:12:18

Titel: Umstellung von einem Sensor auf mehrere tut nicht
Beitrag von: tschaedl am 11 Februar 2018, 10:12:18
Hallo liebe Gemeinde,

vielleicht kann mir hier jemand helfen, steh grad auf dem Schlauch.
Habe bisher nur die Luftfeuchte im Bad überwacht. Wollte heute die Überwachung auf alle Sensoren umstellen und habe deshalb aus dem DOIF

([Bad.Temp:humidity] > 70)
(defmod at_$DEVICE at +00:15 set defmod at_badhumidityt at +*00:00:30 {fhem "setreading Bad.Temp timer " . (ReadingsVal("Bad.Temp","timer","")+30)})
DOELSEIF
([Bad.Temp:humidity] <= 70)
(delete at_$DEVICE, delete at_badhumidityt, setreading Bad.Temp time 0, setreading Bad.Temp Mintimer 0)


folgendes gemacht:

(["\.Temp:^humidity"] > [$DEVICE:Maxhumidity])
(defmod at_$DEVICE at +00:15 defmod at_$DEVICE_humidityt at +*00:00:30 {fhem "setreading $device timer " . (ReadingsVal($device,"timer","")+30)})
DOELSEIF
(["\.Temp:^humidity"] <= [$DEVICE:Maxhumidity])
(delete at_$DEVICE, delete at_$DEVICE_humidityt, setreading $DEVICE time 0, setreading $DEVICE Mintimer 0,{Log 1, "[$DEVICE:humidity]<=[$DEVICE:Maxhumidity]"})


Leider verharrt der DOIF jetzt in Cmd2 (attr do always ist gesetzt) und ich blicke es nicht, warum. Anbei der Auszug aus dem Log.

2018-02-10 20:02:03 LaCrosse Wohn.Temp T: 21.6 H: 50
2018.02.10 20:02:24 2 : nt.luftfeuchtehoch: delete at_Wohn.Temp: Please define at_Wohn.Temp first
2018.02.10 20:02:24 2 : nt.luftfeuchtehoch: delete at_Wohn.Temp_humidityt: Please define at_Wohn.Temp_humidityt first
2018.02.10 20:02:24 1 : 50<=45


Vielen Dank!
Thomas
Titel: Antw:Umstellung von einem Sensor auf mehrere tut nicht
Beitrag von: Damian am 11 Februar 2018, 10:46:46
Ein DOIF mit Zustandsauswertung (ohne do always) funktioniert nur sinnvoll bei konkreten Devices, hier also  [Bad.Temp:humidity]. Wenn du etwas verallgemeinerst, dann ist auch die Zustandsverwaltung meistens nicht mehr sinnvoll, dann muss man do always setzen und sich selbst drum kümmern, Wiederholungen bei zyklisch sendenden Sensoren zu unterbinden.
Titel: Antw:Umstellung von einem Sensor auf mehrere tut nicht
Beitrag von: tschaedl am 11 Februar 2018, 10:59:03
Vielen Dank für den Hinweis, aber wie oben schon geschrieben, habe ich das Attribut bereits gesetzt. Die Frage ist doch die, warum er nicht in das erste IF geht sondern in das 2., was offensichtlich ja falsch ist, da 50<=45 (wie im log zu sehen) nach Adam Riese nicht korrekt ist.
Titel: Antw:Umstellung von einem Sensor auf mehrere tut nicht
Beitrag von: Damian am 11 Februar 2018, 11:11:27
["\.Temp:^humidity"] liefert keine Zahl, sondern nur den Wahrheitswert "wahr" oder "falsch"

Du kannst es mit der neuen DOIF-Syntax (eingeleitet durch ein Defaultwert) probieren:

["\.Temp:^humidity",0]
Titel: Antw:Umstellung von einem Sensor auf mehrere tut nicht
Beitrag von: tschaedl am 11 Februar 2018, 11:32:22
Vielen Dank, das war das Problem. Steht auch so in der Doku...
Asche auf mein Haupt.