Doif Problem bei Heizungssteuerung do always funzt nicht wie gewünscht

Begonnen von mitdra, 26 Dezember 2017, 18:03:02

Vorheriges Thema - Nächstes Thema

mitdra

Hallo zusammen,
wir haben im Kellerraum eine Infrarotheizung, die ich über einen Homematic Stecker schalte.
Wenn der Status Heimkino_Aktiv = JA ist, dann geht die Heizung bis zur Wunschtemperatur hoch und schaltet brav ab.
Wenn Status Heimkino_Aktiv = NEIN ist oder die Temperatur >= der Wunschtemperatur ist dann schaltet er auch brav aus.

Mit dem Attr do always funktioniert es, jedoch schaltet er permanent den Stecker aus, auch wenn der Status = NEIN ist. Dies sollte er jedoch einmalig tun.
([Heimkino_Aktiv:STATE] eq "JA" and [KG_WThermostat_Climate:measured-temp] lt [KG_WThermostat_Climate:desired-temp]) (set KG_Schalter_IFRot_Heizung on)
DOELSEIF (([Heimkino_Aktiv:STATE] eq "NEIN") or ([KG_WThermostat_Climate:measured-temp] ge [KG_WThermostat_Climate:desired-temp]))(set KG_Schalter_IFRot_Heizung off)


Wo liegt der Denkfehler, das er nur einmalig ausschaltet, wenn der Status Heimkino_AKtiv = NEIN ist?

Viele Grüße
mitdra

Ellert

Mit dem Attr do always funktioniert es, jedoch schaltet er permanent den Stecker aus, auch wenn der Status = NEIN ist.

Genau, das ist der Zweck von do always, immer wenn die Bedingung geprüft wird und wahr ist, dann wird geschaltet.

Zeichenketten Operatoren (lt, ge) scheinen mir bei numerischen Operanden unangebracht.

Du könntest FILTER im set-Befehl verwenden, siehe https://fhem.de/commandref_DE.html#devspec

Damian

Das Reading [Heimkino_Aktiv:STATE] gibt es nicht, entweder [Heimkino_Aktiv:state] oder [Heimkino_Aktiv] wenn du den Status (Internal) meinst.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF