FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: d0m2011 am 04 Juni 2021, 14:57:45

Titel: Watchdog mit IF-Bedingung durch Fensterkontakt (bekomme es nicht hin)
Beitrag von: d0m2011 am 04 Juni 2021, 14:57:45
Hallo zusammen,

ich bin nun wieder aktiv und dank Umzug gerade dabei, mein FHEM an die neue Wohnung anzupassen.

Gehe ich außer Haus, senke ich die Heizung ab und speichere die letzte Temperatureinstellung ab und rufe diese später zurück:
Bewohner:absent.* 00:05:00 Bewohner:home.* { fhem("set Temperatur_Bad " . ReadingsVal("Heizung_Bad","desired-temp","")  . "; set Heizung_Bad desired-temp [Temperatur_Bad_abgesenkt:state]; setstate Bewohner_absent_Bad defined")}


Das funktioniert tadellos.
Ist jedoch mein Fenster im Raum bereits geöffnet (und die Heizung deutlich weiter abgesenkt) möchte ich diese Aktion vermeiden.
Heißt, ich möchte das Ganze nur ausführen, wenn das Fenster geschlossen ist.

Fensterkontakt: HM_SEC_SC

Folgender Ansatz:
Bewohner:absent.* 00:05:00 Bewohner:home.* { if(ReadingsVal("Fenster_Bad,"state","") eq "closed") { fhem("set Temperatur_Bad " . ReadingsVal("Heizung_Bad","desired-temp","")  . "; set Heizung_Bad desired-temp [Temperatur_Bad_abgesenkt:state]; setstate Bewohner_absent_Bad defined") }}


Ich habe alles probiert, bekomme es einfach nicht hin (absolute Verzweiflung)!
Kann mir das einmal jemand erklären, denn mit dem Wiki bin ich auch nicht weiter gekommen!?
Eigentlich muss in der Klammer doch nur die IF Bedingung stehen. Ist diese erfüllt, müsste FHEM den funktionierenden Befehl einfach nur ausführen:
Bewohner:absent.* 00:05:10 Bewohner:home.* { fhem("set Temperatur_Bad " . ReadingsVal("Heizung_Bad","desired-temp","")  . "; set Heizung_Bad desired-temp [Temperatur_Bad_abgesenkt:state]; setstate Bewohner_absent_Bad defined")}


Ich danke euch vielmals - schönen Brückentag!
Titel: Antw:Watchdog mit IF-Bedingung durch Fensterkontakt (bekomme es nicht hin)
Beitrag von: MadMax-FHEM am 04 Juni 2021, 15:09:44
Wenn du das ReadingsVal im if tatsächlich SO geschrieben hast:

Zitat
if(ReadingsVal("Fenster_Bad,"state","") eq "closed")

Kann das wohl nicht klappen, es müsste doch verm. einen Fehler geben?

Besser so:

Zitat
if(ReadingsVal("Fenster_Bad","state","") eq "closed")

Gruß, Joachim
Titel: Antw:Watchdog mit IF-Bedingung durch Fensterkontakt (bekomme es nicht hin)
Beitrag von: d0m2011 am 04 Juni 2021, 15:18:57
Wie immer vor lauter Bäumen den Wald nicht gesehen.
Habe noch einen Fehler gefunden:

if(ReadingsVal("Fenster_Bad","state","0") eq "closed")