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
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
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