Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
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.0k

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

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

[Vorlage] Denon HEOS Script

[Vorlage] Denon HEOS Script

Scheduled Pinned Locked Moved JavaScript
javascripttemplate
357 Posts 48 Posters 75.6k Views 44 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    chrisblu
    wrote on last edited by
    #145

    @Mars @withstu Ich könnte mir vorstellen, dass der Grund warum der Gong nicht gespielt wird, die Pufferungszeit vom Heos ist. Wenn ich ein mp3 Abspiele werden immer erst 5 Sekunden lautlos gespielt, bevor ich was höre.
    Versucht doch mal, vor den Gong z.B. leere 5 Sekunden in das mp3 zu packen.
    Ich schätze, dass sich das bei neueren Boxen auch nicht anders verhält, weil das System den Puffer braucht, um mehrere Boxen synchron spielen zu können.
    Nur ein Gedankenanstoß, vielleicht hilfts.
    Viele Grüße Christian

    1 Reply Last reply
    0
    • C Offline
      C Offline
      chrisblu
      wrote on last edited by
      #146

      Hallo @withstu,
      das Skript lief in der Version 2.0 vom Anfang Mai super, ist aber am Freitag nach dem Update der Heos-Boxen abgeschmiert und hat mir das Log gescheit mit Information gefüllt. Die Heos-App hat ein Update verlangt, ich habe dann alle Boxen gleich mit upgedated. Im Log ist folgendes passiert:

      Beim Update kam:

      2020-06-25 19:01:55.020  - warn: javascript.1 (1416) script.js.Steuerung.heos: [Heos] HEOS closed the connection to 192.168.111.20
      2020-06-25 19:01:55.022  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] reconnecting to HEOS ...
      2020-06-25 19:01:55.023  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] disconnecting from HEOS ...
      2020-06-25 19:01:55.025  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] [HEARTBEAT] Stop interval
      2020-06-25 19:01:55.026  - info: javascript.1 (1416) script.js.Steuerung.heos: [HeosPlayer 1645177266] stopping HEOS player with pid 1645177266 (192.168.111.22)
      2020-06-25 19:01:55.044  - info: javascript.1 (1416) script.js.Steuerung.heos: [HeosPlayer -140829128] stopping HEOS player with pid -140829128 (192.168.111.23)
      2020-06-25 19:01:55.065  - info: javascript.1 (1416) script.js.Steuerung.heos: [HeosPlayer -1359970574] stopping HEOS player with pid -1359970574 (192.168.111.20)
      2020-06-25 19:01:55.085  - error: javascript.1 (1416) script.js.Steuerung.heos: [Heos] Error: This socket has been ended by the other party
      2020-06-25 19:01:55.086  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] reconnecting to HEOS ...
      2020-06-25 19:01:55.086  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] disconnecting from HEOS ...
      2020-06-25 19:01:55.087  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] [HEARTBEAT] Stop interval
      2020-06-25 19:01:55.088  - error: javascript.1 (1416) script.js.Steuerung.heos: [Heos] Error: This socket has been ended by the other party
      2020-06-25 19:01:55.088  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] reconnecting to HEOS ...
      2020-06-25 19:01:55.088  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] disconnecting from HEOS ...
      2020-06-25 19:01:55.088  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] [HEARTBEAT] Stop interval
      

      Innerhalb von 2 Sekunden wurden hier ca. 1500 mal diese 4 Zeilen geschrieben.
      Dann kam diese Meldung, aber nur ca. 80 mal:

      2020-06-25 19:02:10.461  - error: javascript.1 (1416) script.js.Steuerung.heos: [Heos] sendMsg: Maximum call stack size exceeded
      

      Weiter gings ca. 1500x mit folgender Meldung:

      2020-06-25 19:02:11.831  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] disconnected from HEOS
      

      und

      2020-06-25 19:02:24.383  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] searching for HEOS devices ...
      

      und dann bis ichs gemerkt habe (ca. 400k Einträge in 2h):

      2020-06-25 19:02:48.835  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] still searching for HEOS devices ...
      

      Ich habe dann den iobroker neu gestartet. Wahrscheinlich hätte ein Restart des javascript Adapters auch gereicht? aber ich habe den broker eh angehalten wegen mehrfacher Updates.

      Irgendwie hat wohl das Update der Boxen das Skript bzw. den Adapter verwirrt.
      Wenn ich alle Boxen ausstecke, dann kommt zwar auch "searching", jedoch nur im 30s-Takt.

      Hier wäre es eventuell günstiger, den Ausgabe bzw. auch den Verbindungsversuch zu minimieren, dass der nicht im ms-Takt einen Reconnect versucht.

      Auch scheint hier das Heartbeat Intervall (15s) nicht zu greifen? Oder wird das nur angewendet, wenn die Verbindung aufgebaut ist?

      Viele Grüße
      Christian

      B W 2 Replies Last reply
      0
      • C chrisblu

        Hallo @withstu,
        das Skript lief in der Version 2.0 vom Anfang Mai super, ist aber am Freitag nach dem Update der Heos-Boxen abgeschmiert und hat mir das Log gescheit mit Information gefüllt. Die Heos-App hat ein Update verlangt, ich habe dann alle Boxen gleich mit upgedated. Im Log ist folgendes passiert:

        Beim Update kam:

        2020-06-25 19:01:55.020  - warn: javascript.1 (1416) script.js.Steuerung.heos: [Heos] HEOS closed the connection to 192.168.111.20
        2020-06-25 19:01:55.022  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] reconnecting to HEOS ...
        2020-06-25 19:01:55.023  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] disconnecting from HEOS ...
        2020-06-25 19:01:55.025  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] [HEARTBEAT] Stop interval
        2020-06-25 19:01:55.026  - info: javascript.1 (1416) script.js.Steuerung.heos: [HeosPlayer 1645177266] stopping HEOS player with pid 1645177266 (192.168.111.22)
        2020-06-25 19:01:55.044  - info: javascript.1 (1416) script.js.Steuerung.heos: [HeosPlayer -140829128] stopping HEOS player with pid -140829128 (192.168.111.23)
        2020-06-25 19:01:55.065  - info: javascript.1 (1416) script.js.Steuerung.heos: [HeosPlayer -1359970574] stopping HEOS player with pid -1359970574 (192.168.111.20)
        2020-06-25 19:01:55.085  - error: javascript.1 (1416) script.js.Steuerung.heos: [Heos] Error: This socket has been ended by the other party
        2020-06-25 19:01:55.086  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] reconnecting to HEOS ...
        2020-06-25 19:01:55.086  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] disconnecting from HEOS ...
        2020-06-25 19:01:55.087  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] [HEARTBEAT] Stop interval
        2020-06-25 19:01:55.088  - error: javascript.1 (1416) script.js.Steuerung.heos: [Heos] Error: This socket has been ended by the other party
        2020-06-25 19:01:55.088  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] reconnecting to HEOS ...
        2020-06-25 19:01:55.088  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] disconnecting from HEOS ...
        2020-06-25 19:01:55.088  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] [HEARTBEAT] Stop interval
        

        Innerhalb von 2 Sekunden wurden hier ca. 1500 mal diese 4 Zeilen geschrieben.
        Dann kam diese Meldung, aber nur ca. 80 mal:

        2020-06-25 19:02:10.461  - error: javascript.1 (1416) script.js.Steuerung.heos: [Heos] sendMsg: Maximum call stack size exceeded
        

        Weiter gings ca. 1500x mit folgender Meldung:

        2020-06-25 19:02:11.831  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] disconnected from HEOS
        

        und

        2020-06-25 19:02:24.383  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] searching for HEOS devices ...
        

        und dann bis ichs gemerkt habe (ca. 400k Einträge in 2h):

        2020-06-25 19:02:48.835  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] still searching for HEOS devices ...
        

        Ich habe dann den iobroker neu gestartet. Wahrscheinlich hätte ein Restart des javascript Adapters auch gereicht? aber ich habe den broker eh angehalten wegen mehrfacher Updates.

        Irgendwie hat wohl das Update der Boxen das Skript bzw. den Adapter verwirrt.
        Wenn ich alle Boxen ausstecke, dann kommt zwar auch "searching", jedoch nur im 30s-Takt.

        Hier wäre es eventuell günstiger, den Ausgabe bzw. auch den Verbindungsversuch zu minimieren, dass der nicht im ms-Takt einen Reconnect versucht.

        Auch scheint hier das Heartbeat Intervall (15s) nicht zu greifen? Oder wird das nur angewendet, wenn die Verbindung aufgebaut ist?

        Viele Grüße
        Christian

        B Offline
        B Offline
        Brati
        wrote on last edited by
        #147

        @chrisblu

        Das Update führt wohl selbst auch zu Problemen...

        Caschys Blog: Denon Heos: Probleme nach Firmware-Update.
        http://feedproxy.google.com/~r/stadt-bremerhaven/dqXM/~3/tPazcUOP0Ys/

        Könnte also auch daran liegen.

        Grüße Brati

        CCU2 - 46 Geräte, ioBroker auf Intel NUC (DN2820FYKH) mit Tab als Frontend, Projekt Gartenhaus mit HM

        1 Reply Last reply
        0
        • C chrisblu

          Hallo @withstu,
          das Skript lief in der Version 2.0 vom Anfang Mai super, ist aber am Freitag nach dem Update der Heos-Boxen abgeschmiert und hat mir das Log gescheit mit Information gefüllt. Die Heos-App hat ein Update verlangt, ich habe dann alle Boxen gleich mit upgedated. Im Log ist folgendes passiert:

          Beim Update kam:

          2020-06-25 19:01:55.020  - warn: javascript.1 (1416) script.js.Steuerung.heos: [Heos] HEOS closed the connection to 192.168.111.20
          2020-06-25 19:01:55.022  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] reconnecting to HEOS ...
          2020-06-25 19:01:55.023  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] disconnecting from HEOS ...
          2020-06-25 19:01:55.025  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] [HEARTBEAT] Stop interval
          2020-06-25 19:01:55.026  - info: javascript.1 (1416) script.js.Steuerung.heos: [HeosPlayer 1645177266] stopping HEOS player with pid 1645177266 (192.168.111.22)
          2020-06-25 19:01:55.044  - info: javascript.1 (1416) script.js.Steuerung.heos: [HeosPlayer -140829128] stopping HEOS player with pid -140829128 (192.168.111.23)
          2020-06-25 19:01:55.065  - info: javascript.1 (1416) script.js.Steuerung.heos: [HeosPlayer -1359970574] stopping HEOS player with pid -1359970574 (192.168.111.20)
          2020-06-25 19:01:55.085  - error: javascript.1 (1416) script.js.Steuerung.heos: [Heos] Error: This socket has been ended by the other party
          2020-06-25 19:01:55.086  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] reconnecting to HEOS ...
          2020-06-25 19:01:55.086  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] disconnecting from HEOS ...
          2020-06-25 19:01:55.087  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] [HEARTBEAT] Stop interval
          2020-06-25 19:01:55.088  - error: javascript.1 (1416) script.js.Steuerung.heos: [Heos] Error: This socket has been ended by the other party
          2020-06-25 19:01:55.088  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] reconnecting to HEOS ...
          2020-06-25 19:01:55.088  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] disconnecting from HEOS ...
          2020-06-25 19:01:55.088  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] [HEARTBEAT] Stop interval
          

          Innerhalb von 2 Sekunden wurden hier ca. 1500 mal diese 4 Zeilen geschrieben.
          Dann kam diese Meldung, aber nur ca. 80 mal:

          2020-06-25 19:02:10.461  - error: javascript.1 (1416) script.js.Steuerung.heos: [Heos] sendMsg: Maximum call stack size exceeded
          

          Weiter gings ca. 1500x mit folgender Meldung:

          2020-06-25 19:02:11.831  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] disconnected from HEOS
          

          und

          2020-06-25 19:02:24.383  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] searching for HEOS devices ...
          

          und dann bis ichs gemerkt habe (ca. 400k Einträge in 2h):

          2020-06-25 19:02:48.835  - info: javascript.1 (1416) script.js.Steuerung.heos: [Heos] still searching for HEOS devices ...
          

          Ich habe dann den iobroker neu gestartet. Wahrscheinlich hätte ein Restart des javascript Adapters auch gereicht? aber ich habe den broker eh angehalten wegen mehrfacher Updates.

          Irgendwie hat wohl das Update der Boxen das Skript bzw. den Adapter verwirrt.
          Wenn ich alle Boxen ausstecke, dann kommt zwar auch "searching", jedoch nur im 30s-Takt.

          Hier wäre es eventuell günstiger, den Ausgabe bzw. auch den Verbindungsversuch zu minimieren, dass der nicht im ms-Takt einen Reconnect versucht.

          Auch scheint hier das Heartbeat Intervall (15s) nicht zu greifen? Oder wird das nur angewendet, wenn die Verbindung aufgebaut ist?

          Viele Grüße
          Christian

          W Offline
          W Offline
          withstu
          wrote on last edited by
          #148

          Hey @chrisblu,
          hatte gerade mal das Debugging eingeschaltet und dabei ein HEOS Player aktualisiert. Bei mir gab es keine Probleme. Das Script trennt die Verbindung, falls der Heartbeat fehlschlägt und reconnected, wenn der Player nach dem Update gefunden wurde.
          Die reconnect Funktion wird immer aufgerufen, falls HEOS Fehler wirft oder die Verbindung fehlerhaft ist. Nach dem disconnect wird dann 5 Sekunden gewartet, um eine neue Verbindung aufzubauen. Leider gab es hier keine Beschränkung wie oft diese Funktion ausgeführt wird. Bei vielen Fehlern würden auch die reconnect Funktion sehr oft aufgerufen werden. Habe jetzt im Script versucht das wiederholte Ausführen der reconnect Funktion zu unterbinden. Ich hoffe, dass dadurch der Fehler Geschichte ist.
          Der Heartbeat wird übrigens nur aktiviert, falls es eine Verbindung zu einem HEOS Player gibt. Bei einem reconnect/disconnect wird der Heartbeat ausgeschaltet.

          @Mars Da sich die Schnittstelle bei den neuen Playern nicht geändert hat, wird es da auch nicht besser funktionieren. Problem mit dem Gong und sayit ist, dass sayit den Gong und den Text hintereinander unter der selben URL veröffentlicht (Die Datei wird nach dem Gong mit der Text mp3 ersetzt). Dadurch müsste mein Script quasi zweimal im richtigen Moment play_stream ausführen und dafür die Längen der beiden mp3s kennen. Dafür habe ich aktuell noch keine Lösung. Der Sonos Adapter arbeitet da wohl mit einer Queue https://github.com/ioBroker/ioBroker.sonos/blob/master/lib/tts.js. Durch die Integration von Sonos im sayit Adapter wird zudem für den Gong und den Text jeweils ein Update auf dem tts state durchgeführt.

          Script: heos.js

          M 1 Reply Last reply
          0
          • C Offline
            C Offline
            chrisblu
            wrote on last edited by
            #149

            Hallo @withstu, vielen Dank für deine Mühe, ich habe das neue Skript eingespielt. Werde wieder berichten.

            @Brati danke für den Link. Die Info ist ja recht schwammig, aber dann ist ja zumindest davon auszugehen, dass die bald mal noch ein Update nachschieben 🙂

            Viele Grüße
            Christian

            1 Reply Last reply
            0
            • W withstu

              Hey @chrisblu,
              hatte gerade mal das Debugging eingeschaltet und dabei ein HEOS Player aktualisiert. Bei mir gab es keine Probleme. Das Script trennt die Verbindung, falls der Heartbeat fehlschlägt und reconnected, wenn der Player nach dem Update gefunden wurde.
              Die reconnect Funktion wird immer aufgerufen, falls HEOS Fehler wirft oder die Verbindung fehlerhaft ist. Nach dem disconnect wird dann 5 Sekunden gewartet, um eine neue Verbindung aufzubauen. Leider gab es hier keine Beschränkung wie oft diese Funktion ausgeführt wird. Bei vielen Fehlern würden auch die reconnect Funktion sehr oft aufgerufen werden. Habe jetzt im Script versucht das wiederholte Ausführen der reconnect Funktion zu unterbinden. Ich hoffe, dass dadurch der Fehler Geschichte ist.
              Der Heartbeat wird übrigens nur aktiviert, falls es eine Verbindung zu einem HEOS Player gibt. Bei einem reconnect/disconnect wird der Heartbeat ausgeschaltet.

              @Mars Da sich die Schnittstelle bei den neuen Playern nicht geändert hat, wird es da auch nicht besser funktionieren. Problem mit dem Gong und sayit ist, dass sayit den Gong und den Text hintereinander unter der selben URL veröffentlicht (Die Datei wird nach dem Gong mit der Text mp3 ersetzt). Dadurch müsste mein Script quasi zweimal im richtigen Moment play_stream ausführen und dafür die Längen der beiden mp3s kennen. Dafür habe ich aktuell noch keine Lösung. Der Sonos Adapter arbeitet da wohl mit einer Queue https://github.com/ioBroker/ioBroker.sonos/blob/master/lib/tts.js. Durch die Integration von Sonos im sayit Adapter wird zudem für den Gong und den Text jeweils ein Update auf dem tts state durchgeführt.

              Script: heos.js

              M Offline
              M Offline
              Mars
              wrote on last edited by
              #150

              @withstu Ja mit Gong und anschließender Ansage bekomme ich auch nicht vernünftig zum laufen.
              Generell ist die 5 sec. Zeitverzögerung für eine Haustürklingel nicht ganz optimal. Manchmal geht es auch deutlich länger, wenn in meinem Fall die Soundbar im "sleep" ist.
              Ich habe vor meinen Gong jetzt 5 sec. Leerlauf eingebaut. Der Gong kommt so immer sauber durch aber halt manchmal recht spät.
              Zudem muss man wissen wie lange der Gong in etwa läuft um dann wieder ein "Stop" an den Heos Lautsprecher zu schicken sonst läuft dieser in Endlosschleife!
              Wenn jemand hier Tips hat darf er diese gerne äußern!
              Danke!

              W C 2 Replies Last reply
              0
              • M Mars

                @withstu Ja mit Gong und anschließender Ansage bekomme ich auch nicht vernünftig zum laufen.
                Generell ist die 5 sec. Zeitverzögerung für eine Haustürklingel nicht ganz optimal. Manchmal geht es auch deutlich länger, wenn in meinem Fall die Soundbar im "sleep" ist.
                Ich habe vor meinen Gong jetzt 5 sec. Leerlauf eingebaut. Der Gong kommt so immer sauber durch aber halt manchmal recht spät.
                Zudem muss man wissen wie lange der Gong in etwa läuft um dann wieder ein "Stop" an den Heos Lautsprecher zu schicken sonst läuft dieser in Endlosschleife!
                Wenn jemand hier Tips hat darf er diese gerne äußern!
                Danke!

                W Offline
                W Offline
                withstu
                wrote on last edited by
                #151

                @Mars Eine Idee wäre den Gong in eine HEOS Playlist zu packen und über die neuen Playlist States (0_userdata.0.heos.playlists.ID.play) das Abspielen zu triggern. Dauert auch bei mehreren Playern nicht länger als 2 Sekunden. Vorher sollte Shuffle noch deaktiviert werden (player/set_play_mode&shuffle=off) bzw. Repeat (player/set_play_mode&repeat=off). Wenn die Playlist einmal abgespielt wurde, stoppen die Player die Wiedergabe. Bei dieser Variante ist natürlich die gespielte Musik verloren und müsste wieder gestartet werden. Leider speichert HEOS in den Playlists kein Url Stream und damit wäre TTS aus dem Rennen.

                M 1 Reply Last reply
                0
                • M Mars

                  @withstu Ja mit Gong und anschließender Ansage bekomme ich auch nicht vernünftig zum laufen.
                  Generell ist die 5 sec. Zeitverzögerung für eine Haustürklingel nicht ganz optimal. Manchmal geht es auch deutlich länger, wenn in meinem Fall die Soundbar im "sleep" ist.
                  Ich habe vor meinen Gong jetzt 5 sec. Leerlauf eingebaut. Der Gong kommt so immer sauber durch aber halt manchmal recht spät.
                  Zudem muss man wissen wie lange der Gong in etwa läuft um dann wieder ein "Stop" an den Heos Lautsprecher zu schicken sonst läuft dieser in Endlosschleife!
                  Wenn jemand hier Tips hat darf er diese gerne äußern!
                  Danke!

                  C Offline
                  C Offline
                  chrisblu
                  wrote on last edited by chrisblu
                  #152

                  @Mars Mir kommt da als Quelle noch ein mp3 auf einem USB-Stick direkt in der Box in den Sinn. Könnte schneller gehen, aber ob man das ansteuern kann? Ein Versuch wärs Wert. Das Problem mit der unterbrochenen/ abgebrochenen Musik wird da aber wohl auch auftreten. Vielleicht könnte man den aktuellen Status durch ein Skript vor dem Auslösen auslesen und dann wieder weiterspielen?
                  Viele Grüße Christian

                  1 Reply Last reply
                  0
                  • W withstu

                    @Mars Eine Idee wäre den Gong in eine HEOS Playlist zu packen und über die neuen Playlist States (0_userdata.0.heos.playlists.ID.play) das Abspielen zu triggern. Dauert auch bei mehreren Playern nicht länger als 2 Sekunden. Vorher sollte Shuffle noch deaktiviert werden (player/set_play_mode&shuffle=off) bzw. Repeat (player/set_play_mode&repeat=off). Wenn die Playlist einmal abgespielt wurde, stoppen die Player die Wiedergabe. Bei dieser Variante ist natürlich die gespielte Musik verloren und müsste wieder gestartet werden. Leider speichert HEOS in den Playlists kein Url Stream und damit wäre TTS aus dem Rennen.

                    M Offline
                    M Offline
                    Mars
                    wrote on last edited by
                    #153

                    @withstu das hatte ich in einer Playlist gemacht, jedoch wusste ich noch nicht wie man eine Playlist abspielt. Das ist ja aber jetzt mit einem Datenpunkt sehr einfach geworden. Also der Klingel Gong wird so zuverlässig eingespielt. Habe noch 2 sec. Leerlauf vor den Gong gepackt, dann kommt dieser sauber durch.
                    Mein Ziel wäre es eigtl. Alexa zu ersetzen als Ausgabe Lautsprecher da es hier über die Cloud geht.
                    Für mich als Laie ist unklar was jetzt bei dem sehr umfangreichen Script noch fehlt, dass es wie bei einer Sonos Box mit dem "text to speech" funktioniert?
                    @chrisblu die Gong MP3 ist auf einem USB direkt an der Box dran. Das mit dem auslesen und wieder einspielen des Status war auch mal mein Gedanke hatte ich aber noch nicht probiert.

                    K W 2 Replies Last reply
                    0
                    • M Mars

                      @withstu das hatte ich in einer Playlist gemacht, jedoch wusste ich noch nicht wie man eine Playlist abspielt. Das ist ja aber jetzt mit einem Datenpunkt sehr einfach geworden. Also der Klingel Gong wird so zuverlässig eingespielt. Habe noch 2 sec. Leerlauf vor den Gong gepackt, dann kommt dieser sauber durch.
                      Mein Ziel wäre es eigtl. Alexa zu ersetzen als Ausgabe Lautsprecher da es hier über die Cloud geht.
                      Für mich als Laie ist unklar was jetzt bei dem sehr umfangreichen Script noch fehlt, dass es wie bei einer Sonos Box mit dem "text to speech" funktioniert?
                      @chrisblu die Gong MP3 ist auf einem USB direkt an der Box dran. Das mit dem auslesen und wieder einspielen des Status war auch mal mein Gedanke hatte ich aber noch nicht probiert.

                      K Offline
                      K Offline
                      Klaus Baumecker
                      wrote on last edited by
                      #154

                      Hi,
                      möglicherweise kam die Frage schon, aber kann man rausbekommen, ob auf einen der Quick-Select buttons gedrückt worden ist?

                      Mein Use-Case: Wenn ich im Bad die (1) drücke, dann soll das gleiche gespielt werden, was gerade im Wohnzimmer läuft.

                      Grüße,
                      klaus

                      ioBroker on raspi 4B, SSD, IKEA Tradfri Gateway & bulbs, Homematic CCU2, Zigbee stick

                      1 Reply Last reply
                      0
                      • M Mars

                        @withstu das hatte ich in einer Playlist gemacht, jedoch wusste ich noch nicht wie man eine Playlist abspielt. Das ist ja aber jetzt mit einem Datenpunkt sehr einfach geworden. Also der Klingel Gong wird so zuverlässig eingespielt. Habe noch 2 sec. Leerlauf vor den Gong gepackt, dann kommt dieser sauber durch.
                        Mein Ziel wäre es eigtl. Alexa zu ersetzen als Ausgabe Lautsprecher da es hier über die Cloud geht.
                        Für mich als Laie ist unklar was jetzt bei dem sehr umfangreichen Script noch fehlt, dass es wie bei einer Sonos Box mit dem "text to speech" funktioniert?
                        @chrisblu die Gong MP3 ist auf einem USB direkt an der Box dran. Das mit dem auslesen und wieder einspielen des Status war auch mal mein Gedanke hatte ich aber noch nicht probiert.

                        W Offline
                        W Offline
                        withstu
                        wrote on last edited by
                        #155

                        @Mars Das Problem ist hier die HEOS API. Es gibt nur eine play_stream Funktion, die einen Stream sofort abgespielt. Für unsere TTS Funktion bräuchten wir aber eher eine Funktion, die den Stream lediglich zur Queue hinzufügt, aber nicht abspielt. So ist es quasi unmöglich mehrere Streams (Gong + TTS) hintereinander abzuspielen. Zudem ist der Sonos Adapter in den SayIt Adapter integriert und hat so die Dauer der Audiofiles zur Verfügung.

                        @Klaus-Baumecker Es gibt kein Event dafür, um das zu erkennen. Workaround könnte sein, dass du hinter dem Quickselect ein stilles Lied mit einem bestimmten Lied Titel hinterlegst und dann ein Script den Liedtitel überwachen lässt.

                        Btw. mir ist aufgefallen, dass die States der Gruppen nicht richtig funktioniert haben. Deswegen gibts ne neue Version: heos.js

                        K 1 Reply Last reply
                        0
                        • W withstu

                          @Mars Das Problem ist hier die HEOS API. Es gibt nur eine play_stream Funktion, die einen Stream sofort abgespielt. Für unsere TTS Funktion bräuchten wir aber eher eine Funktion, die den Stream lediglich zur Queue hinzufügt, aber nicht abspielt. So ist es quasi unmöglich mehrere Streams (Gong + TTS) hintereinander abzuspielen. Zudem ist der Sonos Adapter in den SayIt Adapter integriert und hat so die Dauer der Audiofiles zur Verfügung.

                          @Klaus-Baumecker Es gibt kein Event dafür, um das zu erkennen. Workaround könnte sein, dass du hinter dem Quickselect ein stilles Lied mit einem bestimmten Lied Titel hinterlegst und dann ein Script den Liedtitel überwachen lässt.

                          Btw. mir ist aufgefallen, dass die States der Gruppen nicht richtig funktioniert haben. Deswegen gibts ne neue Version: heos.js

                          K Offline
                          K Offline
                          Klaus Baumecker
                          wrote on last edited by Klaus Baumecker
                          #156

                          @withstu Das mit dem stillen Lied hatte ich mir auch schon überlegt. Bzw einen URL, der direkt das Web-API vom iobroker anspricht. Ich werde das demnächst mal probieren und berichte dann.

                          Ich hatte übrigens auch einen Fehler im Script entdeckt: Beim scannen nach HEOS devices wird bei mir ein ungültiges device gefunden. Daraufhin bricht die Suche ab. Ich checke mal das neue von Dir bei Gelegenheit. Vielleicht sollte man es auch nach Github schieben. Dann kann man besser mir issues und PRs arbeiten.

                          ioBroker on raspi 4B, SSD, IKEA Tradfri Gateway & bulbs, Homematic CCU2, Zigbee stick

                          D 1 Reply Last reply
                          0
                          • K Klaus Baumecker

                            @withstu Das mit dem stillen Lied hatte ich mir auch schon überlegt. Bzw einen URL, der direkt das Web-API vom iobroker anspricht. Ich werde das demnächst mal probieren und berichte dann.

                            Ich hatte übrigens auch einen Fehler im Script entdeckt: Beim scannen nach HEOS devices wird bei mir ein ungültiges device gefunden. Daraufhin bricht die Suche ab. Ich checke mal das neue von Dir bei Gelegenheit. Vielleicht sollte man es auch nach Github schieben. Dann kann man besser mir issues und PRs arbeiten.

                            D Offline
                            D Offline
                            DobbyMuh
                            wrote on last edited by DobbyMuh
                            #157

                            @withstu Vielen Dank für das coole Skript.

                            Aktuell habe ich ein Problem mit dem Skript in meiner Umgebung.

                            Umgebung: Mein ioBroker läuft in einem Docker auf einem Synology-NAS. Das Netzwerk ist im Bridged-Mode mit dem NAS (für einen Teil der Adapter leider erforderlich). Im Bridged-Mode läuft das Denon Skript nicht. Es kommt die Meldung "[Heos] searching for HEOS devices ...", ohne das etwas gefunden wird.

                            Fehleranalyse: Habe das Skript in einem separaten MACVLAN Ausprobiert. Damit hat das Skript fehlerfrei funktioniert. Es wurden sofort die beiden Heos-Lautsprecher und der AVR gefunden. Meine Vermutung ist jetzt, dass für das Skript eine Portweiterleitung in der Konfiguration des Docker-Containers fehlt.

                            Frage: Welche Ports werden für den Betrieb des Skriptes benötigt? Die Ports 1255 und 53871 habe ich bereits eingerichtet. Fehlen da noch weitere?

                            Wäre super, wenn mir jemand weiterhelfen kann.
                            Lieben Gruß, DobbyMuh

                            W 1 Reply Last reply
                            0
                            • D DobbyMuh

                              @withstu Vielen Dank für das coole Skript.

                              Aktuell habe ich ein Problem mit dem Skript in meiner Umgebung.

                              Umgebung: Mein ioBroker läuft in einem Docker auf einem Synology-NAS. Das Netzwerk ist im Bridged-Mode mit dem NAS (für einen Teil der Adapter leider erforderlich). Im Bridged-Mode läuft das Denon Skript nicht. Es kommt die Meldung "[Heos] searching for HEOS devices ...", ohne das etwas gefunden wird.

                              Fehleranalyse: Habe das Skript in einem separaten MACVLAN Ausprobiert. Damit hat das Skript fehlerfrei funktioniert. Es wurden sofort die beiden Heos-Lautsprecher und der AVR gefunden. Meine Vermutung ist jetzt, dass für das Skript eine Portweiterleitung in der Konfiguration des Docker-Containers fehlt.

                              Frage: Welche Ports werden für den Betrieb des Skriptes benötigt? Die Ports 1255 und 53871 habe ich bereits eingerichtet. Fehlen da noch weitere?

                              Wäre super, wenn mir jemand weiterhelfen kann.
                              Lieben Gruß, DobbyMuh

                              W Offline
                              W Offline
                              withstu
                              wrote on last edited by
                              #158

                              @DobbyMuh Ich glaub das Beste ist, wenn du dir ein kleines node Script bastelst und die Device Suche nachstellst. Dazu brauchst du folgendes Paket https://www.npmjs.com/package/node-ssdp und das Target "urn:schemas-denon-com:device:ACT-Denon:1". Die Ports passen. Eventuell hilft auch Wireshark weiter...

                              @Klaus-Baumecker Ich arbeite gerade an einen HEOS Adapter auf GitHub. Falls du den Fehler noch eingrenzen kannst wäre das super.

                              @Uhula Ich hab dich auf GitHub zum privaten Heos Adapter Repo hinzugefügt. Kannst ja mal schauen, was du noch dazu beitragen kannst. Mir gefällt aktuell noch nicht, dass ich deine schöne Player Klasse auflösen musste. Habe das Script erstmal nach dem Motto "Make it work" in einen Adapter transformiert 🙂

                              K 1 Reply Last reply
                              1
                              • W withstu

                                @DobbyMuh Ich glaub das Beste ist, wenn du dir ein kleines node Script bastelst und die Device Suche nachstellst. Dazu brauchst du folgendes Paket https://www.npmjs.com/package/node-ssdp und das Target "urn:schemas-denon-com:device:ACT-Denon:1". Die Ports passen. Eventuell hilft auch Wireshark weiter...

                                @Klaus-Baumecker Ich arbeite gerade an einen HEOS Adapter auf GitHub. Falls du den Fehler noch eingrenzen kannst wäre das super.

                                @Uhula Ich hab dich auf GitHub zum privaten Heos Adapter Repo hinzugefügt. Kannst ja mal schauen, was du noch dazu beitragen kannst. Mir gefällt aktuell noch nicht, dass ich deine schöne Player Klasse auflösen musste. Habe das Script erstmal nach dem Motto "Make it work" in einen Adapter transformiert 🙂

                                K Offline
                                K Offline
                                Klaus Baumecker
                                wrote on last edited by
                                #159

                                @withstu Der Fehler tritt mit deinem Script nicht mehr auf.
                                Kannst Du den Github link hier posten?

                                Gruß,
                                klaus

                                ioBroker on raspi 4B, SSD, IKEA Tradfri Gateway & bulbs, Homematic CCU2, Zigbee stick

                                W 2 Replies Last reply
                                0
                                • K Klaus Baumecker

                                  @withstu Der Fehler tritt mit deinem Script nicht mehr auf.
                                  Kannst Du den Github link hier posten?

                                  Gruß,
                                  klaus

                                  W Offline
                                  W Offline
                                  withstu
                                  wrote on last edited by
                                  #160

                                  @Klaus-Baumecker Ich hab dir ein Invite für das GitHub Projekt gesendet. Das Projekt ist noch privat, da ich den Adapter noch ein paar Wochen testen möchte, bisher läuft er stabil. Zudem muss ich noch "aufräumen" 😂

                                  1 Reply Last reply
                                  0
                                  • K Klaus Baumecker

                                    @withstu Der Fehler tritt mit deinem Script nicht mehr auf.
                                    Kannst Du den Github link hier posten?

                                    Gruß,
                                    klaus

                                    W Offline
                                    W Offline
                                    withstu
                                    wrote on last edited by
                                    #161

                                    @Klaus-Baumecker Habe gerade ein wenig aufgeräumt. Schau mal, ob der Adapter bei dir funktioniert. Sonst würde ich demnächst dann mal eine Version veröffentlichen: https://github.com/withstu/ioBroker.heos

                                    1 Reply Last reply
                                    0
                                    • B Offline
                                      B Offline
                                      BobBruni
                                      wrote on last edited by
                                      #162

                                      Verwende des Script aus dem Startpost von Uhula. Seit gestern läuft mein Log mit folgender Meldung voll.

                                      2020-09-10 10:26:57.471 - error: javascript.0 (27991) script.js.common.Denon.Heos: [Heos] parseResponse: Cannot read property 'pid' of undefined
                                      {"heos": {"command": "event/player_now_playing_progress", "message": "pid=1167970203&cur_pos=43000&duration=0"}}
                                      2020-09-10 10:27:02.497 - error: javascript.0 (27991) script.js.common.Denon.Heos: [Heos] parseResponse: Cannot read property 'pid' of undefined
                                      {"heos": {"command": "event/player_now_playing_progress", "message": "pid=1167970203&cur_pos=48000&duration=0"}}
                                      2020-09-10 10:27:07.477 - error: javascript.0 (27991) script.js.common.Denon.Heos: [Heos] parseResponse: Cannot read property 'pid' of undefined
                                      {"heos": {"command": "event/player_now_playing_progress", "message": "pid=1167970203&cur_pos=53000&duration=0"}}
                                      2020-09-10 10:27:12.473 - error: javascript.0 (27991) script.js.common.Denon.Heos: [Heos] parseResponse: Cannot read property 'pid' of undefined
                                      {"heos": {"command": "event/player_now_playing_progress", "message": "pid=1167970203&cur_pos=58000&duration=0"}}
                                      

                                      Script bereits mehrmals neu gestartet. Alle Objekte javascirpt.0.heos gelöscht und auch den Javascript-Adapter neu gestartet. Ohne Erfolg!

                                      Irgendwelche Tipps? Danke!

                                      1 Reply Last reply
                                      0
                                      • B Offline
                                        B Offline
                                        BobBruni
                                        wrote on last edited by
                                        #163

                                        Ich hab nochmal getestet... Wenn ich das Script neu starte und bekomme ich folgendes Log:

                                        2020-09-11 21:03:57.707 - info: javascript.0 (4043) Start javascript script.js.common.Denon.Heos
                                        2020-09-11 21:03:57.749 - info: javascript.0 (4043) script.js.common.Denon.Heos: [Heos] connecting to HEOS ...
                                        2020-09-11 21:03:57.913 - info: javascript.0 (4043) script.js.common.Denon.Heos: registered 1 subscription and 0 schedules
                                        2020-09-11 21:03:59.008 - info: javascript.0 (4043) script.js.common.Denon.Heos: [Heos] connecting to 192.168.178.3 ...
                                        2020-09-11 21:03:59.012 - info: javascript.0 (4043) script.js.common.Denon.Heos: [Heos] connected to HEOS
                                        2020-09-11 21:03:59.012 - info: javascript.0 (4043) script.js.common.Denon.Heos: [Heos] connected to 192.168.178.3
                                        2020-09-11 21:03:59.019 - error: javascript.0 (4043) script.js.common.Denon.Heos: [Heos] startPlayers: Cannot read property 'replace' of undefined
                                        2020-09-11 21:03:59.021 - info: javascript.0 (4043) script.js.common.Denon.Heos: [Heos] signed in: success
                                        2020-09-11 21:03:59.679 - info: javascript.0 (4043) script.js.common.Denon.Heos: [Heos] signed in: success
                                        

                                        Und diese Objekte werden angelegt:
                                        3bf61f4a-7421-49c8-8cf0-3e27a9c872a1-image.png

                                        Das Skript lief immer ohne Probleme! Kein das Downgrade des Javascript-Adapter von 4.7.3 auf 4.6.26 damit etwas zu tun haben?

                                        Sobald ich auf meinem Denon Spotify laufen lasse, läuft mein Log mit der o.g. Meldung voll

                                        2020-09-10 10:26:57.471 - error: javascript.0 (27991) script.js.common.Denon.Heos: [Heos] parseResponse: Cannot read property 'pid' of undefined
                                        {"heos": {"command": "event/player_now_playing_progress", "message": "pid=1167970203&cur_pos=43000&duration=0"}}
                                        2020-09-10 10:27:02.497 - error: javascript.0 (27991) script.js.common.Denon.Heos: [Heos] parseResponse: Cannot read property 'pid' of undefined
                                        {"heos": {"command": "event/player_now_playing_progress", "message": "pid=1167970203&cur_pos=48000&duration=0"}}
                                        2020-09-10 10:27:07.477 - error: javascript.0 (27991) script.js.common.Denon.Heos: [Heos] parseResponse: Cannot read property 'pid' of undefined
                                        {"heos": {"command": "event/player_now_playing_progress", "message": "pid=1167970203&cur_pos=53000&duration=0"}}
                                        2020-09-10 10:27:12.473 - error: javascript.0 (27991) script.js.common.Denon.Heos: [Heos] parseResponse: Cannot read property 'pid' of undefined
                                        {"heos": {"command": "event/player_now_playing_progress", "message": "pid=1167970203&cur_pos=58000&duration=0"}}
                                        
                                        

                                        Kann mir keiner weiterhelfen?

                                        W 1 Reply Last reply
                                        0
                                        • C Offline
                                          C Offline
                                          CrazyFloyd
                                          wrote on last edited by
                                          #164

                                          Bekomme das Script nicht importieret. Kann jemand einen Tipp geben wie ich es am besten installiere bzw. importiere? Danke Euch.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          604

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe