[Gelöst]: AT Command mit IF Clause

Begonnen von as2903, 14 Mai 2021, 10:49:13

Vorheriges Thema - Nächstes Thema

as2903

Hallo zusammen,

ich stehe etwas auf dem Schlauch. Ich würde gerne ein Rollo abhängig von der Temperatur öffnen. Sprich bei Frost soll keine Öffnung stattfinden um etwaige Schäden am Motor zu verhindern. Ich habe daher vom DWD die Wetterdaten angezapft:

define Frost dummy
attr Frost icon frost
attr Frost room Sensoren

define Frostwarner DOIF ([DWD:fc1_1_TTT] < 3.0) (set Frost on) DOELSEIF ([DWD:fc1_1_TTT] >= 3.0) (set Frost off)
attr Frostwarner room Sensoren


Dies klappt soweit so gut. Jetzt habe ich aber das Problem, dass dies im AT Command gepaart mit der IF Clause zu Problemen führt:

define DG_Dachfenster_Tag at *{sunrise("HORIZON=45",0,"07:50","10:33")} {IF ([Frost:&STATE] eq "off") (set tahoma_123 dim 0)}
attr DG_Dachfenster_Tag room DG

Die Fehlermeldung aktuell lautet:

ERROR evaluating {IF ([Frost:&STATE] eq "off") (set tahoma_123 open)}: syntax error at (eval 163528) line 1, near "Frost:"

Ich habe bereits einige Foreneinträge durchwühlt werde aber nur verzweifelter und leider nicht schlauer :/

Wenn jemand einen sachdienlichen Hinweis hat bitte gerne.

PS: Ich weiss man könnte auch DOIF verwenden, aber die Foreneinträge lassen vermuten, dass auch AT mit IF funktioniert und dies ist somit die präferierte Methode.

Damian

IF ist ein FHEM-Befehl, daher gehörte er nicht nicht in geschweifte Klammern.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

as2903

Hey was soll ich sagen. Kurz kanpp bündig und es funktioniert... Danke Dir, ich glaube ich wäre noch das ganze Wochenende dran verzweifelt.

Der Code sieht nun so aus und zumindest bei jetzigen Temperaturen funktioniert es.. Den Negativfall muss ich noch testen.

define DG_Dachfenster_Tag at *{sunrise("HORIZON=60",0,"07:50","10:55")} IF ([Frost:&STATE] eq "off") (set tahoma_123 open)

Danke nochmals.

Damian

Zitat von: as2903 am 14 Mai 2021, 10:58:13
Hey was soll ich sagen. Kurz kanpp bündig und es funktioniert... Danke Dir, ich glaube ich wäre noch das ganze Wochenende dran verzweifelt.

Der Code sieht nun so aus und zumindest bei jetzigen Temperaturen funktioniert es.. Den Negativfall muss ich noch testen.

define DG_Dachfenster_Tag at *{sunrise("HORIZON=60",0,"07:50","10:55")} IF ([Frost:&STATE] eq "off") (set tahoma_123 open)

Danke nochmals.

Ich würde es persönlich mit einem Modul lösen, statt mit zwei. Es ist nicht nur eleganter, sondern auch performanter.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

as2903

Hi,

wie meinst Du das Frost und Frostwarner zusammenfassen oder wie?

Gruss und danke für den Input.

Damian

Zitat von: as2903 am 14 Mai 2021, 11:21:18
Hi,

wie meinst Du das Frost und Frostwarner zusammenfassen oder wie?

Gruss und danke für den Input.

Nein. Dein jetziger Ausdruck alleine braucht schon zwei Teile.

Dann solltest du deine Logik noch mal überdenken, denn vermutlich willst du es nicht offen haben, wenn ein paar Sekunden später Frost gemeldet wird.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF