Hallo,
hab jetzt alle Varianten durch, die mir einfallen, aber ich kriegs nicht zum laufen...
Ich will wenn Reading unlocked_by_card des devices myGoE = 1 ist nachts um 2 allow charging des selben devices auf 1 setzen.
Probiert habe ich:
define TibberNachtsAn at *2:00:00 {if ([myGoE:unlocked_by_card] == 1) { fhem("set myGoE allow_charging 1") }}
define TibberNachtsAn at *2:00:00 {if ([myGoE:unlocked_by_card] == 1) { fhem("set myGoE allow_charging 1");; }}
define TibberNachtsAn at *2:00:00 { fhem("set myGoE allow_charging 1") if ([myGoE:unlocked_by_card] == 1) }
nix davon geht. Die Fehlermeldungen helfen mir nicht (syntax error at (eval 1976129) line 1, near "myGoE:")
Wie gehts richtig?
[myGoE:unlocked_by_card] == 7 funktioniert in einem DOIF genau so problemlos...
Danke, Harald
Hallo Harald,
Coding bitte immer in code tags formatieren. Das macht es lesbarer.
Ansonsten bist du in deinem notify mit Perl unterwegs, da musst du auch Perl verwenden (also ReadingsNum in deinem Fall).
Grüße Oli
if ([color=red][myGoE:unlocked_by_card][/color] == 1)
Das ist halt kein perl... vermutlich solltest Du dazu auch eine Fehlermeldung im Logfile finden.
[myGoE:unlocked_by_card] == 7 funktioniert in einem DOIF genau so problemlos...
Schlimm genug, dass so ein Unfug überhaupt irgendwo funktioniert. Aber das tut es nur, weil der "Erfinder" von DOIF das so haben wollte. Das hat weder etwas mit FHEM noch mit perl zu tun - sondern nur mit DOIF.
Und Dein Konstrukt ist halt auch kein DOIF.
Schau mal hier gleich ins erste Beispiel (if & set).
https://wiki.fhem.de/wiki/AT_um_eine_Temperaturabh%C3%A4ngige_Nachtabsenkung_zu_realisieren
Ansonsten mal ins Wiki bzw. Commandref zu "at" schauen.
Gruß Ralf
Zitat von: RalfRog am 30 Oktober 2023, 22:15:59Schau mal hier gleich ins erste Beispiel (if & set).
https://wiki.fhem.de/wiki/AT_um_eine_Temperaturabh%C3%A4ngige_Nachtabsenkung_zu_realisieren
Ansonsten mal ins Wiki bzw. Commandref zu "at" schauen.
Gruß Ralf
Herzlichen Dank, die Referenz deckt genau meinen Fall ab (und ich hatte es vorhher mit der Suche leider nicht gefunden).
Das DOIF und IF völlig verschieden sind hab ich nicht gewusst / erwartet.
Es gibt at, notify, DOIF....
Es gibt IF und if...
Du wirst noch einiges lesen müssen.
Hier mußt du erstmal begreifen, dass DOIF etwas besonders ist, was at und notify mit eigenem Syntax "zusammenfasst".
Das wird schon, immer kleine Schritte machen und klare Fragen stellen.