Hallo,
ich habe eine Verständnisfrage bzgl. der internen Variablen $DEVICE im DOIF Perl Modus.
Beispiel 1:
defmod DoIF_Test DOIF {[LAMPE:Active];;\
{Log 1,'$DEVICE'}\
}\
Beispiel 2:
defmod DoIF_Test DOIF {[[LAMPE:ZEIT]];;\
{Log 1,'$DEVICE'}\
}\
Bei dem ersten ereignisgesteuerten Aufruf ist die interne Varaible mit "LAMPE" belegt, bei dem zweiten ist die Variable leer, obwohl das DoIF korrekt ausgeführt wird. Der Logeintrag ist einfach leer.
Mache ich einen Fehler oder ist es generell so, dass bei zeitgesteuerten Triggern die Variable leer ist?
Vielen Dank für eure Hilfe.
Ist ZEIT wie Active ein Reading von LAMPE?
Zitat von: aw am 19 Januar 2020, 11:42:48
Hallo,
ich habe eine Verständnisfrage bzgl. der internen Variablen $DEVICE im DOIF Perl Modus.
Beispiel 1:
defmod DoIF_Test DOIF {[LAMPE:Active];;\
{Log 1,'$DEVICE'}\
}\
Beispiel 2:
defmod DoIF_Test DOIF {[[LAMPE:ZEIT]];;\
{Log 1,'$DEVICE'}\
}\
Bei dem ersten ereignisgesteuerten Aufruf ist die interne Varaible mit "LAMPE" belegt, bei dem zweiten ist die Variable leer, obwohl das DoIF korrekt ausgeführt wird. Der Logeintrag ist einfach leer.
Mache ich einen Fehler oder ist es generell so, dass bei zeitgesteuerten Triggern die Variable leer ist?
Vielen Dank für eure Hilfe.
$DEVICE ist das triggernde Device, ein Zeittrigger hat folglich kein $DEVICE
Gibt es eine andere Möglichkeit, den Namen des Devices zu bekommen, welches den Zeittrigger 'verursacht' hat? In meinem Fall eben Lampe.
Zitat von: aw am 19 Januar 2020, 12:18:15
Gibt es eine andere Möglichkeit, den Namen des Devices zu bekommen, welches den Zeittrigger 'verursacht' hat? In meinem Fall eben Lampe.
Das kannst du im separaten Block im Perl-Modus machen:
defmod DoIF_Test DOIF {[[LAMPE:ZEIT]];;\
{Log 1,'$DEVICE'}\
}\
{[LAMPE:ZEIT]}
Alles klar. Danke für die schnelle Hilfe.