Hauptmenü

AT und IF = ???

Begonnen von o.l.i, 06 Mai 2022, 17:24:49

Vorheriges Thema - Nächstes Thema

o.l.i

Hallo FHEM Leute,

ich habe eine kleine IF schleife und bekomme diese nicht richtig zusammen gebaut.

define KE_Viessmann_CloudCheck_5Min at +*00:01:00 { if (Value("KE_Viessmann") eq "Login failure. Check password and apiKey")
{ DebianMail('xyz@yahoo.de', 'Verbindung zur Viessmann Cloud verloren, 5 Min check');;}
}


Es soll alle 5 Minuten geprüft werden, ob die Cloud von meiner Viessmann Heizung erreichbar ist.
Mit dem Abspeichern der FHEM.cfg erhalt eich folgende Fehlermeldung:
Unknown command }, try help.

Ich weiß aber nicht genau wo die Klammer falsch gesetzt ist und bitte um Hilfe

mi.ke

in der ersten Zeile ganz hinten fehlt die geschweifte Klammer zu.
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

o.l.i

Wenn ich dies mit KLammer in der ersten Zeile machen, kann ich es abspeichern aber in der Runtime kommt dann ein Fehler im Log:

Hier das aktualisierte IF:
define KE_Viessmann_CloudCheck_5Min at +*00:01:00 { if (Value("KE_Viessmann") eq "Login failure. Check password and apiKey")}
{ DebianMail('oliver@laute.de', 'Verbindung zur Viessmann Cloud verloren, 5 Min check');;}



Und im Log sieht dies dann so aus:
exec at command KE_Viessmann_CloudCheck_5Min
Cmd: >{ if (Value("KE_Viessmann") eq "Login failure. Check password and apiKey")}<
ERROR evaluating my $SELF=   $evalSpecials->{'%SELF'};{ if (Value("KE_Viessmann") eq "Login failure. Check password and apiKey")}: syntax error at (eval 474556) line 1, at EOF ...

DetlefR

Hinter dem
ZitatCheck password and apiKey")
geschweifte Klammer auf und ganz zum SChluss noch mal eine zu.

o.l.i

Meinst Du so?

define KE_Viessmann_CloudCheck_5Min at +*00:01:00 { if (Value("KE_Viessmann") eq "Login failure. Check password and apiKey"){
{ DebianMail('oliver@laute.de', 'Verbindung zur Viessmann Cloud verloren, 5 Min check');;}
}


Dann erhalte nach dem Abspeichern in der FHE.cfg folgenden Fehler:
Unknown command }, try help.

DetlefR

#5

define KE_Viessmann_CloudCheck_5Min at +*00:01:00 { if ((Value("KE_Viessmann") eq "Login failure. Check password and apiKey"){
{ DebianMail('oliver@laute.de', 'Verbindung zur Viessmann Cloud verloren, 5 Min check');;}
}
}

Ganz einfache Regel. Wenn eine Klammer aufgeht, muss auch später wieder eine zu gehen. Sonst passt das nicht.
Da fehlte auch noch eine runde aufgehende Klammer.

mi.ke

für sowas am besten "codemirror" im betreffenden FHEMWEB laden. Dann bekommst Du Hinweise zu falschen/fehlenden Klammer (und vieles mehr)

attr WEB JavaScripts codemirror/fhem_codemirror.js
attr WEB codemirrorParam { "lineWrapping":true, "lineNumbers" :true, "height":"auto" }
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara