FHEM Forum

FHEM => Frontends => Thema gestartet von: paddy325 am 30 September 2013, 23:00:46

Titel: setList und eventMap
Beitrag von: paddy325 am 30 September 2013, 23:00:46
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


Titel: Aw: setList und eventMap
Beitrag von: justme1968 am 30 September 2013, 23:18:24
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
Titel: Aw: setList und eventMap
Beitrag von: paddy325 am 01 Oktober 2013, 07:39:01
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
Titel: Aw: setList und eventMap
Beitrag von: justme1968 am 01 Oktober 2013, 09:12:31
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
Titel: Aw: setList und eventMap
Beitrag von: paddy325 am 01 Oktober 2013, 09:34:58
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