Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [Vorlage] Denon HEOS Script

    NEWS

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    [Vorlage] Denon HEOS Script

    This topic has been deleted. Only users with topic management privileges can see it.
    • Meister Mopper
      Meister Mopper @Olli_M last edited by

      @olli_m

      Na ja, ich habe eine gänzlich andere Konfiguration und kann Dir leider nicht helfen. Aber es gibt ja hier einige, die ebenfalls den ioBroker in docker container laufen lassen.
      Blöd halt, wenn sie kein HEOS nutzen 🤷‍♂️

      Olli_M 1 Reply Last reply Reply Quote 0
      • DJMarc75
        DJMarc75 @Olli_M last edited by

        @olli_m wenn da irgendwelche Ports verwendet werden dann müssen diese im Docker natürlich durchgereicht werden...

        vll findest Du hier einen Ansatz?!

        https://forum.iobroker.net/topic/10420/vorlage-denon-heos-script/176?_=1667232799666

        Habe auch keinen Container am Start und kann da auch nur mühselig Tipps geben.

        Olli_M 1 Reply Last reply Reply Quote 0
        • Olli_M
          Olli_M @Meister Mopper last edited by

          @meister-mopper
          aber verstehe nicht warum es wegen dem Docker nicht laufen soll, wie gesagt es geht ja sonst auch alles

          1 Reply Last reply Reply Quote 0
          • Olli_M
            Olli_M @DJMarc75 last edited by

            @djmarc75

            was für ports sollen da denn durch gereicht werden? ich guck mir das mal an deinen Link

            Der Command reagiert ja scheinbar wenn ich über die HEOS App was aktiviere sehe ich im Debug Modus dass er was macht.

            Ich hoffe immer noch das sich der Entwickler meldet...

            1 Reply Last reply Reply Quote 0
            • W
              withstu @NWH last edited by

              @nwh Das sieht nach Amazon Music aus oder? Die Daten von Heos sind an dieser Stelle fehlerhaft. Bei Amazon Music fehlt der Indikator, dass eine Liste abspielbar ist. Deswegen wurde der "Play all" Button nicht eingeblendet, obwohl ein Play all funktionieren würde. Da hier offenbar ein weiterer Bug bei HEOS vorliegt, habe ich einen Workaround in der neusten Version implementiert. Der Play all Button taucht nun auch bei Amazon auf und funktioniert.

              NWH 1 Reply Last reply Reply Quote 1
              • W
                withstu @Olli_M last edited by

                @olli_m Bei mir funktioniert der Command. Aber ich benutze auch kein Docker. Kannst du den Player mit den States next, play etc. steuern?

                1 Reply Last reply Reply Quote 0
                • NWH
                  NWH @withstu last edited by

                  @withstu
                  Gerade installiert und funktioniert.
                  Danke du bist der beste. Besser gehts nicht.

                  NWH 1 Reply Last reply Reply Quote 0
                  • NWH
                    NWH @NWH last edited by

                    @withstu
                    Kann es sein, das es noch Probleme gibt wenn es mehrere Player gibt?
                    Auf meinem ersten Player funktioniert die Funktion alle Songs abspielen einer Playlist, aber auf meinem zweiten Player geht es nicht. Da kann ich wie bisher immer nur einen Titel starten.

                    Wenn ich unter Objekte schaue, werden alle Titel der Playlist geladen aber sie wird nicht abgespielt bzw. gestartet.

                    W 1 Reply Last reply Reply Quote 0
                    • W
                      withstu @NWH last edited by

                      @nwh Ich habe es gerade bei mir getestet. Sowohl bei zwei Einzelplayern als auch in einer Gruppe wurde eine Amazon Playlist mit "Play all" abgespielt. Was passiert wenn du manuell dann nochmal auf play drückst? Eventuell fügt HEOS die Lieder nur der Playlist hinzu, aber startet die Wiedergabe nicht.

                      NWH 1 Reply Last reply Reply Quote 0
                      • NWH
                        NWH @withstu last edited by

                        @withstu
                        Habe gerade gesehen das der Player ein update will 🙄
                        Hoffe es geht dann.... ---> Sorry nach dem update geht es......

                        NWH 1 Reply Last reply Reply Quote 0
                        • NWH
                          NWH @NWH last edited by

                          @withstu

                          Ich hätte eine Frage zu den Protokolleinträgen, bekomme plötzlich diese Warnmeldungnen

                          heos.0
                          Zeit
                          debug
                          Nachricht
                          
                          heos.0
                          2022-11-15 08:51:24.698	warn	[Marantz SR7013] [setError] Player Marantz SR7013 has to many leader failures. Reboot. Activate "reboot on failure" in the configuration or reboot manually the device.
                          
                          heos.0
                          2022-11-15 08:51:09.696	warn	[Marantz SR7013] [setError] Player Marantz SR7013 has to many leader failures. Reboot. Activate "reboot on failure" in the configuration or reboot manually the device.
                          
                          heos.0
                          2022-11-15 08:50:54.695	warn	[Marantz SR7013] [setError] Player Marantz SR7013 has to many leader failures. Reboot. Activate "reboot on failure" in the configuration or reboot manually the device.
                          
                          heos.0
                          2022-11-15 08:50:42.984	warn	[setLastError] result=fail,text=ID Not Valid,command=player/get_play_state
                          
                          heos.0
                          2022-11-15 08:50:42.981	warn	[checkDuplicateRequest] Response timed out: player/get_play_state?pid=1784603970. Increase leader failure counter.
                          
                          heos.0
                          2022-11-15 08:50:42.981	warn	[checkDuplicateRequest] Response timed out: player/get_play_state?pid=1784603970. Increase leader failure counter.
                          
                          heos.0
                          2022-11-15 08:50:42.980	warn	[Werkstatt ] [setError] HEOS is not responding as expected. Request timed out. Update play state.
                          
                          heos.0
                          2022-11-15 08:50:42.980	warn	[Werkstatt ] [setError] Player Werkstatt has to many failures. Reboot. Activate "reboot on failure" in the configuration or reboot manually the device.
                          
                          heos.0
                          2022-11-15 08:50:42.980	warn	[Werkstatt ] [setError] Player Werkstatt has to many upnp failures. Reboot. Activate "reboot on failure" in the configuration or reboot manually the device.
                          
                          heos.0
                          2022-11-15 08:50:42.979	warn	[Werkstatt ] [setError] Player Werkstatt has to many timeouts. Reboot. Activate "reboot on failure" in the configuration or reboot manually the device.
                          

                          Was ist hier nicht Richtig?

                          1 Reply Last reply Reply Quote 0
                          • Olli_M
                            Olli_M last edited by

                            @withstu
                            Hi

                            also über mein Blockly schreibt er zwar die DP aber der Denon Ansich verändert nicht seine Laustärke.

                            Es geht aber über diesen JS Befehl:

                            setState('denon.0.zoneMain.volume', 47.5);
                            

                            Jetzt meine Frage bekomme ich da auch eine Bedinung rein wenn z.b. der Input auf TV ist Lautstärke XY

                            Hätte 3 Bedingungen wo er die Lautstärke verändern müsste anhand vom Eingang.

                            TV
                            BD
                            DVD

                            Geht das mit JS?

                            Negalein 1 Reply Last reply Reply Quote 0
                            • Negalein
                              Negalein Global Moderator @Olli_M last edited by

                              @olli_m sagte in [Vorlage] Denon HEOS Script:

                              Jetzt meine Frage bekomme ich da auch eine Bedinung rein wenn z.b. der Input auf TV ist Lautstärke XY

                              siehe dazu deinen anderen Thread.
                              Du musst nicht JS und Blockly mischen.
                              Geht easy mit denon.0.zoneMain.volume und denon.0.zoneMain.selectInput

                              Olli_M 1 Reply Last reply Reply Quote 0
                              • Olli_M
                                Olli_M @Negalein last edited by

                                @negalein
                                es geht ja eben nicht. Hab das Blockly nochmal neu aufgesetzt ohne den Aufruf des JS.

                                Und wenn ich nur den JS Befehl nutze geht es ja nur da hab ich die Bedinung nicht drin.

                                Aktuell ist nichts vermischt 🙂

                                Negalein 1 Reply Last reply Reply Quote 0
                                • Negalein
                                  Negalein Global Moderator @Olli_M last edited by

                                  @olli_m sagte in [Vorlage] Denon HEOS Script:

                                  es geht ja eben nicht. Hab das Blockly nochmal neu aufgesetzt ohne den Aufruf des JS.
                                  Und wenn ich nur den JS Befehl nutze geht es ja nur da hab ich die Bedinung nicht drin.
                                  Aktuell ist nichts vermischt

                                  hab dir drüben geantwortet

                                  1 Reply Last reply Reply Quote 1
                                  • R
                                    Ratze last edited by

                                    Liebe HEOS Gemeinde vielleicht kann mir hier geholfen werden...

                                    Nach welchen Kriterien wird das Heos / Denon Gerät gesucht?
                                    Lediglich auf Port 1255?
                                    Muss das Heos Gerät im gleich Netzwerk wie der Adapter / IoBroker sein?
                                    Falls ja, gibt es eine einfache Möglichkeit eine feste IP-Adresse zu hinterlegen?

                                    Beides, der HEOS-Adapter und auch das Uhula Script finden keinen Player.
                                    Aus allen Netzen kann ich den Denon Home Player via IP-Adresse über Telnet mit Port 1255
                                    ansprechen.
                                    Bei Anfrage über IP-Adresse funktioniert das Routing anscheinend nur auf Port-Ebene evtl. nicht bis schlecht 😉 im Netzwerk

                                    Bin für jede Hilfe bzw. Tipps dankbar

                                    W 1 Reply Last reply Reply Quote 0
                                    • W
                                      withstu @Ratze last edited by withstu

                                      @ratze Für die Suche der Player wird das Protokoll SSDP verwendet (https://de.m.wikipedia.org/wiki/Simple_Service_Discovery_Protocol), welches die Multicast Pakete der Player über UDP findet. Ich schaue mal, ob ich als Fallback zur automatischen Suche auch einen manuelle IP Konfiguration ermögliche. Die IP sollte dann aber statisch sein.

                                      Zum Testen der SSDP Suche hatte ich mal folgendes Script im Adapter hinzugefügt. Vielleicht hilft es ja beim Debuggen:
                                      https://github.com/withstu/ioBroker.heos/blob/main/test/node-ssdp/index.js

                                      R 1 Reply Last reply Reply Quote 0
                                      • R
                                        Ratze @withstu last edited by Ratze

                                        @withstu
                                        Super für die schnelle Antwort... 🙂
                                        Habe gestern Abend noch den Home350 ins IoBroker Netz (gleiche 192.xxx.xxx.xxx/24) gehangen.
                                        Über den UPNP Adapter wird er erkannt.
                                        Also SSDP sagt mir inziwschen etwas und ich kann auch sehen wo er aktiv ist.

                                        
                                        pi@Iobroker:~ $ npm list node-ssdp
                                        /home/pi
                                        `-- (empty)
                                        
                                        pi@Iobroker:~ $ cd /opt/iobroker
                                        pi@Iobroker:/opt/iobroker $ npm list node-ssdp
                                        iobroker.inst@3.0.0 /opt/iobroker
                                        +-- iobroker.discovery@3.1.0
                                        | `-- node-ssdp@4.0.1 deduped
                                        +-- iobroker.heos@1.10.0
                                        | `-- node-ssdp@4.0.1 deduped
                                        +-- iobroker.javascript@6.1.4
                                        | `-- node-ssdp@4.0.1
                                        +-- iobroker.upnp@1.0.21
                                        | `-- node-ssdp@4.0.1 deduped
                                        `-- node-ssdp@4.0.1
                                        
                                        

                                        Über Telnet kann ich allerdings die Zustände / Statis des Home350 abfragen.

                                        const searchTargetName = 'urn:schemas-denon-com:device:ACT-Denon:1'
                                        

                                        Ich gehe mal davon aus, dass ACT-Denon:1 nicht unbedingt über Telnet mit Port 1255
                                        zurückgegeben wird.

                                        Der UPNP Adapter zeigt folgendes Ergebnis an

                                        adf017a8-ad58-4ab7-8174-91abdc691c2d-grafik.png

                                        {
                                          "type": "device",
                                          "common": {
                                            "name": "350SLE",
                                            "extIcon": "http://192.xxx.xxx.xxx:60006"
                                          },
                                          "native": {
                                            "ip": "192.xxx.xxx.xxx",
                                            "port": 60006,
                                            "uuid": "b63f6000-af30-1683-0080-00a96f0fdfe4",
                                            "deviceType": "urn:schemas-denon-com:device:AiosDevice:1",
                                            "manufacturer": "Denon",
                                            "manufacturerURL": "http://www.denon.com",
                                            "modelNumber": "Aios 6.0S",
                                            "modelDescription": "",
                                            "modelName": "Denon Home 350",
                                            "modelURL": "",
                                            "name": "350SLE"
                                          },
                                          "from": "system.adapter.upnp.0",
                                          "user": "system.user.admin",
                                          "ts": 1676664594189,
                                          "_id": "upnp.0.350SLE.AiosDevice",
                                          "acl": {
                                            "object": 1636,
                                            "owner": "system.user.admin",
                                            "ownerGroup": "system.group.administrator"
                                          }
                                        }
                                        

                                        Der Überblick was Telnet über heos://player/get_player_info? zurückgibt

                                        heos://player/get_player_info?pid=-1234567890
                                        {"heos": {"command": "player/get_player_info", 
                                        "result": "success", "message": "                     pid=-1234567890"},
                                        "payload": {"name": "350SLE", "pid": -1234567890, "model": "D                     enon Home 350",
                                        "version": "2.71.510", "ip": "192.xxx.xxxx.xxx", "network": "wifi"                     , 
                                        "lineout": 0,
                                        "serial": "BME27234567899"}}
                                        
                                        

                                        https://github.com/withstu/ioBroker.heos/blob/main/test/node-ssdp/index.js
                                        Das Script ist im Einsatz, Debug gibt invalid Response State aus... macht aber eine Schleife
                                        beide der Player Suche... Ich vermute das mein Home350 evtl. ein anderes Ergebnis als

                                        searchTargetName = 'urn:schemas-denon-com:device:ACT-Denon:1'
                                        

                                        zurück gibt.

                                        Was ich noch gefunden habe...
                                        https://support-de.denon.com/app/answers/detail/a_id/4720/~/netzwerk-anforderungen-fÜr-heos
                                        Laut Denon Support-Seite sind folgende Voraussetzungen zu erfüllen
                                        Der Bereich zwischen 50000 und 64999 für MediaRenderer und 60006 für Media Server.

                                        Darüber hinaus ist für UPnP ein Multicast-Zugriff zu 239.255.255.250:1900 zusammen mit den entsprechenden "IGMP Control Messages" zu ermöglichen.

                                        Wirklich vielen Dank... an alle die sich die Mühe machen Scripte und Adapter
                                        für uns zu erstellen und dann die bereit sind Mensche wie mir zu helfen!!!
                                        Dankesehr

                                        Zum UPNP-Adapter https://github.com/Jey-Cee/ioBroker.upnp/blob/master/main.js
                                        Dieser hat tatsähclich im Skript den Aufruf bzgl. SSDP-IP zu 239.255.255.250

                                         let server = new Server({ssdpIp: '239.255.255.250'});
                                        

                                        Und den Parameter bei der Suche

                                        client.search('ssdp:all');
                                        

                                        (Was mir bewusst ist, dass alle möglichen UPNP Geräte über die UPNP-Adapter Suche gefunden werden sollen)

                                        1 Reply Last reply Reply Quote 0
                                        • R
                                          Ratze last edited by Ratze

                                          Danke für die Hilfe, habe in der Zwischenzeit den Player Home 350 eingebunden.

                                          Netzwerke nochmals kontrolliert Multicast auf dem Wifi-Netz freigegeben.

                                          Änderung im Script

                                          const searchTargetName = 'urn:schemas-denon-com:device:AiosDevice:1';
                                          

                                          Zappp... Ist der HEOS-Player aufgetaucht.

                                          danke danke... Danke @Uhula für das Script... Super arbeit!
                                          Ups mit ist da etwas entgangen!
                                          Herr @withstu ... ich möchte mich für den HEOS-Adapter Bedanken (WOW)
                                          und noch mal Danke für den Einsatz.

                                          1 Reply Last reply Reply Quote 0
                                          • B
                                            bouster last edited by

                                            Hallo,
                                            ich hatte das Skript etwa 2 Jahr am laufen jetzt und es hat alles problemlos für meine Zwecke (Umschalten des Eingangs, Start, Stop, Pause, Weiter, Zurück, Lauter, Leiser) geklappt.
                                            Seit Februar wird leider kein Player mehr erkannt.
                                            Ich finde das alte skript aus 2019, das neue aus 2020 und auch im HEOS adapter keine Player mehr. Der Heos adapter startet jedoch den im Netzwerk befindlichen HEOS Amp etwa alle 5-10 min neu.

                                            Mit ist noch aufgefallen, dass das Skript keine meldung signed in gibt und auch der signed in status false zurück gibt, obwohl ich sowohl im HEOS adapter als auch im Skript die Logindaten angegeben habe und mehrfach auf richtigkeit geprüft (sie haben ja auch 2 Jahre lang funktioniert).
                                            Da ich aber nichts an den Einstellungen noch am Skript verändert habe ist es mir ein Rätsel wo der Fehler liegen könnte der sich eingeschlichen hat.

                                            Leider sind meine Kenntnisse in diesem Bereich nicht so groß und ich habe das meiste mit Hilfe diverser Tutorials eingerichtet. Meine Fehlersuche beschränkt sich bis jetzt auf das verstehen der Log Meldungen. Wenn ich das Skript starte erhalte ich folgende Log Einträge:

                                            javascript.1
                                            	15550	2023-05-17 12:02:16.818	info	script.js.Heos.Heos_2020: [Heos] still searching for HEOS devices ...
                                            javascript.1
                                            	15550	2023-05-17 12:01:46.817	info	script.js.Heos.Heos_2020: [Heos] still searching for HEOS devices ...
                                            javascript.1
                                            	15550	2023-05-17 12:01:16.817	info	script.js.Heos.Heos_2020: [Heos] still searching for HEOS devices ...
                                            javascript.1
                                            	15550	2023-05-17 12:00:46.817	info	script.js.Heos.Heos_2020: [Heos] still searching for HEOS devices ...
                                            javascript.1
                                            	15550	2023-05-17 12:00:16.815	info	script.js.Heos.Heos_2020: [Heos] still searching for HEOS devices ...
                                            javascript.1
                                            	15550	2023-05-17 11:59:46.815	info	script.js.Heos.Heos_2020: [Heos] still searching for HEOS devices ...
                                            javascript.1
                                            	15550	2023-05-17 11:59:16.814	info	script.js.Heos.Heos_2020: [Heos] still searching for HEOS devices ...
                                            javascript.1
                                            	15550	2023-05-17 11:58:46.814	info	script.js.Heos.Heos_2020: [Heos] still searching for HEOS devices ...
                                            admin.0
                                            	4495	2023-05-17 11:58:19.744	info	<== Disconnect system.user.admin from ::ffff:192.xxx.xxx.xxx javascript
                                            admin.0
                                            	4495	2023-05-17 11:58:19.744	info	<== Disconnect system.user.admin from ::ffff:192.xxx.xxx.xxx javascript
                                            javascript.1
                                            	15550	2023-05-17 11:58:16.867	warn	Object of state "0_userdata.0.heos.connected" is missing the required property "common.type"
                                            javascript.1
                                            	15550	2023-05-17 11:58:16.814	info	script.js.Heos.Heos_2020: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                                            javascript.1
                                            	15550	2023-05-17 11:58:16.806	info	script.js.Heos.Heos_2020: [Heos] searching for HEOS devices ...
                                            javascript.1
                                            	15550	2023-05-17 11:58:16.775	info	Start javascript script.js.Heos.Heos_2020
                                            

                                            Für den Heos Adapter sieht es wie folgt aus:

                                            heos.0
                                            	19051	2023-05-17 12:03:06.253	info	searching for HEOS devices ...
                                            heos.0
                                            	19051	2023-05-17 12:03:06.025	info	starting. Version 1.10.0 in /opt/iobroker/node_modules/iobroker.heos, node: v14.21.3, js-controller: 4.0.23
                                            host.raspberrypi
                                            		2023-05-17 12:03:03.125	info	instance system.adapter.heos.0 started with pid 19051
                                            host.raspberrypi
                                            		2023-05-17 12:03:02.944	info	"system.adapter.heos.0" enabled
                                            

                                            Kann mir jemand bei der Fehlersuche behilflich sein? Gibt es einen anderen Ansatzpunkt (HEOS Adapter Update, JS Adapter Update?), warum die Verbindung plötzlich nicht mehr funktioniert?

                                            DJMarc75 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            892
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript template
                                            45
                                            341
                                            52598
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo