Modul für Yamaha Musiccast

Begonnen von Leugi, 10 März 2019, 16:07:57

Vorheriges Thema - Nächstes Thema

rogerknop

Hallo,

ich bin von dem Modul begeistert! Danke an dieser Stelle.
Nur bekomme ich es mit den Playlisten nicht hin.

Meine funktionierenden Anwendungsfälle sind per Alexa: Radio x, Radio y, Radio aus.
Dabei schalte ich 2 Boxen an, setze die Lautstärke und rufe mit "set Wohnzimmer.Box TurnFavNetRadioChannelOn n" den jeweiligen Favoritensender auf.

Nun habe ich mir 2 Favoriten Playlisten angelegt und gedacht, dass dies genauso geht mit "set Wohnzimmer.Box TurnFavServerChannelOn n".
Leider wird die Playlist nicht gestartet.

Mit pathToFavoriteServer und FavoriteServerChannel habe ich nichts gemacht.

Wenn ich auf das Device gehe und bei dem set Button im Dropdown TurnFavNetRadioChannelOn auswähle, wird mir ein weiteres Dropdown mit den verfügbaren Favoriten 1 bis n angeboten.
Bei TurnFavServerChannelOn bekomme ich kein Dropdown angeboten.

Kann mir einer sagen, was ich vergessen habe?

Danke & Grüße,
Roger

KyleK

@Leugi
ich habe einen Patch für dein YAMAHA_MC Modul erstellt, welches "toggle"-Support für Power On/Standby bereitstellt.

Habe die Änderungen erfolgreich mit den Modellen RX-S602, ISX-18D und WX-010 getestet.

Vielleicht kannst du das mit mit ins offizielle Modul einpflegen?

Link: https://forum.fhem.de/index.php/topic,105378.0.html

Viele Grüße,
Frank
FHEM on Raspberry Pi 3B+
CUL868
7x MAX! Thermostat, 8x MAX! Fensterkontakte
Conbee II + deConz, TradFri Lampen, Osram Smart+ Steckdosen

Leugi

Hallo Frank,

danke für den Patch und die toggle Fu ktion. Ich habe ihn ins Modul mit aufgenommen, wird ab morgen verfügbar sein.

Gruß,
Leugi
FHEM auf RaspPi 2, USB-CUL V3, div. HM Aktoren

sprudelverduenner

Hallo Leugi, hallo MusicCast/FHEM Nutzer,

ich bin heute (durch Zufall) endlich einem Phänomen auf die Schliche gekommen, das durch das Yamaha_MC Modul wohl ausgelöst wird.

Ich versuche mich kurz zu fassen:

Ich habe seit über 3 Jahren 3 MusicCast Komponenten und nutze auch von Anfang das FHEM MusicCast Modul.
Von Anfang an habe ich ein Problem mit der APP zur MusicCast - Innerhalb der APP gehe ich auf Server und möchte von meinem Musikserver Titel auswählen. Es kommt aber immer wieder zu einem Zugriffsfehler so dass es kaum möglich ist einen Titel auszuwählen und abzuspielen.

Heute habe ich meinen Raspberry Pi komplett neu aufgesetzt und nach und nach bei FHEM wieder alles hergestellt.
Und dabei ist mir aufgefallen, das der Fehler in der Yamaha MusicCast APP zum Zeitpunkt als FHEM offline war verschwunden war.
Der Zugriffsfehler war pünktlich wieder da als ich das 1. MusicCast Device innerhalb von FHEM wieder konfiguriert habe.

Irgendetwas innerhalb des Moduls scheint also den UPNP Datenverkehr insofern zu blockieren, dass die APP (egal ob Android oder iOS) nicht in der Lage ist die vollständige Liste z.B. der Interpreten zu laden.

@Leugi
Hast du eine Idee was das sein könnte?

LG, Sprudelverduenner
FHEM @ RaspberryPi 3, HMLAN, HMUART + HMRS485, Homematic, ESPEasy @ Sonoff / Shelly / ESP8266, ZigBee @ CC2531
Echo Dot, Dreambox, Yamaha MusicCast, Logitech Hub, LW-12, LD382
FRITZ!Box 7590 AX, Mesh @ FRITZ!Repeater 2400, FRITZ!Fon, iPhone 13, iPad Air 5, AppleWatch 8

sprudelverduenner

Ich habe soeben das Problem weiter einkreisen können:

Das in der Definition angegebene On-Intervall hat eine Auswirkung.
Immer wenn eine Staus Aktualisierung vom Modul von dem MusicCast Device abgefragt wird dann hat die MusicCast APP den Zugriffsfehler bei der Musikauswahl von einem Musikserver.
FHEM @ RaspberryPi 3, HMLAN, HMUART + HMRS485, Homematic, ESPEasy @ Sonoff / Shelly / ESP8266, ZigBee @ CC2531
Echo Dot, Dreambox, Yamaha MusicCast, Logitech Hub, LW-12, LD382
FRITZ!Box 7590 AX, Mesh @ FRITZ!Repeater 2400, FRITZ!Fon, iPhone 13, iPad Air 5, AppleWatch 8

KyleK

Hallo,

ich habe ein paar Fragen zum Modul.
Immer wenn ich FHEM neu starte erscheinen folgende Einträge im global Log:

[...]
2020.01.06 20:43:21 1:  PERL WARNING: Smartmatch is experimental at /opt/fhem/FHEM/71_YAMAHA_MC.pm line 4401, <$fh> line 1663.
2020.01.06 20:43:21 1:  PERL WARNING: Smartmatch is experimental at /opt/fhem/FHEM/71_YAMAHA_MC.pm line 4591, <$fh> line 1663.
2020.01.06 20:43:21 2:  YAMAHA_MC: RX_S602 event Processing disabled
2020.01.06 20:43:21 1:  YAMAHA_MC: RX_S602 no zone defined in device using main
2020.01.06 20:43:21 2:  YAMAHA_MC: RX_S602  DLNAsearch turned on setting timer for getting devices in 150Secs
2020.01.06 20:43:21 1:  YAMAHA_MC: RX_S602  opened device RX_S602 -> host:192.168.178.55:80 120 60 main
2020.01.06 20:43:21 2:  YAMAHA_MC: RX_S602  device RX_S602 defined for first time, starting Timer to get status YAMAHA_MC_ResetTimer
2020.01.06 20:43:21 2:  YAMAHA_MC: WX10 event Processing disabled
2020.01.06 20:43:21 1:  YAMAHA_MC: WX10 no zone defined in device using main
2020.01.06 20:43:21 2:  YAMAHA_MC: WX10  DLNAsearch turned on setting timer for getting devices in 150Secs
2020.01.06 20:43:21 1:  YAMAHA_MC: WX10  opened device WX10 -> host:192.168.178.23:80 120 60 main
2020.01.06 20:43:21 2:  YAMAHA_MC: WX10  device WX10 defined for first time, starting Timer to get status YAMAHA_MC_ResetTimer
2020.01.06 20:43:22 2:  YAMAHA_MC: MC_Kueche event Processing disabled
2020.01.06 20:43:22 1:  YAMAHA_MC: MC_Kueche no zone defined in device using main
2020.01.06 20:43:22 2:  YAMAHA_MC: MC_Kueche  DLNAsearch turned on setting timer for getting devices in 150Secs
2020.01.06 20:43:22 1:  YAMAHA_MC: MC_Kueche  opened device MC_Kueche -> host:192.168.178.34:80 120 60 main
2020.01.06 20:43:22 2:  YAMAHA_MC: MC_Kueche  device MC_Kueche defined for first time, starting Timer to get status YAMAHA_MC_ResetTimer


1. In allen 3 Devices (RX_S602, WX10, MC_Kueche) ist das Attribut DLNASearch = off, gesetzt, dennoch steht im Log dass DLNASearch angeschalten wird. Warum?
2. Für das Device RX_S602 habe ich das Attribut eventProcessing = 1 gesetzt, aber es ist dennoch disabled. Muss ich hier noch mehr einstellen?

list RX_S602

Internals:
   ACTIVE_ZONE main
   API_VERSION 2.04
   CHANGED   
   DEF        192.168.178.55
   DEVICEID   0
   DEVICE_ID  4C1B86072A83
   FD         30
   FUUID      5c93f13d-f33f-9ecb-8398-4a8956ba435edd14
   HOST       192.168.178.55
   LastTtsFile
   MODEL      RX-S602
   NAME       RX_S602
   NR         168
   OFF_INTERVAL 120
   ON_INTERVAL 60
   PORT       80
   PowerOnInProgress 0
   STATE      off
   SYSTEM_ID  040CFD43
   SYSTEM_VERSION 1.29
   TYPE       YAMAHA_MC
   URLCMD     /YamahaExtendedControl
   UdpClientPort 41100
   VERSION    v2.1.1
   WLAND_STRENGTH 0
   WLAN_SSID  MCP
   ZONE       main
   attemptsToReturnMenu 0
   connection wired_lan
   location_id a81dafcf1c12457a84e42e6dafb4c4f1
   location_name Home
   network_name Wohnzimmer
   settingChannelInProgress 0
   vtuner_id 
   READINGS:
     2020-01-06 21:07:45   DLNARenderer    unknown
     2020-01-06 21:27:54   FirmwareAvailable 0
     2020-01-06 21:07:45   MediaServer     unknown
     2020-01-06 19:45:50   album_name      Blinding Lights
     2020-01-06 19:45:50   albumart_id     5597
     2020-01-06 19:45:50   albumart_url    http://192.168.178.55
     2020-01-06 21:27:55   auto_power_standby false
     2020-01-01 18:51:19   currentMenuName Amazon Music
     2020-01-01 18:51:19   currentMenuPlayingIndex -1
     2020-01-01 18:51:19   currentMenumaxItems 8
     2020-01-06 21:27:55   hdmi_out_1      1
     2020-01-06 21:27:55   hdmi_out_2      false
     2020-01-06 21:27:55   headphone       0
     2020-01-06 19:52:50   input           av1
     2020-01-06 21:27:55   ir_sensor       false
     2020-01-06 19:45:50   last_error      Invalid Parameter (Out of range, invalid characters etc.)
     2020-01-06 19:45:50   linkedClients   
     2020-01-06 21:27:54   max_volume      111
     2020-01-06 19:51:34   mute            0
     2020-01-06 21:27:55   party_mode      0
     2020-01-06 19:45:50   playback_input  amazon_music
     2020-01-06 19:45:50   playback_status stop
     2020-01-06 19:51:34   power           off
     2020-01-06 21:07:45   presence        present
     2020-01-06 21:27:55   response_code   0
     2020-01-01 11:11:16   sound_program   straight
     2020-01-06 21:27:55   speaker_a       false
     2020-01-06 21:27:55   speaker_b       false
     2020-01-06 21:07:56   state           off
     2020-01-06 19:45:50   station_name    The Weeknd
     2020-01-06 19:45:50   track           Blinding Lights
     2020-01-06 21:27:54   volume          72
   RX_S602:
     READINGS:
   helper:
     AVAILABLE  1
     DISABLED   0
     INPUTS     napster|spotify|qobuz|tidal|deezer|amazon_music|alexa|airplay|mc_link|server|net_radio|bluetooth|usb|tuner|hdmi1|hdmi2|hdmi3|hdmi4|av1|av2|av3|audio1|audio2|audio3|aux
     RUNNING_REQUEST 0
     TIMEOUT_COUNT 0
     ZONES      main|zone2
     CMD_QUEUE:
     SELECTED_ZONE:
   mac_address:
     wired_lan  4C1B86072A83
     wireless_direct 4C1B86072A84
     wireless_lan 4C1B86072A84
Attributes:
   DLNAsearch off
   devStateIcon off:control_home@red:toggle on:control_on_off@green:toggle
   event-on-change-reading .*
   eventProcessing 1
   room       Räume->Wohnzimmer
   webCmd     volume:input


3. Persönliche Meinung, aber ich finde Die Logmeldung "no zone defined in device using main" sollte runtergestuft werden, Loglevel 1 scheint mir hier nicht richtig.
FHEM on Raspberry Pi 3B+
CUL868
7x MAX! Thermostat, 8x MAX! Fensterkontakte
Conbee II + deConz, TradFri Lampen, Osram Smart+ Steckdosen

JonasE

Das mit dem eventProcessing ist in der Tat seltsam. Ich habe das nochmal bei mir geprüft es wird genauso als disabled angezeigt, obwohl das trotzdem funktioniert. Ich glaube, dass ich das Attribut beim define auslese, es aber zu diesem Zeitpunkt nicht gesetzt ist und erst nachträglich gesetzt wird. Dadurch macht dies keinen Unterschied, sollte im Log aber anders angezeigt werden.


KyleK

#82
Das Wiki liefert die Antwort:
Zitat
Während die Define-Funktion ausgeführt wird, sollte man nicht davon ausgehen, dass alle vom Nutzer konfigurierten Attribute via AttrVal() verfügbar sind. Attribute stehen in der Define-Funktion nur dann zur Verfügung, wenn FHEM sich nicht in der Initialisierungsphase befindet (globale Variable $init_done ist wahr; der Nutzer hat die Gerätedefinition modifiziert). Daher sollte man weiterführende Funktion, welche auf gesetzte Attribute angewiesen sind, nur dann in der Define-Funktion starten, wenn $init_done zutrifft.

Wahrscheinlich muss man den Start des Event Processing auf später verschieben (im Wiki gibt's dazu auch ein Code-Beispiel).

Edit:  Das dürfte auch meine erste Frage zu DLNASearch = off beantworten. Auch hier ist das Attribut erst später verfügbar.
FHEM on Raspberry Pi 3B+
CUL868
7x MAX! Thermostat, 8x MAX! Fensterkontakte
Conbee II + deConz, TradFri Lampen, Osram Smart+ Steckdosen

Frank_Huber

Nabend,

Yamaha RX-S602
Modul definiert, läuft grundsätzlich.
Allerdings habe ich das Attribut pathToFavoritesNetRadio nicht zur Auswahl.

Mache ich was falsch oder liegt es am Modul?

List:

Liefere ich vom PC aus nach, am Handy verhagelt es die Zeilenumbrüche


Gesendet von meinem Doogee S60 mit Tapatalk


Leugi

Hallo Frank,

mittlerweile reicht es aus nur die Nummer des favorisierten Radio-Kanals anzugeben, z.B. so :

attr mc_receiver FavoriteNetRadioChannel 2

Gruß,
Leugi
FHEM auf RaspPi 2, USB-CUL V3, div. HM Aktoren

Frank_Huber

Getestet, tut nicht.
Unter NET Radio sind die Sender in den Vavoriten, lassen sich aber damit starten. Er startet 8mmer den Sender der zuletzt lief.

Gesendet von meinem Doogee S60 mit Tapatalk


Leugi

@KyleK
danke für den Hinweis mit der Define-Funktion . Ich habe das nun wie im Wiki beschrieben implementiert.
Die Logmeldung "no zone defined in device using main" habe ich ebfenfalls vom Logvel heruntergestuft.

@Sprudelverduenner
eine seht interessante Beobachtung - hätte nicht gedacht das das FHEM Modul die App beeinflusst.
Ich vermute mal, dass das Auslesen des Status die Menüauswahl in der APP stört.
Ich habe aber noch keine Ahnung wie ich das verhindern kann. Im Grunde müsste man wissen ob die App als CLient verbunden ist und dann diese Operationen nicht durchführen.
Ob das möglich ist, muss ich bei Gelgenheit mal prüfen ...

@Frank
schaltest du auch mit TurnFavNetRadioChannelOn das Device an ?
Wenn ja bitte verbose für das Device auf 5 setzen und hier den relevanten Teil des Logiles posten

FHEM auf RaspPi 2, USB-CUL V3, div. HM Aktoren

Frank_Huber

Zitat von: Leugi am 24 Januar 2020, 13:35:12
@Frank
schaltest du auch mit TurnFavNetRadioChannelOn das Device an ?
Wenn ja bitte verbose für das Device auf 5 setzen und hier den relevanten Teil des Logiles posten

Hi,

Habe "meine" Lösung aus dem Post hier gezogen: https://forum.fhem.de/index.php/topic,98383.msg917936.html#msg917936
Die Commandref ist in diesem Punkt total falsch. :-(

castor.srs

Moin zusammen,

auch von mir ein herzliches Danke an Leugi und alle Frager und Antworter, dank derer Musiccast und FHEM bei mir prima zusammenarbeiten. An einer Hürde scheitere ich dennoch:

Ich habe das MC-Modul über miniDLNA und Text2Speech zum Reden gebracht, schaffe es aber nicht, eine statische mp3-Datei (001_Tornado.mp3) abspielen zu lassen. Wenn ich sie in den Ordner /var/lib/minidlna lege und den Pfad über set ...speakfile aufrufe, wird sie zwar gespielt, aber danach gelöscht. Lege ich sie in einen Unterordner /var/lib/minidlna/fest, wird sie nicht gefunden:

3: d_YamMC_Kueche1 YAMAHA_MC_SpeakFile Gebe gefundene Titel aus
4: d_YamMC_Kueche1 YAMAHA_MC_SpeakFile searchfilename is <<001_Tornado>> content is <<fest>>.
4: d_YamMC_Kueche1 YAMAHA_MC_SpeakFile result is <<<DIDL-Lite xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/">
<container id="64$0" parentID="64" restricted="1" searchable="1" childCount="1"><dc:title>fest</dc:title><upnp:class>object.container.storageFolder</upnp:class><upnp:storageUsed>-1</upnp:storageUsed></container></DIDL-Lite>>>
3: d_YamMC_Kueche1 YAMAHA_MC_SpeakFile File 001_Tornado not found or MediaRendererDLNA not found
4: YAMAHA_MC (d_YamMC_Kueche1) YAMAHA_MC_HandleCmdQueue - pending requests 4


Gibt es eine Möglichkeit, die Datei im Hauptverzeichnis von der rglm. Lösung auszunehmen, ohne das Modul selbst zu verändern, oder Unterverzeichnisse in die Suche von set ...speakfile mit einzubeziehen?

Frank_Huber

Set Yamaha input av1 schaltet av2 ein.
Yamaha RX-S602

Bug oder feature?

Gesendet von meinem Doogee S60 mit Tapatalk