FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: AndyMu am 08 November 2015, 16:48:47

Titel: [gelöst] Array-Variable in Notify
Beitrag von: AndyMu am 08 November 2015, 16:48:47
Hallo *,

ich stell mich grad blöd an, der folgende Codeschnipsel schlägt fehl:
EinbruchFenster:open.* {
if (ReadingsVal("Handys","state","absent") eq "absent") {
my @letztes_handy=split(/_/,ReadingsVal("Handys","LastDevice","Privathandy_Andy"));;
{fhem( "set Alarmierung_$letztes_handy[1] message Es sind noch einbruchsrelevante Fenster offen!")};;
}
}


Ich wollte eigentlich, wenn die Struktur "EinbruchFenster" auf "open" geht, dass geprüft wird ob die Struktur "Handys" (alle Handys) auf "absent" steht.
Jetzt möchte ich aber mit dem "my @..." aus der Handys-Struktur das letzte device auslesen, das die Struktur auf "absent" gesetzt hat.
Ich bekomme aber immer nur eine Fehlermeldung
EinbruchsicherungNotify return value: No such class EinbruchFensterletztes_handy at (eval 2002) line 3, near "{
my EinbruchFensterletztes_handy"
syntax error at (eval 2002) line 3, near "my EinbruchFensterletztes_handy="

weil das "@" durch den Namen der structure ersetzt wird, die die notify auslöst.

Eigentlich wollte ich den Namen, der hinter dem "_" in den Handybezeichnungen kommt, nehmen und durch Alarmierung_$letztes_handy[1] dynmamisch gestalten.
Titel: Antw:Array-Variable in Notify
Beitrag von: betateilchen am 08 November 2015, 16:56:42
probiers mal mit @@ statt mit @
Titel: Antw:Array-Variable in Notify
Beitrag von: AndyMu am 08 November 2015, 17:13:05
Mönsch... das ist ja einfach.
Danke!

Das blöde ist jetzt, dass in PRESENCE nicht das Device mit der letzten Änderung gespeichert wird, sondern das Device, das zuletzt abgefragt wurde. Dafür habe ich aber hier irgendwo schon ne Lösung gesehen...
Titel: Antw:Array-Variable in Notify
Beitrag von: betateilchen am 08 November 2015, 18:07:23
Zitat von: AndyMu am 08 November 2015, 17:13:05
Mönsch... das ist ja einfach.

und es steht sogar in der Doku...
Titel: Antw:[gelöst] Array-Variable in Notify
Beitrag von: AndyMu am 19 November 2015, 19:13:17
Witzig... seit 5.7 bekomme ich folgende Fehlermeldung:
2015.11.19 18:58:12 3: KritischeFensterOffen return value: Can't use global @@ in "my" at (eval 14278) line 3, near "my @@"
syntax error at (eval 14278) line 3, near "@@letztes_handy"
Global symbol "@letztes_handy" requires explicit package name at (eval 14278) line 4.
Global symbol "@letztes_handy" requires explicit package name at (eval 14278) line 5.

Ich habe einfach ein @ entfernt, jetzt funktioniert es wieder.
Vermutlich hat das was damit zu tun, dass die @ und % nicht mehr für name bzw. event verwendet werden?
Titel: Antw:[gelöst] Array-Variable in Notify
Beitrag von: marvin78 am 19 November 2015, 19:15:25
Genau.