Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [Vorlage] Denon HEOS Script

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

[Vorlage] Denon HEOS Script

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascripttemplate
357 Beiträge 48 Kommentatoren 75.9k Aufrufe 44 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • UhulaU Uhula

    @sveni_lee Das bietet das HEOS API nicht an, sondern nur das Abspielen. Eine Navigation darüber wäre wohl auch zu langsam, und für dich im Design zu aufwendig in der Umsetzung, da du selbst die Ergebnislisten (Ordner, Dateien) darstellen müsstest und über Ereignisse die Ordner wechseln.

    S Offline
    S Offline
    sveni_lee
    schrieb am zuletzt editiert von
    #170

    @Uhula

    okay, verstehe...
    in der HEOS App auf dem Handy kann ich ja durch die Ordnerstrucktur browsen. das bedeutet ja es gibt durchaus "Befehle" die das ermöglichen. wenn Ich nun die Kommunikation in meinem Netzwerk mitlogge (wireshark), müsste man es ja rausbekommen.
    Ich hatte sowas mal mit meinem alten Onkyo gemacht...

    UhulaU W 3 Antworten Letzte Antwort
    0
    • S sveni_lee

      @Uhula

      okay, verstehe...
      in der HEOS App auf dem Handy kann ich ja durch die Ordnerstrucktur browsen. das bedeutet ja es gibt durchaus "Befehle" die das ermöglichen. wenn Ich nun die Kommunikation in meinem Netzwerk mitlogge (wireshark), müsste man es ja rausbekommen.
      Ich hatte sowas mal mit meinem alten Onkyo gemacht...

      UhulaU Offline
      UhulaU Offline
      Uhula
      schrieb am zuletzt editiert von
      #171

      @sveni_lee Mag sein, wenn denn das API das her gibt. Trotzdem bleibt immer noch der Aufwand dieses dann zu visualisieren. Manchmal sind die nativen Apps doch besser geeignet als nachgebaute Eigenentwürfe. Ich nutze das HEOS Script nur für die grundsätzliche Steuerung (für meine Frau). NDR2, Playlist Johannes Oerding, ... Lautstärke. Alles andere findet dann in der HEOS App bzw. in der Spotify App statt.

      Uhula - Leise und Weise
      Ex: ioBroker on Gigabyte NUC Proxmox

      1 Antwort Letzte Antwort
      0
      • S sveni_lee

        @Uhula

        okay, verstehe...
        in der HEOS App auf dem Handy kann ich ja durch die Ordnerstrucktur browsen. das bedeutet ja es gibt durchaus "Befehle" die das ermöglichen. wenn Ich nun die Kommunikation in meinem Netzwerk mitlogge (wireshark), müsste man es ja rausbekommen.
        Ich hatte sowas mal mit meinem alten Onkyo gemacht...

        W Offline
        W Offline
        withstu
        schrieb am zuletzt editiert von
        #172

        @sveni_lee Alles was du über die App machen kannst, ist auch über die HEOS API möglich (http://rn.dmglobal.com/euheos/HEOS_CLI_ProtocolSpecification.pdf). Also auch die Navigation. Wie Uhula schon sagt ist die Darstellung das Problem. Die Commands könntest du jedoch schicken. Sie werden nur nicht vom Adapter ausgewertet. Wenn jemand eine Idee hat, wie man das sinnvoll umsetzen kann, ich bin offen für Anregungen.

        Beispielsweise könntest du im Terminal folgendes nacheinander eingeben, um dir die Ergebnisse der API anzuschauen:

        telnet flur 1255
        heos://system/prettify_json_response?enable=on
        heos://browse/browse?sid=1024
        # Entsprechend die sid raussuchen immer weiter navigieren, bis man irgendwann eine mid hat und ein playable flag
        heos://browse/browse?sid=851081134&cid=1$FF0
        
        1 Antwort Letzte Antwort
        0
        • S sveni_lee

          @Uhula

          okay, verstehe...
          in der HEOS App auf dem Handy kann ich ja durch die Ordnerstrucktur browsen. das bedeutet ja es gibt durchaus "Befehle" die das ermöglichen. wenn Ich nun die Kommunikation in meinem Netzwerk mitlogge (wireshark), müsste man es ja rausbekommen.
          Ich hatte sowas mal mit meinem alten Onkyo gemacht...

          W Offline
          W Offline
          withstu
          schrieb am zuletzt editiert von
          #173

          @sveni_lee Ich habe gerade den Adapter erweitert (Version 1.1.2). In den Source Channels gibt es jetzt einen Browse Button. Im Log wird dann ausgegeben, welche HEOS Commands auf der nächsten Ebene möglich sind. So kann man halbwegs komfortabel navigieren und die Commands für die Automatisierung raussuchen.

          [BROWSE] [851081134] [Video] Possible Commands: browse/browse?sid=851081134&cid=2
          [BROWSE] [851081134] [Ordner durchsuchen] Possible Commands: browse/browse?sid=851081134&cid=64
          [BROWSE] [851081134] [Musik] Possible Commands: browse/browse?sid=851081134&cid=1
          [BROWSE] [851081134] [Bilder] Possible Commands: browse/browse?sid=851081134&cid=3
          [BROWSE] [851081134] {"sid":"851081134","returned":"4","count":"4"}
          [BROWSE] [Local Music] [Server] Possible Commands: browse/browse?sid=851081134
          [BROWSE] [Local Music] [AVM FRITZ!Mediaserver] Possible Commands: browse/browse?sid=77447081
          [BROWSE] [Local Music] {"sid":"1024","returned":"2","count":"2"}
          [BROWSE] [History] [SWR1 Baden-Württemberg 94.7 (Variety)] Possible Commands: player/play_stream&sid=1026&cid=STATIONS&mid=s20291
          [BROWSE] [History] [1 LIVE] Possible Commands: player/play_stream&sid=1026&cid=STATIONS&mid=s25260
          [BROWSE] [History] [DASDING 90.8 (Euro Hits)] Possible Commands: player/play_stream&sid=1026&cid=STATIONS&mid=s20295
          

          Btw. ich habe einen Pull Request gestellt, sodass der Adapter in das offizielle Repository aufgenommen wird. Dann wird die Installation einfacher.

          A H S 4 Antworten Letzte Antwort
          0
          • W withstu

            @sveni_lee Ich habe gerade den Adapter erweitert (Version 1.1.2). In den Source Channels gibt es jetzt einen Browse Button. Im Log wird dann ausgegeben, welche HEOS Commands auf der nächsten Ebene möglich sind. So kann man halbwegs komfortabel navigieren und die Commands für die Automatisierung raussuchen.

            [BROWSE] [851081134] [Video] Possible Commands: browse/browse?sid=851081134&cid=2
            [BROWSE] [851081134] [Ordner durchsuchen] Possible Commands: browse/browse?sid=851081134&cid=64
            [BROWSE] [851081134] [Musik] Possible Commands: browse/browse?sid=851081134&cid=1
            [BROWSE] [851081134] [Bilder] Possible Commands: browse/browse?sid=851081134&cid=3
            [BROWSE] [851081134] {"sid":"851081134","returned":"4","count":"4"}
            [BROWSE] [Local Music] [Server] Possible Commands: browse/browse?sid=851081134
            [BROWSE] [Local Music] [AVM FRITZ!Mediaserver] Possible Commands: browse/browse?sid=77447081
            [BROWSE] [Local Music] {"sid":"1024","returned":"2","count":"2"}
            [BROWSE] [History] [SWR1 Baden-Württemberg 94.7 (Variety)] Possible Commands: player/play_stream&sid=1026&cid=STATIONS&mid=s20291
            [BROWSE] [History] [1 LIVE] Possible Commands: player/play_stream&sid=1026&cid=STATIONS&mid=s25260
            [BROWSE] [History] [DASDING 90.8 (Euro Hits)] Possible Commands: player/play_stream&sid=1026&cid=STATIONS&mid=s20295
            

            Btw. ich habe einen Pull Request gestellt, sodass der Adapter in das offizielle Repository aufgenommen wird. Dann wird die Installation einfacher.

            A Offline
            A Offline
            ak1
            schrieb am zuletzt editiert von
            #174

            Hmm, nichts geht mehr.
            Seit langer Zeit habe ich das HEOS Skript von @Uhula im Einsatz. Derzeit die Version vom 13.03.2020. Aus meiner Visualisierung rufe ich lediglich drei Presets auf, steuere die Lautstärke, Stopp und Start, nicht viel mehr.

            Seit heute morgen reagiert mein Denon allerdings nicht mehr darauf. Ich sehe im Log, dass das Skript den den Denon findet und sich verbindet. in Meinen Blockly-Skripten, genutzt durch meine Visualisierung, habe ich Debug-Einträge und sehe auch, dass die Befehle zum Abspielen des Presets rausgehen.

            Im Datenpunkt last_error kommt dann allerdings ein

            result=fail, Command not recognized
            

            zurück.

            Befehl ist z.B.

            play_preset&preset=1|set_volume&level=40
            

            Dann habe ich mal den neuen Adapter von @withstu installiert und getestet. Auch hier das gleiche Phänomen. Der Adapter findet den Denon, legt Datenpunkte mit den Presets an, alles sieht gut aus.

            Wenn ich dann allerdings ein Kommando abschicke, scheitert dies:

            heos.0	2020-09-27 12:01:19.527	warn	(1235) result=fail,text=Command not recognized,command=preset
            heos.0	2020-09-27 12:00:56.006	info	(1235) connected to HEOS (192.168.2.102)
            heos.0	2020-09-27 12:00:56.005	info	(1235) connecting to HEOS (192.168.2.102) ...
            heos.0	2020-09-27 12:00:54.006	info	(1235) searching for HEOS devices ...
            heos.0	2020-09-27 12:00:53.975	info	(1235) starting. Version 1.1.2 in /opt/iobroker/node_modules/iobroker.heos, node: v12.16.3, js-controller: 3.1.6
            

            In dem Fall war das Kommando

            play_preset&preset=3
            

            Hat jemand eine Idee? Mit der HEOS App geht die Auswahl der Presets wie bisher problemlos.

            W 1 Antwort Letzte Antwort
            0
            • A ak1

              Hmm, nichts geht mehr.
              Seit langer Zeit habe ich das HEOS Skript von @Uhula im Einsatz. Derzeit die Version vom 13.03.2020. Aus meiner Visualisierung rufe ich lediglich drei Presets auf, steuere die Lautstärke, Stopp und Start, nicht viel mehr.

              Seit heute morgen reagiert mein Denon allerdings nicht mehr darauf. Ich sehe im Log, dass das Skript den den Denon findet und sich verbindet. in Meinen Blockly-Skripten, genutzt durch meine Visualisierung, habe ich Debug-Einträge und sehe auch, dass die Befehle zum Abspielen des Presets rausgehen.

              Im Datenpunkt last_error kommt dann allerdings ein

              result=fail, Command not recognized
              

              zurück.

              Befehl ist z.B.

              play_preset&preset=1|set_volume&level=40
              

              Dann habe ich mal den neuen Adapter von @withstu installiert und getestet. Auch hier das gleiche Phänomen. Der Adapter findet den Denon, legt Datenpunkte mit den Presets an, alles sieht gut aus.

              Wenn ich dann allerdings ein Kommando abschicke, scheitert dies:

              heos.0	2020-09-27 12:01:19.527	warn	(1235) result=fail,text=Command not recognized,command=preset
              heos.0	2020-09-27 12:00:56.006	info	(1235) connected to HEOS (192.168.2.102)
              heos.0	2020-09-27 12:00:56.005	info	(1235) connecting to HEOS (192.168.2.102) ...
              heos.0	2020-09-27 12:00:54.006	info	(1235) searching for HEOS devices ...
              heos.0	2020-09-27 12:00:53.975	info	(1235) starting. Version 1.1.2 in /opt/iobroker/node_modules/iobroker.heos, node: v12.16.3, js-controller: 3.1.6
              

              In dem Fall war das Kommando

              play_preset&preset=3
              

              Hat jemand eine Idee? Mit der HEOS App geht die Auswahl der Presets wie bisher problemlos.

              W Offline
              W Offline
              withstu
              schrieb am zuletzt editiert von withstu
              #175

              @ak1 Ich habe gerade beide Commands bei mir ausprobiert und sie funktionierten tadellos (Marantz Receiver, HEOS 1). Mir ist aber auch gerade aufgefallen, dass sich mein Receiver merkwürdig verhalten hat. Dieser hat keine anderen Player mehr erkannt. Bei mir war die Lösung, den Receiver einmal vom Strom zu trennen. Weitere Möglichkeit wäre, dass der Denon ein Update bekommen hat? Lief ja in der letzten Zeit auch nicht mehr alles rund bei Denon.

              Edit: Mir ist gerade noch eingefallen, dass es Probleme gibt, wenn sich die App und das Script/Adapter zufällig mit dem gleichen Player verbinden wollen. Dabei funktioniert entweder die App nicht richtig oder der Adapter/Script. Die aktuellen Scripte bzw. der Adapter merken das durch den Heartbeat und versuchen sich neu zu verbinden.

              A 1 Antwort Letzte Antwort
              1
              • W withstu

                @ak1 Ich habe gerade beide Commands bei mir ausprobiert und sie funktionierten tadellos (Marantz Receiver, HEOS 1). Mir ist aber auch gerade aufgefallen, dass sich mein Receiver merkwürdig verhalten hat. Dieser hat keine anderen Player mehr erkannt. Bei mir war die Lösung, den Receiver einmal vom Strom zu trennen. Weitere Möglichkeit wäre, dass der Denon ein Update bekommen hat? Lief ja in der letzten Zeit auch nicht mehr alles rund bei Denon.

                Edit: Mir ist gerade noch eingefallen, dass es Probleme gibt, wenn sich die App und das Script/Adapter zufällig mit dem gleichen Player verbinden wollen. Dabei funktioniert entweder die App nicht richtig oder der Adapter/Script. Die aktuellen Scripte bzw. der Adapter merken das durch den Heartbeat und versuchen sich neu zu verbinden.

                A Offline
                A Offline
                ak1
                schrieb am zuletzt editiert von
                #176

                @withstu
                Danke für Deinen Tipp! Tatsächlich hat es geholfen, den Receiver für einen Moment vom Strom zu nehmen. Das war für mich etwas überraschend, denn er ist gemeinsam mit dem Sat-Receiver und dem Fernseher jede nacht per Shelly Plug S komplett vom Strom getrennt.

                Wie auch immer. Nach dem der Receiver wieder an war, funktioniert zuerst Uhulas Skript wieder. Dann habe ich Deinen Adapter neu gestartet und auch der funktioniert nun. Mir ist aufgefallen, das erst bei diesem Neustart die Datenstruktur "players" in den Objekten befüllt wurde. Vorher war da nix.

                1 Antwort Letzte Antwort
                0
                • W withstu

                  @sveni_lee Ich habe gerade den Adapter erweitert (Version 1.1.2). In den Source Channels gibt es jetzt einen Browse Button. Im Log wird dann ausgegeben, welche HEOS Commands auf der nächsten Ebene möglich sind. So kann man halbwegs komfortabel navigieren und die Commands für die Automatisierung raussuchen.

                  [BROWSE] [851081134] [Video] Possible Commands: browse/browse?sid=851081134&cid=2
                  [BROWSE] [851081134] [Ordner durchsuchen] Possible Commands: browse/browse?sid=851081134&cid=64
                  [BROWSE] [851081134] [Musik] Possible Commands: browse/browse?sid=851081134&cid=1
                  [BROWSE] [851081134] [Bilder] Possible Commands: browse/browse?sid=851081134&cid=3
                  [BROWSE] [851081134] {"sid":"851081134","returned":"4","count":"4"}
                  [BROWSE] [Local Music] [Server] Possible Commands: browse/browse?sid=851081134
                  [BROWSE] [Local Music] [AVM FRITZ!Mediaserver] Possible Commands: browse/browse?sid=77447081
                  [BROWSE] [Local Music] {"sid":"1024","returned":"2","count":"2"}
                  [BROWSE] [History] [SWR1 Baden-Württemberg 94.7 (Variety)] Possible Commands: player/play_stream&sid=1026&cid=STATIONS&mid=s20291
                  [BROWSE] [History] [1 LIVE] Possible Commands: player/play_stream&sid=1026&cid=STATIONS&mid=s25260
                  [BROWSE] [History] [DASDING 90.8 (Euro Hits)] Possible Commands: player/play_stream&sid=1026&cid=STATIONS&mid=s20295
                  

                  Btw. ich habe einen Pull Request gestellt, sodass der Adapter in das offizielle Repository aufgenommen wird. Dann wird die Installation einfacher.

                  H Offline
                  H Offline
                  hotze78
                  schrieb am zuletzt editiert von
                  #177

                  Erst mal Danke viel mal für eure Arbeit. Ich habe die Tage von Script auf den Adapter gewechselt. Mir ist noch nichts aufgefallen wo fehlerhaft wäre, alles funktioniert von Steuern, Gruppieren, Presets...
                  Ausser Playlist habe ich noch nicht herausgefunden wie ich die an einem bestimmtes Gerät ansteuern kann. Mit heos.0.playlists.xxxxx.play ist es kein Problem. Aber mit Command auf den Player habe ich noch keine Lösung gefunden.

                  W 1 Antwort Letzte Antwort
                  0
                  • H hotze78

                    Erst mal Danke viel mal für eure Arbeit. Ich habe die Tage von Script auf den Adapter gewechselt. Mir ist noch nichts aufgefallen wo fehlerhaft wäre, alles funktioniert von Steuern, Gruppieren, Presets...
                    Ausser Playlist habe ich noch nicht herausgefunden wie ich die an einem bestimmtes Gerät ansteuern kann. Mit heos.0.playlists.xxxxx.play ist es kein Problem. Aber mit Command auf den Player habe ich noch keine Lösung gefunden.

                    W Offline
                    W Offline
                    withstu
                    schrieb am zuletzt editiert von
                    #178

                    @hotze78 Das mit den Playlists ist in der Tat nicht so einfach. Da steht nämlich nirgends die sid von den playlists. Folgendes Kommando müsstest du im player channel im command state eingeben: add_to_queue&sid=1025&aid=4&cid=XXXXXX. Die cid ist die ID der Playlist.

                    Habe mir gerade überlegt, dass ich die playlist und preset Ordner noch in den Sources Ordner verschiebe. Dann sieht man es klarer. Wenn man es streng nimmt, sind es ja auch keine devices...

                    H 1 Antwort Letzte Antwort
                    0
                    • W withstu

                      @hotze78 Das mit den Playlists ist in der Tat nicht so einfach. Da steht nämlich nirgends die sid von den playlists. Folgendes Kommando müsstest du im player channel im command state eingeben: add_to_queue&sid=1025&aid=4&cid=XXXXXX. Die cid ist die ID der Playlist.

                      Habe mir gerade überlegt, dass ich die playlist und preset Ordner noch in den Sources Ordner verschiebe. Dann sieht man es klarer. Wenn man es streng nimmt, sind es ja auch keine devices...

                      H Offline
                      H Offline
                      hotze78
                      schrieb am zuletzt editiert von
                      #179

                      @withstu Danke! Funktioniert bestens.
                      Was ich noch nirgens in der Protokoll Spezifikationen gelesen habe, ist die Zonen Schaltung. Ich habe es bei mir mit dem Denon Adapter gelöst. Ist es denkbar das dies auch in den Heos adapter integriert werden kann wie in der App? Beispielbild
                      hifi-im-hinterhof-berlin-heos-app-screenshot.jpg

                      W 1 Antwort Letzte Antwort
                      0
                      • H hotze78

                        @withstu Danke! Funktioniert bestens.
                        Was ich noch nirgens in der Protokoll Spezifikationen gelesen habe, ist die Zonen Schaltung. Ich habe es bei mir mit dem Denon Adapter gelöst. Ist es denkbar das dies auch in den Heos adapter integriert werden kann wie in der App? Beispielbild
                        hifi-im-hinterhof-berlin-heos-app-screenshot.jpg

                        W Offline
                        W Offline
                        withstu
                        schrieb am zuletzt editiert von
                        #180

                        @hotze78 Sehr gut. Die App wird für einige Funktionen noch auf die Receiver API per Port 23 zugreifen (http://assets.eu.denon.com/DocumentMaster/DE/AVR1713_AVR1613_PROTOCOL_V8.6.0.pdf). Von daher ist da der Denon Adapter besser geeignet. In der HEOS API fehlen mir aber auch einige Funktionen, wie etwa Power An/Aus, das Vorspulen oder ein besseres Queue Management für TTS.

                        PS.: Hab jetzt in v1.2.0 die presets und playlists in den entsprechenden source Ordner verschoben. Am besten vor der Installation die devices presets, playlists und sources einmal löschen.

                        S 1 Antwort Letzte Antwort
                        0
                        • W withstu

                          @sveni_lee Ich habe gerade den Adapter erweitert (Version 1.1.2). In den Source Channels gibt es jetzt einen Browse Button. Im Log wird dann ausgegeben, welche HEOS Commands auf der nächsten Ebene möglich sind. So kann man halbwegs komfortabel navigieren und die Commands für die Automatisierung raussuchen.

                          [BROWSE] [851081134] [Video] Possible Commands: browse/browse?sid=851081134&cid=2
                          [BROWSE] [851081134] [Ordner durchsuchen] Possible Commands: browse/browse?sid=851081134&cid=64
                          [BROWSE] [851081134] [Musik] Possible Commands: browse/browse?sid=851081134&cid=1
                          [BROWSE] [851081134] [Bilder] Possible Commands: browse/browse?sid=851081134&cid=3
                          [BROWSE] [851081134] {"sid":"851081134","returned":"4","count":"4"}
                          [BROWSE] [Local Music] [Server] Possible Commands: browse/browse?sid=851081134
                          [BROWSE] [Local Music] [AVM FRITZ!Mediaserver] Possible Commands: browse/browse?sid=77447081
                          [BROWSE] [Local Music] {"sid":"1024","returned":"2","count":"2"}
                          [BROWSE] [History] [SWR1 Baden-Württemberg 94.7 (Variety)] Possible Commands: player/play_stream&sid=1026&cid=STATIONS&mid=s20291
                          [BROWSE] [History] [1 LIVE] Possible Commands: player/play_stream&sid=1026&cid=STATIONS&mid=s25260
                          [BROWSE] [History] [DASDING 90.8 (Euro Hits)] Possible Commands: player/play_stream&sid=1026&cid=STATIONS&mid=s20295
                          

                          Btw. ich habe einen Pull Request gestellt, sodass der Adapter in das offizielle Repository aufgenommen wird. Dann wird die Installation einfacher.

                          S Offline
                          S Offline
                          sveni_lee
                          schrieb am zuletzt editiert von
                          #181

                          @withstu

                          vielen Dank für die neue Version. Ich werde mir das heute Abend mal ansehen.

                          1 Antwort Letzte Antwort
                          0
                          • W withstu

                            @sveni_lee Ich habe gerade den Adapter erweitert (Version 1.1.2). In den Source Channels gibt es jetzt einen Browse Button. Im Log wird dann ausgegeben, welche HEOS Commands auf der nächsten Ebene möglich sind. So kann man halbwegs komfortabel navigieren und die Commands für die Automatisierung raussuchen.

                            [BROWSE] [851081134] [Video] Possible Commands: browse/browse?sid=851081134&cid=2
                            [BROWSE] [851081134] [Ordner durchsuchen] Possible Commands: browse/browse?sid=851081134&cid=64
                            [BROWSE] [851081134] [Musik] Possible Commands: browse/browse?sid=851081134&cid=1
                            [BROWSE] [851081134] [Bilder] Possible Commands: browse/browse?sid=851081134&cid=3
                            [BROWSE] [851081134] {"sid":"851081134","returned":"4","count":"4"}
                            [BROWSE] [Local Music] [Server] Possible Commands: browse/browse?sid=851081134
                            [BROWSE] [Local Music] [AVM FRITZ!Mediaserver] Possible Commands: browse/browse?sid=77447081
                            [BROWSE] [Local Music] {"sid":"1024","returned":"2","count":"2"}
                            [BROWSE] [History] [SWR1 Baden-Württemberg 94.7 (Variety)] Possible Commands: player/play_stream&sid=1026&cid=STATIONS&mid=s20291
                            [BROWSE] [History] [1 LIVE] Possible Commands: player/play_stream&sid=1026&cid=STATIONS&mid=s25260
                            [BROWSE] [History] [DASDING 90.8 (Euro Hits)] Possible Commands: player/play_stream&sid=1026&cid=STATIONS&mid=s20295
                            

                            Btw. ich habe einen Pull Request gestellt, sodass der Adapter in das offizielle Repository aufgenommen wird. Dann wird die Installation einfacher.

                            S Offline
                            S Offline
                            sveni_lee
                            schrieb am zuletzt editiert von
                            #182

                            @withstu

                            Ich habe mir das jetzt mal angesehen und es sieht wirklich gut aus.
                            kannst Du den return auch in ein State als Array oder List packen?

                            bspw.

                            {Bilder : browse/browse?sid=851081134&cid=3; Musik : browse/browse?sid=851081134&cid=1}
                            

                            dann könnte man daraus eine Widget basteln denke ich...

                            W 2 Antworten Letzte Antwort
                            0
                            • S sveni_lee

                              @withstu

                              Ich habe mir das jetzt mal angesehen und es sieht wirklich gut aus.
                              kannst Du den return auch in ein State als Array oder List packen?

                              bspw.

                              {Bilder : browse/browse?sid=851081134&cid=3; Musik : browse/browse?sid=851081134&cid=1}
                              

                              dann könnte man daraus eine Widget basteln denke ich...

                              W Offline
                              W Offline
                              withstu
                              schrieb am zuletzt editiert von withstu
                              #183

                              @sveni_lee Hab in Version 1.2.2 den State sources.browse_result eingeführt. Schau mal, ob du daraus ein Widget basteln kannst (hab ich noch nie gemacht). Man müsste nur den payload iterieren, die Namen anzeigen und dann jeweils einen Button pro command einblenden.

                              {"sid":1024,
                              "name":"Local Music",
                              "parameter":{"sid":"1024","returned":"2","count":"2"},
                              "payload":[
                              {"name":"Navigate to top","commands":{"browse":"browse/browse?sid=1024"}},
                              {"name":"Server","commands":{"browse":"browse/browse?sid=851081134"}},
                              {"name":"AVM FRITZ!Mediaserver","commands":{"browse":"browse/browse?sid=77447081"}}
                              ]}
                              
                              1 Antwort Letzte Antwort
                              0
                              • S sveni_lee

                                @withstu

                                Ich habe mir das jetzt mal angesehen und es sieht wirklich gut aus.
                                kannst Du den return auch in ein State als Array oder List packen?

                                bspw.

                                {Bilder : browse/browse?sid=851081134&cid=3; Musik : browse/browse?sid=851081134&cid=1}
                                

                                dann könnte man daraus eine Widget basteln denke ich...

                                W Offline
                                W Offline
                                withstu
                                schrieb am zuletzt editiert von withstu
                                #184

                                @sveni_lee Hab grad noch ein Script gebastet, welches für das Vis eine Tabelle baut. Ich kann es selbst kaum glauben, aber die Navigation funktioniert!:

                                HTML Widget:

                                {0_userdata.0.scriptData.HeosBrowseTable}
                                

                                Script:

                                on({id: 'heos.0.sources.browse_result', change: 'any'}, function (obj) {
                                    let data = JSON.parse(obj.state.val);
                                    let html = ""
                                    if(data){
                                        html += "<h1>Source: " + data.name + "</h1>"
                                        html += "<table>"
                                        for (let i = 0; i < data.payload.length; i++) {
                                            let payload = data.payload[i];
                                            html += "<tr>";
                                            html += "<td>" + payload.name + "</td>";
                                            html += "<td>";
                                            for (let key in payload.commands) {
                                                let command = payload.commands[key];
                                                html += "<button onClick=\"servConn.setState('heos.0.command','" + command +"')\">" + key + "</button>";
                                            }
                                            html += "</td>";
                                            html += "</tr>";
                                        }
                                        html += "</table>";
                                    }
                                    setState("0_userdata.0.scriptData.HeosBrowseTable", html);
                                });
                                
                                Dennis RupprechtD 1 Antwort Letzte Antwort
                                0
                                • W withstu

                                  @sveni_lee Hab grad noch ein Script gebastet, welches für das Vis eine Tabelle baut. Ich kann es selbst kaum glauben, aber die Navigation funktioniert!:

                                  HTML Widget:

                                  {0_userdata.0.scriptData.HeosBrowseTable}
                                  

                                  Script:

                                  on({id: 'heos.0.sources.browse_result', change: 'any'}, function (obj) {
                                      let data = JSON.parse(obj.state.val);
                                      let html = ""
                                      if(data){
                                          html += "<h1>Source: " + data.name + "</h1>"
                                          html += "<table>"
                                          for (let i = 0; i < data.payload.length; i++) {
                                              let payload = data.payload[i];
                                              html += "<tr>";
                                              html += "<td>" + payload.name + "</td>";
                                              html += "<td>";
                                              for (let key in payload.commands) {
                                                  let command = payload.commands[key];
                                                  html += "<button onClick=\"servConn.setState('heos.0.command','" + command +"')\">" + key + "</button>";
                                              }
                                              html += "</td>";
                                              html += "</tr>";
                                          }
                                          html += "</table>";
                                      }
                                      setState("0_userdata.0.scriptData.HeosBrowseTable", html);
                                  });
                                  
                                  Dennis RupprechtD Offline
                                  Dennis RupprechtD Offline
                                  Dennis Rupprecht
                                  schrieb am zuletzt editiert von Dennis Rupprecht
                                  #185

                                  @withstu Hallo, kannst du mal ne genaue Anleitung schicken wie du das hinbekommen hast mit dem HTML! Ich bekomme nur im Log:

                                  javascript.0 2020-09-29 09:33:46.699 info (31899) script.js.Heos: registered 1 subscription and 0 schedules
                                  javascript.0 2020-09-29 09:33:46.686 info (31899) Start javascript script.js.Heos

                                  Dennis RupprechtD 1 Antwort Letzte Antwort
                                  0
                                  • Dennis RupprechtD Dennis Rupprecht

                                    @withstu Hallo, kannst du mal ne genaue Anleitung schicken wie du das hinbekommen hast mit dem HTML! Ich bekomme nur im Log:

                                    javascript.0 2020-09-29 09:33:46.699 info (31899) script.js.Heos: registered 1 subscription and 0 schedules
                                    javascript.0 2020-09-29 09:33:46.686 info (31899) Start javascript script.js.Heos

                                    Dennis RupprechtD Offline
                                    Dennis RupprechtD Offline
                                    Dennis Rupprecht
                                    schrieb am zuletzt editiert von
                                    #186

                                    okay browse enablen dann geht es! Blider wären noch gut

                                    W 1 Antwort Letzte Antwort
                                    0
                                    • Dennis RupprechtD Dennis Rupprecht

                                      okay browse enablen dann geht es! Blider wären noch gut

                                      W Offline
                                      W Offline
                                      withstu
                                      schrieb am zuletzt editiert von
                                      #187

                                      @Dennis-Rupprecht Ist jetzt in Version 1.2.4 drin. Diese Version enthält jetzt auch die oberste Sicht mit den Musikquellen. Bezüglich Presets und Playlisten gibt es eine kleine Änderung: Damit die browse_results immer bei den Musikquellen starten, musste ich die Presets und Playlisten aus dem automatischen Abruf beim Adapterstart rausnehmen. Wenn man diese nach der Installation haben möchte, muss man entweder einmalig den Browse Button der Source drücken oder über folgendes Script im VIS in die Favoriten springen:

                                      on({id: 'heos.0.sources.browse_result', change: 'any'}, function (obj) {
                                          let data = JSON.parse(obj.state.val);
                                          let html = ""
                                          if(data){
                                              html += "<div style=\"background-color:#3b3b3b;color:#fff\"><h1><img src=\"" + data.image_url + "\" height=\"30px\">" + data.name + "</h1>"
                                              html += "<table>"
                                              for (let i = 0; i < data.payload.length; i++) {
                                                  let payload = data.payload[i];
                                                  html += "<tr>";
                                                  html += "<td><img src=\"" + payload.image_url + "\" height=\"30px\"></td>";
                                                  html += "<td>" + payload.name + "</td>";
                                                  html += "<td>";
                                                  for (let key in payload.commands) {
                                                      let command = payload.commands[key];
                                                      html += "<button class=\"ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only\" onClick=\"servConn.setState('heos.0.command','" + command +"')\"><span class=\"ui-button-text\">" + key + "</span></button>";
                                                  }
                                                  html += "</td>";
                                                  html += "</tr>";
                                              }
                                              html += "</table></div>";
                                          }
                                          setState("0_userdata.0.scriptData.HeosBrowseTable", html);
                                      });
                                      
                                      Dennis RupprechtD 1 Antwort Letzte Antwort
                                      0
                                      • S Offline
                                        S Offline
                                        sveni_lee
                                        schrieb am zuletzt editiert von
                                        #188

                                        also ich muß schon sagen, ich bin begeistert. Das sieht schon richtig gut aus.

                                        zwei kurze Frage hätte ich noch 🙂
                                        könnte man den Text linksbündig und die button rechtsbündig machen?
                                        un gibt es eine möglichleit die Auswahlliste zu sortieren. Ich weiß nicht warum HEOS die
                                        so durcheinnder würfelt.

                                        Danke!1.JPG

                                        W 1 Antwort Letzte Antwort
                                        0
                                        • W withstu

                                          @Dennis-Rupprecht Ist jetzt in Version 1.2.4 drin. Diese Version enthält jetzt auch die oberste Sicht mit den Musikquellen. Bezüglich Presets und Playlisten gibt es eine kleine Änderung: Damit die browse_results immer bei den Musikquellen starten, musste ich die Presets und Playlisten aus dem automatischen Abruf beim Adapterstart rausnehmen. Wenn man diese nach der Installation haben möchte, muss man entweder einmalig den Browse Button der Source drücken oder über folgendes Script im VIS in die Favoriten springen:

                                          on({id: 'heos.0.sources.browse_result', change: 'any'}, function (obj) {
                                              let data = JSON.parse(obj.state.val);
                                              let html = ""
                                              if(data){
                                                  html += "<div style=\"background-color:#3b3b3b;color:#fff\"><h1><img src=\"" + data.image_url + "\" height=\"30px\">" + data.name + "</h1>"
                                                  html += "<table>"
                                                  for (let i = 0; i < data.payload.length; i++) {
                                                      let payload = data.payload[i];
                                                      html += "<tr>";
                                                      html += "<td><img src=\"" + payload.image_url + "\" height=\"30px\"></td>";
                                                      html += "<td>" + payload.name + "</td>";
                                                      html += "<td>";
                                                      for (let key in payload.commands) {
                                                          let command = payload.commands[key];
                                                          html += "<button class=\"ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only\" onClick=\"servConn.setState('heos.0.command','" + command +"')\"><span class=\"ui-button-text\">" + key + "</span></button>";
                                                      }
                                                      html += "</td>";
                                                      html += "</tr>";
                                                  }
                                                  html += "</table></div>";
                                              }
                                              setState("0_userdata.0.scriptData.HeosBrowseTable", html);
                                          });
                                          
                                          Dennis RupprechtD Offline
                                          Dennis RupprechtD Offline
                                          Dennis Rupprecht
                                          schrieb am zuletzt editiert von
                                          #189

                                          @withstu said in [Vorlage] Denon HEOS Script:

                                          @Dennis-Rupprecht Ist jetzt in Version 1.2.4 drin. Diese Version enthält jetzt auch die oberste Sicht mit den Musikquellen. Bezüglich Presets und Playlisten gibt es eine kleine Änderung: Damit die browse_results immer bei den Musikquellen starten, musste ich die Presets und Playlisten aus dem automatischen Abruf beim Adapterstart rausnehmen. Wenn man diese nach der Installation haben möchte, muss man entweder einmalig den Browse Button der Source drücken oder über folgendes Script im VIS in die Favoriten springen:

                                          on({id: 'heos.0.sources.browse_result', change: 'any'}, function (obj) {
                                              let data = JSON.parse(obj.state.val);
                                              let html = ""
                                              if(data){
                                                  html += "<div style=\"background-color:#3b3b3b;color:#fff\"><h1><img src=\"" + data.image_url + "\" height=\"30px\">" + data.name + "</h1>"
                                                  html += "<table>"
                                                  for (let i = 0; i < data.payload.length; i++) {
                                                      let payload = data.payload[i];
                                                      html += "<tr>";
                                                      html += "<td><img src=\"" + payload.image_url + "\" height=\"30px\"></td>";
                                                      html += "<td>" + payload.name + "</td>";
                                                      html += "<td>";
                                                      for (let key in payload.commands) {
                                                          let command = payload.commands[key];
                                                          html += "<button class=\"ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only\" onClick=\"servConn.setState('heos.0.command','" + command +"')\"><span class=\"ui-button-text\">" + key + "</span></button>";
                                                      }
                                                      html += "</td>";
                                                      html += "</tr>";
                                                  }
                                                  html += "</table></div>";
                                              }
                                              setState("0_userdata.0.scriptData.HeosBrowseTable", html);
                                          });
                                          

                                          Hast du echt super gemacht.

                                          Dennis RupprechtD 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          713

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe