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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    [Vorlage] Denon HEOS Script

    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      chrisblu last edited by

      @withstu Hi, das Skript läuft bei mir sehr schön stabil, thumbs up.
      Das einzige, was nicht immer klappt, ist der Start mit einem Neustart vom Broker.
      Von Zeit zu Zeit stoppe ich meinen Broker manuell, führe die Updates der Adapter durch und starte wieder.
      Dabei wird nicht immer das Heos-Skript neu gestartet. Manchmal bekomme ich die Meldung, dass der Socket beendet wurde:

      javascript.1	2020-04-20 07:33:11.020	error	(21921) script.js.Steuerung.heos: [Heos] Error: This socket has been ended by the other party
      javascript.1	2020-04-20 07:32:56.020	warn	(21921) script.js.Steuerung.heos: [Heos] [HEARTBEAT] Retries exceeded
      javascript.1	2020-04-20 07:32:56.019	error	(21921) script.js.Steuerung.heos: [Heos] Error: This socket has been ended by the other party
      javascript.1	2020-04-20 07:32:41.018	error	(21921) script.js.Steuerung.heos: [Heos] Error: This socket has been ended by the other party
      javascript.1	2020-04-20 07:32:26.029	error	(21921) script.js.Steuerung.heos: [Heos] Error: This socket has been ended by the other party
      javascript.1	2020-04-20 07:32:11.016	error	(21921) script.js.Steuerung.heos: [Heos] Error: This socket has been ended by the other party
      javascript.1	2020-04-20 07:31:56.018	warn	(21921) script.js.Steuerung.heos: [Heos] [HEARTBEAT] Retries exceeded
      javascript.1	2020-04-20 07:31:56.017	error	(21921) script.js.Steuerung.heos: [Heos] Error: This socket has been ended by the other party
      javascript.1	2020-04-20 07:31:41.017	error	(21921) script.js.Steuerung.heos: [Heos] Error: This socket has been ended by the other party
      javascript.1	2020-04-20 07:31:26.016	error	(21921) script.js.Steuerung.heos: [Heos] Error: This socket has been ended by the other party
      javascript.1	2020-04-20 07:31:11.016	error	(21921) script.js.Steuerung.heos: [Heos] Error: This socket has been ended by the other party
      javascript.1	2020-04-20 07:30:56.016	warn	(21921) script.js.Steuerung.heos: [Heos] [HEARTBEAT] Retries exceeded
      javascript.1	2020-04-20 07:30:56.015	error	(21921) script.js.Steuerung.heos: [Heos] Error: This socket has been ended by the other party
      javascript.1	2020-04-20 07:30:41.015	error	(21921) script.js.Steuerung.heos: [Heos] Error: This socket has been ended by the other party
      javascript.1	2020-04-20 07:30:26.015	error	(21921) script.js.Steuerung.heos: [Heos] Error: This socket has been ended by the other party
      javascript.1	2020-04-20 07:30:11.014	error	(21921) script.js.Steuerung.heos: [Heos] Error: This socket has been ended by the other party
      javascript.1	2020-04-20 07:30:06.030	info	(21921) script.js.Steuerung.heos: [HeosPlayer xxxxxxxxxxx] starting HEOS player with pid xxxxxxxxxxx (192.168.111.23)
      javascript.1	2020-04-20 07:30:06.027	info	(21921) script.js.Steuerung.heos: [HeosPlayer yyyyyyyyyyyy] starting HEOS player with pid yyyyyyyyyyyy (192.168.111.20)
      javascript.1	2020-04-20 07:30:06.023	info	(21921) script.js.Steuerung.heos: [HeosPlayer zzzzzzzzzzz] starting HEOS player with pid zzzzzzzzzzz (192.168.111.22)
      javascript.1	2020-04-20 07:30:01.047	error	(21921) script.js.Steuerung.heos: [Heos] Error: This socket has been ended by the other party
      javascript.1	2020-04-20 07:30:01.042	error	(21921) script.js.Steuerung.heos: [Heos] Error: This socket has been ended by the other party
      javascript.1	2020-04-20 07:30:01.030	error	(21921) script.js.Steuerung.heos: [Heos] Error: This socket has been ended by the other party
      javascript.1	2020-04-20 07:29:57.180	warn	(21921) script.js.Steuerung.heos: [Heos] HEOS closed the connection to 192.168.111.22
      javascript.1	2020-04-20 07:29:56.024	info	(21921) script.js.Steuerung.heos: [HeosPlayer xxxxxxxxxxx] creating HEOS player with pid xxxxxxxxxxx (192.168.111.23)
      javascript.1	2020-04-20 07:29:56.023	info	(21921) script.js.Steuerung.heos: [HeosPlayer yyyyyyyyyyyy] creating HEOS player with pid yyyyyyyyyyyy (192.168.111.20)
      javascript.1	2020-04-20 07:29:56.020	info	(21921) script.js.Steuerung.heos: [HeosPlayer zzzzzzzzzzz] creating HEOS player with pid zzzzzzzzzzz (192.168.111.22)
      javascript.1	2020-04-20 07:29:56.010	info	(21921) script.js.Steuerung.heos: [Heos] connected to HEOS (192.168.111.22)
      javascript.1	2020-04-20 07:29:56.006	info	(21921) script.js.Steuerung.heos: [Heos] connecting to HEOS (192.168.111.22) ...
      javascript.1	2020-04-20 07:29:55.881	info	(21921) script.js.Steuerung.heos: registered 1 subscription and 0 schedules
      javascript.1	2020-04-20 07:29:55.715	info	(21921) script.js.Steuerung.heos: [Heos] searching for HEOS devices ...
      javascript.1	2020-04-20 07:29:55.641	info	(21921) Start javascript script.js.Steuerung.heos
      javascript.1	2020-04-20 07:29:55.162	info	(21921) received all states
      javascript.1	2020-04-20 07:29:55.114	info	(21921) received all objects
      javascript.1	2020-04-20 07:24:25.123	info	(27211) Terminated (START_IMMEDIATELY_AFTER_STOP): Without reason
      javascript.1	2020-04-20 07:24:24.989	info	(27211) Got terminate signal TERMINATE_YOURSELF
      javascript.1	2020-04-20 07:24:24.971	info	(27211) script.js.Steuerung.heos: [Heos] disconnected from HEOS
      javascript.1	2020-04-20 07:24:24.953	info	(27211) script.js.Steuerung.heos: [HeosPlayer xxxxxxxxxxx] stopping HEOS player with pid xxxxxxxxxxx (192.168.111.23)
      javascript.1	2020-04-20 07:24:24.939	info	(27211) script.js.Steuerung.heos: [HeosPlayer yyyyyyyyyyyy] stopping HEOS player with pid yyyyyyyyyyyy (192.168.111.20)
      javascript.1	2020-04-20 07:24:24.864	info	(27211) script.js.Steuerung.heos: [HeosPlayer zzzzzzzzzzz] stopping HEOS player with pid zzzzzzzzzzz (192.168.111.22)
      javascript.1	2020-04-20 07:24:24.860	info	(27211) script.js.Steuerung.heos: [Heos] [HEARTBEAT] Stop interval
      javascript.1	2020-04-20 07:24:24.857	info	(27211) script.js.Steuerung.heos: [Heos] disconnecting from HEOS ...
      javascript.1	2020-04-20 07:24:24.725	info	(27211) Stop script script.js.Steuerung.heos
      


      Nach einem weiteren Neustart des Javascript-Adapters startet das Skript dann normal.
      Ich könnte mir vorstellen, dass das Skript gestartet wird, bevor irgend eine Abhängigkeit geladen wurde?

      Ich verwende dein Skript vom 10. April, das trat aber bei der vorhergehenden Version auch schon auf.

      Viele Grüße
      Christian

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

        @chrisblu Der Fehler ist mir am Wochenende auch aufgefallen. Konnte ihn aber nicht mehr reproduzieren. Ich habe aber auf Verdacht in der reconnect Methode die stateCONNECTED Prüfung rausgenommen. An der könnte es gelegen haben, dass das Script sich nicht sauber beendet hat: heos.js

        In dem Zug habe ich auch die Events für Shuffle und Repeat korrigiert. Die haben bis jetzt noch nie funktioniert. Zudem habe ich zwei Commands hinzugefügt, die alle Player gruppieren bzw. alle Gruppen auflösen. Vielleicht benötigt sie ja jemand:
        group/group_all
        group/ungroup_all

        1 Reply Last reply Reply Quote 0
        • C
          chrisblu last edited by

          @withstu danke, ich habe es eingespielt und werde das Verhalten mal beobachten.
          Die group all und ungroup all finde ich sehr praktisch. Werden die in dem übergeordneten command angegeben oder bei dem command der einzelnen Boxen?
          Gibt es sowas wie wie ungroup all auch für play? Vor allem Pause all oder Stopp all wäre für mich interessant, weil ich einen Knopf neben der Haustür habe, mit dem ich alle HEOS auschalten kann.
          LG Christian

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

            @chrisblu Gute Idee. Ich hatte das bisher über ein anderes Script gelöst und habe es nun integriert: heos.js Es gibt jetzt drei neuen Commands, die sich über den übergeordneten Command steuern lassen:

            "group/ungroup_all" : Löst alle Player Gruppen auf.
            "group/group_all" : Gruppiert alle Player in einer Gruppe.

            "player/cmd": Sendet den Command cmd an alle Player.

            Bsp:
            player/set_play_state&state=pause
            player/set_play_state&state=play
            player/set_play_state&state=stop

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

              @withstu Cool, das werde ich gleich mal ausprobieren. Vielen Dank.
              Zu deiner Info: Skript läuft seit der letzten Version stabil, Probleme beim Neustart sind bisher nicht mehr aufgetreten.
              Viele Grüße
              Christian

              C 1 Reply Last reply Reply Quote 0
              • C
                chrisblu @chrisblu last edited by

                @withstu Mir ist da gerade noch was aufgefallen. Bei mir kam gerade beim Starten die Meldung "

                script.js.Steuerung.heos: [Heos] result=fail, User_not_logged_in
                

                Im Objekt taucht das in der Fehlermeldung auf, und in dem Feld last_error auf, in error steht aber false. Das Interpretiere ich jetzt mal so, dass die Anmeldung danach scheinbar geklappt hat? Aber sehen kann ich dass nirgends, oder?
                Wie wäre es mit einem Objekt "logged_in"?

                Viele Grüße,
                Christian

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

                  @chrisblu Das hing damit zusammen, dass die Favoriten bereits abgerufen wurden, obwohl die HEOS Anmeldung noch nicht abgeschlossen war. Habe die zwei neuen States signed_in und signed_in_user hinzugefügt: heos.js

                  EDIT: In der Auswertung des übergeordneten Commands gab es noch einen Bug.

                  1 Reply Last reply Reply Quote 0
                  • C
                    chrisblu last edited by

                    @withstu super, danke, habe das Skritpt eingespielt.
                    Vielleicht kurzer Erfahrungsbericht: Skript (also letzte Version) lief sehr stabil. Ich hatte Zwischenzeitlich mal einen Lautsprecher abgeschaltet (vom Strom getrennt). Wurde später wieder gefunden. Läuft alles gut.
                    Im neuen Skript zeigt er jetzt den Loginnamen und Status an... Prima

                    Lustigerweise ist mir noch Folgendes aufgefallen, ist aber ein Fehler der Heos-App:
                    Ich habe ein Verzeichnisse mit Hörspielen, jedes eine mp3, die ein Cover drinnen gespeichert hat. Wenn ich mir die über DLNA-Ordneransicht zeigen lasse, haben alle das selbe Bild - da wird scheinbar nur das erste gelesen, im Verzeichnis selber liegt kein Bild. Auch wenn ich die Titel abspiele, wird mir ein falsches Bild angezeigt. In VIS zeige ich mir die URL zum Cover an, da wird das richtige Cover angezeigt. Aber das nur so nebenbei.

                    Viele Grüße,
                    Christian

                    B 1 Reply Last reply Reply Quote 0
                    • B
                      beowulf123456 @chrisblu last edited by

                      Hallo,

                      ich interessiere mich auch sehr für das HEOS Script. Leider klappt es bei mir nicht.
                      Die States ließt er mir Korrekt in die Objekte aus.

                      Aber einen Command zur Steuerung absetzen klappt nicht z.b. Lauter Leiser Mute, so wie im Kommentar beschrieben!!

                      screenshot.png
                      Im Script zeigt er mir auch mehrere Fehler an u.a. Findet der anscheinend das node-ssdp nicht. Obwohl ich es unter den Zusätzlichen npm Modulen im Script Adapter hinterlegt habe.

                      Was mache ich Falsch?

                      Viele Grüße

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

                        @beowulf123456 zeig mal bitte die Adapterkonfiguration.

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

                          Hallo, das ist meine Konfiguration.
                          Die Version des Javascript Adapters die neueste. screenshot-192.168.178.244_8081-2020.05.11-17_48_01.png
                          Das ganze läuft auf Raspian auf einem Raspi 4

                          Danke sehr

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

                            @beowulf123456 Sieht amtlich aus. Wie und wo setzt Du den command ab (in Objekten oder vis)?

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

                              Ich habe es bisher direkt über das Object versucht, als auch über blocky. Siehe Screenshot

                              screenshot-192.168.178.244_8081-2020.05.11-18_10_00.png
                              screenshot-192.168.178.244_8081-2020.05.11-18_11_30.png

                              Beides scheint jedoch nicht zu funktionieren.
                              VIS benutze ich nicht. Sondern eine eigene GUI.

                              Das Script selbst, habe ich versucht sowohl in den Ordner global, als auch in einen anderen Ordner zu packen. Jedoch sind die angezeigten Script Fehler immer die selben.

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

                                @beowulf123456 bist Du dir sicher, dass Du das neueste script verwendest? Bei mir sehen die Geräte so aus:


                                e081dc0c-cd60-4566-8997-eb1006be025f-grafik.png

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

                                  Ahh jetzt klappt es, vielen vielen Dank...

                                  Ich hatte zuerst ein älteres HEOS Script verwendet gehabt. Das stand bei mir unter den Objekten im javascript.0 Adapter drinnen, da vermutlich mein Javascript Adapter nicht aktuell war, ging es anfangs nicht.

                                  Daraufhin habe ich das HEOS Script und den Javascript Adapter aktualisiert.

                                  Weil die neue HEOS Script Version sich allerdings unter userdata.0 schreibt, kann ich mit dem alten Objekt Datenpunkten lange rum probieren. Vermutlich hat es als schon die ganze Zeit schon funktioniert...

                                  Aber vielen Dank nochmal für den Hinweis mit dem Screenshot.
                                  Vielleicht hilft dies ja jemandem weiter der ein ähnliches Problem hat.

                                  1 Reply Last reply Reply Quote 0
                                  • andre
                                    andre Developer last edited by

                                    Hallo,
                                    ich wollte heute auch mal das HEOS Script ausprobieren, leider findet das Script mein HEOS Device (AVR) nicht. 😞

                                    10:24:31.840	info	javascript.0 (23262) script.js.Heos.heos: [Heos] still searching for HEOS devices ...
                                    

                                    Fehlermeldungen habe ich im Log keine. Script Version: 2.0/2020-04-02
                                    Auch wenn ich über meine HEOS App steuere wird nichts erkannt. Liegt es daran dass ich HEOS auf meinem AVR nutze und keinen HEOS Lautsprecher habe?
                                    Hat jemand einen Tipp was ich noch versuchen kann?
                                    Danke!

                                    MfG,
                                    André

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

                                      @andre was meinst Du? Was steuerst Du über die HEOS App? Was ist das für ein AVR?

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

                                        @Meister-Mopper
                                        Ich habe einen Denon-AVR-X1400H. Das ist eine 7.1 Anlage mit HEOS. Lässt sich über die App ganz normal steuern.

                                        andre 1 Reply Last reply Reply Quote 0
                                        • andre
                                          andre Developer @andre last edited by

                                          Ich glaub ich weiß wo es hängt. Auf meinem Livesystem wird der AVR nicht gefunden. Mache ich das Ganze auf meinem Testsystem läuft es... Kann mir jemand sagen wie ich prüfen kann ob node-ssdp ordnungsgemäß tut?

                                          MfG,
                                          André

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

                                            @andre was kommt denn, wenn Du es mit npm installierst?

                                            npm install node-ssdp
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            768
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript template
                                            45
                                            341
                                            53036
                                            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