[GELÖST] Anzahl Einträge in einem Array

Begonnen von juemuc, 17 Februar 2017, 21:56:06

Vorheriges Thema - Nächstes Thema

juemuc

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
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

Thorsten Pferdekaemper

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
FUIP

juemuc

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
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

Thorsten Pferdekaemper

So in etwa:

{my @favoriten = split(/,/ , ReadingsVal("Sonos_Buero","Favoriten",""));;

Gruß,
   Thorsten
FUIP

juemuc

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
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

juemuc

Ich habe den Fehler gefunden. my war doppelt. Danke

Viele Grüße

juemuc
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).