Autor Thema: [gelöst] Zugriff auf lokale Variable im Timer (set_Exec)  (Gelesen 60 mal)

Offline hackepeter

  • New Member
  • *
  • Beiträge: 49
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?
« Letzte Änderung: 01 Juli 2020, 15:37:18 von hackepeter »

Offline Damian

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 7335
Antw:Zugriff auf lokale Variable im Timer (set_Exec)
« Antwort #1 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');...."
« Letzte Änderung: 01 Juli 2020, 15:12:34 von Damian »
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-Web, THRESHOLD, FHEM-Befehl: IF

Offline hackepeter

  • New Member
  • *
  • Beiträge: 49
Antw:Zugriff auf lokale Variable im Timer (set_Exec)
« Antwort #2 am: 01 Juli 2020, 15:35:25 »
Vielen Dank Damian, das funktioniert!
Wie immer Weltklasse dieses Forum!