FHEM Forum

FHEM - Anwendungen => Multimedia => Thema gestartet von: Leugi am 10 März 2019, 16:07:57

Titel: Modul für Yamaha Musiccast
Beitrag von: Leugi am 10 März 2019, 16:07:57
Hallo zusammen,

mit Hilfe der Unterstützung von einigen Ideen aus dem Forumbeitrag :

https://forum.fhem.de/index.php/topic,54798.0.html (https://forum.fhem.de/index.php/topic,54798.0.html)

wurde das Modul für die Steuerung von Musiccast Geräten 71_YAMAHA_MC.pm nun im offiziellen Release von Fhem ausgeliefert. Es entfällt somit das manuelle Kopieren der Datei und die neuste Version kann ab sofort per Update gezogen werden.

Voraussetzungen für die Verwendung dieses Modul sind die Installation der folgenden Pakete :


sudo apt-get install libjson-perl
sudo apt-get install libmp3-info-perl
sudo apt-get install -y libnet-upnp-perl
perl -MCPAN -e 'install MP3::Info'


Die grunsätzliche Defnition der Geräte erfolgt im Format :

define <device> YAMAHA_MC <IP-Adresse> <Port> <Intervall Off> <Intervall On> <Zone>

Anbei eine Beispiel Definition eines Yamaha WX030 und eines Receivers mit 2 Zonen :


define wx030 YAMAHA_MC 192.168.0.28 80 120 60 main
attr wx030 DLNAServer miniDLNA
attr wx030 DLNAsearch off
attr wx030 FavoriteNetRadioChannel 2
attr wx030 FavoriteServerChannel 3
attr wx030 devStateIcon on:audio_volume_high@green off:audio_volume_low@red
attr wx030 fp_erdgeschoss 255,556,10, ,10
attr wx030 genericDeviceType speaker
attr wx030 homebridgeMapping On=state,valueOn=/on|mute|1/,valueOff=/off|standby|disappeared|0/,cmdOn=on,cmdOff=off Mute=mute::mute Volume=volume::volume,delay=true
attr wx030 icon audio_volume_high
attr wx030 model WX-030
attr wx030 pathToFavoriteServer 3 1 0 7 17
attr wx030 room YAMAHA_AV,Homekit,Küche
attr wx030 siriName "Lautsprecher"
attr wx030 standard_volume 25
attr wx030 timestamp-on-change-reading 0
attr wx030 ttsvolume 30
attr wx030 verbose 2
attr wx030 volumeSteps 3
attr wx030 webCmd on:off:volume:input

define mc_receiver YAMAHA_MC 192.168.0.25 80 120 60 main
attr mc_receiver DLNAsearch off
attr mc_receiver FavoriteNetRadioChannel 2
attr mc_receiver FavoriteServerChannel 1
attr mc_receiver devStateIcon on:audio_volume_high@green off:audio_volume_low@red
attr mc_receiver fp_erdgeschoss 259,384,0, ,Receiver
attr mc_receiver genericDeviceType speaker
attr mc_receiver homebridgeMapping On=state,valueOn=/on|mute|1/,valueOff=/off|standby|disappeared|0/,cmdOn=on,cmdOff=off Mute=mute::mute Volume=volume::volume,delay=true
attr mc_receiver icon audio_volume_high
attr mc_receiver pathToFavoriteServer 4 1 0 7 1
attr mc_receiver room YAMAHA_AV
attr mc_receiver standard_volume 15
attr mc_receiver timestamp-on-change-reading 0
attr mc_receiver verbose 2
attr mc_receiver volumeSteps 3
attr mc_receiver webCmd on:off:volume:input

define mc_receiver_zone2 YAMAHA_MC 192.168.0.25 80 120 60 zone2
attr mc_receiver_zone2 DLNAServer miniDLNA
attr mc_receiver_zone2 DLNAsearch off
attr mc_receiver_zone2 FavoriteNetRadioChannel 2
attr mc_receiver_zone2 devStateIcon on:audio_volume_high@green off:audio_volume_low@red
attr mc_receiver_zone2 fp_erdgeschoss 191,705,0,mc_receiver_zone2,
attr mc_receiver_zone2 genericDeviceType Speaker
attr mc_receiver_zone2 homebridgeMapping On=state,valueOn=/on|mute|1/,valueOff=/off|standby|disappeared|0/,cmdOn=on,cmdOff=off Mute=mute::mute Volume=volume::volume,delay=true
attr mc_receiver_zone2 icon audio_volume_high
attr mc_receiver_zone2 pathToFavoriteServer 0 0 0 0
attr mc_receiver_zone2 room YAMAHA_AV
attr mc_receiver_zone2 standard_volume 25
attr mc_receiver_zone2 timestamp-on-change-reading 0
attr mc_receiver_zone2 verbose 2
attr mc_receiver_zone2 volumeSteps 3
attr mc_receiver_zone2 webCmd on:off:volume:input



Sollte es Probleme mit dem Modul geben, bitte hier wenn möglich gleich mit einem Logfile (Verbose vorher auf 5 setzen) hier posten oder per PM.

Die Commandref ist noch in Arbeit und enthält bisher nur wenig Informationen. Wer mag, kann hier gerne bei der ERstellung unterstützen :

https://fhem.de/commandref.html#YAMAHA_MC (https://fhem.de/commandref.html#YAMAHA_MC)


Gruß,
Leugi
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: ToKa am 10 März 2019, 17:16:27
Hallo Leugi,

zunächst danke für Deine tolle Arbeit und das Modul. Ich werde die Tage mal probieren, ob sich mein Yamaha CDNT670D mit Alexa-fhem ansteuern kann. Wobei ich gerade feststelle, dass das Modul wohl nichts mit "genericDeviceType" anfangen kann - es wird auf jeden Fall kein Dropdown aus den userattr Werten für genericDeviceType aus global angezeigt.

Das DLNAServer attribute bezieht sich auf einen lokalen Server wie miniDLNA oder kann man auch einen anderen Server per IP oder FQDN angeben?

Beste Grüße
Torsten
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: chopsor am 11 März 2019, 09:31:42
Das sind ja mal super Neuigkeiten!

Hatte einen Moment schon befürchtet das Modul würde nicht weiter entwickelt werden.


Danke!
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 11 März 2019, 22:57:55
Mit der heutigen Version habe ich die Commands

  TurnFavNetRadioChannelOn
  NetRadioNextFavChannel
  NetRadioPrevFavChannel

wie im Forum vorgeschlagen umgestellt auf recallPreset. Damit werden nun die Favoriten direkt angesteuert (und nicht die Favoriten in der Menüstruktur unter Net Radio).
Das vereinfacht die Kommandos und arbeitet sehr viel zuverlässiger als die Navigation über die Menüstruktur.

Voraussetzung dafür ist, dass die Sender in der Musiccast App auch als echte Favoriten gespeichert werden und nicht nur als Net Radio Favoriten.
Anbei drei Screenshots, die das Hinzufügen in der App verdeutlichen.

Für das Schalten der Favoriten außerdem wichtig, dass das Attribut FavoriteNetRadioChannel gesetzt wird. Soll z.B. der zweite Eintrag in der Favoritenliste (im Beispiel Radio FFN) als Lieblingssender eingetragen werden, dann muss das so gesetzt werden :

attr <decicename> FavoriteNetRadioChannel 2


Ich habe damit mein 6fach Wandschalter gesteuert :


# Schalter Fernbedieung Wx030
define set_wx030_on notify Wandschalter_Radio_Btn_01.Short.* set wx030 TurnFavNetRadioChannelOn
define set_wx030_off notify Wandschalter_Radio_Btn_02.Short.* set wx030 off
define set_wx030_volup notify Wandschalter_Radio_Btn_03.Short.* set wx030 volumeDown
define set_wx030_voldwn notify Wandschalter_Radio_Btn_04.Short.* set wx030 volumeUp
define set_wx030_chnup notify Wandschalter_Radio_Btn_05.Short.* set wx030 NetRadioPrevFavChannel
define set_wx030_chndown notify Wandschalter_Radio_Btn_06.Short.* set wx030 NetRadioNextFavChannel


Viel Spass beim Asuprobieren,
Leugi
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: RockThisParty am 12 März 2019, 06:33:05
Moin!
Direkt ein großes Dankeschön, das probiere ich schnellstmöglich aus.

Gleich aber noch ein kleiner Wunsch:
Es wäre toll, wenn man optional direkt bei Aufruf einen Favoriten (Zahl) mitgeben könnte. Ich würde mir gern 2...3 verschiedene Favoriten auf den Taster legen ... und mache das bisher unelegant durch ändern des Attributs.

Viele Grüße
Stefan
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: sprudelverduenner am 12 März 2019, 07:50:56
Moin Leugi,

das ist schon mal sehr gut - das Umschalten der Favoriten + / - ging noch nie so schnell und zuverlässig: TOP

Das Problem, wenn mit anderem Sender und Lautstärke ausgeschaltet wurde, dass " TurnFavNetRadioChannelOn" dann das Gerät nur einschaltet besteht leider weiterhin - ich weiss nicht ob Du an dieser Baustelle schon gearbeitet hast.
Erst ein 2. "TurnFavNetRadioChannelOn" schaltet dann tatsächlich Sender und Lautstärke um.

Ist bei mir auch auf dem WX-030 reproduzierbar.

Schönen Tag noch...
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: RockThisParty am 12 März 2019, 22:01:59
Moin!

Ein vielleicht dumme Frage: Ich glaube, die neue Version wird bei mir noch nicht automatisch eingespielt.
Das Logfile beim Update heute morgen meldete "initial release", in der Datei steht
# $Id: 71_YAMAHA_MC.pm 18853 2019-03-10 21:02:39Z Leugi $
##############################################################################
#
#     71_YAMAHA_MC.pm
#     An FHEM Perl module for controlling Yamaha Musiccast Devices
#     via network connection. As the interface is standardized
#     within all Yamaha Musiccast Devices, this module should work
#     with any musiccastdevice which has an ethernet or wlan connection.
#
#     Copyright by Stefan Leugers
#     e-mail: stefan.leugers@onlinehome.de
#
#    Changes
#   8-1-19 by tobi73: Adding command to select NetRadio Favourites (setNetRadioPreset), correct URL in case API Version ist "dotted"


Müsste ich aktiv etwas unternehmen, um die neueste Version testen zu können?

Danke und Grüße,
Stefan
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 12 März 2019, 23:02:49
18853 ist schon die aktuellste Version mit dem oben beschriebenen Verhalten für TurnFavNetRadioChannelOn.

Ich habe jetzt nochmals eine neue Version eingecheckt mit Revision 18881.

In dieser Version ist dann auch der optionale Parameter mit dem Sender enthalten.
Also:

Variante a) ohne Parameter :
  set wx030 TurnFavNetRadioChannelOn
  setzt den Sender auf  dem im Attribut "FavoriteNetRadioChannel" Sender

Variante b) mit Parameter :
  set wx030 TurnFavNetRadioChannelOn 5
  setzt den Sender auf dem Sender Nummer 5 in den Favoriten.


Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: kilderman am 15 März 2019, 19:25:12
Hallo Leugi,

zuerst einmal vielen Dank für die klasse Arbeit an dem Modul. Ich finde es auch gut, dass es nun ins offizielle Update aufgenommen wurde. Mit dem neuen Modul habe ich nun aber bei ausgeschaltetem WLAN (die Box ist mit WLAN angebunden) und auch mit 'verbose 0' alle 2 Minuten (anscheinend die zuvor festgelegte Updatefrequenz) folgende Zeilen im LOG:

2019.03.15 19:07:11 1: readingsUpdate(Radio,presence,absent) missed to call readingsBeginUpdate first.
2019.03.15 19:07:11 1: stacktrace:
2019.03.15 19:07:11 1:     main::readingsBulkUpdate            called by ./FHEM/71_YAMAHA_MC.pm (3003)
2019.03.15 19:07:11 1:     main::YAMAHA_MC_httpRequestParse    called by FHEM/HttpUtils.pm (414)
2019.03.15 19:07:11 1:     main::__ANON__                      called by fhem.pl (750)
2019.03.15 19:07:11 1: readingsUpdate(Radio,state,off) missed to call readingsBeginUpdate first.
2019.03.15 19:07:11 1: stacktrace:
2019.03.15 19:07:11 1:     main::readingsBulkUpdate            called by ./FHEM/71_YAMAHA_MC.pm (3005)
2019.03.15 19:07:11 1:     main::YAMAHA_MC_httpRequestParse    called by FHEM/HttpUtils.pm (414)
2019.03.15 19:07:11 1:     main::__ANON__                      called by fhem.pl (750)
2019.03.15 19:07:11 1: readingsUpdate(Radio,power,off) missed to call readingsBeginUpdate first.
2019.03.15 19:07:11 1: stacktrace:
2019.03.15 19:07:11 1:     main::readingsBulkUpdate            called by ./FHEM/71_YAMAHA_MC.pm (3006)
2019.03.15 19:07:11 1:     main::YAMAHA_MC_httpRequestParse    called by FHEM/HttpUtils.pm (414)
2019.03.15 19:07:11 1:     main::__ANON__                      called by fhem.pl (750)


Am Tag kommt da echt was zusammen. Sobald WLAN eingeschaltet wird, wird die Box wieder gefunden und die LOG-Einträge bleiben erwartungsgemäß aus. Vor dem Update hatte ich diese Einträge nicht. Gibt es vielleicht eine Möglichkeit, dass die LOG-Einträge nur bei einem bestimmten verbose-Level im Modul erscheinen?

Herzlichen Dank und ein schönes Wochenende
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: RockThisParty am 16 März 2019, 10:29:24
Zitat von: Leugi am 12 März 2019, 23:02:49
In dieser Version ist dann auch der optionale Parameter mit dem Sender enthalten.
Super! Vielen Dank!!! ;D

Leider kann ich das Problem
ZitatDas Problem, wenn mit anderem Sender und Lautstärke ausgeschaltet wurde, dass " TurnFavNetRadioChannelOn" dann das Gerät nur einschaltet besteht leider weiterhin - ich weiss nicht ob Du an dieser Baustelle schon gearbeitet hast.
Erst ein 2. "TurnFavNetRadioChannelOn" schaltet dann tatsächlich Sender und Lautstärke um.
auch bestätigen.
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 20 März 2019, 13:24:17
@kilderman
Mit der neuen Version habe ich das Logging und das Verhalten verbessert, wenn das Device nicht mehr erreichbar ist.
Es wird jetzt ein Timeout-Counter bis 10 hochgezählt und dann erst das Device als nicht mehr errichbar deklariert.
Die von dir aufgeührten Fehler sollten nicht mehr auftreten.

@ RockThisParty und @sprudelverduenner
Ich habe den Command TurnFavNetRadioChannelOn mit der neuen Verison optimiert. Bei mir funktioniert das nun einwandfrei.
Bitte nochmals testen und falls es nicht funktioniert ein Log mit verbose 5 des Devices senden.

@sprudelverduenner
Bitte auch nochmals den Fehler aus dem alten Post mit dem Link und Unlink der Devices testen.
Also erst ein Link mittels
set <devicename> mclink <devicename2> <devicename3>
und dann ein device unlinken
set <devicename> mcunlink <devicename3>
Auch hier bitte wenn es nicht funktioniert mir den Textteil aus dem Log mit verbose 5 ab mcunlink Befehl senden.


Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: sprudelverduenner am 20 März 2019, 15:39:57
Hallo Leugi,

ich habe Deine 2 Updates gerade mal getestet.

Link / Unlink: Sieht nach einem ersten Test sehr gut aus. Ich habe meine 2 Clients einzeln gelinked und konnte diese dann auch einzeln wieder trennen - egal in welcher Reihenfolge, es wurde immer alles richtig ausgeführt.

Start mit FavoritenSender: Bei mir besteht das Problem weiterhin.

List Device
ACTIVE_ZONE main
   API_VERSION 2.04
   CFGFN      /opt/fhem/FHEM/sub_cfg/sub_externe-geraete.cfg
   DEF        192.168.1.37 80 15 15
   DEVICEID   0
   DEVICE_ID  00A0DED3C236
   FUUID      5c448db4-f33f-fbf8-4de6-a016e80af9eff840
   HOST       192.168.1.37
   HTTPMETHOD POST
   LastTtsFile
   MODEL      WX-030
   NAME       musiccast.mobil
   NR         149
   OFF_INTERVAL 15
   ON_INTERVAL 15
   PORT       80
   POSTDATA   {"group_id":""}
   PowerOnInProgress 0
   STATE      on
   SYSTEM_ID  0A767CC3
   SYSTEM_VERSION 3.14
   TYPE       YAMAHA_MC
   URLCMD     /YamahaExtendedControl
   VERSION    v2.0.9
   WLAND_STRENGTH 32
   WLAN_SSID  ViolatorNET
   ZONE       main
   attemptsToReturnMenu 0
   connection extend_2
   dist_group_id d2d82d2b86434a35a35ad77c7ec0241c
   dist_group_name Mobil +1 Raum
   dist_group_role server
   location_id 41d8f2e8cac94256be6d0b41fdf36833
   location_name Mobil
   network_name Mobil
   settingChannelInProgress 0
   vtuner_id 
   READINGS:
     2019-03-20 15:22:16   FirmwareAvailable 0
     2019-03-20 15:23:25   album_name     
     2019-03-20 15:23:25   albumart_id     4676
     2019-03-20 15:23:25   albumart_url    http://192.168.1.37/YamahaRemoteControl/AlbumART/AlbumART4676.png
     2019-03-20 15:22:16   auto_power_standby 1
     2019-03-20 15:22:56   currentFavNetRadioChannel 2
     2019-03-20 15:23:25   currentMenuLayer 0
     2019-03-20 15:23:25   currentMenuName NET RADIO
     2019-03-20 15:23:25   currentMenuPlayingIndex -1
     2019-03-20 15:23:25   currentMenumaxItems 2
     2018-12-12 09:22:59   equalizer_high  6
     2019-03-20 15:22:16   hdmi_out_1      false
     2019-03-20 15:22:16   hdmi_out_2      false
     2019-03-20 15:22:16   headphone       false
     2019-03-08 21:23:14   input           net_radio
     2019-03-20 15:22:16   ir_sensor       false
     2019-03-20 14:39:34   last_error      192.168.1.37: No route to host
     2019-03-20 15:23:25   max_volume      60
     2018-12-12 09:22:59   mute            0
     2019-03-20 15:22:16   party_mode      false
     2019-03-20 15:23:25   playback_input  net_radio
     2019-03-20 15:23:25   playback_status play
     2019-03-20 15:22:23   power           on
     2019-03-20 15:22:23   presence        present
     2019-03-20 15:23:25   response_code   0
     2019-03-20 15:22:16   speaker_a       false
     2019-03-20 15:22:16   speaker_b       false
     2019-03-20 15:22:23   state           on
     2019-03-20 15:23:25   station_name    WDR 2 Rheinland (Cologne/German)
     2019-03-20 15:23:25   track           Mr Rock & Roll - Amy Macdonald
     2019-03-20 15:23:25   volume          25
   helper:
     AVAILABLE  1
     DISABLED   0
     INPUTS     napster|spotify|juke|tidal|deezer|airplay|mc_link|server|net_radio|bluetooth
     MENUITEMS  Radio|Podcasts
     RUNNING_REQUEST 0
     TIMEOUT_COUNT 0
     ZONES      main
     client_list
     inputs_comma napster,spotify,juke,tidal,deezer,airplay,mc_link,server,net_radio,bluetooth
     inputs_piped napster|spotify|juke|tidal|deezer|airplay|mc_link|server|net_radio|bluetooth
     menuitems_comma radio,podcasts
     menuitems_piped radio|podcasts
     soundprograms_comma
     CMD_QUEUE:
     SELECTED_ZONE:
   mac_address:
     wired_lan  00A0DED3C236
     wireless_direct 8C8B83BACD97
     wireless_lan 8C8B83BACD96
   musiccast.mobil:
     READINGS:
Attributes:
   FavoriteNetRadioChannel 2
   NachtAbschalten 1
   alias      MusicCast MOBIL
   devStateIcon off:ios-off on:ios-on-green
   eventMap   TurnFavNetRadioChannelOn:fav_on NetRadioPrevFavChannel:fav_- NetRadioNextFavChannel:fav_+
   icon       audio_audio
   room       1.3_Büro,3.2_Terrasse,5.9_MusicCast
   sortby     5
   standard_volume 25
   webCmd     fav_on:fav_-:fav_+:volume


Verbose 5 im Anhang. Um 15:22 Uhr habe ich den Start Befehl zum 1. Mal abgesetzt... ich hoffe es hilft...

LG, Sprudelverduenner
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: ToKa am 20 März 2019, 19:46:07
Hallo Leugi,

konntest Du Dir das mit dem Attribut "genericDeviceType" (fehlendes Dropdown) mal anschauen?

In der commandref finde ich leider immer noch nichts zum Attribut DLNAServer, ob man einen anderen Server per IP oder FQDN angeben kann?

Beste Grüße
Torsten
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 24 März 2019, 12:08:34
Ich habe eine neue Version bereitgestellt, bitte Updaten

@Torsten
ich habe den festen Eintrag für genericDeviceType nun entfernt und die Liste ist wieder aktiv, wenn es als lobal attribute definiert wurde

@Sprudelverduenner
ich habe das Verhalten beim Einschalten mittels TurnFavNetRadioChannelOn nochmals verbessert,
kannst du bitte nochmals prüfen, ob es bei dir jetzt besser fuktioniert ?
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 24 März 2019, 12:33:04
Leider ist das Thema Sprachausgabe auf den Musiccast Geräten nicht so einfach, weil man den Stream nicht direkt zu den Geäten senden kann.
Man muss quasi den Musiccast Geäten sagen, dass sie den Stream abholen sollen. Das funktioniert per DLNA. Daher hier eine experimentelle Vorgehensweise, wie man einen Speak Befehl zum Musiccast Geräte absetzen kann :

1.  DLNA Server
Man muss einen DLNA Server aufsetzen, der die Sprachdateien bereitstellt und das Mussiccast Geräte holt sich diese dann ab und spielt diese ab.
Ich habe das mit einem Mini DLNA Server auf dem gleichen Geät wie FHEM (bei mir Rasperry Pi) gelöst. Denkbar ist es natürlich auch auf einen x belbiegen anderen DLNA Server zu lösen und mit gemounteten Verzeichnissen zu arbeiten. Meine Vorgehensweise war hier aber erstmal den DLNA Server auf dem FHEM Server zu installieren :

sudo apt-get install minidlna

Dann in der /etc/minidlna.conf Konfigurationsdatei beispielhaft folgende Einstellungen

friendly_name=miniDLNA
inotify=yes
media_dir=A,/var/lib/minidlna
log_dir=/var/log

Damit wir als DLNA Medien Directory /var/lib/minidlna verwendet, hier bitte auch dafür sorgen, dass ausreichend REchte vorhanden sind.

sudo chmod 755 /var/lib/minidlna

Dann minidlna neu starten :

sudo service minidlna start

Es sollte dann unter der IP Adresse des Geräts und Port 8200 http://IP:8200  eine kurze Zusammenfassung des DLNA Server erscheinen, wenn nicht dann das Log File unter /var/log prüfen.

2.  TTS Device
Ich wollte das Rad nicht neu erfinden und benutze dazu das bestehende TTS Modul. Die Sprachausgabe erfolgt dann im Medien Verzeichnis des DLNA Servers - hier /var/lib/minidlna.
Ein Notify sorg dafür, dass die Sprachausgabe die erzeugte Datei an das Musiccast Device weitergibt unten mit Namen wx030 - bitte entsprechend anpassen.
In fhem.cfg also folgendes definieren :


#Sprachausgabe fuer Musiccast
# keine Sprachausgabe nur File erstellen
define MyTTSMusiccast Text2Speech none
attr MyTTSMusiccast TTS_CacheFileDir /var/lib/minidlna
attr MyTTSMusiccast TTS_FileTemplateDir /var/lib/minidlna
attr MyTTSMusiccast TTS_Language Deutsch
attr MyTTSMusiccast TTS_MplayerCall sudo /usr/bin/mplayer
attr MyTTSMusiccast TTS_Ressource Google
attr MyTTSMusiccast TTS_UseMP3Wrap 1
attr MyTTSMusiccast TTS_VolumeAdjust 400
attr MyTTSMusiccast disable 0
attr MyTTSMusiccast room Text2Speech
attr MyTTSMusiccast verbose 5

define FileLog_MyTTSMusiccast FileLog /opt/fhem/log/MyTTSMusiccast-%Y.log MyTTSMusiccast

define MyTTSMusiccast_speak notify MyTTSMusiccast:lastFilename.* { \
my $filename = ReadingsVal("MyTTSMusiccast","lastFilename","unbekannt1");;\
fhem "set wx030 speakfile $filename";;\
}


3. Sudoers

Für die sudob Befehle fürs TTS und für den miniDLNA Service muss der Aufruf von sudo ohne Passwort möglich sein.
Daher muss die  /etc/sudoers als root User angepasst werden.

Bei neueren Ubuntu Systemen :

fhem ALL=NOPASSWD: /usr/bin/mplayer
fhem ALL=NOPASSWD: /usr/sbin/minidlnad
fhem ALL=NOPASSWD: /usr/sbin/service minidlna


Bei anderen Linux Systemen :

fhem ALL=NOPASSWD: /usr/bin/mplayer
fhem ALL=NOPASSWD: /usr/bin/minidlna
fhem ALL=NOPASSWD: /usr/sbin/service minidlna



4. Das Musicast Device

Das bereits bestehende Musiccast Device hier wx030 muss den DLNA Server suchen, dieses wird mittels der beiden Attribute DLNAServer und DLNAsearch gemacht, das Gerät selbst dient dann als DLNA Renderer. Der unter 1. eingerichtete friendlyName wird hier as Suchname mit dem Attribut DLNAServer angegeben.
Die Suche des Media Servers und sich selbst ist ein blocking Aufruf und dauer jeweils ca 10 Sekunden. Der Aufruf wird einmalig nach ca. 2 Minuten nach dem Start von FHEM gemacht.
Bitte also nicht über diese Blockierung wundern. Ob das Suchen erfolgreich war seht ihr an den Readings MediaServer und DLNARenderer des Musiccast Devices.
Zusätzlich kann man mittels ttsvolume  noch eine abweichende Lautstärke für die Sprachausgabe einrichten.


attr <deviceName> DLNAServer miniDLNA
attr <deviceName> DLNAsearch on
# wenn abweichende Lautstaerke gewuenscht :
attr <deviceName> ttsvolume xx



Fertig ! Jetzt sobald die Readings MediaServer und DLNARenderer vorhanden sind, folgenden Aufruf auf das TTS Device durchführen :

set MyTTSMusiccast tts Guten Abend liebe Familie

Nach wenigen Sekunden sollte der Text dann ausgegeben werden.

Viel Spass beim Testen !

Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: sprudelverduenner am 25 März 2019, 06:58:55
Zitat von: Leugi am 24 März 2019, 12:08:34
Ich habe eine neue Version bereitgestellt, bitte Updaten

@Sprudelverduenner
ich habe das Verhalten beim Einschalten mittels TurnFavNetRadioChannelOn nochmals verbessert,
kannst du bitte nochmals prüfen, ob es bei dir jetzt besser fuktioniert ?

Moin Leugi,

Danke für die neue Version.
Leider hat sich nichts am Verhalten geändert.

Mit einem Log kann ich wegen Zeitmangel gerade leider nicht dienen...

LG, Sprudelverduenner
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: ToKa am 25 März 2019, 21:38:27
Hallo Liebe,

vielen Dank genericDeviceType funktioniert jetzt als drop-down. Jetzt kann ich probieren, ob es mit Alexa klappt.

Beste Grüße
Torsten
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 26 März 2019, 11:26:24
@Sprudelverduenner
ich habe gerade nochmals eine neue Version eingecheckt, bitte damit ab morgen nochmals testen
bei mir funktioniert es damit einwandfrei
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: enno am 26 März 2019, 19:07:02
Zitat von: Leugi am 24 März 2019, 12:33:04
Viel Spass beim Testen !

Moin Leigi,

habe es so wie von dir vorgeschlagen eingerichtet. Allerdings schmiert mir FHEM komplett ab. Hier die Fehlermeldung im Log:

sudo: minidlna: command not found
2019.03.26 18:58:05 1: ERROR evaluating my $EVENT='lastFilename: /opt/fhem/www/minidlna/c2f96397a672e068728faab7dadf.mp3';my $NAME='MyTTSMusiccast';my $EVTPART0='lastFilename:';my $EVTPART1='/opt/fhem/www/minidlna/c2f96397a672e068800f728faab7dadf.mp3';my $TYPE='Text2Speech';my $SELF='MyTTSMusiccast_speak';{ my $filename = ReadingsVal("MyTTSMusiccast","lastFilename","unbekannt1");fhem "set Kuechenradio speakfile $filename";}: Can't call method "getservicebyname" on an undefined value at ./FHEM/71_YAMAHA_MC.pm line 1232.


Gruss
  Enno
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: chopsor am 26 März 2019, 20:36:57
Hoi

Bei mir klappte es heute noch, bis ich ein Update durchgeführt habe nun schließe ich mich leider :
Zitathabe es so wie von dir vorgeschlagen eingerichtet. Allerdings schmiert mir FHEM komplett ab.
an.

Folgendes sagt mir das Log:
2019.03.26 20:28:58 1: PERL WARNING: Can't exec "sudo": No such file or directory at ./FHEM/71_YAMAHA_MC.pm line 1195.
2019.03.26 20:28:58 1: PERL WARNING: Can't exec "sudo": No such file or directory at ./FHEM/71_YAMAHA_MC.pm line 1197.
Can't call method "getservicebyname" on an undefined value at ./FHEM/71_YAMAHA_MC.pm line 1232.


:-O

Edit1. nach einem neustart des  Fhem Rechners funktionierts wieder (denke es war der minidlna service)

folgende Felermeldung wird im Log jedoch noch immer generiert:
2019.03.26 21:03:35 1: PERL WARNING: Can't exec "sudo": No such file or directory at ./FHEM/71_YAMAHA_MC.pm line 1378.

-> Danke :-D endlich kann ich mein Musiccast sytem als klingelersatz nehmen (die YSP-1600 Soundbar springt nach einem z.B. gong.mp3 wieder zum TV rüber ! ein Traum

Edit2.

Nach einigem rumprobieren an einer wx-10 stürtzt Fhem nun wieder ab mit folgender Meldung:

2019.03.26 21:36:14 1: PERL WARNING: Can't exec "sudo": No such file or directory at ./FHEM/71_YAMAHA_MC.pm line 1195.
2019.03.26 21:36:14 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/71_YAMAHA_MC.pm line 1195.
2019.03.26 21:36:14 1: PERL WARNING: Can't exec "sudo": No such file or directory at ./FHEM/71_YAMAHA_MC.pm line 1197.
2019.03.26 21:36:14 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/71_YAMAHA_MC.pm line 1197.
2019.03.26 21:36:28 1: PERL WARNING: Use of uninitialized value in numeric ne (!=) at ./FHEM/71_YAMAHA_MC.pm line 1401.
2019.03.26 21:36:28 1: PERL WARNING: Use of uninitialized value $percentage in division (/) at ./FHEM/71_YAMAHA_MC.pm line 4191.
2019.03.26 21:36:28 1: PERL WARNING: Use of uninitialized value $target_volume in concatenation (.) or string at ./FHEM/71_YAMAHA_MC.pm line 3790.
2019.03.26 21:36:28 1: PERL WARNING: Use of uninitialized value $target_volume in concatenation (.) or string at ./FHEM/71_YAMAHA_MC.pm line 3791.
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: RockThisParty am 27 März 2019, 10:20:39
Moin!

TurnFavNetRadioChannel funktioniert bei mir nach erstem Eindruck jetzt zuverlässig inkl. Einschalten und Senderwechsel :-)
Vielen, vielen Dank!!

Viele Grüße,
Stefan
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: sprudelverduenner am 27 März 2019, 10:42:50
Werde ich gerne heute Nachmittag testen.

Heute morgen um 7.00 Uhr war noch kein Yamaha MC Update dabei....
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 27 März 2019, 12:36:13
@chopsor, enno
Danke fuers testen der speak Funktion und fürs Bereistellen der Log-Einträge !
Ich werde mir die entsprechenden Stellen heute abend anschauen.

ohne im Programmcode zu schauen, bitte einmal folgendes prüfen :
1. Ich vermute, dass das Attribut ttsvolume gesetzt sein muss, weil sonst noch eine Fehler kommt, also bitte einmal setzen :
    attr <deviceName> ttsvolume xx
2. Bitte einmal prüfen, ob bei euch die Radings gesetzt sind, dass kann manchmal einige Minuten dauern. Readings z.B.
   MediaServer  miniDLNA
   DLNARenderer Küche
3. Jetzt habe ich doch mal nachgeschaut in der Zeile, wo der Fehler auftritt, wird ein Rescan per minidlna mit dem Befehl
    sudo minidlna -R
   ausgeführt. Das bedeutet aktuell ist doch fest ein minidlna Installation auf dem FHEM Server erforderlich. Habt ihr das so gemacht ?
   Könnt ihr den Befehl einmal direkt testen, ob der bei euch läuft ?
   Ich werde das and dieser Stelle noch flexibler gestalten, so dass der DLNA Media Server nicht zwingend ein lokaler minidlna Server sin muss.
  Bin mir auch nicht sicher, ob das mit dem sudo sein muss, werde ich nochmals testen.

Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: enno am 27 März 2019, 12:58:35
Zitat von: Leugi am 27 März 2019, 12:36:13
   Könnt ihr den Befehl einmal direkt testen, ob der bei euch läuft ?

zu 1: Attribut ttsvolume ist gesetzt
zu 2: MediaServer  unknown
   DLNARenderer Küche
und im anderen Gerät: MediaServer  miniDLNA
   DLNARenderer Wohnzimmer
zu 3: minidlna läuft auf dem FHEM Server so wie von dir beschrieben.
user@NUC:~$ sudo minidlna -R
sudo: minidlna: command not found


Gruss
  Enno
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: enno am 27 März 2019, 13:17:24
gerade im Internet gefunden:
https://help.ubuntu.com/community/MiniDLNA

ZitatIn recent ubuntu versions, please replace minidlna with minidlnad.

sudo minidlnad -R

damit kommt keine Fehlermeldung.

Gruss
  Enno
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 27 März 2019, 17:01:42
Danke Enno, das wird es sein. Ich werde versuchen das irgendwie dynamisch zu ermitteln.
Sollte dann ja für beide Varianten
  sudo minidlna -R
und
  sudo minidlnad -R
funktionieren. Muss nur irgendwie rausbekommen, wie man ausliest, welche Variante man benötigt.
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: sprudelverduenner am 27 März 2019, 17:18:28
@Leugi

Jaaaaaaaaaaa......l es ist vollbracht. GEILOOOOOOO. Heureka, es funktioniert wieder mit Favoriten einschalten.
Vielen Dank.
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: chopsor am 27 März 2019, 17:47:55
Hoi,

Enno hat eigentlich alles geschrieben, so wie es bei mir auch der Fall ist.

(ttsvolume war/ist gesetzt)

Auch nutze ich Ubuntu auf dem System .
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 27 März 2019, 19:51:58
könnt ihr bitte einmal prüfen, ob diese beiden Command bei euch funktionieren :

Scan von Medien von minidlna

[ -f /usr/bin/minidlnad ] && sudo minidlnad -R || sudo minidlna -R


Restart von miniDLNA :

[ -f /usr/bin/minidlnad ] && sudo service minidlnad restart || sudo service minidlna restart


Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: enno am 27 März 2019, 20:32:12
user@NUC:~$  [ -f /usr/bin/minidlnad ] && sudo minidlnad -R || sudo minidlna -R
[sudo] password for user:
sudo: minidlna: command not found
user@NUC:~$ [ -f /usr/bin/minidlnad ] && sudo service minidlnad restart || sudo service minidlna restart


Das erste geht nicht, das zweite geht....

sudo service minidlna restart geht

user@NUC:~$ sudo service minidlnad restart
Failed to restart minidlnad.service: Unit minidlnad.service not found.
geht nicht...
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 27 März 2019, 21:36:32
Hallo Enno,

sudo service minidlna restart

scheint dann auch bei Ubuntu zu funktionieren.

der Rescan mittels minidlnad ohne Pfad funktioniert bei dir doch, oder ? Also so :

sudo minidlnad -R


Wo liegt bei dir die Datei minidlnad ? Bei mir liegt die unter /usr/bin/ ? Ist das bei dir unter /usr/sbin/minidlnad ?

Bei dir ist der User zwar in der sudoer Liste, damit das einwandfrei funktioniert müsste das aber ohne Passwort gesetzt werden.
In der sudoers Liste /etc/sudoers als root also z.B. folgenden Eintrag hinzufuegen (fhem als exemplaricher Username) für Ubuntu:

fhem     ALL=NOPASSWD: /usr/sbin/minidlnad
fhem     ALL=NOPASSWD: /usr/sbin/service minidlna


Für alle anderen :

fhem     ALL=NOPASSWD: /usr/bin/minidlna
fhem     ALL=NOPASSWD: /usr/sbin/service minidlna
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 27 März 2019, 23:16:48
Habe jetzt eine neue Version bereitgestellt, die die Ubuntu Variante mit minidlnad berücksichtigt.
Bitte morgen nochmals testen. Danke !
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: enno am 28 März 2019, 07:25:57
Zitat von: Leugi am 27 März 2019, 21:36:32

sudo service minidlna restart

scheint dann auch bei Ubuntu zu funktionieren.

der Rescan mittels minidlnad ohne Pfad funktioniert bei dir doch, oder ? Also so :

sudo minidlnad -R


Wo liegt bei dir die Datei minidlnad ? Bei mir liegt die unter /usr/bin/ ? Ist das bei dir unter /usr/sbin/minidlnad ?

sudo service minidlna restart geht
sudo minidlnad -R  geht auch

user@NUC:~$ whereis minidlnad
minidlnad: /usr/sbin/minidlnad /usr/share/man/man1/minidlnad.1.gz


sudoers hatte ich schon angepasst, da stand bei mir:

fhem ALL = NOPASSWD: /bin/rm
fhem ALL = NOPASSWD: /usr/bin/mplayer
fhem ALL=(ALL) NOPASSWD: ALL


ich füge deine Vorschläge noch hinzu und mache nach 8 dann mal ein Update und werde berichten.

Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: enno am 28 März 2019, 09:23:53
... so, eben FHEM Update gemacht, und eine "Ansprache" über tts an die Familie abgesetzt. Keine Fehler im Log, kein Absturz. Ich beobachte weiter...

Erst mal vielen Dank!

Gruss
  Enno
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: chopsor am 28 März 2019, 12:45:20
auch bei mir keine Fehler mehr im Log ! ;D ;D ;D

Großes Lob! ( für mich ein grossen Mehrwert für das ganze System)
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 28 März 2019, 20:51:44
das freut mich, dass es jetzt funktioniert.  8)
Danke für eure Geduld.

Werde noch einen Feinschliff des Programcodes durchführen, um das hier und dort noch weiter abzusichern.

Gruß,
Leugi
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: chopsor am 29 März 2019, 08:10:07
Hoi mir ist jetzt eine Eigenart aufgefallen:

lasse ich z.B. ein Soundfile abspielen per set <devicename> speakfile /var/lib/minidlna/Doorbell.mp3 passiert folgendes:

auf meine YSP-1600 -> wi lediglich das File abgespielt
auf einer wx-010 wird der ganze Inhalt des Ordners /var/lib/minidlna/ abgespielt


(ist z.B. auch so wenn ich mir über deine MyTTSMusiccast mit dem Notify Variante einen Text ausgeben will -> auch hier spielt er auf der wx-010 erst einmal das vorherige tts ab).

Woran könnte das liegen ?

Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: enno am 29 März 2019, 09:26:34
Guten Morgen,

auf meiner WX-030 klappen die Ansagen. In Kombination mit dem Super Wetterbericht von heute sind alle Glücklich.

Gleiche Einstellungen auf dem HTR-4068 klappt nur wenn das Gerät schon eingeschaltet ist. Wenn es erst eingeschaltet werden muss, passen die Verzögerungen nicht.  Bis alles auf dem richtigen Kanal steht, ist die Ansage schon durch. Ich vermute das Timing passt irgendwie nicht. Kann ich für mich sicherlich im Notify anpassen, aber ich dachte ich sag es mal :)

Gruss
  Enno
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: ekreftt am 30 März 2019, 21:10:59
Hallo in die Runde,

ich bin blutiger Anfänger was FHEM angeht, die ersten Sachen, z.B. die Anbindung an mein KNX System klappt aber schon. Nun will ich als nächstes meine Musiccast Geräte einbinden, scheitere aber daran dass mein Rechner (Ubuntu 18.04.) selbst nach einem Update des FHEM das Modul Yamaha_MC nicht anzeigt.

Kann mir jemand sagen wo ich das herbekomme?

--- habs über Reload grade bekommen
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: enno am 30 März 2019, 21:42:32
Zitat von: ekreftt am 30 März 2019, 21:10:59
Kann mir jemand sagen wo ich das herbekomme?

In die Befehlszeile von FHEM update eingeben. Dann shutdown restart dann sollte das Modul verfügbar sein.Der Rest wie beschrieben https://commandref.fhem.de/#YAMAHA_MC

Gruss
  Enno
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Garry am 31 März 2019, 23:45:07
Woran ich gerade noch scheitere:
Kann man die Favoriten auch irgendwie synchronisieren oder muss man die Favoritenliste für jedes Gerät von Hand neu anlegen und auf die gleiche Reihenfolge achten? Da wird es dann sonst wieder mühsam das aktuell zu halten...

Garry
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 01 April 2019, 09:28:19
Hallo Garry,

ich sehe da zur Zeit leider keinen anderen Weg als die Favoritenliste manuell zu aktualisieren.
Aber die Liste ändert sich ja normalerweise auch nicht so häufig. Daher ist es ein einmaliger Pflegeaufwand.

Gruß,
Leugi
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: R1k4rd am 01 April 2019, 13:42:12
Hey zusammen,

ich nutze das Modul jetzt schon seitdem Leugi die erste Version entwickelt hat. Ich wollte jetzt einfach mal Fragen ob ihr das Reading "albumart_url" nutzt, z.B. für die Darstellung im Tablet UI oder wie auch immer. Und zwar zeigt es halt ganz normal, wenn man einen Radiosender hört, das Cover des Senders an. Wenn ich hingegen auf HDMI oder sowas umstelle, bekomme ich das Bild wie aus der App allerdings leider nicht angzeigt. Ich denke mal es liegt daran, dass das Bild lokal nur von der App angezeigt und aus ihr geladen wird, oder? Falls nicht, wäre es möglich das zu beheben damit es richtig angezeigt wird? Ähnliches wäre, wenn ich zwei Geräte linke: der "master" zeigt das richtige Bild des Radiosenders an, der "slave" allerdings nicht. Es muss natürlich nicht im Modul implentiert werden wenn es nicht passt, bin auch gerne für andere Lösungen über ein userReading oder so offen ;D

Liebe Grüße Richard
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Garry am 01 April 2019, 20:58:27
Zitat von: Leugi am 01 April 2019, 09:28:19
Hallo Garry,

ich sehe da zur Zeit leider keinen anderen Weg als die Favoritenliste manuell zu aktualisieren.
Aber die Liste ändert sich ja normalerweise auch nicht so häufig. Daher ist es ein einmaliger Pflegeaufwand.

Gruß,
Leugi
Vielen Dank für die Rückmeldung, Leugi.
Da ich einen Receiver und 5 WX030 ist es schon ein bischen Pflegeaufwand den ich gerne optimieren würde. Beim Firmwareupdate (eventuell auch da man die Stereopaarung erst wieder aufheben muss) gingen mir die Listen verloren oder funktionieren danach nicht mehr.

Gruß
Garry
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 02 April 2019, 09:34:16
Hallo Richard,

ich nutze  das Reading "albumart_url" nicht, aber dieses ist ja nur beim Input netradio sinnvoll gefüllt. Ich vermute du möchtest bei den übrigen Inputs HDMI, Tuner etc. das Symbol aus der App (siehe Screenshot anbei) angezeigt bekommen, richtig ? Das müsstest du dann als Icon in Fhem zur Verfügung stellen und dann in Abhängigkeit vom Input setzen. Also nur bei Input netradio das Icon von "albumart_url" verwenden und ansonsten das eigene von input abhängige Icon.
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 02 April 2019, 09:37:34
Bei allen die mit der TTS Ausgabe getestet haben, bitte einmal prüfen, ob die Dateien im TTS Ordner (z.B. /var/lib/minidlna) nach der Ausgabe auch gelöscht werden.
Ansonsten kann es beim Wechsel auf input Server zur Abspielung aller vorhanden Dateien kommen.
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: enno am 02 April 2019, 10:24:38
Ich hatte beim Rumspielen einmal gesehen, dass die Daten nicht gelöscht wurden. Ich habe sie dann manuell gelöscht und seit dem funktioniert es.

Passiert war es wohl beim Versuche talk2fhem mit einem DOIF und Readings aus Darksky (Wetterbericht) zu füttern. Das hatte nicht geklappt....

Gruss
  Enno
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: kilderman am 03 April 2019, 19:35:04
Hallo Leugi,

ich habe in den vergangenen Tagen auch einmal probiert, eine Sprachausgabe hinzubekommen. Ich habe ja die Musiccast 20 (wx-021 heißen die wohl offiziell, glaube ich). Kann es vielleicht möglich sein, dass mit diesen Boxen keine Srachausgabe mit dieser Variante möglich ist. Mit verbose 5 bekomme ich ziemlich viele Informationen. Kannst du darin vielleicht erkennen, woran es liegen könnte? (Leider ist der LOG-Auszug echt lang.')


2019.04.03 18:05:20 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse data:
{"response_code":0,"network_name":"Küche","connection":"wired_lan","dhcp":true,"ip_address":"192.168.2.52","subnet_mask":"255.255.255.0","default_gateway":"192.168.2.1","dns_server_1":"192.168.2.1","dns_server_2":"0.0.0.0","wireless_lan":{"enable":false,"ssid":"","type":"none","key":"","ch":0,"strength":0},"musiccast_network":{"ready":true,"device_type":"standard","child_num":0,"ch":0,"initial_join_running":false,"wlan1_ch":0,"dfs":{"option":false,"radar_ch":0}},"mac_address":{"wired_lan":"BC30D9848434","wireless_lan":"BC30D9848435","wireless_direct":"BC30D9848435"},"airplay_pin":""}
2019.04.03 18:05:20 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse cmd:
getNetworkStatus
2019.04.03 18:05:20 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse args: 
2019.04.03 18:05:20 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse argsEnde
2019.04.03 18:05:20 5: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse got json repsonse, following Dumper von result

2019.04.03 18:05:20 5: $VAR1 = 'connection';
$VAR2 = 'wired_lan';
$VAR3 = 'wireless_lan';
$VAR4 = {
          'ch' => 0,
          'ssid' => '',
          'key' => '',
          'enable' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
          'type' => 'none',
          'strength' => 0
        };
$VAR5 = 'dns_server_1';
$VAR6 = '192.168.2.1';
$VAR7 = 'network_name';
$VAR8 = "K\x{c3}\x{bc}che";
$VAR9 = 'subnet_mask';
$VAR10 = '255.255.255.0';
$VAR11 = 'dhcp';
$VAR12 = bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' );
$VAR13 = 'ip_address';
$VAR14 = '192.168.2.52';
$VAR15 = 'airplay_pin';
$VAR16 = '';
$VAR17 = 'default_gateway';
$VAR18 = '192.168.2.1';
$VAR19 = 'dns_server_2';
$VAR20 = '0.0.0.0';
$VAR21 = 'response_code';
$VAR22 = 0;
$VAR23 = 'musiccast_network';
$VAR24 = {
           'initial_join_running' => $VAR4->{'enable'},
           'ready' => $VAR12,
           'device_type' => 'standard',
           'ch' => 0,
           'dfs' => {
                      'option' => $VAR4->{'enable'},
                      'radar_ch' => 0
                    },
           'child_num' => 0,
           'wlan1_ch' => 0
         };
$VAR25 = 'mac_address';
$VAR26 = {
           'wireless_lan' => 'BC30D6347894',
           'wired_lan' => 'BC30D6544566',
           'wireless_direct' => 'BC30D6544566'
         };

2019.04.03 18:05:20 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse ResponseCode = 0
2019.04.03 18:05:20 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse Start Handling for getNetworkStatus
2019.04.03 18:05:20 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_httpRequestParse - found wireless_lan ssid :
2019.04.03 18:05:20 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_httpRequestParse - found wireless_lan strength 0
2019.04.03 18:05:20 4: YAMAHA_MC (mo_KURadio) - YAMAHA_MC_httpRequestParse end. no additional original_cmd stated
2019.04.03 18:05:20 4: YAMAHA_MC_httpRequestParse: end of parse of cmd getNetworkStatus, calling YAMAHA_MC_GetStatus again, should i really?
2019.04.03 18:05:20 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse end calling YAMAHA_MC_HandleCmdQueue again
2019.04.03 18:05:20 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2019.04.03 18:05:20 4: + YAMAHA_MC_HandleCmdQueue
2019.04.03 18:05:20 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2019.04.03 18:05:20 4: (mo_KURadio) - + Es laeuft kein Request mehr
2019.04.03 18:05:20 4: (mo_KURadio) - + Es gibt noch pending commands
2019.04.03 18:05:20 5: YAMAHA_MC (mo_KURadio) YAMAHA_MC_HandleCmdQueue - HandleCmdQueue no commands currently running, but queue has pending commands. preparing new request
2019.04.03 18:05:20 5: YAMAHA_MC (mo_KURadio) YAMAHA_MC_HandleCmdQueue - getting new request
2019.04.03 18:05:20 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 0 (cmd: isNewFirmwareAvailable, arg: , data: 1, priority: 3, at_first: 0, not_before: 0)
2019.04.03 18:05:20 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_getNextRequestHash - choosed item 0 as next command
2019.04.03 18:05:20 5: YAMAHA_MC (mo_KURadio) YAMAHA_MC_HandleCmdQueue - got new request, try to get params of request
2019.04.03 18:05:20 4: YAMAHA_MC YAMAHA_MC_HandleCmdQueue: new request has name mo_KURadio CMD isNewFirmwareAvailable Args
2019.04.03 18:05:20 4: YAMAHA_MC (mo_KURadio) - YAMAHA_MC_HandleCmdQueue: execution cmd via CmdQueue
2019.04.03 18:05:20 4: YAMAHA_MC (mo_KURadio) - YAMAHA_MC_HandleCmdQueue: ALLOWED cmd=isNewFirmwareAvailable starte httpRequest url => http://192.168.2.52:80/YamahaExtendedControl/v1/system/isNewFirmwareAvailable?type=network
2019.04.03 18:05:20 4:  YAMAHA_MC (mo_KURadio) - YAMAHA_MC_HandleCmdQueue: API Version cut to 2 URL before http://192.168.2.52:80/YamahaExtendedControl/v1/system/isNewFirmwareAvailable?type=network
2019.04.03 18:05:20 4: YAMAHA_MC (mo_KURadio) - YAMAHA_MC_HandleCmdQueue: cmd=isNewFirmwareAvailable starte httpRequest replaced url => http://192.168.2.52:80/YamahaExtendedControl/v2/system/isNewFirmwareAvailable?type=network
2019.04.03 18:05:20 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_HandleCmdQueue - send command via HttpUtils_NonblockingGet "isNewFirmwareAvailable "
2019.04.03 18:05:20 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_HandleCmdQueue - pending requests 0
2019.04.03 18:05:20 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse deleting http helper
2019.04.03 18:05:20 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse data:
{"response_code":0,"available":false,"downloading":false}
2019.04.03 18:05:20 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse cmd:
isNewFirmwareAvailable
2019.04.03 18:05:20 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse args: 
2019.04.03 18:05:20 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse argsEnde
2019.04.03 18:05:20 5: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse got json repsonse, following Dumper von result

2019.04.03 18:05:20 5: $VAR1 = 'available';
$VAR2 = bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' );
$VAR3 = 'response_code';
$VAR4 = 0;
$VAR5 = 'downloading';
$VAR6 = $VAR2;

2019.04.03 18:05:20 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse ResponseCode = 0
2019.04.03 18:05:20 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse Start Handling for isNewFirmwareAvailable
2019.04.03 18:05:20 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse FirmwareAvailable=0
2019.04.03 18:05:20 4: YAMAHA_MC (mo_KURadio) - YAMAHA_MC_httpRequestParse end. no additional original_cmd stated
2019.04.03 18:05:20 4: YAMAHA_MC_httpRequestParse: end of parse of cmd isNewFirmwareAvailable, calling YAMAHA_MC_GetStatus again, should i really?
2019.04.03 18:05:20 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse end calling YAMAHA_MC_HandleCmdQueue again
2019.04.03 18:05:20 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2019.04.03 18:05:20 4: + YAMAHA_MC_HandleCmdQueue
2019.04.03 18:05:20 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2019.04.03 18:05:20 4: (mo_KURadio) - + Es laeuft kein Request mehr
2019.04.03 18:05:20 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_HandleCmdQueue - pending requests 0
2019.04.03 18:05:22 4: mo_KURadio: mo_KURadio YAMAHA_MC_GetStatus try to getInputs
2019.04.03 18:05:22 4: mo_KURadio: mo_KURadio YAMAHA_MC_GetStatus fetching Inputs now, also getting status
2019.04.03 18:05:22 4:  mo_KURadio YAMAHA_MC_getInputs starting with getStatus Function
2019.04.03 18:05:22 4: (mo_KURadio) - YAMAHA_MC_httpRequestQueue start queuing getStatus
2019.04.03 18:05:22 4: YAMAHA_MC_httpRequestQueue (mo_KURadio) - Args defined as <>
2019.04.03 18:05:22 4: YAMAHA_MC_httpRequestQueue (mo_KURadio) - cmd defined as <getStatus>
2019.04.03 18:05:22 4: YAMAHA_MC_httpRequestQueue (mo_KURadio) - append to queue of device mo_KURadio "getStatus ":
2019.04.03 18:05:22 4: YAMAHA_MC_httpRequestQueue (mo_KURadio) - append to queue at end of device mo_KURadio "getStatus ":
2019.04.03 18:05:22 4: YAMAHA_MC_httpRequestQueue (mo_KURadio) -calling YAMAHA_MC_HandleCmdQueue now
2019.04.03 18:05:22 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2019.04.03 18:05:22 4: + YAMAHA_MC_HandleCmdQueue
2019.04.03 18:05:22 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2019.04.03 18:05:22 4: (mo_KURadio) - + Es laeuft kein Request mehr
2019.04.03 18:05:22 4: (mo_KURadio) - + Es gibt noch pending commands
2019.04.03 18:05:22 5: YAMAHA_MC (mo_KURadio) YAMAHA_MC_HandleCmdQueue - HandleCmdQueue no commands currently running, but queue has pending commands. preparing new request
2019.04.03 18:05:22 5: YAMAHA_MC (mo_KURadio) YAMAHA_MC_HandleCmdQueue - getting new request
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 0 (cmd: getStatus, arg: , data: 1, priority: 3, at_first: 0, not_before: 0)
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_getNextRequestHash - choosed item 0 as next command
2019.04.03 18:05:22 5: YAMAHA_MC (mo_KURadio) YAMAHA_MC_HandleCmdQueue - got new request, try to get params of request
2019.04.03 18:05:22 4: YAMAHA_MC YAMAHA_MC_HandleCmdQueue: new request has name mo_KURadio CMD getStatus Args
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) - YAMAHA_MC_HandleCmdQueue: execution cmd via CmdQueue
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) - YAMAHA_MC_HandleCmdQueue: ALLOWED cmd=getStatus starte httpRequest url => http://192.168.2.52:80/YamahaExtendedControl/v1/main/getStatus
2019.04.03 18:05:22 4:  YAMAHA_MC (mo_KURadio) - YAMAHA_MC_HandleCmdQueue: API Version cut to 2 URL before http://192.168.2.52:80/YamahaExtendedControl/v1/main/getStatus
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) - YAMAHA_MC_HandleCmdQueue: cmd=getStatus starte httpRequest replaced url => http://192.168.2.52:80/YamahaExtendedControl/v2/main/getStatus
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_HandleCmdQueue - send command via HttpUtils_NonblockingGet "getStatus "
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_HandleCmdQueue - pending requests 0
2019.04.03 18:05:22 4: mo_KURadio YAMAHA_MC_getInputs ready, leaving now
2019.04.03 18:05:22 4: mo_KURadio: mo_KURadio YAMAHA_MC_GetStatus fetching ListInfos now
2019.04.03 18:05:22 4: mo_KURadio YAMAHA_MC_getMenu starting getting Menu now
2019.04.03 18:05:22 4: mo_KURadio YAMAHA_MC_getMenu Device is powered on, getting details now with getMenu
2019.04.03 18:05:22 4: (mo_KURadio) - YAMAHA_MC_httpRequestQueue start queuing getMenu
2019.04.03 18:05:22 4: YAMAHA_MC_httpRequestQueue (mo_KURadio) - Args defined as <>
2019.04.03 18:05:22 4: YAMAHA_MC_httpRequestQueue (mo_KURadio) - cmd defined as <getMenu>
2019.04.03 18:05:22 4: YAMAHA_MC_httpRequestQueue (mo_KURadio) - append to queue of device mo_KURadio "getMenu ":
2019.04.03 18:05:22 4: YAMAHA_MC_httpRequestQueue (mo_KURadio) - append to queue at end of device mo_KURadio "getMenu ":
2019.04.03 18:05:22 4: YAMAHA_MC_httpRequestQueue (mo_KURadio) -calling YAMAHA_MC_HandleCmdQueue now
2019.04.03 18:05:22 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2019.04.03 18:05:22 4: + YAMAHA_MC_HandleCmdQueue
2019.04.03 18:05:22 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2019.04.03 18:05:22 4: (mo_KURadio) - + Es gibt noch pending commands
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_HandleCmdQueue - pending requests 1
2019.04.03 18:05:22 4: mo_KURadio YAMAHA_MC_getMenu ready, leaving now
2019.04.03 18:05:22 4: mo_KURadio: mo_KURadio YAMAHA_MC_GetStatus fetching getPlaybackStatus now
2019.04.03 18:05:22 4: (mo_KURadio) - YAMAHA_MC_httpRequestQueue start queuing getPlayInfo
2019.04.03 18:05:22 4: YAMAHA_MC_httpRequestQueue (mo_KURadio) - Args defined as <>
2019.04.03 18:05:22 4: YAMAHA_MC_httpRequestQueue (mo_KURadio) - cmd defined as <getPlayInfo>
2019.04.03 18:05:22 4: YAMAHA_MC_httpRequestQueue (mo_KURadio) - + Es gibt noch pending commands
2019.04.03 18:05:22 4: YAMAHA_MC_httpRequestQueue (mo_KURadio) - append to queue of device mo_KURadio "getPlayInfo ":
2019.04.03 18:05:22 4: YAMAHA_MC_httpRequestQueue (mo_KURadio) - append to queue at end of device mo_KURadio "getPlayInfo ":
2019.04.03 18:05:22 4: YAMAHA_MC_httpRequestQueue (mo_KURadio) -calling YAMAHA_MC_HandleCmdQueue now
2019.04.03 18:05:22 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2019.04.03 18:05:22 4: + YAMAHA_MC_HandleCmdQueue
2019.04.03 18:05:22 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2019.04.03 18:05:22 4: (mo_KURadio) - + Es gibt noch pending commands
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_HandleCmdQueue - pending requests 2
2019.04.03 18:05:22 4: mo_KURadio: mo_KURadio YAMAHA_MC_GetStatus updating ListValues for cmd now
2019.04.03 18:05:22 5: YAMAHA_MC_UpdateLists rearranging possible inputs inputs:napster,spotify,qobuz,tidal,deezer,airplay,mc_link,server,net_radio,bluetooth
2019.04.03 18:05:22 5: YAMAHA_MC_UpdateLists current menu items:radio,podcasts
2019.04.03 18:05:22 5: YAMAHA_MC_UpdateLists current soundprograms:
2019.04.03 18:05:22 5: YAMAHA_MC_UpdateLists new YAMAHA_MC_setCmdswithoutArgs List for cmds :
2019.04.03 18:05:22 5: $VAR1 = 'selectPlayMenuItem';
$VAR2 = '/v1/netusb/setListControl?list_id=main&type=play&selectMenu=';
[...]
$VAR108 = '/v1/main/setPower?power=standby';

2019.04.03 18:05:22 5: YAMAHA_MC_UpdateLists returning now
2019.04.03 18:05:22 4: mo_KURadio: mo_KURadio YAMAHA_MC_GetStatus device turned off, resetting Timer
2019.04.03 18:05:22 4: YAMAHA_MC: device_ mo_KURadio YAMAHA_MC_ResetTimer reset timer requested
2019.04.03 18:05:22 4: YAMAHA_MC: device_ mo_KURadio reset timer (on) in Seks 60
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse deleting http helper
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse data:
{"response_code":0,"power":"on","sleep":0,"volume":32,"mute":false,"max_volume":60,"input":"net_radio","input_text":"Net Radio","distribution_enable":true,"sound_program":"standard","equalizer":{"mode":"manual","low":-4,"mid":-2,"high":0},"link_control":"standard","link_audio_delay":"balanced","disable_flags":0}
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse cmd:
getStatus
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse args: 
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse argsEnde
2019.04.03 18:05:22 5: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse got json repsonse, following Dumper von result

2019.04.03 18:05:22 5: $VAR1 = 'volume';
$VAR2 = 32;
$VAR3 = 'mute';
$VAR4 = bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' );
$VAR5 = 'input_text';
$VAR6 = 'Net Radio';
$VAR7 = 'distribution_enable';
$VAR8 = bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' );
$VAR9 = 'power';
$VAR10 = 'on';
$VAR11 = 'link_control';
$VAR12 = 'standard';
$VAR13 = 'input';
$VAR14 = 'net_radio';
$VAR15 = 'disable_flags';
$VAR16 = 0;
$VAR17 = 'equalizer';
$VAR18 = {
           'low' => -4,
           'mid' => -2,
           'mode' => 'manual',
           'high' => 0
         };
$VAR19 = 'link_audio_delay';
$VAR20 = 'balanced';
$VAR21 = 'sound_program';
$VAR22 = 'standard';
$VAR23 = 'sleep';
$VAR24 = 0;
$VAR25 = 'max_volume';
$VAR26 = 60;
$VAR27 = 'response_code';
$VAR28 = 0;

2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse ResponseCode = 0
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse Starte Handling fuer getStatus
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse real volume 32
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse relative volume 53
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse Power on to Val on
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse volume 88 to Val  53
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse max_volume 60 to Val  60
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParseinput net_radio to Val  net_radio
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse mute 0 to Val 0
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse cmd first Val "power":"on"
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse cmd current state on
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse cmd currentsound_program standard
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse volume status changed from 88 to 53
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse Reading Values of equalizer

2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_httpRequestParse- found equalizer low : -4
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_httpRequestParse- found equalizer mid -2
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_httpRequestParse- found equalizer high 0
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) - YAMAHA_MC_httpRequestParse end. no additional original_cmd stated
2019.04.03 18:05:22 4: YAMAHA_MC_httpRequestParse: end of parse of cmd getStatus, calling YAMAHA_MC_GetStatus again, should i really?
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse end calling YAMAHA_MC_HandleCmdQueue again
2019.04.03 18:05:22 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2019.04.03 18:05:22 4: + YAMAHA_MC_HandleCmdQueue
2019.04.03 18:05:22 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2019.04.03 18:05:22 4: (mo_KURadio) - + Es laeuft kein Request mehr
2019.04.03 18:05:22 4: (mo_KURadio) - + Es gibt noch pending commands
2019.04.03 18:05:22 5: YAMAHA_MC (mo_KURadio) YAMAHA_MC_HandleCmdQueue - HandleCmdQueue no commands currently running, but queue has pending commands. preparing new request
2019.04.03 18:05:22 5: YAMAHA_MC (mo_KURadio) YAMAHA_MC_HandleCmdQueue - getting new request
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 0 (cmd: getMenu, arg: , data: 1, priority: 5, at_first: 0, not_before: 0)
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 1 (cmd: getPlayInfo, arg: , data: 1, priority: 5, at_first: 0, not_before: 0)
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_getNextRequestHash - choosed item 0 as next command
2019.04.03 18:05:22 5: YAMAHA_MC (mo_KURadio) YAMAHA_MC_HandleCmdQueue - got new request, try to get params of request
2019.04.03 18:05:22 4: YAMAHA_MC YAMAHA_MC_HandleCmdQueue: new request has name mo_KURadio CMD getMenu Args
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) - YAMAHA_MC_HandleCmdQueue: execution cmd via CmdQueue
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) - YAMAHA_MC_HandleCmdQueue: ALLOWED cmd=getMenu starte httpRequest url => http://192.168.2.52:80/YamahaExtendedControl/v1/netusb/getListInfo?input=net_radio&index=0&size=8&lang=en
2019.04.03 18:05:22 4:  YAMAHA_MC (mo_KURadio) - YAMAHA_MC_HandleCmdQueue: API Version cut to 2 URL before http://192.168.2.52:80/YamahaExtendedControl/v1/netusb/getListInfo?input=net_radio&index=0&size=8&lang=en
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) - YAMAHA_MC_HandleCmdQueue: cmd=getMenu starte httpRequest replaced url => http://192.168.2.52:80/YamahaExtendedControl/v2/netusb/getListInfo?input=net_radio&index=0&size=8&lang=en
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_HandleCmdQueue - send command via HttpUtils_NonblockingGet "getMenu "
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_HandleCmdQueue - pending requests 1
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse deleting http helper
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse data:
{"response_code":0,"input":"net_radio","menu_layer":0,"max_line":2,"index":0,"playing_index":-1,"menu_name":"NET RADIO","list_info":[{"text":"Radio","subtexts":[],"thumbnail":"","attribute":2},{"text":"Podcasts","subtexts":[],"thumbnail":"","attribute":2}]}
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse cmd:
getMenu
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse args: 
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse argsEnde
2019.04.03 18:05:22 5: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse got json repsonse, following Dumper von result

2019.04.03 18:05:22 5: $VAR1 = 'input';
$VAR2 = 'net_radio';
$VAR3 = 'max_line';
$VAR4 = 2;
$VAR5 = 'list_info';
$VAR6 = [
          {
            'attribute' => 2,
            'thumbnail' => '',
            'text' => 'Radio',
            'subtexts' => []
          },
          {
            'thumbnail' => '',
            'subtexts' => [],
            'text' => 'Podcasts',
            'attribute' => 2
          }
        ];
$VAR7 = 'response_code';
$VAR8 = 0;
$VAR9 = 'menu_name';
$VAR10 = 'NET RADIO';
$VAR11 = 'menu_layer';
$VAR12 = 0;
$VAR13 = 'playing_index';
$VAR14 = -1;
$VAR15 = 'index';
$VAR16 = 0;

2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse ResponseCode = 0
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse Starte Handling fuer getListInfo|getMenuItems|getMenu
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse new Menu Layer is 0
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse new Menu Name is NET RADIO
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse Starte Zerlegen List of MenuItems
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_httpRequestParse - found first menu_item: Radio
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_httpRequestParse menu item list helper Radio
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_httpRequestParse menu item list Radio
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse Starte Zerlegen List of MenuItems
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_httpRequestParse - found next menu_item: Podcasts
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_httpRequestParse menu item list helper Radio|Podcasts
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_httpRequestParse menu item list Radio|Podcasts
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_httpRequestParse ENDE menu item list helper Radio|Podcasts
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_httpRequestParse ENDE menu item list helper Radio|Podcasts
2019.04.03 18:05:22 5: YAMAHA_MC_UpdateLists rearranging possible inputs inputs:napster,spotify,qobuz,tidal,deezer,airplay,mc_link,server,net_radio,bluetooth
2019.04.03 18:05:22 5: YAMAHA_MC_UpdateLists current menu items:radio,podcasts
2019.04.03 18:05:22 5: YAMAHA_MC_UpdateLists current soundprograms:
2019.04.03 18:05:22 5: YAMAHA_MC_UpdateLists new YAMAHA_MC_setCmdswithoutArgs List for cmds :
2019.04.03 18:05:22 5: $VAR1 = 'selectPlayMenuItem';
$VAR2 = '/v1/netusb/setListControl?list_id=main&type=play&selectMenu=';
$VAR3 = 'prepareInputChange';
$VAR4 = '/v1/main/prepareInputChange?input=';
$VAR5 = 'setGroupName';
$VAR6 = '/v1/dist/setGroupName';
$VAR7 = 'getBluetoothInfo';
$VAR8 = '/v1/system/getBluetoothInfo';
$VAR9 = 'setToneMid';
$VAR10 = '/v1/main/setEqualizer?mid=';
$VAR11 = 'setSoundProgramList';
$VAR12 = '/v1/main/setSoundProgram?program=';
$VAR13 = 'mute';
$VAR14 = '/v1/main/setMute?enable=';
$VAR15 = 'TurnFavServerChannelOn';
$VAR16 = 'batch_cmd';
$VAR17 = 'volumeStraight';
$VAR18 = '/v1/main/setVolume?volume=';
$VAR19 = 'setDabTunerPreset';
$VAR20 = '/v1/tuner/recallPreset?zone=main&band=dab&num=';
$VAR21 = 'setSpeakerA';
$VAR22 = '/v1/main/setSpeakerA?enable=';
$VAR23 = 'setServerInfo';
$VAR24 = '/v1/dist/setServerInfo';
$VAR25 = 'setClientInfo';
$VAR26 = '/v1/dist/setClientInfo';
$VAR27 = 'speakfile';
$VAR28 = 'batch_cmd';
$VAR29 = 'volume';
$VAR30 = '/v1/main/setVolume?volume=';
$VAR31 = 'statusRequest';
$VAR32 = '/v1/main/getStatus';
$VAR33 = 'getPlayInfo';
$VAR34 = '/v1/netusb/getPlayInfo';
$VAR35 = 'NetRadioPrevFavChannel';
$VAR36 = 'batch_cmd';
$VAR37 = 'mcUnLink';
$VAR38 = 'batch_cmd';
$VAR39 = 'volumeUp';
$VAR40 = '/v1/main/setVolume?volume=';
$VAR41 = 'getNetworkStatus';
$VAR42 = '/v1/system/getNetworkStatus';
$VAR43 = 'getMenuItems';
$VAR44 = '/v1/netusb/getListInfo?input=net_radio&index=0&size=8&lang=en';
$VAR45 = 'sleep';
$VAR46 = '/v1/main/setSleep?sleep=';
$VAR47 = 'setAutoPowerStandby';
$VAR48 = '/v1/system/setAutoPowerStandby?enable=';
$VAR49 = 'returnMenu';
$VAR50 = '/v1/netusb/setListControl?list_id=main&type=return';
$VAR51 = 'setSpeakerB';
$VAR52 = '/v1/main/setSpeakerB?enable=';
$VAR53 = 'getDistributionInfo';
$VAR54 = '/v1/dist/getDistributionInfo';
$VAR55 = 'getMenu';
$VAR56 = '/v1/netusb/getListInfo?input=net_radio&index=0&size=8&lang=en';
$VAR57 = 'getFeatures';
$VAR58 = '/v1/system/getFeatures';
$VAR59 = 'input';
$VAR60 = '/v1/main/setInput?input=';
$VAR61 = 'mcLinkTo';
$VAR62 = 'batch_cmd';
$VAR63 = 'getStatus';
$VAR64 = '/v1/main/getStatus';
$VAR65 = 'setFmTunerPreset';
$VAR66 = '/v1/tuner/recallPreset?zone=main&band=fm&num=';
$VAR67 = 'power';
$VAR68 = '/v1/main/setPower?power=';
$VAR69 = 'playback';
$VAR70 = '/v1/netusb/setPlayback?playback=';
$VAR71 = 'setToneHigh';
$VAR72 = '/v1/main/setEqualizer?high=';
$VAR73 = 'getSoundProgramList';
$VAR74 = '/v1/main/getSoundProgramList';
$VAR75 = 'volumeDown';
$VAR76 = '/v1/main/setVolume?volume=';
$VAR77 = 'TurnFavNetRadioChannelOn';
$VAR78 = 'batch_cmd';
$VAR79 = 'isNewFirmwareAvailable';
$VAR80 = '/v1/system/isNewFirmwareAvailable?type=network';
$VAR81 = 'setNetRadioPreset';
$VAR82 = '/v1/netusb/recallPreset?zone=main&num=';
$VAR83 = 'selectPlayMenu';
$VAR84 = '/v1/netusb/setListControl?list_id=main&type=play&index=';
$VAR85 = 'selectMenuItem';
$VAR86 = '/v1/netusb/setListControl?list_id=main&type=select&selectMenu=';
$VAR87 = 'enableBluetooth';
$VAR88 = '/v1/system/setBluetoothTxSetting?enable=';
$VAR89 = 'setToneBass';
$VAR90 = '/v1/main/setEqualizer?low=';
$VAR91 = 'on';
$VAR92 = '/v1/main/setPower?power=on';
$VAR93 = 'getLocationInfo';
$VAR94 = '/v1/system/getLocationInfo';
$VAR95 = 'NetRadioNextFavChannel';
$VAR96 = 'batch_cmd';
$VAR97 = 'getFuncStatus';
$VAR98 = '/v1/system/getFuncStatus';
$VAR99 = 'getDeviceInfo';
$VAR100 = '/v1/system/getDeviceInfo';
$VAR101 = 'navigateListMenu';
$VAR102 = 'batch_cmd';
$VAR103 = 'selectMenu';
$VAR104 = '/v1/netusb/setListControl?list_id=main&type=select&index=';
$VAR105 = 'startDistribution';
$VAR106 = '/v1/dist/startDistribution?num=0';
$VAR107 = 'off';
$VAR108 = '/v1/main/setPower?power=standby';

2019.04.03 18:05:22 5: YAMAHA_MC_UpdateLists returning now
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_httpRequestParse YAMAHA_MC_UpdateLists called Radio|Podcasts
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) - YAMAHA_MC_httpRequestParse end. no additional original_cmd stated
2019.04.03 18:05:22 4: YAMAHA_MC_httpRequestParse: end of parse of cmd getMenu, calling YAMAHA_MC_GetStatus again, should i really?
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse end calling YAMAHA_MC_HandleCmdQueue again
2019.04.03 18:05:22 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2019.04.03 18:05:22 4: + YAMAHA_MC_HandleCmdQueue
2019.04.03 18:05:22 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2019.04.03 18:05:22 4: (mo_KURadio) - + Es laeuft kein Request mehr
2019.04.03 18:05:22 4: (mo_KURadio) - + Es gibt noch pending commands
2019.04.03 18:05:22 5: YAMAHA_MC (mo_KURadio) YAMAHA_MC_HandleCmdQueue - HandleCmdQueue no commands currently running, but queue has pending commands. preparing new request
2019.04.03 18:05:22 5: YAMAHA_MC (mo_KURadio) YAMAHA_MC_HandleCmdQueue - getting new request
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 0 (cmd: getPlayInfo, arg: , data: 1, priority: 5, at_first: 0, not_before: 0)
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_getNextRequestHash - choosed item 0 as next command
2019.04.03 18:05:22 5: YAMAHA_MC (mo_KURadio) YAMAHA_MC_HandleCmdQueue - got new request, try to get params of request
2019.04.03 18:05:22 4: YAMAHA_MC YAMAHA_MC_HandleCmdQueue: new request has name mo_KURadio CMD getPlayInfo Args
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) - YAMAHA_MC_HandleCmdQueue: execution cmd via CmdQueue
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) - YAMAHA_MC_HandleCmdQueue: ALLOWED cmd=getPlayInfo starte httpRequest url => http://192.168.2.52:80/YamahaExtendedControl/v1/netusb/getPlayInfo
2019.04.03 18:05:22 4:  YAMAHA_MC (mo_KURadio) - YAMAHA_MC_HandleCmdQueue: API Version cut to 2 URL before http://192.168.2.52:80/YamahaExtendedControl/v1/netusb/getPlayInfo
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) - YAMAHA_MC_HandleCmdQueue: cmd=getPlayInfo starte httpRequest replaced url => http://192.168.2.52:80/YamahaExtendedControl/v2/netusb/getPlayInfo
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_HandleCmdQueue - send command via HttpUtils_NonblockingGet "getPlayInfo "
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_HandleCmdQueue - pending requests 0
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse deleting http helper
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse data:
{"response_code":0,"input":"net_radio","play_queue_type":"system","playback":"play","repeat":"off","shuffle":"off","play_time":175,"total_time":0,"artist":"NDR 2 Niedersachsen (Hanover\/German)","album":"","track":"NDR 2 - ndr.de\/ndr2","albumart_url":"/YamahaRemoteControl/AlbumART/AlbumART4222.png","albumart_id":4222,"usb_devicetype":"unknown","auto_stopped":false,"attribute":16785411,"repeat_available":[],"shuffle_available":[]}
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse cmd:
getPlayInfo
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse args: 
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse argsEnde
2019.04.03 18:05:22 5: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse got json repsonse, following Dumper von result

2019.04.03 18:05:22 5: $VAR1 = 'artist';
$VAR2 = 'NDR 2 Niedersachsen (Hanover/German)';
$VAR3 = 'play_queue_type';
$VAR4 = 'system';
$VAR5 = 'albumart_id';
$VAR6 = 4222;
$VAR7 = 'shuffle_available';
$VAR8 = [];
$VAR9 = 'repeat_available';
$VAR10 = [];
$VAR11 = 'repeat';
$VAR12 = 'off';
$VAR13 = 'usb_devicetype';
$VAR14 = 'unknown';
$VAR15 = 'playback';
$VAR16 = 'play';
$VAR17 = 'album';
$VAR18 = '';
$VAR19 = 'shuffle';
$VAR20 = 'off';
$VAR21 = 'response_code';
$VAR22 = 0;
$VAR23 = 'albumart_url';
$VAR24 = '/YamahaRemoteControl/AlbumART/AlbumART4222.png';
$VAR25 = 'play_time';
$VAR26 = 175;
$VAR27 = 'total_time';
$VAR28 = 0;
$VAR29 = 'auto_stopped';
$VAR30 = bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' );
$VAR31 = 'attribute';
$VAR32 = 16785411;
$VAR33 = 'input';
$VAR34 = 'net_radio';
$VAR35 = 'track';
$VAR36 = 'NDR 2 - ndr.de/ndr2';

2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse ResponseCode = 0
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse Start Handling for getPlayInfo
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse playback_input Val
net_radio
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse playback_status Val
play
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) - YAMAHA_MC_httpRequestParse end. no additional original_cmd stated
2019.04.03 18:05:22 4: YAMAHA_MC_httpRequestParse: end of parse of cmd getPlayInfo, calling YAMAHA_MC_GetStatus again, should i really?
2019.04.03 18:05:22 4: YAMAHA_MC: mo_KURadio YAMAHA_MC_httpRequestParse end calling YAMAHA_MC_HandleCmdQueue again
2019.04.03 18:05:22 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2019.04.03 18:05:22 4: + YAMAHA_MC_HandleCmdQueue
2019.04.03 18:05:22 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2019.04.03 18:05:22 4: (mo_KURadio) - + Es laeuft kein Request mehr
2019.04.03 18:05:22 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_HandleCmdQueue - pending requests 0
2019.04.03 18:05:39 4: mo_KURadio : YAMAHA_MC_Set start with cmd ?
2019.04.03 18:05:39 4: mo_KURadio : YAMAHA_MC_Set cmd ? Helper Inputs available napster,spotify,qobuz,tidal,deezer,airplay,mc_link,server,net_radio,bluetooth
2019.04.03 18:05:39 4: mo_KURadio : YAMAHA_MC_Set cmd ? Helper MENUITEMS availableradio,podcasts
2019.04.03 18:05:39 4: mo_KURadio : YAMAHA_MC_Set unknown cmd not in List ? returning usage
2019.04.03 18:05:42 4: mo_KURadio : YAMAHA_MC_Set start with cmd ?
2019.04.03 18:05:42 4: mo_KURadio : YAMAHA_MC_Set cmd ? Helper Inputs available napster,spotify,qobuz,tidal,deezer,airplay,mc_link,server,net_radio,bluetooth
2019.04.03 18:05:42 4: mo_KURadio : YAMAHA_MC_Set cmd ? Helper MENUITEMS availableradio,podcasts
2019.04.03 18:05:42 4: mo_KURadio : YAMAHA_MC_Set unknown cmd not in List ? returning usage
2019.04.03 18:05:42 4: mo_KURadio : YAMAHA_MC_Set start with cmd ?
2019.04.03 18:05:42 4: mo_KURadio : YAMAHA_MC_Set cmd ? Helper Inputs available napster,spotify,qobuz,tidal,deezer,airplay,mc_link,server,net_radio,bluetooth
2019.04.03 18:05:42 4: mo_KURadio : YAMAHA_MC_Set cmd ? Helper MENUITEMS availableradio,podcasts
2019.04.03 18:05:42 4: mo_KURadio : YAMAHA_MC_Set unknown cmd not in List ? returning usage
2019.04.03 18:05:50 4: mo_KURadio YAMAHA_MC_DiscoverDLNAProcess started
2019.04.03 18:05:50 4: mo_KURadio YAMAHA_MC_DiscoverDLNAProcess started, DLNAsearch turned on
2019.04.03 18:05:50 4: mo_KURadio YAMAHA_MC_DiscoverDLNAProcess calling YAMAHA_MC_DiscoverDLNAServer
2019.04.03 18:05:50 4: mo_KURadio  YAMAHA_MC_DiscoverMediaServer START
2019.04.03 18:05:50 3: mo_KURadio  Searching for MediaServer..
2019.04.03 18:06:00 3: mo_KURadio  Searching for MediaServer..
2019.04.03 18:06:10 3: mo_KURadio  Searching for MediaServer..
2019.04.03 18:06:20 3: mo_KURadio  [!] No media found. Releasing semaphore, exiting.
2019.04.03 18:06:20 4: mo_KURadio YAMAHA_MC_DiscoverDLNAProcess calling YAMAHA_MC_DiscoverRenderer
2019.04.03 18:06:20 4: mo_KURadio  YAMAHA_MC_DiscoverRenderer START
2019.04.03 18:06:20 4: mo_KURadio  YAMAHA_MC_DiscoverRenderer DLNAsearch is turned on

2019.04.03 18:06:20 4: mo_KURadio YAMAHA_MC_DiscoverRenderer start search for own dlna Renderer


(Da mein Beitrag in einer ersten Version nur unvollständig übernommen wurde, füge ich nun einmal einen gekürzten Teil an, in der Hoffnung, es klappt jetzt, das ordentlich darzustellen. Falls noch andere Informationen gewünscht sind, könnte ich die auch angeben, aber es wiederholt sich ja.) Mit der letzten Zeile hängt sich FHEM ohne ein weiteres Wort im LOG komplett auf und lässt sich nur auf die harte Variante wieder zum neuen Leben erwecken.

Ein list des devices enthält Folgendes:


Internals:
   ACTIVE_ZONE main
   API_VERSION 2.02
   CHANGED   
   DEF        192.168.2.52 80 120 60 main
   DEVICEID   0
   DEVICE_ID  BC30D9848434
   FUUID      5c439285-f33f-3364-60d3-ca1608c9d75e1aa4
   HOST       192.168.2.52
   LastTtsFile
   MODEL      WX-021
   NAME       mo_KURadio
   NR         878
   OFF_INTERVAL 120
   ON_INTERVAL 60
   PORT       80
   PowerOnInProgress 0
   STATE      on
   SYSTEM_ID  0DA87303
   SYSTEM_VERSION 1.54
   TYPE       YAMAHA_MC
   URLCMD     /YamahaExtendedControl
   VERSION    v2.1.0
   WLAND_STRENGTH 0
   WLAN_SSID 
   ZONE       main
   attemptsToReturnMenu 0
   connection wired_lan
   location_id 5c736e517be54440b5aba0940be83ca1
   location_name Schlafzimmer
   network_name Küche
   settingChannelInProgress 0
   vtuner_id 
   READINGS:
     2019-04-03 18:17:06   DLNARenderer    unknown
     2019-04-04 16:16:12   FirmwareAvailable 0
     2019-04-03 18:17:06   MediaServer     unknown
     2019-04-04 18:31:13   album_name     
     2019-04-04 18:31:13   albumart_id     4230
     2019-04-04 18:31:13   albumart_url    http://192.168.2.52/YamahaRemoteControl/AlbumART/AlbumART4230.png
     2019-04-04 16:16:12   auto_power_standby 1
     2019-01-07 18:14:20   currentFavNetRadioChannel 0
     2019-04-04 18:31:13   currentMenuLayer 0
     2019-04-04 18:31:13   currentMenuName NET RADIO
     2019-04-04 18:31:13   currentMenuPlayingIndex -1
     2019-04-04 18:31:13   currentMenumaxItems 2
     2019-01-07 18:08:20   equalizer_low   -4
     2019-01-07 18:07:20   equalizer_mid   -2
     2019-04-04 16:16:12   hdmi_out_1      false
     2019-04-04 16:16:12   hdmi_out_2      false
     2019-04-04 16:16:12   headphone       false
     2019-03-25 19:17:47   input           net_radio
     2019-04-04 16:16:12   ir_sensor       false
     2019-03-25 19:17:47   last_error      Invalid Request
     2019-04-04 18:31:13   max_volume      60
     2019-01-06 16:38:51   mute            0
     2019-04-04 16:16:12   party_mode      false
     2019-04-04 18:31:13   playback_input  net_radio
     2019-04-04 18:31:13   playback_status play
     2019-04-04 16:16:12   power           on
     2019-04-04 16:16:12   presence        present
     2019-04-04 18:31:13   response_code   0
     2019-01-06 16:38:51   sound_program   standard
     2019-04-04 16:16:12   speaker_a       false
     2019-04-04 16:16:12   speaker_b       false
     2019-04-04 16:16:12   state           on
     2019-04-04 18:31:13   station_name    NDR 2 Niedersachsen (Hanover/German)
     2019-04-04 18:31:13   track           NDR 2 - ndr.de/ndr2
     2019-04-04 18:31:13   volume          38
   helper:
     AVAILABLE  1
     DISABLED   0
     INPUTS     napster|spotify|qobuz|tidal|deezer|airplay|mc_link|server|net_radio|bluetooth
     MENUITEMS  Radio|Podcasts
     RUNNING_REQUEST 0
     SELECTED_ZONE main
     TIMEOUT_COUNT 0
     ZONES      main
     inputs_comma napster,spotify,qobuz,tidal,deezer,airplay,mc_link,server,net_radio,bluetooth
     inputs_piped napster|spotify|qobuz|tidal|deezer|airplay|mc_link|server|net_radio|bluetooth
     menuitems_comma radio,podcasts
     menuitems_piped radio|podcasts
     soundprograms_comma
     CMD_QUEUE:
   mac_address:
     wired_lan  BC30D9848434
     wireless_direct BC30D9848435
     wireless_lan BC30D9848435
   mo_KURadio:
     READINGS:
Attributes:
   DLNAServer miniDLNA
   DLNAsearch off
   DbLogExclude .*
   FavoriteNetRadioChannel 1
   alias      Radio KU
   devStateIcon off:ios-off on:ios-on-green
   event-on-change-reading power
   eventMap   TurnFavNetRadioChannelOn:fav_on NetRadioPrevFavChannel:fav_- NetRadioNextFavChannel:fav_+
   group      Multimedia
   room       Küche
   standard_volume 42
   ttsvolume  50
   verbose    0
   volumeSteps 3
   webCmd     fav_on:fav_-:fav_+:volume


Kannst du evtl. erkennen, woran es liegen kann, dass sich DLNAsearch aufhängt und was ich dagegen noch unternehmen kann? Die ganzen Perl-Pakete, die aufgeführt waren, sind installiert, die Freigaben eingerichtet.

Vielen Dank und viele Grüße
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: R1k4rd am 04 April 2019, 18:00:29
Hey zusammen,

Zitatich nutze  das Reading "albumart_url" nicht, aber dieses ist ja nur beim Input netradio sinnvoll gefüllt. Ich vermute du möchtest bei den übrigen Inputs HDMI, Tuner etc. das Symbol aus der App (siehe Screenshot anbei) angezeigt bekommen, richtig ? Das müsstest du dann als Icon in Fhem zur Verfügung stellen und dann in Abhängigkeit vom Input setzen. Also nur bei Input netradio das Icon von "albumart_url" verwenden und ansonsten das eigene von input abhängige Icon.

Genau so hatte ich das gemeint, hätte gedacht es wäre irgendwie möglich die Bilder auch mithilfe des Moduls zu laden aber wie schon vermutet liegen diese Symbole wahrscheinlich nur lokal in der App.
Und wäre es möglich aber für den Input netradio zu implementieren das wenn ich jetzt z.B. meine Soundbar und meinen Lautsprecher linke, das ich dann für den Lautsprecher auch das Cover des Radiosenders bekomme?
Also z.B. Soundbar als master hat dann folgendes Reading:
albumart_url http://192.168.178.35/YamahaRemoteControl/AlbumART/AlbumART7313.png
Lautsprecher, welcher mit der Soundbar gelinked ist allerdings nur:
albumart_url http://192.168.178.45
Es müsste also wenn die Geräte verlinkt sind vom master Gerät wahrscheinlich das Reading albumart_url übernommen werden damit es richtig angezeigt wird.

LG Richard
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 05 April 2019, 22:56:29
@Kilderman
ich finde bei dir im Log auch nur den Hinweis, dass der DLNA Server nicht gefunden wird :


2019.04.03 18:05:50 4: mo_KURadio  YAMAHA_MC_DiscoverMediaServer START
2019.04.03 18:05:50 3: mo_KURadio  Searching for MediaServer..
2019.04.03 18:06:00 3: mo_KURadio  Searching for MediaServer..
2019.04.03 18:06:10 3: mo_KURadio  Searching for MediaServer..
2019.04.03 18:06:20 3: mo_KURadio  [!] No media found. Releasing semaphore, exiting.


und dann endet das Logfile an der Stelle, wo per DLNA die Renderer gesucht werden :
$ControlPointDLNA->search(st =>'upnp:rootdevice', mx => 3);

Warum der hier abbricht kann ich nicht genau sagen sondern nur raten evtl. stimmt irgendetwas mit den NEtzwerkfreigaben nicht odr mit upnp auf dem fhem Server.
Vielleicht mal BubbleUPnP auf dem Handy installieren und schauen, ob es damit möglich ist die DLNA suche zu machen.

Das hst du gemacht, oder ?
sudo apt-get install -y libnet-upnp-perl
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 05 April 2019, 22:59:19
@Richard
Theoretisch müsste das funktionieren bei Änderung des albumart_url und gesetzter Gruppen-Id, das albumart_url auch bei allen gelinkten Clients zu setzen.
Ich schau mir das mal an.
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: enno am 16 April 2019, 11:33:21
Moin zusammen,

wenn jemand Erfahrung mit dem neuen Update hat, bitte berichten. Ich halte mich nach dem letzten Updatefiasko von Yamaha erst mal etwas zurück....

https://de.yamaha.com/de/news_events/2019/New-Streaming-and-Voice-Control-Capabilities.html

Gruss
  Enno
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: R1k4rd am 17 April 2019, 23:09:22
Hey enno,

sobald ich das Update erhalte werde ich es mal auf einen meiner Lautsprecher machen und dir dann Bescheid geben ob es soweit noch läuft mit dem Modul :)

LG Richard
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: esk am 18 April 2019, 15:20:59
Hi,

Ich habe meine WX30 vom Strom getrennt ... jetzt wird die "CMD_QUEUE" immer länger weil die WX30 nicht erreichbar ist.
Wahrscheinlich deshalb, wird mein fhem prozess immer fetter und frisst speicher...

(# $Id: 71_YAMAHA_MC.pm 19053 2019-03-27 22:15:16Z Leugi $)

2019.04.18 15:18:40 4: YAMAHA_MC (WX30_Finnja) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 84 (cmd: getNetworkStatus, arg: , data: 1, priority: 2, at_first: 0, not_before: 0)
2019.04.18 15:18:40 4: YAMAHA_MC (WX30_Finnja) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 85 (cmd: isNewFirmwareAvailable, arg: , data: 1, priority: 2, at_first: 0, not_before: 0)
2019.04.18 15:18:40 4: YAMAHA_MC (WX30_Finnja) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 86 (cmd: getNetworkStatus, arg: , data: 1, priority: 2, at_first: 0, not_before: 0)
2019.04.18 15:18:40 4: YAMAHA_MC (WX30_Finnja) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 87 (cmd: isNewFirmwareAvailable, arg: , data: 1, priority: 2, at_first: 0, not_before: 0)
2019.04.18 15:18:40 4: YAMAHA_MC (WX30_Finnja) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 88 (cmd: getNetworkStatus, arg: , data: 1, priority: 2, at_first: 0, not_before: 0)
2019.04.18 15:18:40 4: YAMAHA_MC (WX30_Finnja) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 89 (cmd: isNewFirmwareAvailable, arg: , data: 1, priority: 2, at_first: 0, not_before: 0)
2019.04.18 15:18:40 4: YAMAHA_MC (WX30_Finnja) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 90 (cmd: getNetworkStatus, arg: , data: 1, priority: 2, at_first: 0, not_before: 0)
2019.04.18 15:18:40 4: YAMAHA_MC (WX30_Finnja) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 91 (cmd: isNewFirmwareAvailable, arg: , data: 1, priority: 2, at_first: 0, not_before: 0)
2019.04.18 15:18:40 4: YAMAHA_MC (WX30_Finnja) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 92 (cmd: getNetworkStatus, arg: , data: 1, priority: 2, at_first: 0, not_before: 0)
2019.04.18 15:18:40 4: YAMAHA_MC (WX30_Finnja) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 93 (cmd: isNewFirmwareAvailable, arg: , data: 1, priority: 2, at_first: 0, not_before: 0)
2019.04.18 15:18:40 4: YAMAHA_MC (WX30_Finnja) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 94 (cmd: getNetworkStatus, arg: , data: 1, priority: 2, at_first: 0, not_before: 0)
2019.04.18 15:18:40 4: YAMAHA_MC (WX30_Finnja) YAMAHA_MC_getNextRequestHash - choosed item 13 as next command
2019.04.18 15:18:40 5: YAMAHA_MC (WX30_Finnja) YAMAHA_MC_HandleCmdQueue - got new request, try to get params of request
2019.04.18 15:18:40 4: YAMAHA_MC YAMAHA_MC_HandleCmdQueue: new request has name WX30_Finnja CMD isNewFirmwareAvailable Args
2019.04.18 15:18:40 4: YAMAHA_MC (WX30_Finnja) - YAMAHA_MC_HandleCmdQueue: execution cmd via CmdQueue
2019.04.18 15:18:40 4: YAMAHA_MC (WX30_Finnja) - YAMAHA_MC_HandleCmdQueue: ALLOWED cmd=isNewFirmwareAvailable starte httpRequest url => http://192.168.178.34:80/YamahaExtendedControl/v1/system/isNewFirmwareAvailable?type=network
2019.04.18 15:18:40 4:  YAMAHA_MC (WX30_Finnja) - YAMAHA_MC_HandleCmdQueue: API Version cut to 1 URL before http://192.168.178.34:80/YamahaExtendedControl/v1/system/isNewFirmwareAvailable?type=network
2019.04.18 15:18:40 4: YAMAHA_MC (WX30_Finnja) - YAMAHA_MC_HandleCmdQueue: cmd=isNewFirmwareAvailable starte httpRequest replaced url => http://192.168.178.34:80/YamahaExtendedControl/v1/system/isNewFirmwareAvailable?type=network
2019.04.18 15:18:40 4: YAMAHA_MC (WX30_Finnja) YAMAHA_MC_HandleCmdQueue - send command via HttpUtils_NonblockingGet "isNewFirmwareAvailable "
2019.04.18 15:18:40 4: YAMAHA_MC (WX30_Finnja) YAMAHA_MC_HandleCmdQueue - pending requests 94
2019.04.18 15:18:40 4: (WX30_Finnja) - YAMAHA_MC_httpRequestQueue start queuing isNewFirmwareAvailable
2019.04.18 15:18:40 4: YAMAHA_MC_httpRequestQueue (WX30_Finnja) - Args defined as <>
2019.04.18 15:18:40 4: YAMAHA_MC_httpRequestQueue (WX30_Finnja) - cmd defined as <isNewFirmwareAvailable>
2019.04.18 15:18:40 4: YAMAHA_MC_httpRequestQueue (WX30_Finnja) - + Es gibt noch pending commands
2019.04.18 15:18:40 4: YAMAHA_MC_httpRequestQueue (WX30_Finnja) - comand "isNewFirmwareAvailable " is already in queue, skip adding another one
2019.04.18 15:18:40 4: YAMAHA_MC_httpRequestQueue (WX30_Finnja) - append to queue of device WX30_Finnja "isNewFirmwareAvailable ":
2019.04.18 15:18:40 4: YAMAHA_MC_httpRequestQueue (WX30_Finnja) - append to queue at end of device WX30_Finnja "isNewFirmwareAvailable ":
2019.04.18 15:18:40 4: YAMAHA_MC_httpRequestQueue (WX30_Finnja) -calling YAMAHA_MC_HandleCmdQueue now
2019.04.18 15:18:40 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2019.04.18 15:18:40 4: + YAMAHA_MC_HandleCmdQueue
2019.04.18 15:18:40 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2019.04.18 15:18:40 4: (WX30_Finnja) - + Es gibt noch pending commands
2019.04.18 15:18:40 4: YAMAHA_MC (WX30_Finnja) YAMAHA_MC_HandleCmdQueue - pending requests 95


Sönke
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: JonasE am 26 April 2019, 09:14:25
Hallo zusammen,

erst einmal vielen lieben Dank für dieses super Modul. Ich habe es schon einige Zeit im Einsatz und wollte mich jetzt an das TTS begeben. Leider habe ich dort das Problem, dass zusammengesetzte mp3s von mp3wrap nicht abgespielt werden können. In den Logs taucht dann immer folgende Meldung auf:

2019.04.26 08:38:40 3: k_MC20 YAMAHA_MC_SpeakFile File 2eb313b770a597944d3d5aeeaf7e6c56_MP3WRAP not found or MediaRendererDLNA not found

Ich habe mir dann mal die Datei auf meinen Rechner geladen und die mp3 Metadaten angeschaut. Dabei ist mir aufgefallen, dass die Mp3s der mp3wrap Dateien im Titel nicht den Dateinamen stehen haben. Ich habe den Titel dann einfach mal gleich dem Dateinamen gesetzt also Titel= 2eb313b770a597944d3d5aeeaf7e6c56_MP3WRAP.mp3 . Damit kann ich die Datei über folgenden Befehl abspielen:
set k_MC20 speakfile /var/lib/minidlna/2eb313b770a597944d3d5aeeaf7e6c56_MP3WRAP.mp3

Gibt es eine Möglichkeit, dass mp3wrap den Titel genauso setzt wie den Dateinamen? Oder eventuell, dass über minidlna anstatt dem Titel der Dateiname gesucht wird?

Ich habe zusätzlich noch einen Screenshot von der MusiccastApp angehangen. Dort sieht man wie die Dateien von minidlna auf dem Server aussehen. Man erkennt direkt die Dateien mit den falschen Titeln.

Zusätzlich auch nochmal das Result aus dem Log, in dem nach der Datei gesucht wird:
<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/">
    <item id="64$B" parentID="64" restricted="1">
        <dc:title>Use Mp3Splt to obtain original tracks</dc:title>
        <upnp:class>object.item.audioItem.musicTrack</upnp:class>
        <dc:description>This file is wrapped with Mp3Wrap. Get mp3splt, the free tool to split original files at http://mp3splt.sourceforge.net. Please do not remove this comment.</dc:description>
        <dc:creator>File wrapped with Mp3Wrap</dc:creator>
        <upnp:artist>File wrapped with Mp3Wrap</upnp:artist>
        <upnp:album>http://mp3splt.sourceforge.net</upnp:album>
        <upnp:originalTrackNumber>2</upnp:originalTrackNumber>
        <res size="9431" duration="0:00:02.208" bitrate="32000" sampleFrequency="24000" nrAudioChannels="2" protocolInfo="http-get:*:audio/mpeg:DLNA.ORG_PN=MP3;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000">http://192.168.178.120:8200/MediaItems/56.mp3</res>
    </item>
    <item id="64$2" parentID="64" restricted="1">
        <dc:title>Use Mp3Splt to obtain original tracks</dc:title>
        <upnp:class>object.item.audioItem.musicTrack</upnp:class>
        <dc:description>This file is wrapped with Mp3Wrap. Get mp3splt, the free tool to split original files at http://mp3splt.sourceforge.net. Please do not remove this comment.</dc:description>
        <dc:creator>File wrapped with Mp3Wrap</dc:creator>
        <upnp:artist>File wrapped with Mp3Wrap</upnp:artist>
        <upnp:album>http://mp3splt.sourceforge.net</upnp:album>
        <upnp:originalTrackNumber>2</upnp:originalTrackNumber>
        <res size="11351" duration="0:00:02.688" bitrate="32000" sampleFrequency="24000" nrAudioChannels="2" protocolInfo="http-get:*:audio/mpeg:DLNA.ORG_PN=MP3;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000">http://192.168.178.120:8200/MediaItems/28.mp3</res>
    </item>
    <item id="64$8" parentID="64" restricted="1">
        <dc:title>15f3ee2c2bd4e05acae32c787e103a17</dc:title>
        <upnp:class>object.item.audioItem.musicTrack</upnp:class>
        <res size="3360" duration="0:00:00.840" bitrate="32000" sampleFrequency="24000" nrAudioChannels="2" protocolInfo="http-get:*:audio/mpeg:DLNA.ORG_PN=MP3;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000">http://192.168.178.120:8200/MediaItems/50.mp3</res>
    </item>
    <item id="64$7" parentID="64" restricted="1">
        <dc:title>Use Mp3Splt to obtain original tracks</dc:title>
        <upnp:class>object.item.audioItem.musicTrack</upnp:class>
        <dc:description>This file is wrapped with Mp3Wrap. Get mp3splt, the free tool to split original files at http://mp3splt.sourceforge.net. Please do not remove this comment.</dc:description>
        <dc:creator>File wrapped with Mp3Wrap</dc:creator>
        <upnp:artist>File wrapped with Mp3Wrap</upnp:artist>
        <upnp:album>http://mp3splt.sourceforge.net</upnp:album>
        <upnp:originalTrackNumber>2</upnp:originalTrackNumber>
        <res size="10679" duration="0:00:02.520" bitrate="32000" sampleFrequency="24000" nrAudioChannels="2" protocolInfo="http-get:*:audio/mpeg:DLNA.ORG_PN=MP3;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000">http://192.168.178.120:8200/MediaItems/48.mp3</res>
    </item>
    <item id="64$0" parentID="64" restricted="1">
        <dc:title>5fb986c0938b4cb334e82edbdb6307b2</dc:title>
        <upnp:class>object.item.audioItem.musicTrack</upnp:class>
        <res size="5280" duration="0:00:01.320" bitrate="32000" sampleFrequency="24000" nrAudioChannels="2" protocolInfo="http-get:*:audio/mpeg:DLNA.ORG_PN=MP3;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000">http://192.168.178.120:8200/MediaItems/26.mp3</res>
    </item>
    <item id="64$9" parentID="64" restricted="1">
        <dc:title>6d04fb42159fc9c54348b8f363eb7250</dc:title>
        <upnp:class>object.item.audioItem.musicTrack</upnp:class>
        <res size="3360" duration="0:00:00.840" bitrate="32000" sampleFrequency="24000" nrAudioChannels="2" protocolInfo="http-get:*:audio/mpeg:DLNA.ORG_PN=MP3;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000">http://192.168.178.120:8200/MediaItems/54.mp3</res>
    </item>
    <item id="64$A" parentID="64" restricted="1">
        <dc:title>afa3c03d96eca9d8b5406ffa106b78b9</dc:title>
        <upnp:class>object.item.audioItem.musicTrack</upnp:class>
        <res size="5472" duration="0:00:01.368" bitrate="32000" sampleFrequency="24000" nrAudioChannels="2" protocolInfo="http-get:*:audio/mpeg:DLNA.ORG_PN=MP3;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000">http://192.168.178.120:8200/MediaItems/55.mp3</res>
    </item>
    <item id="64$6" parentID="64" restricted="1">
        <dc:title>d995d1a4d271570d92a966b3c32fb197</dc:title>
        <upnp:class>object.item.audioItem.musicTrack</upnp:class>
        <res size="4608" duration="0:00:01.152" bitrate="32000" sampleFrequency="24000" nrAudioChannels="2" protocolInfo="http-get:*:audio/mpeg:DLNA.ORG_PN=MP3;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000">http://192.168.178.120:8200/MediaItems/47.mp3</res>
    </item>
    <item id="64$1" parentID="64" restricted="1">
        <dc:title>de537871ad393f7fa5b3c88b6c26a001</dc:title>
        <upnp:class>object.item.audioItem.musicTrack</upnp:class>
        <res size="5472" duration="0:00:01.368" bitrate="32000" sampleFrequency="24000" nrAudioChannels="2" protocolInfo="http-get:*:audio/mpeg:DLNA.ORG_PN=MP3;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000">http://192.168.178.120:8200/MediaItems/27.mp3</res>
    </item>
    <item id="64$5" parentID="64" restricted="1">
        <dc:title>Use Mp3Splt to obtain original tracks</dc:title>
        <upnp:class>object.item.audioItem.musicTrack</upnp:class>
        <dc:description>This file is wrapped with Mp3Wrap. Get mp3splt, the free tool to split original files at http://mp3splt.sourceforge.net. Please do not remove this comment.</dc:description>
        <dc:creator>File wrapped with Mp3Wrap</dc:creator>
        <upnp:artist>File wrapped with Mp3Wrap</upnp:artist>
        <upnp:album>http://mp3splt.sourceforge.net</upnp:album>
        <upnp:originalTrackNumber>3</upnp:originalTrackNumber>
        <res size="18802" duration="0:00:04.536" bitrate="32000" sampleFrequency="24000" nrAudioChannels="2" protocolInfo="http-get:*:audio/mpeg:DLNA.ORG_PN=MP3;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000">http://192.168.178.120:8200/MediaItems/38.mp3</res>
    </item>
    <item id="64$4" parentID="64" restricted="1">
        <dc:title>ff54158f78cb871a14ea54ec0d1167ec</dc:title>
        <upnp:class>object.item.audioItem.musicTrack</upnp:class>
        <res size="6720" duration="0:00:01.680" bitrate="32000" sampleFrequency="24000" nrAudioChannels="2" protocolInfo="http-get:*:audio/mpeg:DLNA.ORG_PN=MP3;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000">http://192.168.178.120:8200/MediaItems/37.mp3</res>
    </item>
</DIDL-Lite>


Beste Grüße
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: JonasE am 27 April 2019, 15:11:46
Ich habe jetzt herausgefunden, dass es auch reicht, wenn gar kein ID3 Tag mehr vorhanden ist. Dazu habe ich mal testweise folgende Zeilen im 98_Text2Speech Modul eingefügt in Zeile 871:

    #falls die Datei existiert den ID3V1 und ID3V2 Tag entfernen
    if(-e $Mp3WrapFile){
        eval{
            use MP3::Info;
            remove_mp3tag($Mp3WrapFile, 2);
            remove_mp3tag($Mp3WrapFile,1);
            Log3 $hash, 4, $hash->{NAME}.": Die ID3 Tags von $Mp3WrapFile wurden geloescht";
        };
    }


Das führt dazu, dass minidlna dann den Dateinamen als Titel angibt und die Datei von den Musiccastgeräten gefunden wird.
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: LaMa163 am 29 April 2019, 12:19:40
Vielen Dank für die Anleitung.

Ich habe meinen WX-010 und WX-030 wunderbar integrieren können und die Sprachausgabe funktioniert sehr gut.
Allerdings funktioniert es mit meinem AV Receiver nicht optimal.

Wenn ich meinen RXV681 per Musiccast in FHEM integriere und den TTS Befehl an den Receiver absende, schaltet er sich ein und wählt auch den DLNA Input, allerdings kann ich die Sprachausgabe nicht hören. Erst wenn ich den Befehl ein 2.Mal absende (und der Receiver bereits auf dem DLNA Input eingestellt ist) höre ich etwas. Scheint so als wenn der Receiver beim ersten Mal nicht schnell genug auf den DLNA Input umschaltet?!

Jemand ne Idee?
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: enno am 29 April 2019, 16:00:49
Zitat von: enno am 29 März 2019, 09:26:34
Gleiche Einstellungen auf dem HTR-4068 klappt nur wenn das Gerät schon eingeschaltet ist. Wenn es erst eingeschaltet werden muss, passen die Verzögerungen nicht.  Bis alles auf dem richtigen Kanal steht, ist die Ansage schon durch. Ich vermute das Timing passt irgendwie nicht. Kann ich für mich sicherlich im Notify anpassen, aber ich dachte ich sag es mal :)

Moin LaMa163 siehe mein Post oben. Ich schalte erst per DOIF ein und sende dann Zeitversetzt ein zweites mal den TTS hinterher. Klappt nach etwas optimieren des wait beim DOIF.

Gruss
  Enno
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: JonasE am 29 April 2019, 18:10:33
Funktioniert TTS bei euch auch mit zwei Sätzen?
Also z.B ,,set MyTTSMusiccast tts Das ist ein Test. Er besteht aus zwei Sätzen."

Bei mir hab ich da nämlich die oben beschriebenen Probleme. Wäre sehr interessant ob das nur bei mir nicht funktioniert. Vielleicht kann das einmal jemand testen. :)

Grüße
Jonas
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: JonasE am 03 Mai 2019, 16:22:58
Habe nochmal etwas weiter getestet und bin beim linken von Boxen auf ein Problem gestoßen. Es sieht so aus, als würde ein Link immer mit einer fixen GroupId erstellt und nicht eine zufällige UUID für eine Gruppe erstellt. Das führt dazu, dass beim Erstellen einer Gruppe aus der Musiccast App und anschließendem verbinden einer weiteren Box über FHEM sich die vorherige Gruppe auflöst. Ich denke der Server müsste hier wahrscheinlich die GroupId einlesen und dann für link und unlink Befehle benutzen.

Ich schaue mir das noch einmal genauer an. Das PDF von Yamaha (https://www.symcon.de/forum/attachment.php?attachmentid=45621&d=1537699940) zeigt das eigentlich ganz gut mit der GroupId.

Beste Grüße
Jonas
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: JonasE am 07 Mai 2019, 17:24:53
Ich habe ein bisschen was angepasst und es scheint zu funktionieren. Ich arbeite auf github und wollte fragen wie ich die Änderung am besten zur Verfügung stelle?

@Leugi
Arbeitest du mit github? Ich könnte dir einen Patch zukommen lassen oder auch direkt ein PullRequest machen.

Wenn du schonmal reinschauen möchtest das ist mein Repo mit dem entsprechend Branch:
https://github.com/jonaseickhoff/fhem-mirror/commits/YamahaMusiccast

Ich habe auch schon UDP zum laufen bekommen. Dann könnte man auf ein polling verzichten.

EDIT: Ich habe jetzt auch das Link und Unlink noch überarbeitet. Da gab es noch ein paar Probleme im Hinblick auf die Gruppennamen. Außerdem wird jetzt überprüft ob die Geräte überhaupt verbunden sind bevor sie getrennt werden soll. Bzw. ob sie nicht schon verbunden sind, wenn sie verbunden werden sollen.

Grüße
Jonas
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 15 Mai 2019, 18:16:22
Hallo Jonas,

danke für das Update des Moduls, du kannst das gerne direkt per Git pushen.
Alternativ mir zusenden, dann stell ich das ein.

Gruß,
Leugi
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: JonasE am 24 Mai 2019, 12:09:54
Hi,
irgendwie komm ich aktuell nicht dazu das bei Github mit dem controls.txt fertig zu machen. Also veröffentliche ich die Version hier erst einmal so.

Änderungen:
- UTF8 Probleme bei Gruppennamen behoben
- bei mclinkto und mcunlink werden jetzt die möglichen Yamaha Geräte in einer Liste vorgeschlagen.

Grüße
Jonas
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: esk am 04 Juli 2019, 15:56:49
Hi Leugi,

ich habe einen kleinen bugfix angehängt, der das Vollaufen der CMD_QUEUE verhindert, wenn das Gerät nicht erreichbar ist.

Problem siehe Post #55 : https://forum.fhem.de/index.php/topic,98383.msg931446.html#msg931446

(Variable alreadyinqueue wurde doppelt deklariert)

Mfg. esk
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: JonasE am 05 Juli 2019, 07:44:29
Das mit dem Fix ist super. Vielleicht kann Leugi, wenn es auch mit meiner Version soweit keine Probleme gibt, die Updates als neue Version ins SVN einchecken?

Grüße
Jonas
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: kilderman am 07 August 2019, 19:48:16
Hallo zusammen,

ich könnte ggf. ein wenig Hilfe gebrauchen. Ich habe mich einmal wieder daran versucht (hat aber nicht geklappt), den Yamaha-Lautsprecher zum Sprechen zu bekommen. Mein Problem mit dem Media-Server habe ich lösen können, indem ich für FHEM einfach einen extra MiniDLNA-Server aufgesetzt habe, so bleibt die Musiksammlung unberührt. Ich bekomme es aber einfach nicht hin, dass beim Yamaha-Lautsprecher der DLNARenderer eingetragen wird.

Hier ein List des Devices:

Internals:
   ACTIVE_ZONE main
   API_VERSION 2.04
   CHANGED   
   DEF        192.168.2.52 80 120 60 main
   DEVICEID   0
   DEVICE_ID  BC30D9848434
   FUUID      5c439285-f33f-3364-60d3-ca1608c9d75e1aa4
   HOST       192.168.2.52
   LastTtsFile
   MODEL      WX-021
   NAME       mo_KURadio
   NR         876
   OFF_INTERVAL 120
   ON_INTERVAL 60
   PORT       80
   PowerOnInProgress 0
   STATE      on
   SYSTEM_ID  0E9922C3
   SYSTEM_VERSION 1.69
   TYPE       YAMAHA_MC
   URLCMD     /YamahaExtendedControl
   VERSION    v2.1.0
   WLAND_STRENGTH 0
   WLAN_SSID 
   ZONE       main
   attemptsToReturnMenu 0
   connection wired_lan
   location_id 5c736e517be54440b5aba0940be83ca1
   location_name Schlafzimmer
   network_name Küche
   settingChannelInProgress 0
   vtuner_id 
   READINGS:
     2019-08-04 15:38:34   DLNARenderer    unknown
     2019-08-07 19:41:18   FirmwareAvailable 0
     2019-08-04 15:41:14   MediaServer     miniDLNA-FHEM
     2019-08-07 19:28:59   album_name     
     2019-08-07 19:28:59   albumart_id     6903
     2019-08-07 19:28:59   albumart_url    http://192.168.2.52/YamahaRemoteControl/AlbumART/AlbumART6903.png
     2019-08-07 19:41:18   auto_power_standby 1
     2019-08-02 23:43:46   currentFavNetRadioChannel 2
     2019-08-07 19:28:59   currentMenuName NET RADIO
     2019-08-07 19:28:59   currentMenuPlayingIndex -1
     2019-08-07 19:28:59   currentMenumaxItems 2
     2019-01-07 18:08:20   equalizer_low   -4
     2019-01-07 18:07:20   equalizer_mid   -2
     2019-08-07 19:41:18   hdmi_out_1      false
     2019-08-07 19:41:18   hdmi_out_2      false
     2019-08-07 19:41:18   headphone       false
     2019-08-02 23:43:33   input           net_radio
     2019-08-07 19:41:18   ir_sensor       false
     2019-05-24 17:57:07   last_error      connect to http://192.168.2.52:80 timed out
     2019-06-04 19:44:28   linkedClients   
     2019-08-07 19:41:18   max_volume      60
     2019-01-06 16:38:51   mute            0
     2019-08-07 19:41:18   party_mode      false
     2019-08-07 19:28:59   playback_input  net_radio
     2019-08-07 19:28:59   playback_status play
     2019-08-07 19:41:18   power           on
     2019-08-07 19:41:18   presence        present
     2019-08-07 19:41:18   response_code   0
     2019-01-06 16:38:51   sound_program   standard
     2019-08-07 19:41:18   speaker_a       false
     2019-08-07 19:41:18   speaker_b       false
     2019-08-07 19:41:18   state           on
     2019-08-07 19:28:59   station_name    NDR 2 Niedersachsen (Hanover/German)
     2019-08-07 19:28:59   track           Queen - I Was Born To Love You
     2019-08-07 19:41:18   volume          56
   helper:
     AVAILABLE  1
     DISABLED   0
     INPUTS     napster|spotify|qobuz|tidal|deezer|airplay|mc_link|server|net_radio|bluetooth
     MENUITEMS  Radio|Podcasts
     RUNNING_REQUEST 0
     SELECTED_ZONE main
     TIMEOUT_COUNT 0
     ZONES      main
     inputs_comma napster,spotify,qobuz,tidal,deezer,airplay,mc_link,server,net_radio,bluetooth
     inputs_piped napster|spotify|qobuz|tidal|deezer|airplay|mc_link|server|net_radio|bluetooth
     menuitems_comma radio,podcasts
     menuitems_piped radio|podcasts
     soundprograms_comma
     CMD_QUEUE:
   mac_address:
     wired_lan  BC30D9848434
     wireless_direct BC30D9848435
     wireless_lan BC30D9848435
   mo_KURadio:
     READINGS:
Attributes:
   DLNAServer miniDLNA-FHEM
   DLNAsearch on
   DbLogExclude .*
   FavoriteNetRadioChannel 1
   alias      Radio KU
   devStateIcon off:ios-off on:ios-on-green
   event-on-change-reading power
   eventMap   TurnFavNetRadioChannelOn:fav_on NetRadioPrevFavChannel:fav_- NetRadioNextFavChannel:fav_+
   group      Multimedia
   room       Küche
   standard_volume 42
   ttsvolume  50
   verbose    0
   volumeSteps 3
   webCmd     fav_on:fav_-:fav_+:volume


Einmal mit BubbleDingens zu schauen, ob da der Lautsprecher als DLNARenderer gefunden wird, habe ich ausprobiert und er wird auch gefunden.

Wenn ich spaßeshalber einmal das Modul DLNARender definiere, wird der Yamaha-Lautsprecher ebenfalls als DLNARenderer gefunden und aufgeführt. Hier dazu auch einmal ein List:


Internals:
   CFGFN     
   DEF        uuid:9ab0c000-f668-11de-9976-bc30d9848434
   FUUID      5d4b092a-f33f-3364-cef0-2378e5f481188aa0
   NAME       DLNA_bc30d9848434
   NR         2256
   STATE      online
   TYPE       DLNARenderer
   UDN        uuid:9ab0c000-f668-11de-9976-bc30d9848434
   Helper:
     DBLOG:
       state:
         DBLogging1:
           TIME       1565198634.99624
           VALUE      offline
   READINGS:
     2019-08-07 19:23:55   friendlyName    Küche
     2019-08-07 19:23:55   manufacturer    Yamaha Corporation
     2019-08-07 19:23:55   manufacturerURL http://www.yamaha.com/
     2019-08-07 19:23:55   modelDescription MusicCast
     2019-08-07 19:23:55   modelName       WX-021
     2019-08-07 19:23:55   modelNumber     021
     2019-08-07 19:23:55   modelURL        http://www.yamaha.com/
     2019-08-07 19:23:55   multiRoomSupport 0
     2019-08-07 19:23:55   presence        online
     2019-08-07 19:23:55   presentationURL http://192.168.2.52/
     2019-08-07 19:23:55   state           online
     2019-08-07 19:28:58   stream          http://translate.google.com/translate_tts?tl=en&client=tw-ob&q=Dies ist ein Test
   helper:
     caskeid    0
     caskeidClients
Attributes:
   DbLogExclude .*
   alias      Küche
   userattr   channel_01 channel_02 channel_03 channel_04 channel_05 channel_06 channel_07 channel_08 channel_09 channel_10 multiRoomGroups ttsLanguage
   verbose    0
   webCmd     volume


Hätte vielleicht jemand eine Idee, was ich noch probieren kann, um den Lautsprecher zum Reden zu bewegen?

Herzlichen Dank und viele Grüße

PS. Im LOG steht an der entsprechenden Stelle wiederkehrend folgendes:

2019.08.07 20:18:37 4: (mo_KURadio) - + Es laeuft kein Request mehr
2019.08.07 20:18:37 4: YAMAHA_MC (mo_KURadio) YAMAHA_MC_HandleCmdQueue - pending requests 0
2019.08.07 20:19:05 4: mo_KURadio YAMAHA_MC_DiscoverDLNAProcess started
2019.08.07 20:19:05 4: mo_KURadio YAMAHA_MC_DiscoverDLNAProcess started, DLNAsearch turned on
2019.08.07 20:19:05 4: mo_KURadio YAMAHA_MC_DiscoverDLNAProcess calling YAMAHA_MC_DiscoverDLNAServer
2019.08.07 20:19:05 4: mo_KURadio  YAMAHA_MC_DiscoverMediaServer START
2019.08.07 20:19:05 3: mo_KURadio  Searching for MediaServer..
2019.08.07 20:19:15 3: mo_KURadio Found 2 MediaServer

2019.08.07 20:19:15 3: mo_KURadio  found [1] : device name: [miniDLNA-FHEM]
2019.08.07 20:19:15 4: mo_KURadio YAMAHA_MC_DiscoverMediaServer found correct media server : miniDLNA-FHEM
2019.08.07 20:19:15 3: Init MediaServer now
2019.08.07 20:19:15 4: mo_KURadio  Saving MediaServer in helper
2019.08.07 20:19:15 4: mo_KURadio  Saving MediaServer in helper done
2019.08.07 20:19:15 4: mo_KURadio YAMAHA_MC_DiscoverDLNAProcess calling YAMAHA_MC_DiscoverRenderer
2019.08.07 20:19:15 4: mo_KURadio  YAMAHA_MC_DiscoverRenderer START
2019.08.07 20:19:15 4: mo_KURadio  YAMAHA_MC_DiscoverRenderer DLNAsearch is turned on

2019.08.07 20:19:15 4: mo_KURadio YAMAHA_MC_DiscoverRenderer start search for own dlna Renderer
2019.08.07 20:19:21 4: mo_KURadio YAMAHA_MC_DiscoverDLNAProcess returning

und danach keine weiteren anderslautenden Einträge mit diesem Bezug
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Jack-Luck am 28 September 2019, 11:46:35
Meine Box spricht nun endlich auch!  :D Aber leider bekomme ich jedesmal wenn ich eine Sprachausgabe mache eine Meldung:

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

sudo: no tty present and no askpass program specified

Scheint ein rechte Problem zu sein, ich weiß leider nicht mehr weiter.

Liegt es vielleicht hier dran:

fhem ALL=NOPASSWD: /usr/bin/mplayer
fhem ALL=NOPASSWD: /usr/bin/minidlna
fhem ALL=NOPASSWD: /usr/sbin/service minidlna

wobei es völlig egal ist was ich dort eintrage, kann die drei Zeilen auch weg lassen,
die Sprachausgabe geht trotzdem und die Meldung kommt immer.


Gruß
Jack
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Helmuth am 30 September 2019, 17:43:57
Hallo
Ich bekomme keine Sprachausgabe hin und hoffe auf Updates.

Nu noch eine Frage für das ältere Semester. Warum kann ich bei standard_volume nur 15 auswählen. Da brauche ich ja nen Hörgerät. Hab ich da irgendwo etwas übersehen?

Gruß Helmuth
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: JonasE am 30 September 2019, 21:10:37
Hi,

welche MusicCast Box hast du denn? Ich würde bei mir nochmal gegen testen. Hast du das Problem bei bestimmten Sätzen oder grundsätzlich?

Das mit dem standard_volume scheint noch ein Bug zu sein. Du kannst aber glaube ich das Attribut über ,,attr meineBox standard_volume 30" einfach selber höher setzten.


Gesendet von iPhone mit Tapatalk
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Helmuth am 02 Oktober 2019, 17:38:24
Hi

das mit der standard lautstärke geht tatsächlich direkt über attr. An Lautsprechern habe ich die Bar 400, 2 x MusicCast 20,1 x Musiccast 50 und einen RX V685 Receiver. Momentan habe ich in jedem Raum ein Android Handy liegen für die Sprachausgabe. Die will ich aber abschaffen und die Yamaha Lautsprecher bzw. AV-Receiver sollen das übernehmen. Das war mein Plan aber leider bekomme ich es nicht hin. Kann das damit zusammen hängen das Fhem bei mir im Docker läuft?
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 15 Oktober 2019, 13:44:42
@Jack

Mit den Medlungen
We trust you have received the usual lecture from the local System..

gibt es hier einige Hinweise :
https://unix.stackexchange.com/questions/448810/what-does-this-warning-mean-and-what-should-i-do-to-fix-it/448818 (https://unix.stackexchange.com/questions/448810/what-does-this-warning-mean-and-what-should-i-do-to-fix-it/448818)

Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Jack-Luck am 02 November 2019, 20:10:44
Cool, danke Leugi! Ich guck mir das mal an.
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: JonasE am 15 November 2019, 08:49:41
Hi,

ich habe das Modul nochmal erweitert. Man kann nun mit dem Attribut "eventProcessing" das EventParsing aktivieren. Damit ist ein Warten auf den Pull für das Aktualisieren mancher Werte nicht mehr nötig. Erstmal habe ich nur die Readings power, mute und volume im eventParser mit drin. Das ganze lässt sich jetzt aber relativ einfach auch erweitern.

Das Modul habe ich mit perltidy für die bessere Lesbarkeit formatiert. Deshalb ist der Patch ziemlich groß.

Im Anhang findet ihr die neue Version. Vielleicht möchte @Leugi ja die ein oder andere Änderung übernehmen.

Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 27 November 2019, 22:47:46
Hallo JonasE,

viel Dank für die Änderungen !

Ich habe das geänderte Modul getestet und ins FHEM Repository eingecheckt. Wird ab morgen dann in FHEM zur Verfügung stehen.

Gruß,
Leugi
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: chopsor am 28 November 2019, 15:47:00
Hoihoi,


Mal ne evtl doofe Frage aber wie könnte man mit dem Speakfile eine Datei au einem anderen DLNA Server abspielen ? oder geht hier sogar eine URL ?


Die Frage begründet sich dadurch, da ich die Sprachausgabe/Soundausgabe auf einen Dockercontainer auslagern wollte (probiere gerade die Schreibzugriffe auf dem PI zu minimieren) (fhem Docker auf Synology) hier der Minidlna Server aber nicht funktioniert und ich nun stattdessen den DLNA Server vom Synology selbst nehmen will.


Danke.
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: rogerknop am 29 November 2019, 12:54:27
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
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: KyleK am 14 Dezember 2019, 22:07:30
@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
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 25 Dezember 2019, 21:51:37
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
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: sprudelverduenner am 05 Januar 2020, 20:18:18
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
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: sprudelverduenner am 06 Januar 2020, 20:46:20
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.
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: KyleK am 06 Januar 2020, 21:34:46
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.
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: JonasE am 06 Januar 2020, 21:51:01
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.

Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: KyleK am 06 Januar 2020, 22:14:46
Das Wiki (https://wiki.fhem.de/wiki/DevelopmentModuleIntro#X_Define) 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.
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Frank_Huber am 21 Januar 2020, 21:03:14
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

Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 22 Januar 2020, 22:47:18
Hallo Frank,

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

attr mc_receiver FavoriteNetRadioChannel 2

Gruß,
Leugi
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Frank_Huber am 22 Januar 2020, 22:57:48
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

Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 24 Januar 2020, 13:35:12
@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

Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Frank_Huber am 24 Januar 2020, 13:44:15
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. :-(
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: castor.srs am 04 Februar 2020, 00:36:18
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?
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Frank_Huber am 12 Februar 2020, 22:18:05
Set Yamaha input av1 schaltet av2 ein.
Yamaha RX-S602

Bug oder feature?

Gesendet von meinem Doogee S60 mit Tapatalk

Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 18 Februar 2020, 10:17:35
Hallo Frank,

das ist ein Bug. Entsteht durch das Ersten der APIVersion in der URL "v1" durch die tatsächliche API Version. Dadurch wird leider auch bei av1 das v1 ersetzt.
werde ich in Kürze korrigieren.

@castor.srs
Tatsächlich werden die MP3 Dateien grundsätzlich gelöscht, damit das Verzeichnis nicht durch temporäre TTS-Files vollgemüllt wird.
Ich werde das erweitern, so dass Dateien mit einem Keyword wie z.B. "KEEP" nicht gelöscht werden.

Gruß,
Leugi
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Frank_Huber am 18 Februar 2020, 10:24:56
Zitat von: Leugi am 18 Februar 2020, 10:17:35
das ist ein Bug. Entsteht durch das Ersten der APIVersion in der URL "v1" durch die tatsächliche API Version. Dadurch wird leider auch bei av1 das v1 ersetzt.
werde ich in Kürze korrigieren.
Danke! :-)
Habe den Schaltbefehl jetzt über das Yamaha_AVR Modul eingebaut.
von daher keine Eile von meiner Seite.
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 19 Februar 2020, 20:23:52
Der Bugfix ist nun produktiv. Sollte nach dem Update wieder funktionieren auf AV1 zu switchen.
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: sprudelverduenner am 21 Februar 2020, 21:21:16
Naaaaabend,

Gibt es eigentlich eine Möglichkeit relativ einfach auf die Podcasts innerhalb des Netradio zurück zu greifen?

Evtl. so in der Form, dass ich in den Podcast Favoriten einen Podcast wählen kann und dann zB Podcasts in der absteigenden Reihenfolge angespielt werden bis ich feststelle, dass ich diesen bereits gehört habe und ich dann wieder auf Radio wechsele....?

Danke für eure Antworten.

LG, Sprudelverduenner
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Helmuth am 22 Februar 2020, 19:48:49
Hallo zusammen

Hat schon jemand das Modul mit der neuesten Fhem Version 6.0 am laufen?

Sobald ich DLNAsearch auf on stelle macht Fhem einen Neustart nach dem anderen.

MfG

Helmuth
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: enno am 23 Februar 2020, 12:00:15
Moin Helmuth,

bei mir läuft FHEM Version 6.0 und alle aktuellen Module. (Letztes Update gestern Mittag) DLNAsearch steht auf "on". Absturz oder Neustart habe ich nicht. Allerdings bleibt das Reading MediaServer auf "unknown".  Im Log bekomme ich bei FHEM Neustart folgende Warnung.

PERL WARNING: Smartmatch is experimental at ./FHEM/71_YAMAHA_MC.pm line 4469, <$fh> line 4361.
PERL WARNING: Smartmatch is experimental at ./FHEM/71_YAMAHA_MC.pm line 4659, <$fh> line 4361.


Gruss
Enno
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Helmuth am 23 Februar 2020, 20:29:49
Hallo enno

Die Meldungen kommen mir bekannt von. Ich bin heute zum Erfolg gekommen indem ich alle YAMAHA_MC devices gelöscht habe und kompett neu angegt. Momentan läuft wieder alles.

Ich hoffe es bleibt auch so.

Einnen schönen Abend

Helmuth
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Helmuth am 26 Februar 2020, 19:29:06
Hallo nochmal

Ich habe jetzt einige Tage getestet und ein sehr komisches Phänomen festgestellt.

Nach meinem letzten Fhem update musste ich ja einen neu start machen. So steht es in den Statuten. Nachdem Fhem dann gestartet war nahm das Drama seinen lauf. Ca. alle 2 Minuten gab es einen Neustart, bis ich DNLASearch auf off gestellt habe. Erst das löschen und neu Anlegen der devices brachte wieder Erfolg. Aber nur solange Fhem läuft. Ein weiterer Neustart und wieder der 2 Minuten Rhythmus. Wieder Device löschen und neu anlegen und es geht wieder alles.

Jetzt weiß ich natürlich nicht wirklich wo ich ansetzten soll. Ein Blick in die Log Datei ist selbst mit Verbose 3 oder 5 sehr ernüchternd und bringt keine Infos.

Vielleicht hat jemand eine Idee und kann mich in die Richtige Richtung stupsen.

Ich danke schon mal vorab

Gruß

Helmuth
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Helmuth am 11 März 2020, 11:53:27
Hallo nochmal

Hat niemand ein Idee wie ich dem Problem auf die Schliche kommen kann??

Ich muss leider immer noch nach jedem Neustart die die Lautsprecher Devices löschen und neu anlegen.

Könnte ich das eventuell erstmal automatisieren bis das Problem gelöst ist? Bei 5 Lautsprechern ist das mittlerweile echt nervig.

Grüße

Helmuth
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 11 März 2020, 23:04:27
Hallo Helmuth,

ohne logs ist das natürlich schwer zu sagen, was die Ursache sein könnte.
dein FHEM ist auf einem  rasperry pi ? Läuft bei dir denn der DLNARenderer und erkennt deine Musiccast Devices ?

Das kann eigentlich dann nur mit den Net::UPnP::ControlPoint oder Net::UPnP::AV::MediaRenderer Funktionen zu tun haben.

Was sind denn die letzten Einträge im Log vor dem Absturz ?

Gruß,
Leugi
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Dev am 12 März 2020, 17:34:59
Hallo @Leugi,

kannst du mir bitte helfen. Wenn ich meinen MC Lautsprecher in FHEM integrieren will bekomme ich immer folgende Fehlermeldung: Cannot load module YAMAHA_MC.
Habe FHEM auf den neuesten Stand gebracht und perl module JSON ist am Loxberry auch installiert.

Danke
Dev
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Helmuth am 12 März 2020, 17:39:08
Hallo Leugi

Danke für deine Antwort. Ich hab die beiden Pakete überprüft. Das erste fehlte und ich war hoffnungsvoll. Das Problem ist leider geblieben.

Zu deinen Fragen. Fhem läuft bei mir im offiziellen und aktuellen Docker Container auf einer Synology. Ich habe noch einen Fallback Server mit Linux Mint 19.2 als Grundlage wo fhem direkt drauf läuft ohne Docker. Auch dort ist das gleiche Problem sodass ich denke das irgendwas in Perl fehlt. Ich habe allerdings schon mehrfach geprüft und bis auf deinen Tipp nichts fehlendes gefunden.

Ich habe jetzt mal den DLNARenderer angelegt der alle Lautsprecher findet und automatisch anlegt ohne das fhem neu startet. Allerdings kann ich die Lautsprecher damit nicht bedienen was wahrscheinlich auch dafür spricht das irgendwas fehlt.

Im Log File stehen leider keine Informationen warum fhem neu startet nur das er neu gestartet hat finde ich.

Vielleicht fällt dir noch ein Trick ein der mir weiterhilft. Ich wäre dir sehr dankbar.

Viele Grüße

Helmuth
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: sprudelverduenner am 12 März 2020, 17:51:29
Zitat von: sprudelverduenner am 21 Februar 2020, 21:21:16
Naaaaabend,

Gibt es eigentlich eine Möglichkeit relativ einfach auf die Podcasts innerhalb des Netradio zurück zu greifen?

Evtl. so in der Form, dass ich in den Podcast Favoriten einen Podcast wählen kann und dann zB Podcasts in der absteigenden Reihenfolge angespielt werden bis ich feststelle, dass ich diesen bereits gehört habe und ich dann wieder auf Radio wechsele....?

Danke für eure Antworten.

LG, Sprudelverduenner

@Leugi
Hast Du evtl. eine Idee??
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 12 März 2020, 20:45:07
@Helmuth
ohne Logeinträge bin ich auch win wenig ratlos. Um das einzugrenzen könntest du, wenn du dir das zutraust, in der Datei 71_YAMAHA_MC.pm
in Zeile 525 ff. den Text :

if ( $DLNAsearch eq "on" ) {

        Log3 $name, 4, "$name YAMAHA_MC_DiscoverDLNAProcess calling YAMAHA_MC_DiscoverDLNAServer";
        YAMAHA_MC_DiscoverMediaServer($hash);
        Log3 $name, 4, "$name YAMAHA_MC_DiscoverDLNAProcess calling YAMAHA_MC_DiscoverRenderer";
        YAMAHA_MC_DiscoverRenderer($hash);

        Log3 $name, 4, "$name YAMAHA_MC_DiscoverDLNAProcess returning";


durch folgenden ersetzen :


if ( $DLNAsearch eq "on" ) {

        Log3 $name, 4, "$name YAMAHA_MC_DiscoverDLNAProcess calling YAMAHA_MC_DiscoverDLNAServer";
        #YAMAHA_MC_DiscoverMediaServer($hash);
        Log3 $name, 4, "$name YAMAHA_MC_DiscoverDLNAProcess calling YAMAHA_MC_DiscoverRenderer";
        #YAMAHA_MC_DiscoverRenderer($hash);

        Log3 $name, 4, "$name YAMAHA_MC_DiscoverDLNAProcess returning";


Dadurch wird das Suchen des MediServers und des Renderers unterbunden. Danach fhem neu starten.
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 12 März 2020, 21:12:25
@Dev
Im Log sollte vor "Cannot load module YAMAHA_MC" noch irgendwo die Ursache stehen, waum das Modul einen Fehler hat.
In der Regel ist es ein fehlendes Perl Modul.

Ist JSON installiert ?
sudo apt-get install libjson-perl

Ist upnp installiert ?
apt-get install libnet-upnp-perl
oder alternativ :
sudo cpan NET::UPNP
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 12 März 2020, 21:32:52
@sprudelverduenner
das geht leider nicht, weil bei einme Pocast man nicht merkt, wann das erste Stück sich wiederholt.
Zumindest wurde bei mir beim Testen kein Album Name o.ä. angezeigt woran man merken könnte, dass der Podcast einma rum ist
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Dev am 12 März 2020, 22:08:03
@Leugi

danke für den Hinweis, upnp hat gefehlt. Nun funktioniert's.

Danke
Dev
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: sprudelverduenner am 13 März 2020, 07:02:39
Zitat von: Leugi am 12 März 2020, 21:32:52
@sprudelverduenner
das geht leider nicht, weil bei einme Pocast man nicht merkt, wann das erste Stück sich wiederholt.
Zumindest wurde bei mir beim Testen kein Album Name o.ä. angezeigt woran man merken könnte, dass der Podcast einma rum ist

Könnte ich denn irgendwie zumindest immer den neuesten Podcast abspielen lassen ??
Also in der Abspielliste den den ersten in der Liste?
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 13 März 2020, 12:54:32
@sprudelverduenner
ich habe gerade festgestellt, dass man den gesamten Podcast ja gar nicht als Favoriten anlegen kann, sondern nur eine Episode.
Man kann aber den gesamten Pocast als netRadio-Favoriten anlegen und dann mittels der menuBefehle dorthin navigieren - ist aber sehr mühselig
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: sprudelverduenner am 13 März 2020, 15:18:04
Zitat von: Leugi am 13 März 2020, 12:54:32
@sprudelverduenner
ich habe gerade festgestellt, dass man den gesamten Podcast ja gar nicht als Favoriten anlegen kann, sondern nur eine Episode.
Man kann aber den gesamten Pocast als netRadio-Favoriten anlegen und dann mittels der menuBefehle dorthin navigieren - ist aber sehr mühselig
Ja... als netradio Favorit habe ich mir den Podcast abgelegt.
Aber mit den Befehlen dahin bin ich absolut nicht parat gekommen.
Deshalb ja die Frage....
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Helmuth am 13 März 2020, 17:35:26
Hallo Leugi

ich habe die 71_YAMAHA_MC.pm entsprechend geändert. Wenn ich jetzt DLNAsearch bei meinem MC_Bu was meinem WX-021 im Büro enstricht auf on stelle bleibt fhem stabil am laufen. Ich habe dann im MC und TTS Module verbose auf 5 gesetzt und eine Sprachausgabe produziert. Erwartungsgemäß fand fhem das nicht lustig und hat sich mit einem Neustart beschwert.

Und siehe da ich habe Log Einträge die ich Anhänge. Das Problem mit dem Ro_Fe_Ku userReadings habe ich schon gefixt.

Ich hoffe Du kannst anhand des LogFiles etwas finden was Probleme macht.

Vielen Dank im Vorraus

Gruß Helmuth

PS. Sorry wegen der Darstellungprobleme eben. Hab die Datei jetzt angehangen.
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 13 März 2020, 19:35:11
@Helmuth
bitte den Log mal in Code-tags packen.

Hört der Log dort wirklich auf ? Bis dahin ist noch kein Fehler aufgetreten.

Wenn du die DLNA Befehle wie von mir vorgeschlagen mit # davor deaktiviert hast, dann funktioniert natürlich auch die Sprachausgabe nicht mehr,
weil diese die DLNA Funktionalität benutzt. Habe ich nur vorgeschlagen, damit wir den Fehler eingrenzen können und das Modul wieer bei dir läuft.
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Helmuth am 13 März 2020, 19:46:32
Hallo Leugi

so mit den # läuft das Modul. Soll ich die wieder entfernen und nochmal die Log Daten posten?

Das einzige was mir aufgefallen war, das er in Zeile 955 was zu meckern hatte aber ich kann da nicht wirklich viel mit Anfangen mit der Meldung.

Grüße

Helmuth
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 13 März 2020, 23:09:33
@Helmuth
bitte mal nur bei #YAMAHA_MC_DiscoverRenderer($hash); 
das # entfernen und schauen was im Log steht.

Hast du denn lokal einen DLNA Server (z.B. Minidlna) laufen ?
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Helmuth am 14 März 2020, 22:56:53
Hallo Leugi

Den minidlna habe ich aktiv. Ich habe alles so eingerichtet wie in Post #14 beschrieben. Habe heute nochmal rumprobiert, habe die entsprechend # entfernt. Nachdem ich DLNAsearch bei einem Lausprecher auf on gestellt habe ist fhem kurz darauf abgeschmiert. Es lief dann aber nach einem Neustart wieder. Dann habe ich die anderen Lautsprecher auf on gestellt und das Verhalten der Neustarts nahm seinen Lauf. Im Log leide keine Einträge.

Was an der Situation garnicht verstehe ist ja wie Eingangs geschrieben, lösche ich alle Lautsprecher und lege sie inklusive der attribute wieder an läuft alles auch die Sprachausgabe Problemlos bis ich einen shutdown restart mache bzw machen muss zb nach fhem update.

Die ganze Problematik ist auch erst seid dem fhem update von 5.9 auf 6.0. Davor lief alles Monate lang Fehlerfrei.

Vielleich hast du noch eine Idee.

Gruß Helmuth
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Dia81 am 18 März 2020, 22:04:45
Hallo zusammen,

Habe eine hoffentlich einfache Frage. Ich nutze das Modul um meinen Yamaha Receiver morgens auf Zone a uns zone b das net radio einzuschalten. Leider ist dies immer zu leise. MusicCast scheint hier eine Standard Lautstärke zu setzen oder reist immer zu leise weil beim Vorabendlichen einschalten auf tv die Lautstärke anders ist. Lange Rede ... wie kann ich eine fixe Lautstärke einstellen ? Denn wenn ich eine relative einstelle über die entsprechenden Eingaben z.b volume 100% erhöhen laufe ich ja die Gefahr das mir alles wegfliegt weil der Receiver zufällig vorher lauter eingestellt war. Wie könnte ich also lösen das ich z,nimmer net Radio fav 4 mit meiner wunschlautstärke Steuer (zb -36db). Danke euch , ist nämlich nervig dann jeden Morgen Alexa zu sagen ,,schalte Küche lauter , schalte Küche lauter ,,. Danke euch
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Helmuth am 18 März 2020, 23:25:05
Hallo Dia81

Es gibt zwei Möglichkeiten entweder setzt du das Attribut standard_volume im device oder machst es wie ich, du schaltest über ein doif und schickst die Laustärken Einstellung mit. Dann kann man auch unterschiedliche Lautstärken für TV net_radio und zb Spotify setzen.

Grüße Helmuth
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Dia81 am 19 März 2020, 09:19:26
Zitat von: Helmuth am 18 März 2020, 23:25:05
Hallo Dia81

Es gibt zwei Möglichkeiten entweder setzt du das Attribut standard_volume im device oder machst es wie ich, du schaltest über ein doif und schickst die Laustärken Einstellung mit. Dann kann man auch unterschiedliche Lautstärken für TV net_radio und zb Spotify setzen.

Grüße Helmuth

Hey danke. Geht das denn auch in meinem Fall? Habe ja nur eine Zone a und Zone b definiert. Für diese Definitionen muss ich dann das Attribut setzen ?

Danke dir
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Helmuth am 19 März 2020, 11:24:21
Hi Dia81

Ich habe nur eine Zone in Betrieb aber ich meine mich zu Erinnern zweite Zone gleich zweites device anlegen. Sk kannst dann in jedem device das Attribut setzen. Eine kleine Hürde gjbt es noch. Im device selber kannst du nur den Wert 15 auswählen.  Da kannst du leicht umgehen in dem du in der fhem Eingabeleiste zb

attr devicename standard_volume 40 im enter abschickst und schon hast es geändert.

Wenn du mehrere Lautsprecher hast wie ich kannst du den Anfang des Namens bei allen gleich nenen. Bei mir fangen alle Lautsprecher mit MC_ an. Somit kann ich dann ein Attribut mit MC_.* als devicename auf allen Lautsprechern zu gleich ändern.

Gruß Helmuth
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Dia81 am 19 März 2020, 20:07:41
Zitat von: Helmuth am 19 März 2020, 11:24:21
Hi Dia81

Ich habe nur eine Zone in Betrieb aber ich meine mich zu Erinnern zweite Zone gleich zweites device anlegen. Sk kannst dann in jedem device das Attribut setzen. Eine kleine Hürde gjbt es noch. Im device selber kannst du nur den Wert 15 auswählen.  Da kannst du leicht umgehen in dem du in der fhem Eingabeleiste zb

attr devicename standard_volume 40 im enter abschickst und schon hast es geändert.

Wenn du mehrere Lautsprecher hast wie ich kannst du den Anfang des Namens bei allen gleich nenen. Bei mir fangen alle Lautsprecher mit MC_ an. Somit kann ich dann ein Attribut mit MC_.* als devicename auf allen Lautsprechern zu gleich ändern.

Gruß Helmuth

Ok verstehe ich finde aber keine Dokumentation zu dem Attribut. Wie wird es eingestellt also wenn ich z.b -30 dB benötige wäre der Wert 30 dann richtig ? Finde dazu nix in der Commandref....
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Helmuth am 20 März 2020, 01:35:44
Hallo

Ich würde den Wert 30 einstellen und testen. Dann ggf noch mal nach unten ober oben nach korrigieren.

Grüße
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Helmuth am 25 März 2020, 11:37:07
Hallo

da ich nach wie vor das selbe Problem habe und im Logfile neue Einträge stehen, will ich das Thema nochmal hochholen.

Meine Einträge

2020.03.25 10:52:19 2: YAMAHA_MC: MC_Bu YAMAHA_MC_httpRequestParse last cmd=getStatus failed with error: http://192.168.178.85:80/YamahaExtendedControl/v1/main/getStatus: empty answer received
2020.03.25 10:52:19 2: YAMAHA_MC: MC_Bu YAMAHA_MC_httpRequestParse error occured increasing timeout counter to 1
2020.03.25 10:52:19 3: UWZ Unwetterzentrale: UWZ.1733 Done fetching data
2020.03.25 10:52:19 2: YAMAHA_MC (MC_Bu) - could not execute command on device MC_Bu. Please turn on your device in case of deactivated network standby or check for correct hostaddress.
2020.03.25 10:52:19 2: YAMAHA_MC: MC_Sz YAMAHA_MC_httpRequestParse last cmd=getStatus failed with error: http://192.168.178.81:80/YamahaExtendedControl/v1/main/getStatus: empty answer received
2020.03.25 10:52:19 2: YAMAHA_MC: MC_Sz YAMAHA_MC_httpRequestParse error occured increasing timeout counter to 1
2020.03.25 10:52:19 2: YAMAHA_MC (MC_Sz) - could not execute command on device MC_Sz. Please turn on your device in case of deactivated network standby or check for correct hostaddress.
2020.03.25 10:52:19 2: YAMAHA_MC: MC_Ba YAMAHA_MC_httpRequestParse last cmd=getStatus failed with error: http://192.168.178.84:80/YamahaExtendedControl/v1/main/getStatus: empty answer received
2020.03.25 10:52:19 2: YAMAHA_MC: MC_Ba YAMAHA_MC_httpRequestParse error occured increasing timeout counter to 1
2020.03.25 10:52:19 2: YAMAHA_MC (MC_Ba) - could not execute command on device MC_Ba. Please turn on your device in case of deactivated network standby or check for correct hostaddress.
2020.03.25 10:52:19 2: YAMAHA_MC: MC_Ku YAMAHA_MC_httpRequestParse last cmd=getStatus failed with error: http://192.168.178.83:80/YamahaExtendedControl/v1/main/getStatus: empty answer received
2020.03.25 10:52:19 2: YAMAHA_MC: MC_Ku YAMAHA_MC_httpRequestParse error occured increasing timeout counter to 1
2020.03.25 10:52:19 2: YAMAHA_MC (MC_Ku) - could not execute command on device MC_Ku. Please turn on your device in case of deactivated network standby or check for correct hostaddress.
2020.03.25 10:52:19 3: HMUARTLGW Homematic_Gateway BidCoS-port opened
2020.03.25 10:52:19 3: YAMAHA_AVR (AV_Wz) - could not execute command on device AV_Wz. Please turn on your device in case of deactivated network standby or check for correct hostaddress.
2020.03.25 10:52:19 2: YAMAHA_MC: MC_Wz YAMAHA_MC_httpRequestParse last cmd=getStatus failed with error: http://192.168.178.82:80/YamahaExtendedControl/v1/main/getStatus: empty answer received
2020.03.25 10:52:19 2: YAMAHA_MC: MC_Wz YAMAHA_MC_httpRequestParse error occured increasing timeout counter to 1
2020.03.25 10:52:19 2: YAMAHA_MC (MC_Wz) - could not execute command on device MC_Wz. Please turn on your device in case of deactivated network standby or check for correct hostaddress.


Ich hoffe Ihr könnt mir weiterhelfen ich verzweifel langsam.

Grüße Helmuth
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 26 März 2020, 19:53:52
Hallo Helmuth,

das sieht so aus als wäre dein Gerät gar nicht erreichbar !!
Ist das Gerät einegschaltet oder zumindest der NetworkStandby eingeschaltet ?

Kannst du im Browser diese URL aufrufen :
http://192.168.178.81:80/YamahaExtendedControl/v1/main/getStatus

Kommt da eine Antwort ?

Gruß,
Leugi
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Helmuth am 26 März 2020, 20:54:10
Hallo Leugi

Die Daten sind aktuell erreichbar. Ich habe nach dem fhem neustart alle 5 geräte gelöscht und neu angelegt. Bis zum nächsten Neustart wird es jetzt wieder laufen inklusive Sprachausgabe. Das kann nicht die Dauerlösung sein.

Ich begreife nicht was sich durch einen neustart verändert. Wie gesagt mit fhem version 5.9 hatte ich das problem nicht. Ich weiß auch nicht ob ich problemloß zurück auf V 5.9 zurück komme. Wobei das auch keine Dauerlösung sein kann.

Ich weiß nicht weiter.

Grüße Helmuth
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Dia81 am 15 April 2020, 22:32:05
Zitat von: Helmuth am 20 März 2020, 01:35:44
Hallo

Ich würde den Wert 30 einstellen und testen. Dann ggf noch mal nach unten ober oben nach korrigieren.

Grüße
Danke komme leider erst jetzt dazu. Gibt es denn jemand der mir sagen kann was welcher Wert nun anrichtet bei standard_volume ? Habe Angst durch eine Test Einstellung meine Boxen zu killen. Irgendwas muss der Wert ja besagen wenn es nicht db sind :)
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 16 April 2020, 13:20:10
das sind 30%, weil es in Fhem ja einen Slider von 0 bis 100% dafür gibt.
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Schlimbo am 22 April 2020, 16:12:37
Zitat von: Leugi am 10 März 2019, 16:07:57

Voraussetzungen für die Verwendung dieses Modul sind die Installation der folgenden Pakete :


sudo apt-get install libjson-perl
sudo apt-get install libmp3-info-perl
sudo apt-get install -y libnet-upnp-perl
perl -MCPAN -e 'install MP3::Info'


Hallo Leugi,
erst mal vielen dank für das Modul.
Hätte da noch eine Bitte: Könntest du die obenstehenden Abhängigkeiten auch in die Commandref aufnehmen? Hier ist aktuell nur Json aufgeführt.

Beste Grüße
Schlimbo
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 25 April 2020, 19:52:20
Hallo Schlimbo,

gute Idee werde ich mit in der Commandref aufnehmen.

Gruß,
Leugi
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Schlimbo am 29 April 2020, 00:15:50
Hallo Leugi,
Im Log ist mir gerade noch folgende Meldung aufgefallen:
2020.04.28 23:02:29.699 1: PERL WARNING: Prototype mismatch: sub main::decode_json ($) vs ($;$$) at ./FHEM/71_YAMAHA_MC.pm line 3003.
Hast du eine Idee was hierfür die Ursache ist?
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Helmuth am 07 Juni 2020, 17:10:46
Hallo Leugi

Ich wollte mich nochmal melden, da ich mittlerweile mein setting soweit geändert das ich mit der Lösung recht zufrieden bin.

Was hab ich geändert:

Ich habe mit eine zweite Fhem Docker Umgebung angelegt.

Dort sind jetzt die Musiccast Module der Lautsprecher, TTS und notify Module, und natürlich läuft der miniDLNA Server dort.

Verbunden sind beide Container über FhemSync, so dass meine Ansteuerung (DOIF,Notify,at) ich nenne ihn mal Master Docker, geblieben ist.

Im Slave besteht zwar immer noch das Problem beim Neustart, aber da dort ja im Prinzip nur 3 Module werkeln, ist ein update nicht so häufig notwendig wie im Master, der jetzt einwandfrei läuft.

Ein weiterer Vorteil ist natürlich wenn der Slave Container mal abschmiert und hängen bleibt, fehlt nur die Sprachausgabe und der Rest läuft.

Viel Grüße

Helmuth
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: JonasE am 22 Juni 2020, 12:33:17
Hi Leugi,

ich habe mal wieder einen Mini Patch. Damit kann auch der Eingang des Geräts über udp Events direkt gelesen werden.

Viele Grüße
Jonas

Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Take-Off am 27 Juli 2020, 22:08:58
Hallo zusammen,

ich habe seit einiger Zeit ein Problem mit der Mute Funktion des Moduls.
Ich würde gerne mit "mute toggle" über einen webCmd Button hin- und herschalten.

Das Problem ist dass alle meine Geräte (YSP-2700, WX-010, WX-030) das folgende "Problem" haben:
Mute ist entweder 0 oder 1. D.h. bei "mute toggle" wird auf false geschalten. Drückt man nun schnell genug noch einmal. Erreicht man ein mute = true. Kurz darauf wechselt das Reading dann auf 1.
Ist man zu langsam wechselt das reading wieder auf 0 und ein erneuter Mute-Befehl endet wieder auf False.

Folgender Befehl wird natürlich nicht akzeptiert:set YSP mute 1

Was kann ich tun um zwischen 0 und 1 zu togglen statt zwischen true und false?
Oder muss dafür das Modul angepasst werden?

Danke schonmal  :)
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: KyleK am 06 September 2020, 21:32:01
Hallo,

ich habe 2 Sachen zu dem MusicCast-Modul, die ich gerne ansprechen möchte:
1. in den Logs (und im Event-Monitor) taucht immer wieder folgende Zeile auf, wenn mein Receiver an ist:
2020-09-06_21:00:25 RX_S602 response_code: 4
2020-09-06_21:02:25 RX_S602 response_code: 4
2020-09-06_21:03:25 RX_S602 response_code: 4
2020-09-06_21:04:25 RX_S602 response_code: 4
2020-09-06_21:05:25 RX_S602 response_code: 4
2020-09-06_21:06:25 RX_S602 response_code: 4


Was kann ich aus dieser Meldung entnehmen? Laut Spec ist alles außer 0 ein Fehlercode, aber ich bin nicht sicher ob response_code ein Reading wert ist?

Das 2. Problem ist etwas komplexer:
Ich habe ein DOIF welches auf die Readings power: on und power: off reagiert.
Jetzt passiert es hin und wieder dass sich das MusicCast Device scheinbar verschluckt, und dann falsche readings schickt.
Hier ein Logauszug:
2020-09-06_20:46:30 RX_S602 power: on
2020-09-06_20:46:30 Steckdose.Surround on
2020-09-06_20:46:30 di.SurroundBoxen cmd_nr: 1
2020-09-06_20:46:30 di.SurroundBoxen cmd: 1
2020-09-06_20:46:30 di.SurroundBoxen cmd_event: RX_S602
2020-09-06_20:46:30 di.SurroundBoxen on
2020-09-06_20:46:30 Steckdose.Surround off
2020-09-06_20:46:30 Steckdose.Surround on
2020-09-06_20:47:09 RX_S602 last_error: http://192.168.178.55:80/YamahaExtendedControl/v2/main/getStatus: empty answer received
2020-09-06_20:47:09 RX_S602 presence: absent
2020-09-06_20:47:09 RX_S602 on
2020-09-06_20:47:09 RX_S602 power: off
2020-09-06_20:47:09 di.SurroundBoxen wait_timer: 06.09.2020 20:52:09 cmd_2 RX_S602
2020-09-06_20:47:39 RX_S602 volume: 73
2020-09-06_20:47:39 RX_S602 volume: 74
2020-09-06_20:47:39 RX_S602 volume: 75
2020-09-06_20:47:40 RX_S602 volume: 76
2020-09-06_20:47:47 RX_S602 volume: 77
2020-09-06_20:47:47 RX_S602 volume: 78
2020-09-06_20:49:09 RX_S602 off
2020-09-06_20:49:09 RX_S602 presence: present
2020-09-06_20:49:09 RX_S602 power: on
2020-09-06_20:49:09 RX_S602 input: hdmi3
2020-09-06_20:49:09 RX_S602 on
2020-09-06_20:49:09 RX_S602 last_error: Invalid Parameter (Out of range, invalid characters etc.)
2020-09-06_20:49:09 RX_S602 response_code: 4
2020-09-06_20:50:53 RX_S602 volume: 77
2020-09-06_20:50:53 RX_S602 volume: 76
2020-09-06_20:50:53 RX_S602 volume: 75
2020-09-06_20:50:53 RX_S602 volume: 74
2020-09-06_20:50:54 RX_S602 volume: 73
2020-09-06_20:50:54 RX_S602 volume: 72
2020-09-06_20:51:09 RX_S602 response_code: 4
2020-09-06_20:52:09 di.SurroundBoxen wait_timer: no timer
2020-09-06_20:52:09 Steckdose.Surround off
2020-09-06_20:52:09 di.SurroundBoxen cmd_nr: 2
2020-09-06_20:52:09 di.SurroundBoxen cmd: 2
2020-09-06_20:52:09 di.SurroundBoxen cmd_event: RX_S602
2020-09-06_20:52:09 di.SurroundBoxen off
2020-09-06_20:52:09 Steckdose.Surround off
2020-09-06_20:52:09 Steckdose.Surround off
2020-09-06_20:52:09 RX_S602 response_code: 4


Um 20:46:30 hab ich den Receiver eingeschaltet.
Um 20:47:09 ist das MusicCast Device plötzlich der Meinung der Receiver sei offline, was mein DOIF triggert.
Ich hab den Receiver aber nicht angerührt, er hat seinen Status nicht geändert.

Warum meldet das Device power: off, obwohl der Receiver an ist?


Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: rs am 07 September 2020, 19:10:39
Ciao

Bitte, kann ich denn auch eine MP3 via minidlna an das musiccast Gerät ausgeben?

Wäre froh um einen Hinweis, Link ...

RS
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: maeke am 08 Oktober 2020, 18:55:36
Hallo
Entschuldigung falls ich hier falsch bin.. Evt könnt ihr mir den richtigen Treat nennen.

Ich wollte die Lautstärke vom WXC-50 per Siri steuern. Wenn ich z.B" setze Tisch 50" sage das die Lautstärke auf 50% geht.
Im Eve erscheit über homebridge ein Regler, aber nicht in Home. (Es heisst Gerät nicht zertifiziert)

Nun habe ich ein FS20 Dummy erstellt den ausgelesen und mit notify den Wert an Die Yamaha Lautstärke übergeben. Dies funktioniert auch. Ich wollte nur Fragen ob es einen leichteren Weg gibt bzw. ob man das direkt lösen kann und z.B diverse andere Einstellungen auch über Siri Steuern kann.

Anbei meine Lösung:
Tisch steht für das Gerät im Wohnzimmer (verständlicher Siri Befehl) (Stube Sweizerdeutsch für Wohnzimmer) :)

define Stube YAMAHA_MC xx.xx.x.x 80 120 60
attr Stube genericDeviceType Amplifier
attr Stube group Media
attr Stube homebridgeMapping On=state,valueOn=/on|mute|1/,valueOff=/off|standby|disappeared|0/,cmdOn=on,cmdOff=off Mute=mute::mute Volume=volume::volume,delay=trueMute=mute::mute Volume=volume::volume,delay=true
attr Stube room Homekit,Licht
attr Stube webCmd on:off:volume:input

define Tisch FS20 1111 18
attr Tisch IODev CUL868
attr Tisch room Homekit,Yamaha

define StubeTisch notify Tisch:* set Stube volume {(substr((ReadingsVal("Tisch","state",1)),3,2) -1)}

substr cutet das dim und das % Zeichen weg

Vielleicht hilft das ja auch welchen mit dem gleichen Wunsch
Besten Dank für eure Hilfe
maeke
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 08 Oktober 2020, 21:02:33
Hallo,

das homebridgemapping sieht irgendwie doppelt aus, das in rot kann m.E. weg.

attr Stube homebridgeMapping On=state,valueOn=/on|mute|1/,valueOff=/off|standby|disappeared|0/,cmdOn=on,cmdOff=off Mute=mute::mute Volume=volume::volume,delay=trueMute=mute::mute Volume=volume::volume,delay=true

zusätzlich würde ich noch
attr Stube siriName "Tisch"
angeben und

vielleicht mal mit genericDeviceType Speaker statt Amplifier testen :
attr Stube genericDeviceType Speaker

Gruß
Leugi
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: maeke am 08 Oktober 2020, 23:10:12
Hallo

habe die Fehler Korrigiert, Unter Home sehe ich aber nur ( wie gehabt) einen Schalter und beim draufklicken schaltet der Varstärker auch ein, beim gedrückt halten kommt ein Menu im gegensatz zu den FS20 wo ein Regler auftaucht. Somit geht auch kein Befehl wie:
setze Tisch 50 oder Setze Tisch Volume/Lautsprecher 50
Da du meinst es gehe mach Mut ich dachte das ginge evt noch nicht.
Unter Eve taucht ein Regler auf. Dort gibts halt kein Siri..
werde mich evt weiter mit homebridgeMapping befassen müssen.
Falls euch noch was einfällt wäre ich dankbar
anbei noch ein Bild des Menus evt hilfts euch.

Danke jedenfalls für das schnelle Feedback

gruss maeke
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: jhohmann am 21 Oktober 2020, 17:10:53
Da ich kein Yamaha Musiccast habe, kann ich hier vom Gerät her nicht mit reden, aber zu dem Homebridge Problem fällt mir auf, dass das Gerät Tisch in der Homebridge sichtbar ist, der genericDeviceType wird hier aber empfohlen, bei dem Gerät Stube zu pflegen.
Sollte das nicht am "Tisch" gepflegt werden?
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: F_Klee am 20 November 2020, 20:27:37
Hallo Leugi,
habe tatsächlich "mal eben" alle MusicCast-Geräte bei einer befreundeten Familie in FHEM eingebunden. Das Modul ist echt klasse. Allerdings habe ich Probleme, die Geräte in smartVISU zu visualisieren. Hängen geblieben bin ich bei mute (der Rest kommt noch  ;) ). Dein Modul erwartet ein true oder false als Parameter. Zurückgeliefert wird aber 1 oder 0. Der basic.stateswitch in smartVISU könnte 1 oder 0 senden und empfangen. Optimal wäre, wenn man das Modul so ändern würde, das es 1 und 0 intern in true und false umsetzt und dann an das Gerät schickt. Dann bräuchte man noch nicht einmal einen speziellen Converter in fronthem. Außerdem wäre dann ein System darin und das Toggle-Problem, über das ich hier gelesen habe und das scheinbar immer noch existiert, ist dann vielleicht auch behoben. Aus Kompatibilitätsgründen kann man ja true und false beibehalten.
Da ich mir einen Konverter zusammengestrickt habe, ist es nicht eilig. Allerdings scheint bei dem Converter eine Rückmeldung, wenn der Anwender am Gerät selbst das Muting deaktiviert, nicht zu funktionieren. Damit kann ich aber leben.

Gruß
Frank
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: jhohmann am 25 November 2020, 15:39:04
Ich habe inzwischen auch ein Musiccast Gerät zugelegt und das Modul funktioniert für meinen Einsatzzweck gut, vielen Dank für die Arbeit.
Mir ist nur aufgefallen, dass nach einem Neustart von FHEM und dann einem Einschalten des Geräts im Log von FHEM eine Fehlermeldung auftaucht.
2020.11.25 06:49:09 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/71_YAMAHA_MC.pm line 2609.
2020.11.25 06:49:09 1: stacktrace:
2020.11.25 06:49:09 1:     main::__ANON__                      called by ./FHEM/71_YAMAHA_MC.pm (2609)
2020.11.25 06:49:09 1:     main::YAMAHA_MC_httpRequestQueue    called by ./FHEM/71_YAMAHA_MC.pm (766)
2020.11.25 06:49:09 1:     main::YAMAHA_MC_getInputs           called by ./FHEM/71_YAMAHA_MC.pm (668)
2020.11.25 06:49:09 1:     main::YAMAHA_MC_GetStatus           called by fhem.pl (3350)
2020.11.25 06:49:09 1:     main::HandleTimeout                 called by fhem.pl (685)

Sagt das jemanden was?
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 02 Januar 2021, 21:36:13
Hallo zusammen.

Es gibt nun ein Update des Moduls mit folgenden Änderungen :

1. der Befehl mute akzeptiert nun auch 0 und 1 als Parameter
2. Bei setSpeakerA und setSpeakerB habe ich die URL korrigiert auf YamahaExtendedControl/v2/system/..
    solte dadurch jetzt funktionieren, wenn der Receiver das unterstützt
3. ich habe jetzt in der reglemäßigen Aktualisierung die getFuncStatus auch mit ausgeführt,
    die Werte für SpeakerA und SpeakerB werden dadurch jetzt auch regelmäßgig

Gruß
Leugi
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: mrnatcho am 10 Januar 2021, 15:03:13
Moin Leugi et al,

erstmal danke für das Yamaha Modul! Macht schon viel Freude.

Ich bastel gerade für mein Tablet UI eine Steuerung für einen WX-021 basierend auf dem Sonos Beispiel von reinerlein (https://wiki.fhem.de/wiki/SONOS#Beispiele_f.C3.BCr_FTUI-Integrationen (https://wiki.fhem.de/wiki/SONOS#Beispiele_f.C3.BCr_FTUI-Integrationen))).

Jetzt hänge ich am Toggle Button für Repeat, zu dem ich in der Commandref nichts finden kann. Mein Device in FHEM zeigt auch kein Reading oder Internal für den Repeat status aus. In der API Referenz für Yamaha finde ich eine Transport Control:
Repeat (Toggle) http://192.168.5.219/YamahaExtendedControl/v1/netusb/toggleRepeat
Die kann ich auch über den Browser nutzen. Ist die in dem Modul nicht implementiert, oder bin ich nur zu blind sie zu finden?

Beste Grüße (und frohes neues Jahr)
MrNatcho
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 14 Januar 2021, 22:45:37
Hallo mrnatcho

Ich habe die toggleRepeat Funktion jetzt mit aufgenommen.
Habe sie allerdings nicht getestet.
Vielleicht mal ausprobieren.

Gruß,
Leugi
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: mrnatcho am 15 Januar 2021, 18:50:34
Moin,

die Funktion funktioniert. Thx!

Es klingt jetzt so als würde ich hier faul auf der Couch sitzen und andere arbeiten lassen, aber meine Perl Kenntnisse sind leider zu beschränkt um direkt zum Yamaha Modul beizutragen. Könntest Du auch noch die Funktion "toggleShuffle" sowie die beiden Readings aus dem getPlayInfo mit aufnehmen (repeat, shuffle)?

Ansonsten sieht der Player schon mal so aus (MP3 von einem lokalen server): siehe Anhang
Was funktioniert:
- Anzeige Raumname
- Anzeige Albumcover bzw. Logo von Internerradio
- Anzeige Album / Track (Bzw. Sender und Trackinformation)
- Knöpfe Mute, Repeat, track vor, track zurück, play/pause
- Knopf Menu ist zwar sichtbar, macht aber noch nichts
- Vor- und Zurückspulen (leider ohne Anzeige wo im track man gerade ist, muss man das Spultempo halt raten)

Was noch zu tun ist:
- Integration Multi-room / Anzeige falls der Player in einem multi-room mitläuft
- Menu Funktionalität zur Auswahl Favoriten
- Genereller Menübutton zur Auswahl von Musik von einem lokalen server, suche nach netradio etc. (ist das über das Interface von Yamaha überhaupt möglich?)

Viele Grüße
MrNatcho
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: Leugi am 16 Januar 2021, 18:47:56
Hallo MrNatcho,

das sieht ja schon super aus ! Vielleicht kannst du das hier teilen, wie du das erreicht hast ?

Ich habe nun toggleShuffle und die Readings für Repeat und Shuffle implementiert.
Ich habe auch noch die Werte für Total_Time und Play_Time übernommen, vielleicht hilft dir das ja.

Neue Version wird morgen produktiv.

Gruß,
Leugi
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: mrnatcho am 17 Januar 2021, 14:22:43
Moin,

Danke für die Readings, sind eingebaut.
Total_time und Play_time sind noch etwas unwillig, ich kriege für MP3 von einem lokalen DNLA Server nur die Play_Time zurück, damit ist die Darstellung wie im Sonos Original noch nichts. Aber auch in der Musiccast App sehe ich nur den aktuellen Stand und nicht die Tracklänge. Und auch nicht die Anzahl der Tracks in der Playlist sowie die Nummer des aktuellen Tracks. So lange bleiben die beiden Anzeiger aus der Sonos Vorlage erstmal auskommentiert.

Um den Player nachzubauen:
1. Styles und Script für die Scrolltexte entsprechend Anleitung von reinerlein (link siehe der vorherige Post) aufnehmen
2.  "widget_joinedlabel.js" entsprechend der Anleitung von reinerlein anpassen
3. Eine Verknüpfung zur HTML Seite für den Player in einem Gridster aufnehmen:
<li data-row="1" data-col="3" data-sizex="3" data-sizey="2" class="border-down-gray lesstransparent">
<div data-template="template_musik_yamaha.html" data-parameter='{"Device":"1OG.Gaestezimmer.MC"}'></div>
</li>


Und dann den folgenden Code in die als Template genannte Datei einfügen:

<header>
<!-- Multiroom Coding, noch nicht überarbeitet

<div data-type="classchanger" data-device="Device" data-get="SlavePlayerNotBonded" data-get-on='["[]"]' data-on-class="hide" data-off-class="mini" class="inline">
<div data-type="switch" data-device="Device" data-get="GroupMute" data-set="GroupMute"
data-icon="fa-deaf" data-background-icon="-"
data-on-color="#aa6900" data-off-color="gray"
data-get-on="1" data-get-off="0"
data-set-on="1" data-set-off="0" class="mini" style="margin-right: -5px;">
</div>
</div>

<div data-type="joinedlabel" data-device="Device" data-mask="[$1][ ($2)]" data-get='["roomName","ZoneGroupNameDetails"]' class="truncate inline"></div>

<div data-type="classchanger" data-device="Device" data-get="MasterPlayer" data-get-on="Device" data-on-class="hide" class="inline left-narrow">
<div data-type="push"
data-device="Device"
data-icon="fa-minus-circle"
data-background-icon="-"
data-set-on="MakeStandaloneGroup"
class="inline mini gray">
</div>
</div>

<div data-type="classchanger" data-device="Device" data-get="MasterPlayer" data-get-on="Device" data-off-class="hide" class="inline left-narrow">
<div data-type="popup" class="" data-width="400px" data-height="110px">
<div data-type="symbol"
data-icon="fa-chevron-circle-down"
class="mini"
style="height: 10px;">
</div>

<div class="dialog">
<header><div data-type="joinedlabel" data-device="Device" data-mask="Wiedergabegruppe[ für $1] anpassen" data-get='["roomName"]' class="inline"></div></header>

<div class="top-space-10 left-align left-space">
<div>
<div class="large middle inline">Player hinzufügen: </div>
<div data-type="select"
data-device="Device"
data-list="AvailablePlayerList"
data-alias="AvailablePlayerListAlias"
data-delimiter="|"
data-get="-"
data-set="AddMember"
class="inline w3x"
onchange="$('.dialog-close').trigger('click');"></div>
</div>

<div>
<div class="large middle inline">Player entfernen: </div>
<div data-type="select"
data-device="Device"
data-list="SlavePlayerNotBondedList"
data-alias="SlavePlayerNotBondedListAlias"
data-delimiter="|"
data-get="-"
data-set="RemoveMember"
class="inline w3x"
onchange="$('.dialog-close').trigger('click');"></div>
</div>
</div>
</div>
</div>
</div>
-->
</header


<div class="">
<div data-type="joinedlabel" data-device="Device" data-mask=" [~ $1 ~] " data-get='["location_name"]' class="bottom-narrow mini white" style="padding-top: 3px; background: rgba(170, 105, 0, 0.6);"></div>

<div data-type="popup" data-width="100%" data-height="100%">
<div style="margin-bottom: -40px;">
<div data-type="imagecover"
data-device="Device"
data-get="albumart_url"
data-opacity="1.0"
data-width="350px"
data-height="350px"
class=""
onclick="$('.dialog-close').trigger('click');"
style="margin-left: 12px; margin-top: 12px; border: 1px solid rgba(170, 105, 0, 0.6);">
</div>

<!-- Icon für Quelle der Mediendatei, z.B. Spotify einblenden, wenn vorhanden
Scheint bei Yamaha nicht zu existieren, könnte aber über die Quelle und lokale icons nachgebaut werden
-->
<!-- <div data-type="classchanger" data-device="Device" data-get="currentTrackProviderIconRoundURL" data-get-on="" data-on-class="hide">
<div class="inline" style="width: 40px; height: 40px; background: rgba(0, 0, 0, 0.40); position: relative; top: -349px; left: -152px;">
<div data-type="imagecover"
data-device="Device"
data-get="currentTrackProviderIconRoundURL"
data-opacity="1.0"
data-width="30px"
data-height="30px"
class=""
style="margin-left: 5px; margin-top: 5px;">
</div>
</div>
</div>-->
<!--
<div data-type="classchanger" data-device="Device" data-get="currentTrackProviderIconRoundURL" data-get-on="" data-off-class="hide">
<div class="inline" style="width: 40px; height: 40px; position: relative; top: -349px; left: -152px;">
</div>
</div> -->
</div>

<div class="dialog">
<header><div data-type="joinedlabel" data-device="Device" data-mask="Cover[ für $1]" data-get='["location_name"]' class="inline"></div></header>
<!-- ebenso fehlendes Icon des source providers
<div data-type="imagecover"
data-device="Device"
data-get="currentTrackProviderIconRoundURL"
data-opacity="1.0"
data-width="30px"
data-height="30px"
class=""
style="position: absolute; top: 25px; left: 5px;"
style="margin-left: 5px; margin-top: 5px;">
</div> -->

<div data-type="switch"
data-device="Device"
data-get="playback_status"
data-states='["play","pause","stop"]'
data-background-icon="-"
data-background-colors='["white","white","white"]'
data-colors='["white","white","white"]'
data-icons='["fa-play","fa-pause","fa-pause"]'
class="inline readonly"
style="position: absolute; top: 10px; right: -10px;"
onclick="$('.dialog-close').trigger('click');">
</div>


<div data-type="imagecover"
data-device="Device"
data-get="albumart_url"
data-opacity="1.0"
data-width="100%"
data-height="calc(100vh - 60px)"
class=""
onclick="$('.dialog-close').trigger('click');"
style="">
</div>
<!-- current position im track scheint vorhanden, gesamtlänge aber nicht...
<div data-type="classchanger" data-device="Device" data-get="currentNormalAudio" data-get-on="1" data-off-class="hide">
<div data-type="slider"
data-device="Device"
data-get="currentTrackPositionSimulatedSec"
data-max="currentTrackDurationSec" data-min="0"
data-step="1"
data-handle-diameter="5"
data-width="68%"
class="horizontal top-narrow readonly centered"></div>
</div>

<div data-type="classchanger" data-device="Device" data-get="playback_input" data-get-on="server" data-off-class="hide">
<div data-type="joinedlabel" data-device="Device" data-mask="[$1][ ~ $2][ ~ $3]" data-get='["track","station_name","album_name"]' class="truncate top-space"></div>
</div>
<div data-type="classchanger" data-device="Device" data-get="currentStreamAudio" data-get-on="1" data-off-class="hide">
<div data-type="joinedlabel" data-device="Device" data-mask="[$1 ~ ][$2][: $3]" data-get='["currentSenderInfo","currentSender","currentSenderCurrent"]' class="truncate top-space"></div>
</div>
-->
</div>
</div>
<!-- track lenght & current position & number of tracks not available on Yamaha
<div data-type="classchanger" data-device="Device" data-get="currentNormalAudio" data-get-on="1" data-off-class="hide">
<div data-type="label" data-device="Device" data-get="currentTrackPositionSimulated" class="inline" style="width: 3em;"></div>
<div data-type="slider"
data-device="Device"
data-set="CurrentTrackPosition"
data-get="currentTrackPositionSimulatedSec"
data-max="currentTrackDurationSec" data-min="0"
data-step="1"
data-handle-diameter="5"
data-width="250"
class="horizontal tap inline">
</div>
<div data-type="label" data-device="Device" data-get="currentTrackDuration" class="inline" style="width: 3em;"></div>

<div class="newline">
<div data-type="label" data-device="Device" data-get="currentTrack" class="inline center-align" style="width: 3em;"></div>
<div data-type="slider"
data-device="Device"
data-set="Track"
data-get="currentTrack"
data-max="currentMenumaxItems" data-min="0"
data-step="1"
data-handle-diameter="5"
data-width="250"
class="horizontal tap inline">
</div>
<div data-type="label" data-device="Device" data-get="numberOfTracks" class="inline center-align" style="width: 3em;"></div>
</div>
</div>
-->

<div data-type="classchanger" data-device="Device" data-get="playback_input" data-get-on="server" data-off-class="hide">
<div style="height: 40px;"> </div> <!-- Leerer Ersatz für die bei Server fehlende Positionsanzeige -->
</div>

<div data-type="classchanger" data-device="Device" data-get="playback_input" data-get-on="net_radio" data-off-class="hide">
<div style="height: 40px;"> </div> <!-- Leerer Ersatz für die bei Streams fehlende Positionsanzeige -->
</div>


<div class="large top-space">
<div data-type="classchanger" data-device="Device" data-get="playback_input" data-get-on="server" data-off-class="hide">
<div style="height: 21px;">
<div style="width: 355px; position: absolute; overflow: hidden; height: 21px; margin-left: 10px; margin-right: 10px;">
<div style="position: absolute;">
<div id="Device_Title" data-type="joinedlabel" data-device="Device" data-mask="[$1]" data-get='["track"]' data-onupdate="checkFlowAnimation('#Device_Title');" class="bold"></div>
</div>
</div>
</div>

<div style="height: 21px;">
<div style="width: 355px; position: absolute; overflow: hidden; height: 21px; margin-left: 10px; margin-right: 10px;">
<div style="position: absolute;">
<div id="Device_Interpret" data-type="joinedlabel" data-device="Device" data-mask="[$1]" data-get='["station_name"]' data-onupdate="checkFlowAnimation('#Device_Interpret');" class="">
</div>
</div>
</div>
</div>
</div>
<div data-type="classchanger" data-device="Device" data-get="playback_input" data-get-on="net_radio" data-off-class="hide">
<div style="height: 21px;">
<div style="width: 355px; position: absolute; overflow: hidden; height: 21px; margin-left: 10px; margin-right: 10px;">
<div style="position: absolute;">
<div id="Device_SenderInfo" data-type="joinedlabel" data-device="Device" data-mask="[$1]" data-get='["track"]' data-onupdate="checkFlowAnimation('#Device_SenderInfo');" class="bold"></div>
</div>
</div>
</div>

<div style="height: 21px;">
<div style="width: 355px; position: absolute; overflow: hidden; height: 21px; margin-left: 10px; margin-right: 10px;">
<div style="position: absolute;">
<div id="Device_Sender" data-type="joinedlabel" data-device="Device" data-mask="[$1]" data-get='["station_name"]' data-onupdate="checkFlowAnimation('#Device_Sender');"class=""></div>
</div>
</div>
</div>
</div>
</div>

<!-- Mute button -->
<div class="top-space">
<div data-type="switch" data-device="Device" data-get="mute" data-set="mute"
data-icon="fa-deaf" data-background-icon="-"
data-on-color="#aa6900" data-off-color="gray"
data-get-on="true" data-get-off="false"
data-set-on="true" data-set-off="false" class="inline mini">
</div>


<div data-type="classchanger" data-device="Device" data-get="playback_input" data-get-on="server" data-off-class="hide" class="inline top-space">
<!-- Toggle Repeat funktioniert grundsätzlich, braucht aber etwas bis der Status farblich richtig angezeigt wird und zeigt in der zwischenzeit die falsche Farbe. Warum?
-->
<div data-type="switch" data-device="Device"
data-get="repeat_status"
data-set="toggleRepeat"
data-background-icon="-"
data-states='["off","one","all"]'
data-icons='["fa-repeat","fa-repeat","fa-repeat"]'
data-colors='["gray","red","#aa6900"]'
data-set-states='["one","all","off"]'
class="inline mini">
</div>

<!-- track zurück -->
<div data-type="push" data-device="Device"
data-icon="fa-step-backward" data-background-icon="-"
data-off-color="#fff" data-on-color="#aa6900"
data-set-on="playback previous" class="inline mini">
</div>

<!-- fast backward -->
<div data-type="push" data-device="Device"
data-icon="fa-backward" data-background-icon="-"
data-off-color="#fff" data-on-color="#aa6900"
data-set-on="playback fast_reverse_start"
data-set-off="playback fast_reverse_end" class="inline mini">
</div>
</div>

<!-- play, pause, stop -->
<div data-type="switch"
data-device="Device"
data-get="playback_status"
data-states='["play","pause","stop"]'
data-set="playback"
data-set-states='["pause","play","play"]'
data-background-icon="fa-circle-thin"
data-background-colors='["#aa6900","white","white"]'
data-colors='["#aa6900","white","white"]'
data-icons='["fa-pause","fa-play","fa-play"]'
class="inline small">
</div>

<!-- fast forward -->
<div data-type="classchanger" data-device="Device" data-get="playback_input" data-get-on="server" data-off-class="hide" class="inline">
<div data-type="push" data-device="Device"
data-icon="fa-forward" data-background-icon="-"
data-off-color="#fff" data-on-color="#aa6900"
data-set-on="playback fast_forward_start"
data-set-off="playback fast_forward_end" class="inline mini">
</div>

<!-- next track -->
<div data-type="push" data-device="Device"
data-icon="fa-step-forward" data-background-icon="-"
data-off-color="#fff" data-on-color="#aa6900"
data-set-on="playback next" class="inline mini">
</div>

<!-- toggle shuffle -->
<div data-type="switch" data-device="Device" data-get="shuffle_status" data-set="toggleShuffle"
data-icon="fa-random" data-background-icon="-"
data-on-color="#aa6900" data-off-color="gray"
data-get-on="on" data-get-off="off"
data-set-on="1" data-set-off="0" class="inline mini">
</div>

</div>

<!-- Menu button -->
<div data-type="popup" class="inline" data-width="650px" data-height="210px">
<div data-type="push"
data-icon="fa-list" data-background-icon="-"
data-off-color="#fff" data-on-color="#aa6900"
class="mini">
</div>


<!--
Menü für Auswahl Favoriten noch in Arbeit, aktuelles Coding ist noch das Sonos Original ohne Funktion für Yamaha
-->
<div class="dialog">
<header><div data-type="joinedlabel" data-device="Device" data-mask="Musikauswahl[ für $1]" data-get='["location_name"]' class="inline"></div></header>

<div class="top-space-10 left-align left-space">
<div>
<div class="large middle inline">Favoriten: </div>
<div data-type="select"
data-device="Device"
data-list="FavouritesList"
data-alias="FavouritesListAlias"
data-delimiter="|"
data-quote="/"
data-get="currentFavouriteNameMasked"
data-set="StartFavourite"
class="inline w3x"
onchange="$('.dialog-close').trigger('click');"></div>
</div>

<div>
<div class="large middle inline">Playlists: </div>
<div data-type="select"
data-device="Device"
data-list="PlaylistsList"
data-alias="PlaylistsListAlias"
data-delimiter="|"
data-quote="/"
data-get="currentPlaylistNameMasked"
data-set="StartPlaylist"
class="inline w3x"
onchange="$('.dialog-close').trigger('click');"></div>
</div>

<div>
<div class="large middle inline">Radios: </div>
<div data-type="select"
data-device="Device"
data-list="RadiosList"
data-alias="RadiosListAlias"
data-delimiter="|"
data-quote="/"
data-get="currentRadioNameMasked"
data-set="StartRadio"
class="inline w3x"
onchange="$('.dialog-close').trigger('click');"></div>
</div>

<div>
<div class="large middle inline">Audio-Eingang: </div>
<div data-type="select"
data-device="Device"
data-list="Sonos:LineInPlayerList"
data-alias="Sonos:LineInPlayerListAlias"
data-delimiter="|"
data-get="currentAlbum"
data-set="PlayURI"
class="inline w3x"
onchange="$('.dialog-close').trigger('click');"></div>
</div>

<div>
<div class="large middle inline">Abspielliste: </div>
<div data-type="select"
data-device="Device"
data-list="QueueList"
data-alias="QueueListAlias"
data-delimiter="|"
data-get="currentTrack"
data-set="Track"
class="inline w3x"
onchange="$('.dialog-close').trigger('click');"></div>
</div>
</div>
</div>
</div>
</div>

<!-- Lautstärke einstellen -->
<div data-type="spinner"
data-device="Device"
data-get="volume"
data-set="volume"
data-max="100"
data-step="1"
data-width="350"
data-icon-left="fa-volume-down tall"
data-icon-right="fa-volume-up tall"
data-gradient-color='["orange","red"]'
class="tap value positiononly top-space centered">
</div>

</div>




Was jetzt noch offen ist:
- Play Time und Total Time: falls es irgendwie aus dem Yamaha rauszukriegen ist
- Icon für die Quelle der Musik (z.B. Spotify, Amazon Music etc.), scheint Yamaha nicht zu liefern aber könnte ja lokal nachgebaut werden
- Menü für die Ansteuerung der Favoriten, etc.
- Multi-Room setup
- Anzeige Toggle Repeat button: er funktioniert zwar richtig, und zeigt nach kurzer Zeit auch den Status richtig an, aber nach jedem Umschalten ist die Farbe kurz falsch, keine Plan warum
- Formatierung der Player Größe, die aktuelle Einstellung wäre richtig für zwei Player nebeneinander in einem Gridster mit sizex=5m daher sind bei sixex=3 die Knöpfe nicht richtig unter dem Cover zentriert
- und noch ordentlich testen, ich habe vor allem mit MP3 von einem lokalen Server getestet, und etwas net radio. Aber ich habe noch keine anderen Provider wie Amazon Music auf dem Gerät eingerichtet und getestet

Beste Grüße
MrNatcho
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: RockThisParty am 28 Januar 2021, 08:25:36
Moin in die Runde!

Ich habe mal eine Frage, die leicht off-topic für diesen Thread ist, ich hoffe aber, dass hier am ehesten die Musiccast-Nutzer lesen:

Hat jemand von Euch Musiccast via FHEM mit Homebridge/Siri im Einsatz?

Ich rätsele noch, wie ich das am besten einbinde.

Danke und Grüße,
Stefan
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: jhohmann am 15 Juni 2021, 15:58:32
Hallo,

bei mir hat das mit dem Modul YAMAHA_MC leider nicht gut funktioniert. Wenn das Modul in FHEM aktiv war, konnte ich bereits nach wenigen Tagen meine Box WX-021 nicht mehr erreichen, weder über FHEM noch über die Musicast App auf dem Handy. Nur ein Reset hat geholfen.
Woran das liegt, habe ich nicht weiter untersucht, da mir dafür ein Ansatz fehlt.

Da ich die Box aber weiterhin im Schlafzimmer als Berieselung morgens und abends einsetzen wollte, habe ich mir eine kleine Funktionssammlung zusammengestellt und diese über einen Dummy mit passendem Notofy nutzbar gemacht.
Um die Funktionen erstellen zu können, habe ich einige Infos und URLs aus einem Dokument mit dem Namen "Yamaha_Extended_Control_API_Specification_(Basic).pdf" entnommen. Wenn ihr das hier für euch erweitern wollt, einfach nach diesem Namen googlen.
Um die Perl-Funktionen einzubinden, muss die angehängte 99_myUtils_mc.pm im Ordner /opt/fhem/FHEM abgelegt und FHEM neu gestartet werden.

Dem Dummy habe ich einige User Attribute gegönnt:
HOST: IP des Musicast Geräts
zone: Die zu steuerende Zone (bei mir gibt es nur main).
defaultVolume: Die Lautstärke, die nach dem Einschalten aktiv sein soll.
defaultFavorite: Name des Favoriten, der nach dem Einschalten aktiv sein soll. Das Mapping zwischen den Namen von Favoriten und der internen Nummer muss händisch im Notify erfolgen.
Die Namen der im Gerät gespeicherten Favoriten sind im Attribut setList beim Dummy fest hinterlegt und muss von euch manuell gepflegt werden.
Einen automatischen Abgleich mit der Box gibt es hier nicht.
Der Dummy ist bei mir auch über das Handy über die Homebridge ansprechbar. Dafür sind die Attribute genericDeviceType und homebridgeMapping hier gepflegt.

Folgende Befehle können abgesetzt werden:
set <Name> on|off      Gerät ein- oder ausschalten
set <Name> volume <Zahl>   Lautstärke auf einen bestimmten Wert setzen
set <Name> volumeStep up|down   Lautstärke einen Schritt erhöhen/reduzieren
set <Name> favorite <...>      Favorit wechseln auf ...
set <Name> dimmer 0|1|2         LED Licht auf den Wert 0, 1 oder 2 setzen

Hier mein Dummy (als RAW Definition):

defmod SchlafzimmerBox dummy
attr SchlafzimmerBox userattr HOST zone defaultVolume defaultFavorite
attr SchlafzimmerBox HOST 192.168.168.20
attr SchlafzimmerBox defaultFavorite SWR3
attr SchlafzimmerBox defaultVolume 10
attr SchlafzimmerBox devStateIcon on:audio_volume_high@green off:audio_volume_low@red
attr SchlafzimmerBox event-on-change-reading .*
attr SchlafzimmerBox event-on-update-reading volumeStep
attr SchlafzimmerBox genericDeviceType media
attr SchlafzimmerBox homebridgeMapping clear\
Mute=state,valueOn=off,cmdOn=off,cmdOff=on\
On=state,valueOn=on,cmdOn=on,cmdOff=off\
Volume=volume::volume,minValue=10,maxValue=33,delay=1
attr SchlafzimmerBox icon audio_volume_high
attr SchlafzimmerBox readingList volumeStep volume favorite dimmer
attr SchlafzimmerBox room Homekit,Schlafzimmer
attr SchlafzimmerBox setList state:uzsuToggle,on,off volumeStep:down,up volume:slider,10,1,40 favorite:SWR3,1live,Meeresrauschen,Naturgeraeusche,Vogelstimmen,KleinerBach,Wasserplätschern dimmer:0,1,2
attr SchlafzimmerBox webCmd state:volumeStep:volume:favorite:dimmer
attr SchlafzimmerBox webCmdLabel State:VolumeStep:Volume:Favorite:Dimmer
attr SchlafzimmerBox zone main


Beim Notify und auch bei den Perl-Funktionen habe ich versucht, den Namen des Geräts selbst intern zu vermeiden. Somit ist die Anpassung an euren eigenen Namen hoffentlich sehr einfach machbar.
Und hier das Notify (ebenfalls als RAW Definition):

defmod ntSchlafzimmerBox notify SchlafzimmerBox:.* {\
my $status = ReadingsVal($NAME,"mute","off");;\
if ($EVENT eq "on") {\
  fhem("cancel idVolumeTimerFor".$NAME." quiet");;\
  fhem("cancel idOff".$NAME." quiet");;\
  fhem("setreading ".$NAME." mute on");;\
  mcSetPower($NAME, "on");;\
  fhem("sleep 4;;set ".$NAME." dimmer 1;;sleep 0.5;;set ".$NAME." favorite ".ReadingsVal($NAME,"defaultFavorite","SWR3"));;\
} elsif ($EVENT eq "standby" || $EVENT eq "off") {\
  fhem("cancel idVolumeTimerFor".$NAME." quiet");;\
  fhem("cancel idOff".$NAME." quiet");;\
  fhem("sleep 0.2;;set ".$NAME." favorite ".ReadingsVal($NAME,"defaultFavorite","SWR3").";;sleep 1;;set ".$NAME." volume ".AttrVal($NAME, "defaultVolume", 10).";;sleep 4;;{mcSetPower(\"".$NAME."\",\"standby\")};;setreading ".$NAME." mute off");;\
} elsif ($EVENT =~ /volumeStep/) {\
  my @array = split(/ /,$EVENT);;\
  if ($array[1] eq "up") {\
    my $vol = ReadingsNum($NAME,"volume",10);;\
my $newvol = $vol + 1;;\
    fhem("sleep 0.1;;set ".$NAME." volume ".$newvol);;\
  } elsif ($array[1] eq "down") {\
    my $vol = ReadingsNum($NAME,"volume",10);;\
my $newvol = $vol - 1;;\
    fhem("sleep 0.1;;set ".$NAME." volume ".$newvol);;\
  }\
} elsif ($EVENT =~ /volume/) {\
  my @array = split(/ /,$EVENT);;\
  mcSetVolume($NAME,$array[1]);;\
} elsif ($EVENT =~ /dimmer/) {\
  my @array = split(/ /,$EVENT);;\
  mcSetDimmer($NAME,$array[1]);;\
} elsif ($EVENT =~ /favorite/) {\
  fhem("cancel idOff".$NAME." quiet");;\
  my @array = split(/ /,$EVENT);;\
  # Hier wird dem Namen eines Favoriten zum einen die interne Nummer im Gerät zugewiesen (die Liste beginnt immer bei 1)\
  # weiterhin die zu setzende Lautstärke und eine Zeitdauer, die ein Timer in Sekunden zum Ausschalten haben soll (0 ist aus).\
  # Die letzte Angabe steuert, mit welchem Abstand bei einem Timer die Lautstärke reduziert werden soll.\
  my %favToNumber = (\
    "SWR3"=>"1,24,0,0",\
    "1live"=>"2,24,0,0",\
    "Meeresrauschen"=>"3,17,1200,30",\
    "Naturgeraeusche"=>"4,17,1200,30",\
    "Vogelstimmen"=>"5,20,1200,30",\
    "KleinerBach"=>"8,23,1200,30",\
    "Wasserplätschern"=>"9,20,1200,30",\
  );;\
  my $value = $favToNumber{$array[1]};;\
  my ($index,$lautstaerke,$timer,$pause) = split(/,/,$value);;\
  if ($timer > 0 && $pause > 0) {\
    fhem("sleep ".$timer." idOff".$NAME.";;set ".$NAME." dimmer 0;;sleep 0.5;;{mcVolumeDown(\"".$NAME."\", 1, 10, ".$pause.")}");;\
  }\
  mcSetFavorite($NAME, $index);;\
  fhem("sleep 0.5;;set ".$NAME." volume ".$lautstaerke);;\
}\
}

Wenn die Perl-Funktionen das Gerät erreichen können, wird in FHEM am Dummy ein Reading namens lastupdate aktualisiert. Das entspricht dann dem Wert von time (aktuelle Zeit als ganze Zahl).
Damit kann dann auch geprüft werden, ob eventuell die Verbindung abgebrochen ist.
Im Fehlerfall setzen die Perl-Funktionen den Dummy auf den state off.
Der Dummy hat den Nachteil, dass seine Readings quasi immer zuerst geändert werden, bevor das Notify die Funktion wirklich ausführt.
Beispiel: Gerät ist aus, aber die Lautstärke wird am Dummy verändert. Das Reading volume wird geändert, aber am Gerät selbst passiert nichts. Das kann also auseinander laufen!
Neben den reinen Perl-Funktionen zum Steuern habe ich noch zwei gesonderte Funktionen eingebaut. Damit kann die Lautstärke langsam erhöht werden. Das Gerät wird eingeschaltet, falls es vorher aus war.
Oder die Lautstärke wird langsam reduziert und das Gerät bei Erreichen einer Minimallautstärke ausgeschaltet.
Beispiel:
{mcVolumeUp("SchlafzimmerBox", 1, 22, 3)}
Gerät einschalten, falls aus. Dann in 1er Schritten die Lautstärke erhöhen bis 22 erreicht ist. Zwischen den Erhöhungen immer 3 Sekunden Pause.
{mcVolumeDown("SchlafzimmerBox", 1, 10, 30)}
Lautstärke am Gerät in 1er Schritten reduzieren bis 10 erreicht ist, dann ausschalten. Zwischen den Reduzierungen immer 30 Sekunden Pause. Wenn das Gerät aus war, passiert nichts weiter.
Titel: Antw:Modul für Yamaha Musiccast
Beitrag von: sprudelverduenner am 19 November 2022, 20:31:21
Zitat von: Leugi am 16 Januar 2021, 18:47:56
Ich habe nun toggleShuffle und die Readings für Repeat und Shuffle implementiert.

Hallo Leugi,

für mich hätte es einen großen Nutzen, wenn ich den Shuffle explizit mit einem Befehl an oder aus und nicht nur toggeln könnte.

Wäre es möglich das zu implementieren?
Über das Webinterface meines MusicCast Gerätes kann ich den Shuffle auch direkt schalten...

Beste Grüße,
Sprudelverduenner