[Fehler] Global symbol "@mydata" requires explicit package name at ....

Begonnen von Tobias, 02 September 2011, 13:54:55

Vorheriges Thema - Nächstes Thema

Tobias

                                                   

Hi,

ich habe ein notify Event angelegt und darin eine Variable mit @@
angelegt, trotzdem gibts einen Fehler bei der Ausführung und ich finde
ihn nicht.

define BewNotify notify BewNotify {\
 if($value{Bodenfeuchtesensor} eq "on") {\
     my @@mydata = split(" ",'%EVENT');;\
     fhem "set $mydata[0] on-for-timer $mydata[1]";;\
 } else {\
     fhem "set $mydata[0] off"\
 }\
}

fhem> trigger BewNotify Bewaesserung_Ventil1 1920

Global symbol "@mydata" requires explicit package name at (eval 21)
line 1.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Tobias

                                                   

Hat keiner eine Ahnung? Ich hab schon unzählige Beispiele
durchgeackert aber danach müsste der Code richtig sein....  Kann mir
aber auch nicht vorstellen das da ein Bug in fhem drin sein sollte...

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

rudolfkoenig

                                                   

> define BewNotify notify BewNotify {\
>  if($value{Bodenfeuchtesensor} eq "on") {\
>      my @@mydata = split(" ",'%EVENT');;\
>      fhem "set $mydata[0] on-for-timer $mydata[1]";;\
>  } else {\
>      fhem "set $mydata[0] off"\
>  }\
> }

@mydata is lokal in der "if" Teil des Ausdrucks, und ist unbekannt im "else".

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Tobias

                                                   

Ich habe jetzt die Deklaration von @@v1 vor dem if-Zweig.

Allerdings, wenn ich daraus eine globale Variable machen möchte und
"my" weglasse bekomme ich wieder den selben fehler:

2011.09.03 13:10:45 3: Global symbol "@v1" requires explicit package
name at (eval 49) line 1.
Global symbol "@v1" requires explicit package name at (eval 49) line
1.
Global symbol "@v1" requires explicit package name at (eval 49) line
1.
Global symbol "@v1" requires explicit package name at (eval 49) line
1.

> @mydata is lokal in der "if" Teil des Ausdrucks, und ist unbekannt im "else".

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

rudolfkoenig

                                                   

> Allerdings, wenn ich daraus eine globale Variable machen möchte und
> "my" weglasse bekomme ich wieder den selben fehler:

Der Ansatz "daraus eine globale Variable machen" ist falsch.  Als globale
Variable koennen die at/notify Ausdruecke Eintraege in %data verwenden.  Diese
Perl Ausdruecke werden per eval ausgewertet, siehe auch perldoc -f eval

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com