FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Sirel am 24 April 2023, 23:15:58

Titel: [Gelöst] Syntaxhilfe im Ausführungsteil
Beitrag von: Sirel am 24 April 2023, 23:15:58
Hallo zusammen,
ich doktere seit einier Zeit an folgenden Ausführungsteil herum:
Es soll mir ein Text zugeschickt werden, welcher sich abhängig von einem Reading ändert.
Derzeit lautet der code wie folgt:

(set telegram_bot send @12345678 Das [@:a"^FTK_Garage":state:"open"] wird in
{
if ({(ReadingsVal("[@:"^FTK_Garage":state:"open"]","closing_time",""))} != 0 ) {(ReadingsVal("[@:"^FTK_Garage":state:"open"]","closing_time",""))} else {10}
}
Sekunden geschlossen) ({offene_garagentore ("Auto_close")})


Ich erhalte:
Das Garagentor Links wird in { if (360 != 0 ) 360 else {10} } Sekunden geschlossen
Der WErt 360 ist genau jener Wert, welcher in Reading "closing_time" steht. Das passt also.

Frage:
Was muss ich tun, damit die if-Bedingung tatsächlich ausgewertet wird?
Wenn das im Ausführungsteil klappt, dann kann ich den Code doch 1:1 auch für das Wait Attribut übernehmen.
Ginge diese Frage auch mit einem Fhem IF? Wenn ja, wie?

Stehe gerade aufn Schlauch...

Vielen Dank vorab für die Hilfe,
Max
Titel: Aw: Syntaxhilfe im Ausführungsteil
Beitrag von: Otto123 am 25 April 2023, 09:31:14
Hi,

falls set magic im DOIF genauso funktioniert wie in der commandref (https://commandref.fhem.de/#set) beschrieben, muss an der Stelle der Perl Ausdruck zusätzlich mit () geklammert werden, damit er aufgelöst wird:
Zitat{(perlExpression)} with the result of perlExpression. The $DEV variable is additionally available, designating the set device name.
These replacements are also known as "set magic".
Bei Dir geht es um die Stelle:
{(
if ...
)}

Gruß Otto
Titel: Aw: Syntaxhilfe im Ausführungsteil
Beitrag von: Sirel am 25 April 2023, 18:53:07
Hi Otto,
besten Dank für Hinweis.
Das hat mich auf die richtige Spur gebracht.

Viele Grüße und Danke für Deine Hilfe,

Max