Hallo zusammen,
mit nachfolgendem Code, schalte ich bei einer AT von < 4 Grad C meine U.Pumpe ein.
Das funktioniert auch sehr schön. (Abfrage Intervall ist kurz, da zum testen)define Heizungssteuerung at +*00:10:00 {\
if (ReadingsVal("Wetter","temp_c",99) < 4)\
{fhem("set u_pumpe_e.dum on");;}\
else\
{fhem("set u_pumpe_e.dum off");;}\
}
Nun habe ich den Code dahin gehend erweitert, dass die Abfrage aber nur an Wochentagen Mo-Fr. erfolgen soll. (!($we)) da stimmt aber etwas mit der IF-Verschachtelung nicht.define Heizungssteuerung at +*00:10:00 {\
if (!($we)) (ReadingsVal("Wetter","temp_c",99) < 4)\
{fhem("set u_pumpe_e.dum on");;}\
else\
{fhem("set u_pumpe_e.dum off");;}\
}
Habe schon viel gelernt, aber mit den IF-Verschachtelungen habert's doch noch.
Sorry: habe aus der cfg. kopiert..
Besten Dank für Euere Hilfe
Die Verknüpfung fehlt und die Klammern sind durcheinander.
(!$we and ReadingsVal("Wetter","temp_c",99) < 4)
Benutzt Du den DEF-Editor? Es gibt eine Codemirror-Erweiterung, die hat eine Klammerprüfung DOIF: Tips leichtere Bedienung Syntaxhervorhebung Klammerprüfung Suchen&Ersetzen (http://forum.fhem.de/index.php/topic,45373.msg371668.html#msg371668), nicht nur für DOIF ;)
Danke,
das war die richtige Antwort.
so geht's!+*00:10:00 {
if (!$we and ReadingsVal("Wetter","temp_c",99) < 1)
{fhem("set u_pumpe_e.dum on");}
else
{fhem("set u_pumpe_e.dum off");}
}