Hallo,
ich habe meine SONOS-Favoriten in ein Array eingelesen und möchte nun die Anzahl der Favoriten ermitteln. Hierzu habe ich folgende Definition in einem notify erstellt:Sonos_Buero:ButtonEvent:.UD
{my @favoriten = ReadingsVal("Sonos_Buero","Favoriten","");;
fhem("set test_fav @favoriten");;
my $anz=$#favoriten;;
fhem("set F_POS $anz")}
im Dummy test-fav stehen auch meine 8 Favoriten wie erwartet ("FAV1,"FAV2",FAV3,...,"FAV8"). Über $anz wird aber der Wert 0 an den Dummy F_POS übergeben. Was mache ich falsch.
Auch gelingt es mir nicht den n-ten Favoriten aus dem array einem Dummy zu übergeben.
my $anz = $favoriten[1]
liefert einen Fehler
Viele Grüße
juemuc
Hi,
ich glaube nicht wirklich, dass da ein Perl-Array in einem Reading steht. Es ist wohl eher ein String, der die Werte durch Komma getrennt enthält.
Zeig mal ein "list Sonos_Buero".
Gruß,
Thorsten
Hallo Thorsten,
hier die gewünschte Info:
Readings:
2017-02-17 20:33:59 AlarmList {}
2017-02-17 20:33:59 AlarmListIDs
2017-02-17 20:33:59 AlarmListVersion RINCON_B8E937E1619401400:0
2017-01-07 21:45:38 AlarmRunning 0
2017-01-07 21:45:38 AlarmRunningID
2017-01-07 21:45:36 Balance 0
2017-01-07 21:45:38 Bass 0
2017-02-17 21:30:29 ButtonEvent UD
2017-01-07 21:45:38 CrossfadeMode 0
2017-01-07 21:45:38 DailyIndexRefreshTime
2017-02-17 20:33:59 Favoriten "ANTENNE BAYERN","Absolut relax","Bayern 3","ENERGY München","Gong 96.3","SWR3 Elchradio","antenne 1","sunshine live"
Viele Grüße
juemuc
So in etwa:
{my @favoriten = split(/,/ , ReadingsVal("Sonos_Buero","Favoriten",""));;
Gruß,
Thorsten
Das funktioniert leider nicht. Ich erhalte folgende Fehlermeldungen:
Zitat2017.02.17 22:56:34 1: PERL WARNING: Possible unintended interpolation of @favoriten in string at (eval 23517) line 2.
2017.02.17 22:56:34 3: eval: my $EVTPART0='ButtonEvent:';my $NAME='Sonos_Buero';my $EVTPART1='UD';my $TYPE='SONOSPLAYER';my $EVENT='ButtonEvent: UD';my $SELF='Test_notify';{my my @favoriten = split(/,/ , ReadingsVal("Sonos_Buero","Favoriten",""));
fhem("set test_fav @favoriten");
my $anz=$#favoriten;
fhem("set F_POS $anz")}
2017.02.17 22:56:34 1: ERROR evaluating my $EVTPART0='ButtonEvent:';my $NAME='Sonos_Buero';my $EVTPART1='UD';my $TYPE='SONOSPLAYER';my $EVENT='ButtonEvent: UD';my $SELF='Test_notify';{my my @favoriten = split(/,/ , ReadingsVal("Sonos_Buero","Favoriten",""));
fhem("set test_fav @favoriten");
my $anz=$#favoriten;
fhem("set F_POS $anz")}: No such class my at (eval 23517) line 1, near "{my my"
Global symbol "@favoriten" requires explicit package name (did you forget to declare "my @favoriten"?) at (eval 23517) line 1.
Global symbol "@favoriten" requires explicit package name (did you forget to declare "my @favoriten"?) at (eval 23517) line 2.
Global symbol "@favoriten" requires explicit package name (did you forget to declare "my @favoriten"?) at (eval 23517) line 3.
2017.02.17 22:56:34 3: Test_notify return value: No such class my at (eval 23517) line 1, near "{my my"
Global symbol "@favoriten" requires explicit package name (did you forget to declare "my @favoriten"?) at (eval 23517) line 1.
Global symbol "@favoriten" requires explicit package name (did you forget to declare "my @favoriten"?) at (eval 23517) line 2.
Global symbol "@favoriten" requires explicit package name (did you forget to declare "my @favoriten"?) at (eval 23517) line 3.
Viele Grüße
juemuc
Ich habe den Fehler gefunden. my war doppelt. Danke
Viele Grüße
juemuc