Ich habe folgen AT definiert mit dem ich nicht weiter kommen. Habe zum Testen eine Minute eingegeben.
define TemperaturUnterschritten at +*00:01:00 IF ([Thermostat1:measured-temp] < [MindestTemperatur:state]) ({mysendmail_unter('Temperatur unterschritten');;})
Leider wird die Mail-Routine nicht aufgerufen. Was fehler mir da noch? Habe schon alle möglichen Variante probiert.
Wenn ich aber IF ([Thermostat1:measured-temp] < [MindestTemperatur:state]) ({mysendmail_unter('Temperatur unterschritten');;}) in Fhem in die Kommandozeile eingebe kommt die Mail an!
Zitat von: egmontr am 22 September 2014, 20:02:55
Leider wird die Mail-Routine nicht aufgerufen. Was fehler mir da noch? Habe schon alle möglichen Variante probiert.
Schon mal einen Blick in die Logdatei geworfen?
Ich würde erstmal mal probieren, die beiden Semikolon am Ende wegzulassen. Oder anstelle des mail-Aufrufs erstmal einen Log-Eintrag schreiben, um zu erkennen, in welchem Teil des Codes das Problem eigentlich liegt.
Mal abgesehen davon: Sollte man das nicht besser mit einem DOIF lösen? Das würde nur aktiv werden, wenn sich an measured-temp etwas ändert und nicht einfach pauschal einmal pro Minute. Also etwa so:
define TemperaturUnterschritten DOIF ([Thermostat1:measured-temp] < [MindestTemperatur:state]) ({mysendmail_unter('Temperatur unterschritten')})
Danke Brockmann,
die zwei Semikolons waren es. Nachdem ich verbose auf 5 gesetzt hatte, wurde der Fehler angezeigt.
Deinen Tipp mit dem DOIF werde ich natürlich umsetzen.
Nur so am Rande - wie lasse ich einen Log-Eintrag schreiben?
Log(3,"Ich schreib hier was rein und schau was im Logfile steht");