Yamaha Mulitcast einbinden

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Flo991990
    Azubi
    • 25.04.2022
    • 3

    #91
    Hey,
    weiß nicht, ob noch aktuell, wollte mich aber beteiligen, da der Statusbaustein bei Wert 25 darum bittet

    Ich kriege den Status 25 bei Tidal, sollte laut Baustein eigentlich 23 sein. Yamaha AVR 2070

    Kommentar

    • MarkusCosi
      Extension Master
      • 28.09.2023
      • 193

      #92
      Hallo zusammen,

      auch ich zähle wohl zu den MusicCast-Jüngern .

      Seit einiger Zeit schon kann ich so beim Klingeln an der Tür die Musik (ob Server oder Spotify) pausieren, und nach Tür öffnen und nachfolgend wieder schließen geht die Musik weiter.

      Zuletzt hatte ich mich dabei im Hinblick auf die Ausgabe bestimmter Sounds auch der MusicCast Playlisten bedient. Diese sind ja per undokumentierter Syntax zu triggern: "http://<<IP>>/YamahaExtendedControl/v1/netusb/manageMcPlaylist?bank=1&type=play&index=0" spielt z.B. den ersten track der Playlist#1, welche man zuvor per App z.B. bequem erstellen kann.

      Ich habe es auch hinbekommen einen bestimmten Sound in Dauerschleife zu spielen (Alarm), wofür ich den "repeat" Status zuvor auslesen musste. Das gelingt mit einem http-Eingang (http://<<IP>>/YamahaExtendedControl/v1/netusb/getPlayInfo) und der Befehlserkennung "repeat":"\h\h\h", welche 0 (all), 14 (one, ← den wollte ich) oder 15 (off) zurück gibt. Per http-Ausgang http://<<IP>>/YamahaExtendedControl/v1/netusb/toggleRepeat konnte ich dann den Status via Ablaufsteuerung einstellen (bei off: Ausgangsbefehl triggern via 1 setzen erzeugte einfache Änderung → one, bei all: Ausgangsbefehl per setpulse erzeugte zweifache Änderung! → one)

      Jedenfalls wollte ich nun einen bestimmten Track einer Playlist einmalig abspielen. Das bekomme ich leider nicht hin, da MusicCast fröhlich weiter spielt in der Playlist.
      Nun dachte ich, ich könnte einfach die total_time zuvor auslesen, um dan per Befehlverzögerung ein "stopp" zu senden nach Ablauf des Tracks. Jedoch steht bei mir beim input "Server" immer ein "total_time": 0, obgleich "play_time": xx:xx funktioniert. Liegt das vielleicht am Synology DLNA (App: "Media Server"), dass Yamaha also die Info/das Meta-Datum gar nicht bekommt?

      Ich wollte das ganze auch in Richtung Text-To-Speech mal probieren, daher die Versuche einzelne Tracks abzuspielen. Die Steuerung durch die Ordner-Struktur per "http://<<IP>>/YamahaExtendedControl/v1/netusb/setListControl?type=select&index=0" ist nicht nachvollziehbar für mich, da nicht reproduzierbar.. Per Taster ging das navigieren, in einer Steuerung via Impulsverzögerung wiederum nicht... vermutlich hängt das wieder damit ab wie genau man die http-Befehle absetzt? Hat das was mit den Parametern Erste Wiederholung & Wiederholungsabstand zu tun?

      Hat sonst noch jemand Erfahrung mit T2S via MusicCast?

      Vielen Dank und viele Grüße!​

      Kommentar

      • MarkusCosi
        Extension Master
        • 28.09.2023
        • 193

        #93
        ...ich würde auch gerne in einem Status-Baustein o.Ä. die aktuellen Track-Infos anzeigen. D.h, ich würde gerne Teile vom Text vom API-Befehl "http://<<IP>>/YamahaExtendedControl/v1/netusb/getPlayInfo" einlesen und in der Visu anzeigen lassen. Ich habe hier im Thread gelesen, dass einige auch mit dieser Idee liebäugeln..

        Nun habe ich gesehen, dass es leider nicht so einfach ist Text an den Miniserver zu übergeben, siehe diesen Thread hier.

        z.B. würde ich gerne den UDP output vom Any-Plugin einlesen, d.h. auf dem Loxberry folgendes durch Any-Plugin ausführen und irgendwie als Text an den Miniserver bekommen. "curl -s 'http://<<IP>>/YamahaExtendedControl/v1/netusb/getPlayInfo' | grep -Po '"artist":"(\s|\S)*?albumart' | head -c -11" → das gibt mir Artist, Album, Track, etwas unschön formatiert... (Linux-Kenner könnten den Befehl sicher optimieren und die Anführungszeichen im Output z.B. löschen)

        Hat hier jemand eine Idee wie das zu schaffen wäre? Vllt. per MQTT publish command im Any-Plugin? Danke!
        Zuletzt geändert von MarkusCosi; 24.01.2024, 21:57.

        Kommentar

        • Tico
          Lox Guru
          • 31.08.2016
          • 1035

          #94
          Wenn Sie einen Loxberry haben, gibt es vielleicht eine einfache Möglichkeit, Text über einen Virtual Text Input (mit MQTT publish) zurückzubekommen. Ich bin mit den Schritten nicht vertraut. Hoffentlich kann jemand etwas dazu sagen.

          Wenn Sie keine MQTT-Auflösung erhalten, besteht eine alternative Möglichkeit darin, eine Variation des oben angegebenen Text Input-Links zu verwenden.

          Diese Variante benötigt nicht alle Statusblöcke und verwendet stattdessen einen Sequence Controller, um die Virtual Inputs zu analysieren. Es ist immer noch eine virtuelle Eingabe für jeweils 6 Zeichen erforderlich, die Sie abrufen müssen. 60 Zeichen erfordern also 10 virtuelle Eingaben.

          Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Text Feedback.gif Ansichten: 0 Größe: 103,7 KB ID: 420431

          Eine andere Möglichkeit ist die Installation von Node-Red. Wenn Sie Loxberry v3.0.0.6 haben, ist die Installation über den DietPi Software Installer sehr einfach.
          Zuletzt geändert von Tico; 25.01.2024, 01:35.
          Ich spreche kein Deutsch. Gib Google Translate die Schuld, wenn ich unverständlich bin.

          Kommentar

          • MarkusCosi
            Extension Master
            • 28.09.2023
            • 193

            #95
            Hallo!

            Danke für die Anregung, das sieht interessant aus!
            Mit Node Red hatte ich zuletzt leider keinen Erfolg, da ich bereits scheinbar an der Installation gescheitert bin.

            Implementierung über das Any-Plugin der Ausgabe von Track/Album Infos an MQTT für die Einbindung in Loxone:
            Zunächst hatte ich probiert lokal auf dem Loxberry im Terminal per MQTT zu publishen... Das funktionierte (siehe hier, bzw. im Terminal "mosquitto_pub --help") per Befehl:
            mosquitto_pub -h IPLoxBerry -p 1883 -u 'loxberry (siehe MQTT Basics Reiter im Loxberry)' -P 'Password from MQTT (siehe MQTT Basics Reiter)' -t 'custom' -m 'test'

            Per pipe "|" und der "-s"-Option von mosquitto_pub bekommt man den Text von Yamaha's http-API also in ein MQTT publishen (im MQTT vorher eine subscription zu "custom/#" einrichten. Dann die einzelnen Yamaha Devices mit entsprechenden DeviceX-tags auseinander halten, und per virtuellen Texteingängen mit der Bezeichnung "custum_Yamaha_DeviceX" in den Miniserver reinholen und per virtuellem Status anzeigen:
            curl -s 'http://<<IPYamaha DeviceX>>/YamahaExtendedControl/v1/netusb/getPlayInfo' | grep -Po '"artist":"(\s|\S)*?albumart' | head -c -11 | sed 's/"//g' | sed 's/artist://g' | sed 's/album:/ /g' | sed 's/track:/ /g' | mosquitto_pub -h <<IPloxberry>> -p 1883 -u 'loxberry' -P 'passwort' -t 'custom/Yamaha_DeviceX' -s​
            Zuletzt geändert von MarkusCosi; 28.01.2024, 20:30.

            Kommentar

            • MarkusCosi
              Extension Master
              • 28.09.2023
              • 193

              #96
              PS: weiß eigentlich jemand wie man ggf. per Kommandozeilenbefehl einen MQTT publish wie oben bewirken kann, ohne dass MQTT Passwort mitzugeben? geht das vllt. iwie per publish http2mqtt (siehe hier)?

              Kommentar

              • Christian Fenzl
                Lebende Foren Legende
                • 31.08.2015
                • 11200

                #97
                Siehe hier https://wiki.loxberry.de/konfigurati..._udp_interface (Teil UDP)

                und hier



                lg Christian
                Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                Kommentar

                • MarkusCosi
                  Extension Master
                  • 28.09.2023
                  • 193

                  #98
                  Dankeschön lieber Christian für die schnelle Hilfe!
                  Leider bin ich programmier-technisch nicht so fit. Aber es sieht ja schonmal vielversprechend aus, zumal ich aus dem lokalen Netz auf dem Loxberry einen Befehl (per Any-Plugin) auszuführen gedenke und mir scheinbar dann die login-credentials sparen kann? (http://IPloxberry:80/admin/system/tools/mqtt.php?topic=<topic>&value=<value>&retain=<1/0>&transform=<transformername>)

                  So wie ich es verstanden hatte (lieg ich hier falsch?), kann man per UDP an den Miniserver lediglich numerische Werte übermitteln, da am Ende immer eine Befehlserkennung in der Loxone Config steht. Nun sehe ich aber in deinem ersten Link auch ein Beispiel welches ein "Hello" verschickt. Wie liest man das per virtuellem Eingang denn ein und behält dabei den Text?

                  Bei dem MQTT Beispiel stehe ich noch auf dem Schlauch bezüglich der Weiterleitung von Befehlsausgaben und dem notwendigen "Transformer". Ersteres betrifft aber auch die UDP Variante:

                  Wie würde ich z.B. die <???> ersetzen um zu erreichen, dass das was im Befehl zuvor als Ausgabe "erarbeitet" wurde als "Variable" dem publish-Befehl zugeführt wird? D.h. wie geht ein Pipe-segmentierter Befehl wie folgender weiter?

                  curl -s 'http://<<IPYamaha DeviceX>>/YamahaExtendedControl/v1/netusb/getPlayInfo' | grep -Po '"artist":"(\s|\S)*?albumart' | head -c -11 | <???>

                  Kommentar

                  Lädt...