FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: hackepeter am 01 Juli 2020, 14:28:40

Titel: [gelöst] Zugriff auf lokale Variable im Timer (set_Exec)
Beitrag von: hackepeter am 01 Juli 2020, 14:28:40
Hallo,

wie ich es auch drehe - ich kann nicht auf meine lokalen Variablen in einem Timer zugreifen:

{if (["^TC35i:^Message"]){
my $TelNumber = ReadingsVal("Receiver".$ReceiverNr,"Tel","090066666666");;

set_Exec("Timer1",30,'fhem_set("TC35i MSGNumber $TelNumber");fhem_set("TC35i MSGTxt Testsubject");fhem_set("TC35i MSGSend");Log 1,"No SMSreply received, Send_Notification_Recipient2_Message"');


Fehler: Global symbol "$TelNumber" requires explicit package name (did you forget to declare "my $TelNumber"?) at (eval 3155) line 1.

Tausche ich $TelNumber gegen eine Telefonnummer aus, funktioniert der Code.
Hat jemand eine Idee?
Titel: Antw:Zugriff auf lokale Variable im Timer (set_Exec)
Beitrag von: Damian am 01 Juli 2020, 15:09:21
Natürlich nicht. Lokale Variablen sind zum Ausführungszeitpunkt nicht bekannt.

Drehe mal die Anführungszeichen, damit die Variable vorher ausgewertet wird:

"fhem_set('TC35i MSGNumber $TelNumber');...."
Titel: Antw:Zugriff auf lokale Variable im Timer (set_Exec)
Beitrag von: hackepeter am 01 Juli 2020, 15:35:25
Vielen Dank Damian, das funktioniert!
Wie immer Weltklasse dieses Forum!