Autor Thema: neue Features: ereignisgesteuertes Perl - DOIF-Perl  (Gelesen 68698 mal)

Offline spi3845

  • Full Member
  • ***
  • Beiträge: 122
Antw:neue Features: ereignisgesteuertes Perl - DOIF-Perl
« Antwort #255 am: 10 März 2022, 11:50:48 »
Hallo,

kann man inzwischen eine Perl-Variable innerhalb von [] verwenden?

Also etwas der Art:
defmod di_text DOIF {
my $geraet="sensor123";;

if ([$geraet:gesperrt,1] eq 0) {
Log 1, "es geht";;
}

}

Danke schon mal!

Noch ein Nachtrag:

wie halte ich es dann mit z. B.
set_Exec("timer", 30, 'fhem("setreading $geraet gesperrt 0")');;
Muss ich hier dann $_geraet statt $geraet deklarieren und nutzen?
« Letzte Änderung: 10 März 2022, 12:58:27 von spi3845 »

Offline Damian

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 9970
Antw:neue Features: ereignisgesteuertes Perl - DOIF-Perl
« Antwort #256 am: 10 März 2022, 14:27:51 »
Hallo,

kann man inzwischen eine Perl-Variable innerhalb von [] verwenden?

Also etwas der Art:
defmod di_text DOIF {
my $geraet="sensor123";;

if ([$geraet:gesperrt,1] eq 0) {
Log 1, "es geht";;
}

}

Danke schon mal!

Noch ein Nachtrag:

wie halte ich es dann mit z. B.
set_Exec("timer", 30, 'fhem("setreading $geraet gesperrt 0")');;
Muss ich hier dann $_geraet statt $geraet deklarieren und nutzen?

Man kann keine Variablen als Triggerinformation nutzen.

statt

'fhem("setreading $geraet gesperrt 0")'
definierten:

"fhem('setreading $geraet gesperrt 0')"
damit $geraet vor der Ausführung ausgewertet wird und nicht erst danach - das ist eine Perleigenschaft.

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Offline spi3845

  • Full Member
  • ***
  • Beiträge: 122
Antw:neue Features: ereignisgesteuertes Perl - DOIF-Perl
« Antwort #257 am: 10 März 2022, 15:24:27 »
Man kann keine Variablen als Triggerinformation nutzen.
Ja, das hatte ich irgendwo schon gesehen und es hat auch nicht geklappt. Hatte gehofft, es gibt inzwischen einen Workaround. Danke aber für die Info!

statt

'fhem("setreading $geraet gesperrt 0")'
definierten:

"fhem('setreading $geraet gesperrt 0')"
damit $geraet vor der Ausführung ausgewertet wird und nicht erst danach - das ist eine Perleigenschaft.

Danke! Der Teufel steckt im Detail. Es könnte so einfach sein, wenn es nur eine Art von Klammern und Anführunsgzeichen gäbe  8)

« Letzte Änderung: 10 März 2022, 16:33:51 von spi3845 »

 

decade-submarginal