Hi, ich hab Rudolfs Ankündigungen zu Fhem 5.7 gelesen bezüglich der Änderungen, aber seit dem ich auf 5.7 upgedatet habe, habe ich Probleme bei einem notify und ich hoffe, das mir jemand helfen kann, da meine Perl Kenntnisse noch sehr ausbaufähig sind ;-)
Gegeben ist folgender Code, der vor dem Update noch lief
define Sonos_Bad_Idle_Notify notify Sonos_Bad:transportState.*(STOPPED|PAUSED_PLAYBACK) {\
fhem ("delete bad_Sonos_Idle_Off_Timer");;\
fhem ('define bad_Sonos_Idle_Off_Timer at +01:00:00 {\
my @@member = SONOSPLAYER_GetSlavePlayerNames("Sonos_Bad");;;;\
foreach my $player (@@member) {\
fhem("set steckdose.$player off");;;;\
}\
fhem("set steckdose.Sonos_Bad off");;;; }\
');;\
}
Vor dem Update erstelle Fhem beim triggern des Notify einen at befehl, der nach ner Stunde die Sonos Boxen (bzw die Steckdosen) ausschaltete.
Nach dem Update erstellt er nur noch folgendes at:
{ my @@member = SONOSPLAYER_GetSlavePlayerNames("Sonos_Bad"); foreach my $player (@@member) { fhem("set steckdose.$player off"); } fhem("set steckdose.Sonos_Bad off"); }
und als error kommt in der fhem.log
2015.12.05 11:47:09 3: eval: {
my @@member = SONOSPLAYER_GetSlavePlayerNames("Sonos_Bad");
foreach my $player (@@member) {
fhem("set steckdose.$player off");
}
fhem("set steckdose.Sonos_Bad off"); }
2015.12.05 11:47:09 1: PERL WARNING: (Missing operator before member?)
2015.12.05 11:47:09 1: PERL WARNING: Bareword found where operator expected at (eval 918) line 3, near "@@member"
2015.12.05 11:47:09 3: eval: {
my @@member = SONOSPLAYER_GetSlavePlayerNames("Sonos_Bad");
foreach my $player (@@member) {
fhem("set steckdose.$player off");
}
fhem("set steckdose.Sonos_Bad off"); }
2015.12.05 11:47:09 3: bad_Sonos_Idle_Off_Timer: Can't use global @@ in "my" at (eval 918) line 2, near "my @@"
syntax error at (eval 918) line 2, near "@@member "
syntax error at (eval 918) line 3, near "@@member"
syntax error at (eval 918) line 6, near "; }"
Vielleicht wäre jemand so lieb und hilft mir auf die Sprünge?
Mach mal aus
@@member
@member
Das könnte es schon gewesen sein, Verdopplung braucht es nicht mehr
ach super - das war ja einfach - geht jetzt wieder :-)