setList und eventMap

Begonnen von paddy325, 30 September 2013, 23:00:46

Vorheriges Thema - Nächstes Thema

paddy325

Hallo,

ich versuche das Internetradio-Plugin meiner Dreambox via FHEM zu steuern.
Soweit klappt das auch ganz gut. Ich habe die Sender mit setList angelegt und die URLs der Sender in einer eventMap abgelegt:


define wz_mm_inetradio dummy
attr wz_mm_inetradio alias Internetradio
attr wz_mm_inetradio eventMap hrinfo:www.metafilegenerator.de/HR/hrinfo/mp3/webm.m3u SWR3:swr.ic.llnwd.net/stream/swr_mp3_m_swr3b RPR1:rpr1.fmstreams.de/stream1
attr wz_mm_inetradio fp_OG 100, 800
attr wz_mm_inetradio group Multimedia
attr wz_mm_inetradio icon it_radio
attr wz_mm_inetradio room Wohnzimmer
attr wz_mm_inetradio setList state:hrinfo,SWR3,RPR1
attr wz_mm_inetradio webCmd state


Per notify wird dann der entsprechende Sender auf der Dreambox gesetzt:


define n_wz_mm_inetradio notify wz_mm_inetradio {\
 use strict;; \
 system("wget -q -O- 'http://192.168.178.51/internetradio/web/play?url=http://${EVENT}'");; \
}


Das Problem ist nun die Auswahlbox. Der erste Eintrag (hrinfo) erzeugt kein Event, die anderen beiden funktionieren. Außerdem springt die Anzeige nach einer Auswahl immer wieder auf den ersten Eintrag zurück. Wenn ich die eventMap auskommentiere, wird bei allen Listenelementen ein Event erzeugt, und die Auswahlbox spring auch nicht zurück. Was mache ich falsch?

Danke in voraus

Partick



justme1968

der / ist in der eventmap ein reserviertes zeichen um einzelne einträge voneinander zu trennen. das beisst sich mit den / in der url. das wird so nicht funktionieren.

ich denke du solltest das mappng der namen auf die urls in deinem notify einbauen. z.b. so in der art:define n_wz_mm_inetradio notify wz_mm_inetradio {\
 use strict;; \
 my %map = ( hrinfo => "www.metafilegenerator.de/HR/hrinfo/mp3/webm.m3u",\
                      SWR3 => "swr.ic.llnwd.net/stream/swr_mp3_m_swr3b" );;\
 system("wget -q -O- 'http://192.168.178.51/internetradio/web/play?url=http://'.%map(${EVENT})");; \
}


bei den anführungzeichen musst du mal schauen ob das so geht oder noch angepasst werden muss.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

paddy325

Hi Andre,

danke für Deine Antwort.
So wie Du es beschreibst (ohne eventMap) funktioniert es, alle Einträge erzeugen ein Event, und die Liste zeigt die letzte Auswahl an.

Ich habe aber auch mal "meine Lösung" ohne Sonderzeichen probiert (eventMap hrinfo:1 SWR3:2 RPR1:3) und das Verhalten ist das gleiche. Auch wenn ich als ersten Eintrag etwas anderes wähle (z.B. test:xyz), wird bei diesem kein Event erzeugt und die Liste spring zurück.

Gruß Patrick

justme1968

die liste wird immer dann zurück springen wenn der aktuelle wert nicht in der liste enthalten ist.

d.h. es gibt mehr als einen grund warum es mit der eventMap nicht funktionieren kann. selbst wenn ohne probleme in beide richtungen gemappt würde wären immer noch die / im weg.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

paddy325

Aha, die Liste zeigt auch wieder den aktuellen Wert an, das war mir nicht klar!
Dazu wird dann der "gemappte Wert" benutzt, den es ja in der List nicht gibt, deshalb springt die Anzeige zurück.
Ok, jetzt hab' ich es kapiert.

Danke nochmal!

Gruß Patrick