Ankündigung

Einklappen
Keine Ankündigung bisher.

Denon by Heos | Edomi

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

    Denon by Heos | Edomi

    Hallo zusammen,

    ich nutze zur Zeit noch den Gira HS und verfolge Edomi schon lange. Jetzt bevor ich parallel laufen lasse bzw. umsteige hab ich noch eine fragen bevor ich mit dem Hardwarekauf beginne.

    - Muss ich einen Baustein programmieren um Heos zu steuern? Oder reichen Edomi "Boardmittel"

    Heos wird wie die Squeezeboxen über eine Telnetverbindung gesteuert. Für die Squeezebox gibt es einen LBS.

    Ich kann aber leider kein PHP ist das schwer zu lernen?

    Grüße
    Martin
    Zuletzt geändert von Schwitz; 18.12.2016, 23:03.

    #2
    Ja dafür wirst du einen LBS programmieren müssen.
    Mich interessiert HEOS auch, habe allerdings derzeit kein HEOS Device.
    Wenn ich mir mal eins hole, dann werde ich einen LBS entwickeln, aber das kann noch etwas dauern. Sorry.

    Kommentar


      #3
      Guten Abend zusammen,

      5 Monate seit Martin´s Frage vergangen- Hat schon wer von Euch inzwischen erfolgreich versucht, Kontakt mit Denon Heos aufzunehmen ?

      Eine Steuerung über Telnet ist z.B. mit putty nach folgendem Beispiel möglich:
      heos://Bad/set_play_state?pid=-1815577860&state=play

      (alle Befehle in: http://rn.dmglobal.com/euheos/HEOS_C...cification.pdf)

      Ein direktes Ausführen über einen http-get Befehl geht nicht, da von Edomi aus wohl eine socket connection nötig ist, wohl ähnlich zur Squeeze-Box.

      Ich habe folgenden PHP-Codes gefunden, habe jedoch keinerlei PHP-Erfahrung:
      https://solstar77.wordpress.com/2016...erung-via-php/
      bzw:
      https://www.symcon.de/forum/threads/...elnet)-steuern

      Wie kann ich das in einen Baustein "gießen" ?

      Vielen Dank für Eure Hilfe
      Andreas
      Zuletzt geändert von ak68; 21.07.2017, 21:55.

      Kommentar


        #4
        Hallo Andre und alle Anderen

        ich bin seit letzter Woche stolzer Besitzer eines Denon AVR-X2400H mit integrierter Heos-Steuerung.

        Alle Standard-Funkionen funktionieren Dank Andre´s super Denon-LBS perfekt.

        Natürlich würde ich jetzt gerne auch Heos integrieren. Das Ansteuern mittels Telnet/ Putty funktioniert bereits problemlos, es ist jedoch aus Edomi heraus eine stehende socket connection nötig.

        Daher meine Frage: Wird diese Verbindung nicht bereits von Andre´s Baustein aufgebaut ?

        Was müsste ich dann noch zusätzlich machen, um z.B. den CLI-Befehl
        "heos://Wohnzimmer/set_volume?pid=731376314&level=30"
        an den Denon AVR zu senden ? Eine einfache Eingabe als Http-Request, Denon-"Command" an E4 etc. geht leider nicht.

        Vielen Dank und schöne Grüße
        Andreas
        Zuletzt geändert von ak68; 23.07.2017, 18:59.

        Kommentar


          #5
          Grundsätzlich wird eine entsprechende Socketverbindung aufgebaut, über die auch Statusänderungen des AVR überwacht werden.
          Die Frage ist nun, ob es für die neuen HEOS AVRs eine erweiterte API gibt, mit der man dann auch HEOS Befehle absetzen kann.
          Wenn es die gibt, dann sollte die Erweiterung leicht möglich sein, bzw. dann kann man den Befehl vermutlich direkt senden.
          Der von dir bveschriebene Befehl sieht nicht nach einem API konformen Befehl aus.

          Hast du eine ausführliche Doku der API? Wenn ja, dann poste mal einen Link, dann schaue ich mir das mal an.

          Kommentar


            #6
            Zitat von jonofe Beitrag anzeigen
            Hast du eine ausführliche Doku der API? Wenn ja, dann poste mal einen Link, dann schaue ich mir das mal an.
            Guten Abend André,

            anbei die komplette CLI-Spezifikation (für alle Heos-Komponenten inc. der neuen AV-Reiceiver Xx400 Reihe) in der Hoffnung, dass eine Implementierung einfach möglich ist:
            http://rn.dmglobal.com/euheos/HEOS_C...cification.pdf

            Die API-Dokumentation findet sich hier, es gibt jedoch nur den Befehl, HEOS aufzurufen (SINET)- sonst Nichts !
            https://www.google.de/url?sa=t&rct=j...edccRH8t9LFw8w

            weitere Links für php-Codes in #3

            Vielen Dank
            Andreas

            Kommentar


              #7
              Versuch mal einen weiteren DENON LBS einzufügen und diesen auf Port 1255 (E3) zu konfigurieren.
              Danach mal den Befehl wie oben von dir beschrieben auf E4:

              heos://player/set_volume?pid=player_id&level=vol_level

              Passiert dann was? Wäre vermutlich zu einfach, wenn das funktionieren würde, aber grundsätzlich wird auch eine Telnet Verbindung verwendet, allerdings auf einem anderen Port.

              Schau auch mal ins Logfile ob dort evtl. ein JSON-String auftaucht was er als Antwort empfängt. Das wird natürlich nicht den Ausgängen zugeordnet.

              Sollte dann ungefähr so aussehen:

              Code:
              { "heos": { "command": " player/ set_volume ", "result": "success", "message": "pid='player_id'&level='vol_level'" } }

              Kommentar


                #8
                Zitat von jonofe Beitrag anzeigen
                Versuch mal einen weiteren DENON LBS einzufügen und diesen auf Port 1255 (E3) zu konfigurieren.
                Danach mal den Befehl wie oben von dir beschrieben auf E4:

                heos://player/set_volume?pid=player_id&level=vol_level

                Passiert dann was? Wäre vermutlich zu einfach, wenn das funktionieren würde, aber grundsätzlich wird auch eine Telnet Verbindung verwendet, allerdings auf einem anderen Port.
                Scheint leider zu einfach zu sein, leider passiert gar Nichts, auch ein Logfile wird NICHT angelegt.
                Versuch erfolgte mit mehreren Heos-Befehlen: vol_level, set_play_state etc.

                Ich habe vorsichtshalber auch Edomi und Denon AVR (nacheinander) als Exposed Host in der Fritzbox-Firewall freigegeben (ohne Erfolg)

                Danke
                Andreas
                Zuletzt geändert von ak68; 24.07.2017, 06:04.

                Kommentar


                  #9
                  Ich bin mir nicht sicher, ob der AVR überhaupt über die HEOS API angesteuert werden kann. Mein Verständnis war eher, dass der AVR die API implementiert hat und darüber die HEOS Lautsprecher ansteuert.

                  Du könntest mal ein

                  Code:
                  telnet <IP deines AVR>
                  und ein

                  Code:
                  telnet <IP deines AVR> 1255
                  versuchen. Und dann mal das Ergebnis posten. Ich vermute beim ersten Telnet wird es eine Verbindung geben und beim zweiten nicht. Dann siehst du, ob da überhaupt was läuft. Wenn ein Timeout oder Connection refused erscheint, dann bezieht sich die API Spezifikation definitiv nicht auf den AVR.

                  Kommentar


                    #10
                    Hallo Andre,

                    laut Aussage des Denon-Supportes wird die Xx400- Serie sowohl über die API, als auch über die CLI gesteuert-
                    HEOS ist in dieser (erst seit wenigen Tagen erhältlichen) Serie bereits integriert, HEOS LINK wird somit NICHT mehr benötigt !

                    Eine Telnet-Verbindung kann ich über putty (Port 1255) bereits herstellen und mit den entsprechenden CLI-Protokollen den AV-Receiver steuern (wie auch zu anderen HEOS-Komponenten, wie z.B. Heos 1 Boxen).

                    Deine Vorschlag teste ich heute Abend und melde mich dann wieder

                    Schon einmal vielen Dank
                    Andreas

                    Kommentar


                      #11
                      Okay, dann ist es vielleicht nur eine Kleinigkeit, wenn der AVR per telnet auf Port 1255 steuerbar ist.
                      Habe gesehen, dass der Command Delimiter für HEOS CLI Befehle \r\n sein muss. Wenn ich es richtig sehe, dann wird im DENON LBS nur \n (\x0d) gesendet und nicht \r\n (\x0a\x0d).

                      Außerdem müssen die Special Characters encoded werden:

                      Code:
                      '&', '=', '%' attribute/value needs to be encoded to '%26(&)', '%3D(=)', and '%25(%)'
                      Hast du das Encoding bei deinen Telnet Tests irgendwie berücksichtigt?

                      Kommentar


                        #12
                        Hallo Andre,

                        ich stelle unter Putty eine Verbindung mit dem AVR her (telnet/ Port 1255), ein Encodung "=" -> "%3D" habe ich NICHT durchgeführt.

                        Folgender Befehl: heos://Wohnzimmer/set_play_state?pid=731376000&state=play
                        ergibt die Antwort: {"heos": {"command": "Wohnzimmer/set_play_state", "result": "success", "message": "pid=731376000&state=play"}}

                        ... und startet korrekt HEOS (letzter Sender) auf dem AVR.

                        Rufe ich den gleichen Befehl über den Denon-LBS auf, passiert NICHTS ...... es werden auch keine Log-Dateien geschrieben.

                        Ein Ersetzen des "=" durch "%3D" bringt NICHTS, auch ein Anhängen von "\r" oder "\x0a" an den Befehl bringt KEINE Änderung.

                        Hast Du noch eine Idee ?

                        Vielen Dank
                        Andreas

                        Kommentar


                          #13
                          Ersetze im Sourcecode mal die Zeile 475 mit

                          PHP-Code:
                          if (socket_write($this->denon_connectionurlencode($cmd) . "\x0a\x0d")) 
                          Die Seite mit dem alten Denon-LBS am besten deaktivieren.
                          Auf einer neuen Logikseite danach einen neuen DENON LBS einfügen und E1=leer, E2/E3 setzen. E2 = IP deines AVR, E3 auf 1255.
                          Projekt neu aktivieren.
                          Dann auf Logikseite in der Liveansicht eine 1 auf E1 senden. Jetzt mit

                          Code:
                          ps ax | grep EXE19000199
                          prüfen ob der Daemon läuft. Wenn ja, dann einen HEOS Befehl absetzen und ins Log schauen.

                          Wenn dann nichts passiert, dann muss ich leider passen. Sowas lässt sich remote nicht so einfach debuggen.

                          Das allerdings noch nicht mal ein Logfile geschrieben wird, ist sehr seltsam.
                          Gibts denn ein Logfile beim normalen DENON LBS (Port 23).

                          Eigentlich sollte auf jeden Fall ein Eintrag dort auftauchen, zumindest dass der Daemon gestartet wurde, denn das passiert noch bevor der LBS überhaupt mit dem AVR kommuniziert oder eine Verbindung aufbaut.



                          Kommentar


                            #14
                            Zitat von jonofe Beitrag anzeigen
                            prüfen ob der Daemon läuft. Wenn ja, dann einen HEOS Befehl absetzen und ins Log schauen.
                            Hallo Andre,

                            Deine Änderung funktionieren, der Grundstein für einen HEOS-Baustein ist damit gelegt.
                            Sowohl der AVR-X2400H als auch mein Heos 1 können jetzt hiermit schon direkt angesteuert werden !!!!!! HURRAAAAA!!!!!!!

                            Zitat von jonofe Beitrag anzeigen
                            Das allerdings noch nicht mal ein Logfile geschrieben wird, ist sehr seltsam.
                            Gibts denn ein Logfile beim normalen DENON LBS (Port 23).
                            Auch diese Problem ist gelöst: E6 war auf "1" statt auf "8" -> Bitte ändere hierzu auch die Hilfe (hier ist nur 1 und 0 genannt !)

                            Erst einmal vielen Dank
                            Andreas
                            Zuletzt geändert von ak68; 25.07.2017, 05:58.

                            Kommentar


                              #15
                              Hi Andreas,

                              freut mich zu hören.

                              Was ich kurzfristig anbieten kann wäre folgendes:

                              Ich erweitere den Denon LBS um zwei weitere Eingänge (HEOS Port, HEOS Command).
                              Damit lassen sich dann HEOS Kommandos absetzen.
                              Außerdem lässt sich vermutlich auch sehr einfach die JSON Antwort auf einen Ausgang geben.
                              Diese kann man dann schon mal mit einem JSON Decoder LBS auswerten und weiterverwenden.

                              Separate Ausgänge könnte man dann danach zusätzlich hinzufügen. Interesse?

                              Viele Grüße
                              André

                              Kommentar

                              Lädt...
                              X