Modul für Yamaha Musiccast

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

Vorheriges Thema - Nächstes Thema

Leugi

@Enno
ich habe gesehen in anderen Beiträgen gesehen, dass du dich auch mit Streams zum Yamaha beschäftigt hast.
Hast du es geschafft eine lokale mp3 zum Yamaha zu streamen ? Wenn ja könntest du kurz beschreiben, wie du das gemacht hast ?

Hintergrund : Ich versuche ein "Speak" Befehl zu implementieren und dafür benötige ich solch ein Streaming zum Device.
FHEM auf RaspPi 2, USB-CUL V3, div. HM Aktoren

enno

Moin Stefan,

ich nutze die Streams nur um Musik zu hören. Umgesetzt habe ich das mit MPD, Icecast und Ampache auf dem Cubietruck (Server). Da der im Keller steht konnte ich nicht direkt über HDMI oder Pulseaudio die Signale abgreifen. "Speak" sollte gehen, es dauert aber etwas (ca. 10-15  Sekunden) bis der erste Ton kommt. Ob das für deine Idee reicht?

Hier die Beschreibung der "Bauteile":
https://wiki.ubuntuusers.de/MPD/Server/
https://wiki.ubuntuusers.de/Icecast2/
https://forum.fhem.de/index.php/topic,18517.480.html
https://wiki.ubuntuusers.de/Ampache/
https://github.com/cdrummond/cantata

Wenn du Fragen hast, dann melde dich mal per Mail. Ich glaube hier würde das den Rahmen sprengen.

Gruss
Enno
Einfacher FHEM Anwender auf Intel®NUC

Ertanius

Hallo :) ich bin gespannt wie MusicCast sich bei mir mit deiner Arbeit bemerkbar macht :)
Es wäre der erste Versuch mit FHEM zu arbeiten. Habe raspberry neu aufgesetzen müssen. Jetzt am WE will ich mich damit beschäftigen.
Eine Frage dazu. Ich komme aus einem anderen Forum und zwar für Homebridge Nutzer.
Homebridge Nutzer installieren ja immer ein Plugin damit die Geräte mit HomeKit kommunizieren können.
Könnte man so eine für die npm Seite programmieren? Ein Plugin welches zum Beispiel heißen würde:
Homebridge-YamahaMusicCast?
Oder verfeinde ich mich gerade mit meiner Frage? :)

Pythonf

Prinzipiell würde das, was du vorschlägst funktionieren erscheint aber erstmal wenig sinnvoll. Wie du selbst schreibst, scheinst du noch wenig Erfahrung mit FHEM zu haben weshalb ich dir nur einige kurze Infos geben möchte, da alles andere hier zu ausfürlich wäre.

Es gibt für fhem ein eigenes Homebridge modul https://wiki.fhem.de/wiki/Homebridge_einrichten mit dem du quasi alle Geräte, welche du in FHEM angelegt hast über Homekit steuern kannst. Dazu zählt auch dieses Modul. Es bedarf eventuell kleinere Anpassungen bei den Attributen Stichwort:Homebridgemapping.

Nur für den Fall, dass du MusicCast ohne FHEM betreiben möchtest wäre ein eigenes "Plugin" sinnvoll, da aber keine zusätzlichen Funktionen dazukommen wird es das hier in diesem Forum wohl nicht geben.
Mein Tipp an dich wäre: Schau dir die Möglichkeiten an, die dir FHEM bietet. Es ist mittlerweile ein sehr Umfangreiches "Tool" zur Haussteuerung geworden und sollte deine Wünsche erfüllen können.

Beste Grüße
Fabian

Ertanius

ich danke dir für die info :) werde mir mal Homebridge plugin anschauen und mich bzgl Homebridge mal schlau machen. Danke nochmal!  :)

Ertanius

hi, ich habe FHEM installiert alle sicherheitseinstellungen gemacht incl. https.
jetzt habe ich die .pm datei auf meinem desktop liegen, und weiss nicht was ich machen soll
ich hatte mal meine drei musiccast receiver eingebunden gehabt. soll ich das jetzt vorher nochmal machen?
ich habe 3 AVR und 4 WX030.
aknn mir jemand eventuell helfen? Vielleicht  über PN wenn das hier jemanden stören sollte...

Leugi

Hallo Ertanius,

Fhem muss komplett installiert und konfiguriert sein - die Webseite muss korrekt angezeigt werden.
Wenn das erledigt ist, muss du nur die letzte 71_YAMAHA_MC.pm aus diesm Blog in das Unterverzeichnis FHEM kopieren, wo sich die übrigen *.pm Module auch befinden.

Evtl. falls noch nicht geschehen :

JSON installieren
sudo apt-get install libjson-perl

MP3 installieren (wird aktuell noch nicht aktiv verwendet, aber im Programmcode angesprochen ) :
perl -MCPAN -e 'install MP3::Info'

Dann die Konfiguration in der fhem.cfg für die 3 AVR und 4 wx030 machen. Ein Beispiel findest du in Antwort #61.

Viel Glück !  ;D
FHEM auf RaspPi 2, USB-CUL V3, div. HM Aktoren

Ertanius

#97
Zitat von: Leugi am 24 Februar 2017, 21:39:15
Ich habe zwar immer noch keine Antwort von Yamaha, bin aber schon alleine weitergekommen  :P

Anbei eine Version womit bereits ein Linken von Musiccast Geräten möglich ist. Aktuell ist noch keine Fehlerprüfung drin und es ist noch nicht schön programmiert, aber bei mir funktioniert es.

Die Geräte müssen jeweils definiert werden, z.B.

define mc_receiver YAMAHA_MC 192.168.0.25 80 120 60
define wx030 YAMAHA_MC 192.168.0.28 80 120 60

dann auf dem Server (hier der mc_receiver) ein Link starten mit :
set mc_receiver mcLinkTo wx030

und schon sind die beiden Geräte miteinander verbunden. Es sollte auch funktionieren mehere Geräte zu linken, konnte ich allerdings mangels Geräte nicht testen. Einfach die Geräte mit Leerzeichen nacheinander eintragen :
set mc_receiver mcLinkTo wx030 wx050

Es ist auch bereits ein einfaches Unlink implementiert, allerdings nur komplett - ein teilweise unlink auf einem Device fehlt noch.
set mc_receiver mcUnLink wx030

Bitte mal testen, ob das bei euch auch funktioniert -insbesondere wer mehrere Geräte hat.

Gruss,
Leugi


hi :))

das linken hat hervorragend geklappt! Ich hatte auch eine richtig tolle hilfe heute nachmittag bei der einrichtung von @pythonf. DANKE!
drei receiver und vier wx030 konnte ich so miteinander verlinken.

nur das mit den 80 120 60 habe ich nicht verstanden. habe meine geräte einfach so hinzugefügt.

jetzt muss ich nur noch raus kriegen, wie ich das als ein einziges "button" hinbekomme, dass wenn ich den drücke alle starte, gekoppelt natürlich.
Eventuell in eine gruppe packen die geräte?! naja, krieg das schon irgendwie raus :)
und den favorite sender soll er mir dann abspielen. vielleicht sogar ein zweiten button für genau das gleiche nur ein anderen sender.... und dann noch für den wecker in den ersten 10 minuten langsam lauter werden und dann pegel halten... und.... und....aaahhhh... so viel :))

Ertanius

habe meine geräte hinzufügen können und auch einen extra button erstellen können, dass alle auf einmal starten.
nun, mein AVR_WZ spielt jetzt ein sender aus dem NetRadio, aber die anderen AVR stehen auf Musiccast und sind still.
nur wenn ich auf AVR_WZ gehe und dort "Set - AVR_WZ- mcLinkTo - AVR_SZ" eingebe. spielt der im Schlafzimmer Musik.
Kann ich diesen befehl mit dem einen klick am anfang  nicht automatisieren?

Leugi

Hallo Ertanius,

da bist du ja schon recht weit und hast fast alles eingerichtet.  :D

Du hast für den Button "AlleAn" ja schon ein Notify erstellt, daher kannst du den Befehl "Set AVR_WZ mcLinkTo AVR_SZ" im Notify mit aufnehmen.
Kann sein, dass du hier nach dem Einschalten noch ein Sleep benötigst - ich würde es aber ersteinmal ohne Sleep versuchen.

Vielleicht schreibts du mal, wie dein Notify bisher aussieht.

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

Ertanius

#100
ja, es funktioniert alles :) und da ich das in homebridge eingebunden habe, habe ich das in meiner Home App und konnte daraus für heute morgen schön einen wecker automatisieren. hat mega schön geklappt :)

ich musste gestern noch folgendes einstellen: alle geräte werden eingeschaltet, allerdings hat nur mein AVR_WZ (Wohnzimmer) musik angespielt. die ander AVRs und WX030er waren zwar auf dem "Link" MusicCast, waren aber still.

Deswegen habe ich eine zweite Notify erstellt, ich fuchs :))  siehe Bild unten

Die zweite, soll einfach nur aus dem AVR_WZ heraus über die einstellung:

modify > MusicCast MCstarten set > AVR_WZ > mcLinkTo > AVR_SZ,AVR_Terrasse,WX030_Bad,WX030_FlurAmBad,WX030_Kleiderzimmer,WX030_Kueche


(beachte, "AVR_WZ" ist nicht aufgelistet, da der ja den befehl gibt)
Musik abspielen, da das erste notify ja nur die geräte einschaltet.

jetzt, nach dem einschalten und dem nachherigen drücken auf den zweiten button, funktioniert es klasse. :))



hab aber noch ein zwei fragen:

1.
ich habe ja jetzt zwei Buttons:
einmal den, um alle geräte einzuschalten
und einmal den, der alle geräte mit Musiccast auch tatsächlich verbindet.

Ich hätte das gerne als ein Button!
in meiner home App tauchen nämlich auch zwei Buttons auf.
Der einfachheitshalber hätte ich gerne nur ein button, der das hier bei FHEM regelt.
Wie kann ich das machen?
also beim klicken des ersten buttons, soll der zweite button automatisch angeklickt werden.

oder du sagtest: "......im Notify mit aufnehmen." wie mache ich das denn? dann brauche ich den zweiten button gar nicht mehr, wenn das gehen sollte.

2. Ich hätte gerne, wenn ich meine Frage 1. beantwortet habe, den Namen dafür "MC_Salsa_leise" benutzen. Geht das? Wenn ja wie?

3. Wenn ich jetzt den einen Button mit "MC_Salsa_leise" habe, möchte ich natürlich auch "MC_Salsa_laut" haben. Wie kann ich eine zweite erstellen?
Vielleicht so: "define AlleAn dummy2"  ?

4. wenn das alles geklappt hat, will ich auch das für "MC_Jazz_leise" haben.
Also muss ich dann eine dritte "define AlleAn dummy3" erstellen?

ich hoffe ihr könnt mir helfen :)


zu deiner aussage Leugi:
Kann sein, dass du hier nach dem Einschalten noch ein Sleep benötigst - ich würde es aber ersteinmal ohne Sleep versuchen.
Sleep für AVRs brauche ich nicht, da ich ja dann über meine App ausschalte, oder über eine Taste an der Wand. Und meine WX030 gehen eh nach 20 min in ruhe modus. Also alles gut :)

P.s.
mir macht es nichts aus, wenn ich diese szene ausschalte, dass meine geräte dann noch weiter verbunden sind.
Wenn jemand hier diese aber wieder trennen möchte, wenn er diese szene ausschaltet, dann muss dort ein unlink eingebunden werden.


Leugi

Hallo Ertanius,

ich definiere meine notifiy in der fhem.cfg selbst und dort kann man mehrere Befehle angeben. z.B. so :

define AlleAnn_notify notify AlleAn:on set AVR_SZ, AVR_Terrasse, AVR_WZ, WX030_Bad, WX030_FlurAmBad, WX030_Kleiderzimmer, WX030_Kueche on;;  set AVR_WZ mcLinkTo AVR_SZ,AVR_Terrasse,WX030_Bad,WX030_FlurAmBad,WX030_Kleiderzimmer,WX030_Kueche

Du kannst diese Dummy Devices nennen wie du möchtest, jedes Device benötigt dann sein eigenes Notify.
Folgendes ist dann also möglich :

define mc_salsa_leise dummy
attr mc_salsa_leise setList on off
attr mc_salsa_leise webCmd on:off
define mc_salsa_leise_notify notify  mc_salsa_leise:on ....
define mc_salsa_leise_notify notify  mc_salsa_leise:off ....


define mc_salsa_laut dummy
attr mc_salsa_laut setList on off
attr mc_salsa_laut webCmd on:off
define mc_salsa_laut_notify notify  mc_salsa_leise:on ....
define mc_salsa_laut_notify notify  mc_salsa_leise:off ....

usw.

Das mit dem sleep bezog sich nicht als sleep Befehl für die Devices also nicht das automatische Ausschalten nach 30 Minuten z.b. sondern nur auf das Warten bis zur Ausführung des nächsten Befehls.
Nach dem Einschalten der Geräte dauert es ca. 2 Sekunden bis die wirklich neue Befehle verarbeiten können. Es könnte also sein, dass du im notify ein Sleep brauchst. Versuche es aber erst einmal ohne, da das sleep dann fhem für die Dauer des Sleeps blockiert. Ansonsten mit Sleep ungefähr so :

define AlleAnn_notify notify AlleAn:on set AVR_SZ, AVR_Terrasse, AVR_WZ, WX030_Bad, WX030_FlurAmBad, WX030_Kleiderzimmer, WX030_Kueche on;;  sleep 2;;set AVR_WZ mcLinkTo AVR_SZ,AVR_Terrasse,WX030_Bad,WX030_FlurAmBad,WX030_Kleiderzimmer,WX030_Kueche

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

Ertanius

Danke für die gut ausführliche Beschreibung! Sehr detailliert, ich konnte es als leihe nachvollziehen :)
ist aber in diesem bereich ein fehler?

define mc_salsa_leise_notify notify  mc_salsa_leise:off ....
da ich diesen gleichen befehl nur mit dem Wort "on" nach dem doppelpunkt habe, sagt mir das system, dass er diesen mit dem wort "off" nicht erstellen kann, da es diesen schon gibt.
Gibt es dafür eine lösung?

bis auf den befehl mit dem "off" habe ich eingepflegt, wie man auf dem bild sehen kann. der sollte ja dann die Anlagen einschalten und es sollte ja musik gespielt werden. tut sich aber nichts.

ist vielleicht in dem selben befehl der fehler, das am anfang nach dem doppelpunkt ein "on" steht und in der mitte nochmal ein "on", bevor der nächste befehl direkt weiter geht.
oder ist der befehl so richtig und ich mache was falsch?

ich mache es genau so wie in deiner anleitung

wofür ist eigendlich dieser befehl:
attr mc_salsa_leise webCmd on:off

das mit webCmd sagt mir nichts


Leugi

Hallo Ertanius,

sorry habe nicht daran gedacht, dass jedes notify ein eigenen Namen benötigt, so wäre es dann richtig :

define mc_salsa_leise_notify_on notify  mc_salsa_leise:on  ....
define mc_salsa_leise_notify_off notify  mc_salsa_leise:off  ....

Mit dem Attribut webCmd kannst du festlegen welche Befehle im Webinterface angezeigt werden und diese per Mausklick direkt ausführen.
Da bei dir das "on" und "off" schon vorher angezeigt wurden, ist das bei dir anscheinend gar nicht erforderlich.

Das notify für alleAn sollte beim 3. Befehl mit dem Linken die Devices ohne Komma getrennt haben, also so :

define AlleAnn_notify_on notify AlleAn:on set AVR_SZ, AVR_Terrasse, AVR_WZ, WX030_Bad, WX030_FlurAmBad, WX030_Kleiderzimmer, WX030_Kueche on;;  sleep 2;; set AVR_WZ mcLinkTo AVR_SZ AVR_Terrasse WX030_Bad WX030_FlurAmBad WX030_Kleiderzimmer WX030_Kueche

Probier es mal damit.

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

hdad

Hallo Zusammen,

Habe das Modul jetzt mal ein wenig getestet.

klasse Arbeit soweit funktioniert viel, Favoriten-Sender, mc-link,station_name,track
Im input "net_radio" lassen sich mit "NextFavChannel" und "PrevFavChannel"vom
Menu My_Favorites hin und zurück schalten die Lautstärke wird beibehalten. Schalte ich
nun "TurnFavNetRadioChannelOn" wird auf meinen Fav Sender geschaltet nur auf Lautstärke 15
und das ist recht leise. Wie kann ich das ändern?

Ich kann mit "input Server" auf eine Playlist, welche ich mit der MusicCast App angelegt habe,
zugreifen. Leider kann ich nicht auf eine andere Playlist umschalten
oder mit Next und Prev in der Liste die Titel auswählen.

In den Readings stehen station_name,track und album_name lässt sich das Cover auch anzeigen?

Gruß Holger
FHEM auf IntelNuc; TabletUI; MAX Heizung ; div HM-Actoren ;Z-Wave; YAMAHA Musiccast WX-030 ,YSP-1600