Innerhalb fhem(" einen Perl Befehl starten?

Begonnen von Flanders, 01 Juli 2023, 11:44:04

Vorheriges Thema - Nächstes Thema

Flanders

Hallo,

ich verwende innerhalb von perl einen fhem("sleep 15;  Befehl.
Danach soll eine perl-Funktion aufgerufen werden. Wie füge ich diese dort ein?

{ fhem("sleep 15;{Funkt();}")  }  würde ja nicht funktionieren...

Greets

Jamo

#1
Doch, das funktioniert genau so. Hier ein Beispiel aus meiner 99_MyUtils.pm:fhem("sleep 4 sleep_mySpeak1;{myPollySpeak(\"$text\",10)}");
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

TomLee

Zitatfhem("sleep 4 sleep_mySpeak1;{myPollySpeak(\"$text\",10)}");

Ich hab bisher mitgenommen und gerade auch die Tage wieder so umgesetzt, das man bei der Übergabe von Variablen als Parameter keine Quotes angeben muss (unabhängig davon ob Text oder numerische Werte übergeben werden), also auch nix maskieren.
Mag aber auch nicht ausschliessen das ich irgendwas übersehe und es Situationen gibt wo die Quotes vonnöten sind.

rudolfkoenig

Zitat{ fhem("sleep 15;{Funkt();}")  }  würde ja nicht funktionieren...
Ich meine das das funktioniert, aber ich wuerde sowas "sauber" bauen mit:
{ InternalTimer(gettimeofday()+15, "Funkt", undef, 0) }oder
{ InternalTimer(gettimeofday()+15, \&Funkt, undef, 0) }