Ankündigung

Einklappen
Keine Ankündigung bisher.

Plugin: Yamaha MusicCast-Geräte (neuere Generation)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • fabian82
    antwortet
    vielen Dank

    Einen Kommentar schreiben:


  • Morg
    antwortet
    Habe ich da her...

    Einen Kommentar schreiben:


  • fabian82
    antwortet
    Oh, die Rev. 2.0 der Basic Spec konnte ich nirgendwo finden, dachte die 1.1 wäre die aktuellste. Kannst du mir diese geben, oder hochladen? Der Yamaha Support stellt sich bei den API's ein wenig an.

    Die Triggerausgänge sind an einem AVR vom AVR geschaltete 12 Volt Ausgänge um z.B. externe Endstufen oder Subwoofer gezielt ein bzw. aus zu schalten.

    Mein AVR besitzt 2 Triggerausgänge, mit einem schalte ich die Subwoofer, mit dem anderen die externe Endstufe.
    Trigger 1 schaltet bei mir die Subwoofer ein, was nur bei aktiver Main Zone sein soll (lässt sich mit Boardmitteln des AVR machen).
    Trigger 2 schaltet bei mir die externe Endstufe ein, dieser soll bei aktiver Main Zone und aktiver Zone 2 einschalten. Wenn nur Zone 3 ohne Main und Zone 2 an ist soll er aus sein. Dies lässt sich mit Boardmitteln des AVR nicht einstellen.
    Als zusätzliche Funktion hätte ich gerne, dass im Kopfhörer betrieb (Status lässt sich auch aus dem AVR auslesen) ebenfalls beide Trigger aus sein sollen. Das lässt sich ebenfalls nicht mit dem AVR einstellen.

    Der Vorteil des Wegschaltens der Subwoofer per Trigger anstatt die Steckdose weg zu schalten ist, dass die Subwoofer (zumindest bei mir) dann beim ausschalten nicht knallen.

    Bei den Yamaha YNCA Specs gab es dafür die Befehle:

    @SYS:TRIG1MANUAL=Lo
    @SYS:TRIG1MANUAL=Hi
    @SYS:TRIG1TYPE=Manual
    @SYS:TRIG1TYPE=Power
    @SYS:TRIG1TYPE=Zone and Input
    @SYS:TRIG1ZONE=Main Zone
    @SYS:TRIG1ZONE=Zone2
    @SYS:TRIG1ZONE=All
    @SYS:TRIG1INPTUNER=Lo
    @SYS:TRIG1INPTUNER=Hi
    @SYS:TRIG1INPPHONO=Lo
    @SYS:TRIG1INPPHONO=Hi
    @SYS:TRIG1INPHDMI1=Lo
    @SYS:TRIG1INPHDMI1=Hi
    @SYS:TRIG1INPHDMI2=Lo
    @SYS:TRIG1INPHDMI2=Hi
    @SYS:TRIG1INPHDMI3=Lo
    @SYS:TRIG1INPHDMI3=Hi
    @SYS:TRIG1INPHDMI4=Lo
    @SYS:TRIG1INPHDMI4=Hi
    @SYS:TRIG1INPHDMI5=Lo
    @SYS:TRIG1INPHDMI5=Hi
    @SYS:TRIG1INPHDMI6=Lo
    @SYS:TRIG1INPHDMI6=Hi
    @SYS:TRIG1INPHDMI7=Lo
    @SYS:TRIG1INPHDMI7=Hi
    @SYS:TRIG1INPAV1=Lo
    @SYS:TRIG1INPAV1=Hi
    @SYS:TRIG1INPAV2=Lo
    @SYS:TRIG1INPAV2=Hi
    @SYS:TRIG1INPAV3=Lo
    @SYS:TRIG1INPAV3=Hi
    @SYS:TRIG1INPAV4=Lo
    @SYS:TRIG1INPAV4=Hi
    @SYS:TRIG1INPAV5=Lo
    @SYS:TRIG1INPAV5=Hi
    @SYS:TRIG1INPAV6=Lo
    @SYS:TRIG1INPAV6=Hi
    @SYS:TRIG1INPVAUX=Lo
    @SYS:TRIG1INPVAUX=Hi
    @SYS:TRIG1INPAUDIO1=Lo
    @SYS:TRIG1INPAUDIO1=Hi
    @SYS:TRIG1INPAUDIO2=Lo
    @SYS:TRIG1INPAUDIO2=Hi
    @SYS:TRIG1INPRHAPSODY=Lo
    @SYS:TRIG1INPRHAPSODY=Hi
    @SYS:TRIG1INPSIRIUSXM=Lo
    @SYS:TRIG1INPSIRIUSXM=Hi
    @SYS:TRIG1INPSPOTIFY=Lo
    @SYS:TRIG1INPSPOTIFY=Hi
    @SYS:TRIG1INPPANDORA=Lo
    @SYS:TRIG1INPPANDORA=Hi
    @SYS:TRIG1INPSERVER=Lo
    @SYS:TRIG1INPSERVER=Hi
    @SYS:TRIG1INPNETRADIO=Lo
    @SYS:TRIG1INPNETRADIO=Hi
    @SYS:TRIG1INPBT=Lo
    @SYS:TRIG1INPBT=Hi
    @SYS:TRIG1INPUSB=Lo
    @SYS:TRIG1INPUSB=Hi
    @SYS:TRIG1INPAIRPLAY=Lo
    @SYS:TRIG1INPAIRPLAY=Hi

    Einen Kommentar schreiben:


  • Morg
    antwortet

    Die Basic-Spec gibt es in der Version 2.0, darin Abschnitt 5.23 recallScene. Funktioniert bei mir problemlos.

    Von Triggerausgängen weiß ich nichts...was ist das?

    Einen Kommentar schreiben:


  • fabian82
    antwortet
    Ich nutze zwar einen HS und bin bei der Suche nach einem Scenenbefehl auf diesen Thread gestoßen. Hast du noch weitere Doku, da dieser Befehl in meiner Doku
    - Yamaha Extended Control API Specification (Basic) Rev. 1.10
    - Yamaha Extended ControlAPI Specification (Advanced) Rev. 2.0
    - Yamaha MusicCast HTTP simplified API for Control Systems V1.1
    nicht dokumentiert ist?

    Speziell bin ich zur Zeit noch nach einem Befehl um die beiden Triggerausgänge fern zu steuern, die Boardmittel des Yammi sind da recht dünn. Hast du dafür auch einen Befehl?

    Einen Kommentar schreiben:


  • Morg
    antwortet
    Nee, so geht das nicht, wie kommst du denn auf die XML-Syntax? Du könntest das yxc_passthru-Item mit 'v1/main/recallScene?num=' füttern, das sollte gehen. Mein RX-AV483 kennt 4 Szenen, also könnte x = 1..4 sein.

    Einen Kommentar schreiben:


  • rok123
    antwortet
    Ich habe versucht, dass ich eine Scene TV einschalte. Ist das auch möglich.
    Code:
    <YAMAHA_AV cmd="PUT"><Main_Zone><Scene><Scene_Load>Scene2</Scene_Load></Scene></Main_Zone></YAMAHA_AV>

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Cool, danke. Bitte beim PR im Titel ein "Plugin: Yamahayxc" vorsetzen.

    Einen Kommentar schreiben:


  • Morg
    antwortet
    Version 1.0.6 habe ich per PR in Richtung develop geschoben. Aktuelle Änderungen:

    - das Plugin unterstützt jetzt Geräte, die Weckerfunktionen haben (z.B. die ISX-Reihe). Wecker kann ein- und ausgeschaltete werden, der Piepton de-/aktiviert (statt bzw. zur Musik) und die Weckzeit kann verändert werden. Alle Werte werden automatisch abgefragt und aktualisiert.
    Alle weiteren Weckfunktionen muss ich in einem gesonderten Ansatz einbauen, weil die Lese- und Schreiblogik bei Weckfunktionen völlig von der sonstigen Systematik abweicht. Ich will das Plugin dabei nicht noch kaputter machen

    - ein paar kleinere Fehler behoben und Hinweise der Python-Linter umgesetzt

    - die Item-Konfiguration kann jetzt alternativ per struct erfolgen: struct basic für "normale" Geräte und struct alarm für Wecker. Dank der verschachtelten Structs wird basic bei alarm automatisch eingebunden.

    Außerdem habe ich festgestellt, dass das Plugin im 1.7er Release der Plugins drin ist

    Einen Kommentar schreiben:


  • Morg
    antwortet
    Jetzt kanns losgehen mit dem Gerätekaufen...

    Einen Kommentar schreiben:


  • bmx
    antwortet
    Aktuell ist das Plugin jetzt in develop verfügbar. Dieser Thread dient als Support -Thread für das Plugin. Vielen Dank für den PR!

    Einen Kommentar schreiben:


  • Morg
    antwortet
    So, das neueste Update 1.0.5 habe ich veröffentlicht, nachdem ich einige Fehler behoben und neue Funktionen eingebaut habe. Mit 1.0.3 kam die Funktion 'preset' für voreingestellte Sender mit dazu.

    Zum Testen, aber auch für Funktionen, die sich nur schwierig 'systematisch' einbauen lassen, habe ich neu das Kommando 'passthru' eingebaut. Ein str-Item, dem dieses Kommando zugewiesen ist, kann als Wert den Kommandostring übergeben bekommen (z.B. 'v1/main/setPower?power=on'). Dieser wird 1:1 an das Gerät durchgereicht.

    Da ich derzeit etwas mit (vorgefertigten) Playlists experimentiere und als Kommando 'v1/netusb/manageMcPlaylist?bank=1&type=play&index=0&zone=mai n' brauchte, bot sich diese Variante an. Leider sind diese Funktionen in den APIs nicht dokumentiert - glücklicherweise läuft das unverschlüsselt über HTTP [COLOR=#8E9D9F !important][/COLOR][COLOR=#7F9092 !important]​[/COLOR]

    Mike, das könnte auch für dich interessant sein, wenn du Funktionen nutzen willst, die im Plugin noch nicht (ausreichend) implementiert sind... die API-Beschreibung für viele Kommandos habe ich ja im ersten Beitrag angehängt.

    Einen Kommentar schreiben:


  • Morg
    antwortet
    Du kannst jederzeit das Update-Item triggern, "die Arbeit einstellen" heißt nur, dass das Plugin nicht versucht, die aktuelle Abfrage weiter zu bearbeiten. Du kannst - wenn du weißt, dass der Receiver an ist - auch gleich "normale" Befehle senden. Es wird kein Status "offline" gespeichert oder so.

    Das generelle Abfragen kannst du dann bei 600 Sekunden lassen (der push-Service startet ja automatisch wieder nach dem ersten Update) und ggf. per item-Trigger auf die Steckdose und 15-20 Sekunden Verzögerung (Logik mit sleep?) das Update-Item auf true setzen. Das sollte reichen.

    Ich habe das alte Multimedia-Widget mal etwas umgebastelt (mit net_radio als primäres Ziel, wie gehabt). Nicht wirklich schön, aber geht... ich habe es im widgets-Ordner unterhalb meines Seitenordners.
    Angehängte Dateien

    Einen Kommentar schreiben:


  • Mike01
    antwortet
    Hi,

    Danke für das Update,

    Habs gerade installiert und getestet. Schaut soweit sehr gut aus, die Payload-Fehler sind weg, und wenn das Plugin getriggert wird und das Gerät ausgeschaltet ist, erscheint nur ein "Device not Answering..." im Logfile.

    Ein paar Feinheiten hab ich noch die noch nicht so ganz funktionieren, aber das liegt wohl eher an meinen bescheidenen Programmierkünsten.

    z.B. muss ich den Cycle jetzt wieder auf 60sec. zurückstellen, da beim einschalten der TV-Geräte Steckdosen der Receiver ja nicht sofort erreichbar ist,
    das Plugin aber sofort die Verbindung prüft und danach die Kommunikation einstellt. beim 2. Update-Trigger klappt das dann aber mit der Verbindung.
    Hier muss ich mir noch was basteln, dass der Update-Trigger erst 15sec. nach einschalten der Geräte Steckdosen angesteuert wird, dann sollte die Verbindung
    gleich klappen und mir reicht danach ein cycle von 10min.

    Hab mir jetzt mal auf die schnelle ein SmartVisu Widget gebastelt, die Grundfunktionen wie Lautstärke, Ein/Aus, Mute passen schon mal, nur Play,Pause,Stop will noch nicht so ganz wie es soll.
    Im Internetradio-Modus funktioniert die Titelanzeige, im DAB+ Betrieb nicht, aber das hast du ja erwähnt, dass es im moment nur auf Internetradio zugeschnitten ist.
    auch die Preset Funktion für die Sender, aber das ist für mich im Moment eh zweitrangig, da die hauptnutzung des Gerätes eh die Heimkino Funktion ist.


    Angehängte Dateien

    Einen Kommentar schreiben:


  • Morg
    antwortet
    So.. ich habe mal etwas dran gebastelt...

    1. Das Fehlerhandling sollte durchgängig erkennen, dass ein Gerät im Netz nicht verfügbar ist (gibt eine Logmeldung WARN aus) und stellt die aktuelle Aktion ein. Mit der nächsten manuellen (oder logik-gesteuerten) Aktion wird das Gerät wieder abgefragt. Es erfolgen keine automatischen Statusupdates, dies muss manuell über das update-Item erfolgen.
    Die Fehlerbehandlung sollte auch damit klarkommen, dass keine Daten gelesen werden können und _keine_ dementsprechenden Fehler ausgeben (die Meldung, dass das Gerät nicht erreichbar ist, wurde ja schon geloggt).

    2. Ich habe den Fehler bezüglich der Kommandobearbeitung behoben. Wenn nochmal ein Fehler "No payload received" im Log auftaucht, dann sagt mir das bitte. Das heißt dann, dass ich schlechten Programmcode geschrieben habe (die Meldung darf eigentlich nicht mehr auftauchen)

    3. Ich habe noch die Option/den Befehl "preset" hinzugefügt. Wenn z.B. die Internetradio-Quelle gewählt ist, kann man damit die voreingestellten Sender anwählen.

    4. Ich habe die ganze Kommentierung auf docstring aktualisiert und etwas erweitert - damit andere (und ich!) beim späteren Lesen verstehen können, wozu die einzelnen Funktionen gut sind. Von einem zum nächsten Mal vergesse ich das auch selbst ...

    Probier es mal aus und gib mir gern noch Feedback, wenn du mehr Funktionen brauchst oder Fehler oder unlogische Funktionen findest.

    Ich habe später noch wesentlich weitergehende Updates am Plugin vor:
    - flexible Unterstützung von mehreren Zonen (im Moment braucht jede Zone eigene Items)
    - umfangreichere Steuerung von AV-Verstärkern (Quellenwahl geht, aber z.B. Tuner auswählen/einstellen, Status vom Tuner abfragen) oder anderen Geräten (CD-Player mit Status/Steuerung usw)
    brauche ich dann neben mehr Zeit vor allem
    - ein passendes Gerät (Anschaffung AV-Receiver im 1. Halbjahr geplant )
    - Zeit zum Rumspielen

    Daher danke für dein Tunnelangebot - aber ich glaube, das braucht mehr Zeit als mal einen Nachmittag

    Einen Kommentar schreiben:

Lädt...
X