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

  • Morg
    antwortet
    Hm... ich könnte im Skript wahrscheinlich abfragen, ob der remote_host erreichbar ist und ggf. einen Fehler abfangen. Muss ich mir mal genauer anschauen. Mit der Variante, dass die Geräte gar nicht erreichbar sind, habe ich ehrlich gesagt noch nicht geplant.

    Den Fehler beim "state"-Kommando habe ich gefunden, da sollte ich am Wochenende zu kommen. Vielleicht fällt mir dann auch gleich was zum Kontakt ein (ggf. ein Kommando/Item device_present oder so...

    Einen Kommentar schreiben:


  • Mike01
    antwortet
    Danke für die Rückantwort, das ist gut zu wissen, dass der Receiver die Kommunikation für 10 Minuten aufrecht erhält, und so die Updates auch sendet.
    Hab es gerade getestet, funktioniert nach einem Update-Trigger auch noch nach mehreren Minuten, dass wenn ich das Gerät einschalte, dass der Zustand gemeldet wird.

    Das Update-Item triggere ich folgendermaßen:
    Der Receiver bekommt bei mir nur Saft, wenn die Steckdosen "TV-Geräte" eingeschaltet sind, und danach dauert es ca. 15sec. bis sich das Gerät im Netzwerk meldet.
    Dadurch hab ich den Status des Items TV-Geräte (sh.og.wohnen.geraete) ausgewertet, und sende einen Update Befehl sobald dieser auf EIN steht.
    Den AV-Receiver nutze ich nicht immer, bei normalen TV-Serien ist das Gerät z.B. in Standby, nur wenn ich BluRay oder TV-Filme auf SKY schaue läuft der Receiver.

    Code:
    media:
        RXA670:
            update:
                type: bool
                yamahayxc_cmd: state
                enforce_updates: 'True'
                cycle: 600
                eval: True if sh.og.wohnen.geraete() else None
    Die Steckdose vom Subwoofer Triggere ich dann mit dem power Item des Plugins:
    Code:
    og
        wohnen
            subwoofer:
                type: bool
                knx_dpt: 1
                knx_cache: 1/0/52
                knx_send: 1/0/12
                eval: sh.media.RXA670.power()
                eval_trigger: media.RXA670.power

    Im moment bekomme ich beim Initialisieren vom SmarthomeNG immer eine Fehlermeldung wenn der Receiver nicht läuft, da er ja keine Verbindung zum Host herstellen kann,
    kann man das evtl. ändern, so dass die Verbindung nur aufgebaut wird, wenn das Update Item getriggert wird ? ansonsten läuft das Plugin soweit ganz gut.

    Wenns dir für die weiterentwicklung des Plugins hilft, kann ich dir gerne mal an einem Wochenende den Receiver über SSH Tunnel erreichbar machen.

    Gruß, Mike

    Einen Kommentar schreiben:


  • Morg
    antwortet
    Hi,

    schön, dass es erstmal läuft. Vorab - ich habe zum Testen nur den WX-010, daher ist wahrscheinlich sowohl das Nutzungsprofil als auch die Schwerpunkte bei der Umsetzung ggf. nicht ganz gleich. Wenn ich kann, passe ich das aber gern an.

    Grundsätzlich ist das für die Geräte kein Problem, wenn du die alle 10 Sekunden abfragst. Es reicht aber auch, wenn du alle (knapp) 10 Minuten einmal das Update-Item auf True setzt. Das löst eine Statusabfrage aus (aufgrund der Logik fragt er jedesmal den gesamten (implementierten) Status ab) - und dann teilt das Gerät dem sh.py per Push jede Änderung mit, und zwar 10 Minuten lang ab der letzten Aktion.

    Wenn also sowohl Receiver als auch sh.py Mediensteuerung ansonsten nicht miteinander reden, reicht alle 10 Minuten eine Statusabfrage und die nächsten 10 Minuten bekommst du alle Infos automatisch.

    Zum zweiten Teil:

    Intern merkt er, dass er ein Kommando senden soll, aber er weiß nicht, welches. Vielleicht habe ich da noch was übersehen?
    Wie triggerst du denn das Update-Item? Manuell im CLI/Backend? per Logik/item/eval? Und wie genau?

    Gruß
    Sebastian

    (PS: wenn es gut läuft, bekomme ich im Laufe des Quartals noch einen aktuellen Receiver, dann kann ich das etwas gezielter implementieren. Ansonsten brauche ich vielleicht zum Testen mal nen ssh-Tunnel auf deinen Receiver )

    Einen Kommentar schreiben:


  • Mike01
    antwortet
    Hallo,

    Hab gerade dein Plugin erfolgreich installiert.

    Hab auch zu Weihnachten mein Heimkino etwas aufgerüstet und mir einen Yamaha RX-A670 gekauft.

    Im moment nutze ich dein Plugin um abzufragen, ob der Receiver Ein ist oder auf Standby läuft, und dadurch steuere ich dann die
    Steckdose für den Aktiv-Subwoofer hinter der Couch.

    Mein alter Kenwood Receiver hatte hier einen extra Stromanschluss, den ich auf einen Binäreingang gelegt hatte und damit feststellen konnte, ob das Gerät läuft oder nicht.
    Der Yamaha hat das nicht mehr, dadurch hab ich mir mit deinem Plugin beholfen.

    Weißt du zufällig, ob der Yamaha Receiver das durchhält, wenn ich ihm alle 10sec. eine Updateabfrage schicke ?

    Noch was, bei jeder Triggerung des update-Items bekomm ich einen Logfile-Eintrag
    Code:
    2018-01-24  20:11:25 WARNING  plugins.yamahayxc No payload received.
    Was hat es damit aufsich ?
    Um das abzustellen hab ich die entsprechende Zeile (267) in der __init__.py Datei im moment auskommentiert.


    Gruß, Mike

    Einen Kommentar schreiben:


  • Morg
    hat ein Thema erstellt Plugin: Yamaha MusicCast-Geräte (neuere Generation).

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

    Hallo,

    nachdem ich zu Weihnachten Zuwachs im AV-Pool bekommen habe, aber feststellen musste, dass die vorhandenen Plugins nicht mit dem Gerät reden wollen, habe ich ein neues Plugin geschrieben. (Das ist eigentlich gelogen, ich habe das bestehende yamaha-Plugin angepasst bzw. umgeschrieben. Dank an Raoul Thill für das Original!)

    Mit der Einführung von MusicCast (eine Yamaha-Multiroom-Lösung) hat Yamaha gleichzeitig das bisher verwendete Yamaha Network Control (YNC) API aufgegeben (?) und das neue Yamaha Extended Control (YXC) API eingeführt. Die Yamaha-Dokumentation habe ich mal angehängt.

    Das Protokoll basiert auf URL-basierten Abfragen per GET und liefert Daten als JSON-Datagramm zurück. Wenn das Plugin mit einem Gerät spricht, registriert es sich dort und bekommt für 10 MInuten nach dem jeweils letzten Kommando Daten als Push-Notification per UDP (auch im JSON-Format).

    Das Plugin ermöglicht die Statusabfrage und Steuerung von kompatiblen Geräten (Power, Volume, Mute, Input, Play/Pause/Stop/Skip F/R als Lese-/Schreibfunktion, Titel, Künstler, Albumart, aktuelle Wiedergabeposition, Titellänge als Nur-Lese-Daten).

    Im Rahmen der Entwicklung habe ich es intensiv getestet, die grundsätzliche Funktion ist vorhanden. Ob es in anderen Rahmenbedingungen Probleme gibt, kann ich mangels anderer Rahmenbedingungen derzeit nicht testen. Wer passende Geräte übrig hat, kann mir die gern zum Test überlassen [COLOR=#B1B1B1 !important][/COLOR][COLOR=#999999 !important]​[/COLOR]

    Ich biete das hier erstmal für Interessierte an. Für Rückmeldungen, Fehler und Funktionswünsche bin ich gern offen.

    Update: mit Release 1.7 ist das Plugin im sh.py-Plugin-Repository.

    Gruß
    Sebastian
    Angehängte Dateien
    Plugins for SmartHomeNG - The device integration platform for your smart home - smarthomeNG/plugins
    Zuletzt geändert von Morg; 07.04.2020, 20:27.
Lädt...
X