Modul für Yamaha Musiccast

Begonnen von Pythonf, 20 Juni 2016, 10:28:46

Vorheriges Thema - Nächstes Thema

Leugi

@Chopsor
Ich arbeite aktuell noch an der TTS Funktion. Die aktuell implementierte funktioniert nicht.
Die zukünftige Variante wird mit einer lokalen MediaServer "miniDLNA" basieren, welche die TTS Dateien für das Musiccast Gerät bereitstellt.

@fhemoob
Leider kann ich das nicht testen, da ich nur ein Wx-030 habe. Aber vermutlich reicht es aus, wenn du zwei Leutsprecher  als Stereo gepairt hast, auf einem der Lautpsrecher
die Ausgabe zu starten und du hasst dann automatisch Stereo.
FHEM auf RaspPi 2, USB-CUL V3, div. HM Aktoren

mumpitzstuff

#196
Schau dir mal das Sird Modul an. Für eine einfache tts Ausgabe reicht es, httputils zu verwenden, falls Upnp unterstützt wird.

Ich wollte auch erst mit irgend welchen dlna Zeugs was machen und dann war es so einfach... Keine 2 Tage und die erste Ansage kam aus dem Radio.

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

Wenn du Hilfe brauchst, kann ich dich gern unterstützen.

Das hier ist die ganze Magie:


my $uri_text = uri_escape($text);
my $url = 'http://translate.google.com/translate_tts?ie=UTF-8&tl='.$language.'&client=tw-ob&q='.$uri_text;

$param = {
              url        => 'http://'.$ip.':8080/AVTransport/control',
              timeout    => 10,
              header     => { 'Content-Type' => 'text/xml; charset=utf-8',
                              'SOAPAction' => '"urn:schemas-upnp-org:service:AVTransport:1#SetAVTransportURI"' },
              data       => '<?xml version="1.0" encoding="utf-8"?>'.
                            '<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">'.
                            '<s:Body><u:SetAVTransportURI xmlns:u="urn:schemas-upnp-org:service:AVTransport:1">'.
                            '<InstanceID>0</InstanceID><CurrentURI>'.$url.'</CurrentURI><CurrentURIMetaData>'.
                            '</CurrentURIMetaData></u:SetAVTransportURI></s:Body></s:Envelope>',
              #loglevel   => 3,
              method     => 'POST'
            };

($err, $data) = HttpUtils_BlockingGet($param);

$param = {
              url        => 'http://'.$ip.':8080/AVTransport/control',
              timeout    => 10,
              header     => { 'Content-Type' => 'text/xml; charset=utf-8',
                              'SOAPAction' => '"urn:schemas-upnp-org:service:AVTransport:1#Play"' },
              data       => '<?xml version="1.0" encoding="utf-8"?>'.
                            '<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">'.
                            '<s:Body><u:Play xmlns:u="urn:schemas-upnp-org:service:AVTransport:1">'.
                            '<InstanceID>0</InstanceID><Speed>1</Speed></u:Play></s:Body></s:Envelope>',
              #loglevel   => 3,
              method     => 'POST'
           };

($err, $data) = HttpUtils_BlockingGet($param);


Du must bei dir lediglich die Url in $param auf deinen ControlPoint setzen...

Leugi

@mumpitzstuff

Danke, das könnte mir weiterhelfen. Aktuell suche ich mir den passenden MediaRenderer einmalig selbst mittels Controlpoint search Funktion
und benutze dann Net::UPnP Libs. Dann ist die gleiche Funktion wie bei dir in zwei Zeilen :


$hash->{helper}{MediaRendererDLNA}->setAVTransportURI(CurrentURI => $URILink);
$hash->{helper}{MediaRendererDLNA}->play();

Das direkt per http zu machen ist sicher schneller, ich werde das mal testen ...
FHEM auf RaspPi 2, USB-CUL V3, div. HM Aktoren

mumpitzstuff

Mit diesen Libs hatte ich auch rum gespielt und nur Probleme damit bzw. es ging gar nichts. Aber wenn's mit den Yamaha Geräten geht, dann mach's so.

kmidt

#199
Hallo zusammen,

ich habe ne blöde Frage. Ich bekomme das Modul nicht ans laufen.

Ich bekomme folgende Fehlermeldung :
Can't locate MP3/Info.pm in @INC (you may need to install the MP3::Info module) (@INC contains: . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/arm-linux-gnueabihf/perl5/5.20 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl ./FHEM) at ./FHEM/71_YAMAHA_MC.pm line 3694.
BEGIN failed--compilation aborted at ./FHEM/71_YAMAHA_MC.pm line 3694.

Weiss einer was das ist ?

Desweiteren sagt er mir immer unknown Modul wenn ich eine Box definieren will.
Das Modul liegt im Ordner fhem/fhem

Gruß,
Andreas

RaspiLED

Hi,

ich hoffe die Module liegen unter
/opt/fhem/FHEM
Und eine Suche hätte das hier ergeben:
https://forum.fhem.de/index.php?topic=54798.msg600918#msg600918

sudo apt-get install libjson-perl
...
perl -MCPAN -e 'install MP3::Info'

Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

kmidt

Danke dir. Probiere ich aus.
1. Befehl hatte ich in suche gefunden. 2. Muss ich noch machen , danke.

Ja liegt in /opt/fhem/fhem

Gebe morgrn Mal feedback

enno

Zitat von: kmidt am 30 März 2018, 21:51:05
Ja liegt in /opt/fhem/fhem
/opt/fhem/FHEM
ist aber nicht gleich
/opt/fhem/fhem  !!

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC

kmidt


esk

Hi Leugi,

liegt Dein Modul irgendwo in github ?
Wegen:
1. automatischer update
2. Ich hätte einen kleinen patch für album_art

Danke.

mfg.
esk

ToKa

Hallo zusammen,

ich habe heute beim Absetzten des Befehls set speak mein fhem zum Absturz gebracht. Der letzte Eintrag im Log war

Undefined subroutine &main::YAMAHA_Client_Data_Retreive called at ./FHEM/71_YAMAHA_MC.pm line 3670

Woran kann das liegen?

Gruß
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

esk

Hi ToKa,

Das passiert bei mir auch... Ich denke "speak" ist noch WIP ( Work in Progress ).

esk

Leugi

Hallo esk,

das Modul liegt noch nicht im Github. Ich habe mich noch nicht darum gekümmert und muss mich erst mal schlau machen wie das geht.
Wenn du nur eine kleine Änderung am Modul hast, sende sie mir einfach zu und ich baue die mit ein.

@Torsten
der speak Befehl im letzten Stand funktioniert in der Tat so nicht. Bin noch dabei das anders zu lösen wie oen schon angedeutet.

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

Frank77

Hallo,

Gibt es die Möglichkeit in Zukunft mit dem Modul das Cover des abgespielten Tracks oder Senders als reading zu bekommen? Wäre super wenn das noch hinzugefügt werden werden könnte.


Viele Grüße,
Frank

sledge

#209
Hi,

einfach mal ein Lob: Sehr schönes Modul, das "macht was es soll". Ich habe gerade meinen Versuchsaufbau angeschlossen (Yamaha N830D) und auf Anhieb gingen die meisten Dinge.

Folgendes ist mir dabei aufgefallen:

1. Es kommt des öfteren zu Returncode 4, obwohl die Anfrage umgesetzt wurde - könnte an meinem Modell oder an der (heute aktualisierten) Firmware liegen? Scheint bei den Abfragen zu sein, die /main/ in der URL haben.
2. Es gibt für Multicast auch folgende Funktion:

IP/YamahaExtendedControl/v1/system/getFuncStatus
{"response_code":0,"auto_power_standby":true,"speaker_a":true,"speaker_b":f
alse,"headphone":false}


Die könnte ich "sehr gut" gebrauchen ;-) da ich darüber feststellen kann, ob A, B oder A+B eingeschaltet ist. Besteht die Chance, dass Du das einbaust und in Readings zur Verfügung stellst? Ansonsten behelfe ich mir solange mit HTTPMOD.

Danke vorab - schöne Arbeit.
FHEM: debian Intel-NUC / 25 x MAX!, 15 x HM-bidcos, MQTT, 3 x 1wire, 20 x Shelly, 20 x Tasmota, 12 x Yeelight, Opentherm-GW, Espeasy, alexa-fhem, kodi, unifi, musiccast, ...