Modul für Yamaha Musiccast

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

Vorheriges Thema - Nächstes Thema

Leugi

Hallo zusammen,

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

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


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

ToKa

#1
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
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

chopsor

Das sind ja mal super Neuigkeiten!

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


Danke!
Hier könnte Ihre Werbung stehen !

Leugi

#3
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
FHEM auf RaspPi 2, USB-CUL V3, div. HM Aktoren

RockThisParty

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

sprudelverduenner

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

RockThisParty

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

Leugi

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.


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

kilderman

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

RockThisParty

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.

Leugi

@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.


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

sprudelverduenner

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

ToKa

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
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Leugi

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 ?
FHEM auf RaspPi 2, USB-CUL V3, div. HM Aktoren

Leugi

#14
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 !

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