FHEM Forum

FHEM => Sonstiges => Thema gestartet von: Flanders am 01 Juli 2023, 11:44:04

Titel: Innerhalb fhem(" einen Perl Befehl starten?
Beitrag von: Flanders am 01 Juli 2023, 11:44:04
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
Titel: Aw: Innerhalb fhem(" einen Perl Befehl starten?
Beitrag von: Jamo am 01 Juli 2023, 11:53:15
Doch, das funktioniert genau so. Hier ein Beispiel aus meiner 99_MyUtils.pm:fhem("sleep 4 sleep_mySpeak1;{myPollySpeak(\"$text\",10)}");
Titel: Aw: Innerhalb fhem(" einen Perl Befehl starten?
Beitrag von: TomLee am 01 Juli 2023, 12:19:47
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.
Titel: Aw: Innerhalb fhem(" einen Perl Befehl starten?
Beitrag von: rudolfkoenig am 01 Juli 2023, 13:22:36
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) }