Ankündigung

Einklappen
Keine Ankündigung bisher.

Multiroom Steuerung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #16
    Bisher ist es der technische Durchstich und mit der Node "HEOS Command" kann man (so hoffe ich) erst einmal alles abbilden.

    Für die Grundfunktionen wollte ich dann weitere Nodes erstellen (so wie bisher schon den Player State), damit man nicht immer in der Spezifikation von HEOS rumblättern muss. Für die breite Masse wäre das sicher auch etwas schöner.

    Mir geht es vor allem um die Grundfunktionen wie Play/Pause, gekoppelt z.B. an das Licht bzw. Bewegungsmelder im Bad. Aber auch um einen Wecker mit HEOS umsetzen zu können. Vielleicht noch die Auswahl von Musikquellen.

    Mich würde mal interessieren, was du genau abbilden möchtest. Wenn du etwas rumprobiert hast, schreibe mir gerne mal hier oder in den Github Issues.
    Zuletzt geändert von knx2019; 23.01.2023, 11:36.

    Kommentar


      #17
      Zitat von knx2019 Beitrag anzeigen
      Wenn du etwas rumprobiert hast, schreibe mir gerne mal hier oder in den Github Issues.
      Hallo Jan knx2019,
      habe eben den HEOS Node 0.1.1 installiert. Wenn ich nach der Quickstart Anleitung die Player IDs rausfinden will (inject), stürzt mein Node-Red v3.0.2 Container leider reproduzierbar mit folgender Meldung ab.

      Code:
      31 Jan 21:11:56 - [red] Uncaught Exception:
      31 Jan 21:11:56 - [error] UnhandledPromiseRejection: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason "No devices found".
      ​

      Hast Du eine Idee?

      Danke und Gruß Moritz
      Zuletzt geändert von kleinklausi; 31.01.2023, 22:26.

      Kommentar


        #18
        Hi Moritz,

        danke für den Hinweis!

        Folgende Fragen vorab:
        • Nutzt du das offizielle Docker Image?
        • Falls nein, welche NodeJS Version verwendest du?
        • War zu der Zeit mind. ein Heos Gerät aktiv?
        Ich schaue mir das heute Abend einmal an. Ich denke das lässt sich schnell lösen.

        Ich hatte mit Node Red 2 und 3 getestet. Jeweils letzte Version. Ich muss mir aber auch nochmal den Fall anschauen, wenn kein Gerät im Netzwerk vorhanden ist.

        Viele Grüße
        Jan

        Kommentar


          #19
          Hallo Jan,

          Zitat von knx2019 Beitrag anzeigen
          • Nutzt du das offizielle Docker Image?
          • Falls nein, welche NodeJS Version verwendest du?
          • War zu der Zeit mind. ein Heos Gerät aktiv?
          • Docker Image: nodered/node-red:latest
          • NodeJS: da bin ich gar nicht sicher. Node-Red is 3.0.2 - habe NodeJS nicht manuell installiert, sondern benutze das aus dem Container.
          • Heos Geräte: ja, zu der Zeit waren mindestens 4 Heos Geräte aktiv. Mindestens eins hat Musik abgespielt.
          An sich sind auch alle Geräte im gleichen Netz.

          Danke und Grüße

          Kommentar


            #20
            Hallo Moritz,

            ich habe das Problem gelöst mit der Version 0.2.0, die ich eben auf Github eingecheckt und in der npm Registry gepublished habe. In Kürze sollte diese Version über die Node-RED Palette installiert werden können. In der Version sind auch Beispiel Flows enthalten. Diese können über das Node-RED Menü "Import" und dann den Tab "Beispiele" importiert werden.

            Das Problem konnte ich reproduzieren. Deine Fehlermeldung war eindeutig. Das Handling für den "Fehlerfall", dass keine Geräte im Netzwerk zu finden sind, war nicht korrekt.

            Das heißt nun aber für dich leider, dass deine HEOS Geräte anscheinend von Node-RED nicht gefunden wurden. Hast du in der Docker Konfiguration den "network_mode: host" verwendet? Falls nicht, dann kann dein Node-RED aus dem Docker Container heraus nicht auf dein Netzwerk zugreifen.

            Noch ein Hinweis: Fehlermeldungen zum Verbindungsaufbau werden nun im Debug Tab dargestellt.
            Dort könntest du Meldungen finden wie z.B. "Did not find any HEOS devices with autodiscovery. Could not connect to HEOS network." oder "Could not connect to HEOS devices with IP xxx.xxx.xxx.xxx.".
            Falls keine Rückmeldung aus deinem Netzwerk zu erfolgen scheint, hab etwas Geduld. Beim Autodiscover sollte die Fehlermeldung innerhalb weniger Sekunden kommen. Bei der Direktverbindung zu einer nicht erreichbaren IP gibt es ein Timeout von 120 Sekunden.

            Viele Grüße
            Jan
            Zuletzt geändert von knx2019; 02.02.2023, 00:15.

            Kommentar


              #21
              Zitat von knx2019 Beitrag anzeigen
              ich habe das Problem gelöst mit der Version 0.2.0
              Guten Morgen Jan,
              vielen Dank. Software funktioniert. Nur leider findet das Auto-Discovery keine Player - wie ja eigentlich schon zu erwarten war.

              Wenn ich versuche mich mit einem speziellen Device via IP-Adresse zu verbinden, bekomme ich von get_players das passende Array mit allen Devices :-). Mit den Player-IDs funktioniert dann auch Player State.

              Nochmals Danke für den Node!

              Kommentar


                #22
                Hallo Jan,
                hattest Du Dir möglicherweise schon mal Gedanken zu "Register for Change Events" gemacht. Zwei Beispiele, die ich gerne umsetzen würde:
                1. Begrenzung der Laustärke: wenn player_volume_changed, vol_level > 28 ist, sende set_volume = 28
                2. Pause anstatt Mute (meine alten Heos-Geräte haben eine Mute aber keine Play/Pause Taste): wenn player_volume_changed, mute=on, sende set_play_state=pause und set_mute=off
                Grüße Moritz

                Kommentar


                  #23
                  Zitat von kleinklausi Beitrag anzeigen
                  Hallo Jan,
                  hattest Du Dir möglicherweise schon mal Gedanken zu "Register for Change Events" gemacht. Zwei Beispiele, die ich gerne umsetzen würde:
                  1. Begrenzung der Laustärke: wenn player_volume_changed, vol_level > 28 ist, sende set_volume = 28
                  2. Pause anstatt Mute (meine alten Heos-Geräte haben eine Mute aber keine Play/Pause Taste): wenn player_volume_changed, mute=on, sende set_play_state=pause und set_mute=off
                  Grüße Moritz
                  Danke für deine Ideen hört sich interessant an. Ich habe selbst auch noch zwei alte HS Geräte nur mit Mute und das ist nervig.

                  Das Reagieren auf Events geht mir auch schon durch den Kopf. Ich melde mich mal zum Ende des Wochenendes.

                  Kommentar


                    #24
                    Hi Moritz,

                    ich habe eine "HeosListenerNode" erstellt, mit der beliebige Events aus dem HEOS Netzwerk als Trigger verwendet werden können. Damit sind deine Szenarien umsetzbar.

                    Du kannst den aktuellen und funktionierenden Code auf Github aus dem Branch "feature/events" abrufen.

                    Ich werde noch Beispiel-Flows erstellen und etwas Testen bevor ich die Node am Wochenende publishe.

                    Viele Grüße
                    Jan

                    Kommentar


                      #25
                      Super Jan!
                      Ich habe es mir zwar im Git angeschaut. Aber richtig testen werde ich es wohl am Sonntag oder nächste Woche.
                      Freu mich auf den aktualisierten Node!
                      Grüße

                      Kommentar


                        #26
                        Das Update ist über die Node-RED Palette verfügbar.

                        Hier die Release Notes: https://github.com/jn-se/node-red-co...ses/tag/v0.3.0
                        Zuletzt geändert von knx2019; 12.02.2023, 00:50.

                        Kommentar


                          #27
                          Echt genial, Danke!
                          Es funktioniert alles: Listener, Generic und Player State/ Volume.

                          Das einzige was mir bisher aufgefallen ist, dass bei Ändern der Lautstärke um 1 der Volumer Listener Node zwei mal im Debug mit der gleichen Lautstärke auftaucht. Zwei unterschiedliche Message IDs, aber gleicher Inhalt.

                          Grüße

                          Kommentar


                            #28
                            Die doppelten Events beim Volume sind mir auch aufgefallen. Auch wenn ich eine einzelne Änderung des Volumes über die Command Node anstoße, erscheint das Event doppelt.

                            Beim playerState und anderen kommen die Events nicht doppelt. Daher tippe ich auf eine Eigenheit des HEOS Protokolls.

                            Kommentar


                              #29
                              So wirds sein. Ist je kein Problem.
                              Grüße

                              Kommentar

                              Lädt...
                              X