HowTo: Denon HEOS als Multiroom Lösung

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • svethi
    Lebende Foren Legende
    • 25.08.2015
    • 6252

    Du könntest mit player_volume_changed\ipid=\i-1915203764\imute=o\i\1 den ASCII-Code des auf o folgenden Buchstaben abfragen. Dann weißt Du ob on oder off ist
    Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

    Kommentar


    • svethi
      svethi kommentierte
      Kommentar bearbeiten
      Es geht nicht um das Schalten sondern um das Auslesen des Zustandes

    • aivatco
      aivatco kommentierte
      Kommentar bearbeiten
      ja is doch egal was ich damit jetz auf lox seite damit anstelle.
      wie das genau aussieht kapier ich nicht, wär gut für folgende Projekte dacht ich halt.

    • svethi
      svethi kommentierte
      Kommentar bearbeiten
      Ist in dem Fall eben nicht egal. Wenn Du einen Befehl sendest, kannst Du an Text eingeben was Du willst, wenn Du einen Text mit Loxone auswerten sollst wird es schwer. Die hier genannte Möglichkeit kann einen Buchstaben an einer Position auswerten. Das reicht meist.

      Ein Beispiel muss ein User liefern. Ich habe das wie schon oft erwähnt nur für Amin entwickelt und nutze es nicht. Daher kann ich hier auch nie viel zur Fehlerbeseitigung beisteuern. Es fehlt mir einfach die Testmöglichkeit. Im genannten Fall geht es aber sicher darum in der Visu darzustellen ob die Box auf Mute steht oder nicht.
  • aivatco
    Dumb Home'r
    • 15.10.2015
    • 25

    Also hier mal meine Eintasten Radio weiterschaltung, hier wird der status der Mute Taste über Virtuelle Eingangsbefehle ausgewertet.
    Angehängte Dateien

    Kommentar

    • svethi
      Lebende Foren Legende
      • 25.08.2015
      • 6252

      Ja, so hast Du aber das Problem, dass On nicht zurückgesetzt wird wenn Mute off geht und umgekehrt. Oder Du hast auf Digital stehen und bekommst im Zweifel bei jeder Abfrage einen Impuls. Mit der anderen Möglichkeit hast Du einen VI der entweder den oder den anderen Wert hat
      Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

      Kommentar


      • aivatco
        aivatco kommentierte
        Kommentar bearbeiten
        ok verstehe, hier war mir ja wichtig einen Doppelklick auszuwerten und dann eben weiterzuschalten was ja mit einem VI nicht so einfach gewesen wäre.
        und ja ich mach das mit digitaleingang, klar.

      • svethi
        svethi kommentierte
        Kommentar bearbeiten
        Ja, es gibt meist verschiedene Lösungen. Man muss für sich nur herausfinden welche am besten für das Vorhaben passt. Deine Lösung ist ja nicht falsch und so wie es aussieht für Dich besser geeignet. Also alles gut :-)
    • aivatco
      Dumb Home'r
      • 15.10.2015
      • 25

      Hallo nochmal, war wiedermal, n halben tag hier gesessen und hab probiert mein Raspi / Heos problem zu lösen.

      Hab heute n neues system installiert, aktuelles Raspian, das script drauf gepackt, Rückmeldungen laufen auch.
      aber Senden an die Heos, ne da passiert einfach nichts.


      Hier mal der debuglog wenn ich Lautermachen versuche aus der Loxoneconfig herraus.

      00000018 192.168.178.78 17:14:56.903 17:14:56.152 UDP Rcv 192.168.178.55:56969 -> 192.168.178.78:7001
      00000055 192.168.178.78 17:14:59.397 17:14:58.646 TCP SYNSENT S 192.168.178.55/1255/85004858 sq:0979384756 59120 00000 SYN =0000000000
      00000056 192.168.178.78 17:14:59.398 17:14:58.646 TCP FindSocket: found existing socket 85 for Connection localhost:4858 <--> 192.168.178.55:1255
      00000057 192.168.178.78 17:14:59.398 17:14:58.646 TCP SYNSENT R 192.168.178.55/1255/85004858 sq:0000000000 00000 00000 RST ACK=0979384757
      00000058 192.168.178.78 17:14:59.399 17:14:58.646 TCP CLOSED 192.168.178.55/1255/4858
      00000084 192.168.178.78 17:14:59.858 17:14:59.106 TCP SYNSENT S 192.168.178.55/1255/194004859 sq:0979385216 59120 00000 SYN =0000000000
      00000085 192.168.178.78 17:14:59.858 17:14:59.106 TCP FindSocket: found existing socket 194 for Connection localhost:4859 <--> 192.168.178.55:1255
      00000086 192.168.178.78 17:14:59.858 17:14:59.106 TCP SYNSENT R 192.168.178.55/1255/194004859 sq:0000000000 00000 00000 RST ACK=0979385217
      00000087 192.168.178.78 17:14:59.858 17:14:59.106 TCP CLOSED 192.168.178.55/1255/4859
      00000121 192.168.178.78 17:15:00.498 17:14:59.746 TCP SYNSENT S 192.168.178.55/1255/206004860 sq:0979385856 59120 00000 SYN =0000000000
      00000122 192.168.178.78 17:15:00.498 17:14:59.746 TCP FindSocket: found existing socket 206 for Connection localhost:4860 <--> 192.168.178.55:1255
      00000123 192.168.178.78 17:15:00.498 17:14:59.746 TCP SYNSENT R 192.168.178.55/1255/206004860 sq:0000000000 00000 00000 RST ACK=0979385857
      00000124 192.168.178.78 17:15:00.498 17:14:59.746 TCP CLOSED 192.168.178.55/1255/4860

      kann man das in für Sterbliche Lesbaren text umwandeln?

      hier noch status des scripts:

      root@raspinano:~# systemctl status Heos2Lox
      ● Heos2Lox.service - LSB: Start Heos2Lox at boot time
      Loaded: loaded (/etc/init.d/Heos2Lox)
      Active: active (running) since Tue 2017-01-03 15:49:13 UTC; 35min ago
      Process: 1420 ExecStop=/etc/init.d/Heos2Lox stop (code=exited, status=0/SUCCESS)
      Process: 1430 ExecStart=/etc/init.d/Heos2Lox start (code=exited, status=0/SUCCESS)
      CGroup: /system.slice/Heos2Lox.service
      ├─1432 /usr/bin/php /usr/bin/heos2lox
      └─1434 /usr/bin/php /usr/bin/lox2heos 192.168.178.47 1255 username@gmail.com passwd 9

      Jan 03 15:49:13 raspinano Heos2Lox[1430]: Starting Heos2Lox service
      Jan 03 15:49:13 raspinano systemd[1]: Started LSB: Start Heos2Lox at boot time.

      Hoff es ist irgendwas erkennbar, bin für jeden Rat dankbar




      Kommentar

      • svethi
        Lebende Foren Legende
        • 25.08.2015
        • 6252

        Das ist nun absolut kein log der HEOS Scripte. Die sagen ja nichts darüber aus was da im Script abgeht.
        Hast Du berücksichtigt, dass Du jetzt \r\n am Ende senden musst?
        Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

        Kommentar

        • Gast

          Hallo!

          Bei mir funktioniert jetzt alles.

          Ich habe bis jetzt die Kommunikation von Loxone in Richtung HEOS immer direkt abgewickelt, weil ich mir denke, dass es dann trotzdem funktioniert, auch wenn des RaspPi ausfallen würde (was er eh nicht macht)

          Welchen Vorteil hat es, wenn man die Befehle über Lox2Heos an die Boxen schickt?

          LG
          Berni

          Kommentar


          • svethi
            svethi kommentierte
            Kommentar bearbeiten
            Ach, jetzt weiß ich es wieder. Du musst es über den Raspi schicken, da HEOS unbedingt die Antwort zustellen will. Wenn Du über den MiniServer schickst, hängt sich HEOS nach einer Zeit weg

          • Gast
            Gast kommentierte
            Kommentar bearbeiten
            Echt? Kann man das reproduzieren? Das ist mir bisher gar nicht aufgefallen ... Ich werde es mal testen.

          • svethi
            svethi kommentierte
            Kommentar bearbeiten
            Nach einer Zeit reagiert das HEOS System nicht mehr auf Netzwerkbefehle und in anderen Foren war auch genau dies nachzulesen.
        • Gast

          Es gibt endlich Bestrebungen für FHEM und HEOS-Benutzer. Vielleicht interessiert es jemanden: https://forum.fhem.de/index.php/topic,65405.0.html

          Ich habe FHEM auf meinem Raspi laufen und nutze es als Vermittler zwischnen dem Miniserver und meinem LG-Fernseher. Man kann über FHEM auch Skripte auf dem Raspi steuern.

          Kommentar

          • Diablo_Vmax1200
            Extension Master
            • 03.09.2015
            • 117

            Hi zusammen,

            ich habe mich heute mal dran gemacht das Skript zu installieren. Leider habe ich recht schnell festgestellt, dass es leider auf meinem Synology NAS nicht installiert wird:
            Code:
            Eigentümer der Dateien auf root setzen
            Init-Script nach /etc/init.d verschieben
            mv: cannot move ‘heos2lox.init’ to ‘/etc/init.d/heos2lox’: No such file or directory
            Scripte nach /usr/bin verschieben
            Script im Autostart anlegen
            ./install: line 17: update-rc.d: command not found
            symbolischen Link anlegen (für einfache Bearbeitung)
            
            Soweit ist alles getan. Jetzt im Script die nötigen Änderungen machen. Dazu mit dem favorisierten Editor das Script aufrufen.
            Mein Editor der Wahl ist vi, daher gebe ich 'vi heos2lox.conf' ein
            
            Nachdem alle Anpassungen vorgenommen wurden, kann das Script als Dienst mit 'service heos2lox start' gestartet werden.
            
            Viel Spaß
            Bevor ich nun ein Rasperry Pi bestelle wollte ich mal anfragen ob jemand eine Lösung hat wie ich es doch zum Laufen bekommen kann. Als Plugin währe natürlich mega deluxe :-P

            Der Server ist eben schon da und läuft ohnehin...

            Viele Grüße
            Michael

            Kommentar

            • Elektrofuzzi
              MS Profi
              • 25.08.2015
              • 531

              Das wurde doch schon alles beschrieben.
              siehe Hinweis vom Post #1 welcher auf Seite 7 verweist

              https://www.loxforum.com/forum/faqs-...-lösung/page7
              Beste Grüße
              Amin Cheema

              Kommentar


              • svethi
                svethi kommentierte
                Kommentar bearbeiten
                Mit dieser pauschalen Aussage, dass es nicht gestartet wurde, kann man herzlich wenig anfangen.
                Hast Du denn Deine Werte angepasst?
                Jetzt hast Du Dir einen Raspberry besorgt den Loxberry drauf installiert. Dieser verwendet ein Debian Jessie mit systemD als Diensteverwalter. Hierzu solltest Du vielleicht gelesen haben, dass aus unerklärlichen Gründen das Script teilweise nicht bei Start gestartet wird. Wenn man es später dann per Hand startet ist alles gut. Dies hat zwar jetzt nichts mit Deinem Problem zu tun, doch ich wollte es Dir gleich nochmal mitgeben, bevor es die nächsten Fragen gibt.
                Starte es doch mal mit /etc/init.d/heos2lox Dann siehst Du vielleicht wo es hängt.

              • Diablo_Vmax1200
                Diablo_Vmax1200 kommentierte
                Kommentar bearbeiten
                Hi Svethi,

                danke für die Antwort. Hmm dann muss ich vielleicht auch was falsch gelesen haben.
                Meine Anmeldedaten usw. hatte ich eingetragen. Der manuelle Start über "/etc/init.d/heos2lox start" klappt. ps-A meldet dann auch zwei aktive Prozesse "heos2lox" und "lox2heos".

                Nach einem Reboot sind die Prozesse wieder weg.
                Wenn ich wie hier beschrieben https://www.loxforum.com/forum/faqs-...8069#post28069
                "systemctl enable heos2lox" ausführe bekomme ich diese Rückmeldung:
                root@loxberry:/opt/loxberry# systemctl enable heos2lox
                Synchronizing state for heos2lox.service with sysvinit using update-rc.d...
                Executing /usr/sbin/update-rc.d heos2lox defaults
                Executing /usr/sbin/update-rc.d heos2lox enable

                Wenn ich dann danach "systemctl start heos2lox" ausführe bekomme ich diese Meldung:
                Job for heos2lox.service failed. See 'systemctl status heos2lox.service' and 'journalctl -xn' for details.

                Die Ausgabe von "systemctl status heos2lox.service" ist wie folgt:
                ● heos2lox.service - LSB: Start heos2lox at boot time
                Loaded: loaded (/etc/init.d/heos2lox)
                Active: failed (Result: exit-code) since Sun 2017-02-26 10:27:33 CET; 1min 53s ago
                Process: 1751 ExecStart=/etc/init.d/heos2lox start (code=exited, status=203/EXEC)

                Feb 26 10:27:33 loxberry systemd[1]: heos2lox.service: control process exited, code=exited status=203
                Feb 26 10:27:33 loxberry systemd[1]: Failed to start LSB: Start heos2lox at boot time.
                Feb 26 10:27:33 loxberry systemd[1]: Unit heos2lox.service entered failed state.

                und die Ausgabe von "journalctl -xn" ist wie folgt:
                -- Logs begin at Sun 2017-02-26 10:19:08 CET, end at Sun 2017-02-26 10:32:01 CET. --
                Feb 26 10:31:01 loxberry CRON[1842]: (loxberry) CMD (cd / && run-parts /opt/loxberry/system/cron/cron.01min > /dev/null 2>&1)
                Feb 26 10:31:01 loxberry CRON[1838]: pam_unix(cron:session): session closed for user loxberry
                Feb 26 10:31:13 loxberry systemd[1]: Starting LSB: Start heos2lox at boot time...
                -- Subject: Unit heos2lox.service has begun with start-up
                -- Defined-By: systemd
                -- Support: http://lists.freedesktop.org/mailman.../systemd-devel
                --
                -- Unit heos2lox.service has begun starting up.
                Feb 26 10:31:13 loxberry systemd[1849]: Failed at step EXEC spawning /etc/init.d/heos2lox: Exec format error
                -- Subject: Process /etc/init.d/heos2lox could not be executed
                -- Defined-By: systemd
                -- Support: http://lists.freedesktop.org/mailman.../systemd-devel
                --
                -- The process /etc/init.d/heos2lox could not be executed and failed.
                --
                -- The error number returned while executing this process is 8.
                Feb 26 10:31:13 loxberry systemd[1]: heos2lox.service: control process exited, code=exited status=203
                Feb 26 10:31:13 loxberry systemd[1]: Failed to start LSB: Start heos2lox at boot time.
                -- Subject: Unit heos2lox.service has failed
                -- Defined-By: systemd
                -- Support: http://lists.freedesktop.org/mailman.../systemd-devel
                --
                -- Unit heos2lox.service has failed.
                --
                -- The result is failed.
                Feb 26 10:31:13 loxberry systemd[1]: Unit heos2lox.service entered failed state.
                Feb 26 10:32:01 loxberry CRON[1854]: pam_unix(cron:session): session opened for user loxberry by (uid=0)
                Feb 26 10:32:01 loxberry CRON[1858]: (loxberry) CMD (cd / && run-parts /opt/loxberry/system/cron/cron.01min > /dev/null 2>&1)
                Feb 26 10:32:01 loxberry CRON[1854]: pam_unix(cron:session): session closed for user loxberry


                Ich muss da erstmal etwas durchblicken. Aber kann es sein, dass der user "loxberry" den Prozess starten will? Wenn ja, dann ist das das Problem, ich bekomme nur als root das Skript ausgeführt. siehe:
                root@loxberry:/opt/loxberry# su loxberry
                loxberry@loxberry:~ $ systemctl start heos2lox
                Failed to start heos2lox.service: Access denied
                loxberry@loxberry:~ $ su root
                Password:
                root@loxberry:/opt/loxberry# systemctl start heos2lox
                Job for heos2lox.service failed. See 'systemctl status heos2lox.service' and 'journalctl -xn' for details.


                Hast du eventuell noch einen Tipp?

                Grüße
                Michael

              • svethi
                svethi kommentierte
                Kommentar bearbeiten
                Services werden immer als root gestartet.
                Eines noch. Das Script wurde vor Jessie und damit auch vor systemD entwickelt. Erstens speichert das Script seine pid nicht und daher wird systemD auch gar nicht sehen, ob der Script läuft. Also immer per ps prüfen ob es läuft.
                Wenn Du nicht weißt ob es läuft 'service heos2lox stop' aufrufen und dann erst 'service heos2lox start'
                Wie es aussieht hat Dein systemctl enable da irgendetwas eingetragen. Das kann ebenso einen Fehler erzeugen. Das steht auch alles nicht in meiner Anleitung.
                SystemD arbeitet total anders als das alte System. Du kannst nicht erwarten, dass das alles korrekt und ohne zicken funktioniert. Das geht schon damit los, dass systemD nicht wie früher der Reihe nach abgearbeitet wird und auch die Prioritäten in der Reihe mit berücksichtigt werden, es wird einfach viel parallel verarbeitet. Wenn ein Dienst z.B. Netzwerk benötigt, das Netzwerk aber noch gar nicht richtig gestartet ist, dann wird der Dienst dennoch gestartet, ihm ein Netzwerk vorgegaukelt, alle Kommunikation zwischengespeichert und dann ausgeführt, wenn das Netzwerk zur Verfügung steht. Dies bringt oftmals Probleme mit sich.
            • Diablo_Vmax1200
              Extension Master
              • 03.09.2015
              • 117

              Hi Svethi,

              ich habe heute mich etwas zum SystemD eingelesen.

              Dies als Datei "/etc/systemd/service/heos.service" speichern:
              Code:
              [Unit]
              Description=HEOS 2 LOX / LOX 2 HEOS
              After=network.target auditd.service
              
              [Service]
              Type=simple
              ExecStart=  /usr/bin/heos2lox
              
              [Install]
              WantedBy=network-online.target
              Dafür kann man dann die Datei "/etc/init.d/heos2lox" löschen.

              Nach einem Reboot bekomme ich dann mit ps-A dann die beiden Prozesse (heos2lox und lox2heos) ausgegeben. Im syslog ist ebenso der erfolgreiche Start aufgeführt. Zum Testen ob das Skript korrekt mit dem Miniserver läuft bin ich aber heute leider nicht mehr gekommen.


              Grüße
              Michael

              Kommentar

              • Diablo_Vmax1200
                Extension Master
                • 03.09.2015
                • 117

                Hi zusammen,

                laufen tut das script. Leider nicht so wie es soll...

                Syslog sagt:
                Code:
                Mar  2 22:47:25 loxberry systemd[1]: Starting HEOS 2 LOX / LOX 2 HEOS...
                Mar  2 22:47:25 loxberry systemd[1]: Started HEOS 2 LOX / LOX 2 HEOS.
                Mar  2 22:47:26 loxberry heos2lox[32037]: 2017-03-02 22:47:26 - heos2lox gestartet
                Mar  2 22:57:33 loxberry heos2lox[32037]: 2017-03-02 22:57:33 - Verbindung abgebrochen, Verbindung neu aufbauen
                Die letzte Zeile wiederholt sich alle 10 Minuten.

                und der heos.log sagt:
                Code:
                2017-03-02 22:47:26 - lox2heos gestartet
                2017-03-02 22:57:33 - lox2heos gestartet
                Ebenso alle 10 Minuten dieser Eintrag

                Wenn ich vom Loxberry mich via telnet auf die HEOS Lautsprecher reinwähle bekomme ich eine Verbindung.
                Auch anders herum wenn ich per UDP direkt was versende sehe ich das im Monitor des Miniservers.
                Code:
                echo -n “foo” | nc -4u -w1 IPDESMINISERVERS 7001
                Das habe ich schon geprüft. Also ein Problem mit der firewall o.ä. kann ich ausschließen.

                Auch die Daten in der config habe ich bereits mehrmals geprüft.

                Auch habe ich mal in der heos2lox Skript-Datei die Zeile "if (!$isMatch) printf("%s - heos2lox erhalten: %s\n", date("Y-m-d H:i:s"), $data); " einkommentiert. In den Logs finde ich keine Daten. Daher scheint irgendwas nicht zu laufen.

                Kann es sein dass ich irgendein Paket nach installieren muss? Wenn es nicht so einfach ist muss ich mehr in die Logs schreiben um herauszufinden an welcher Stelle etwas schief geht.

                Grüße
                Michael
                Zuletzt geändert von Diablo_Vmax1200; 02.03.2017, 22:51.

                Kommentar

                • Gast

                  Hallo zusammen,
                  ich wollte mich erkundigen, ob es schon jemand geschafft hat eine Playlist von Spotify direkt zu starten.
                  Siehe Beitrag 70

                  Gruß Boby

                  Kommentar

                  • brau01ma
                    Extension Master
                    • 06.02.2017
                    • 147

                    Hallo,

                    ich habe heute versucht meinen Heos 1 ohne Rückmeldung über Loxone zu steuern. Über Putty kann ich z.B. den geladenen Track starten. Über Loxone tut sich nichts.. Im Anhang habe ich meine Config, ich hoffe ihr könnt mir sagen wo der Fehler liegt?

                    Hier noch meine Befehle:
                    heos://system/sign_in?un=xxxx@gmx.net&pw=xxx
                    heos://player/set_volume?pid=1244183177&level=<v>
                    heos://player/set_play_state?pid=1244183177&state=play
                    heos://player/set_play_state?pid=1244183177&state=pause

                    Kommentar


                    • skogvaktare
                      skogvaktare kommentierte
                      Kommentar bearbeiten
                      Hi!

                      Hast Du "\r\n" (siehe oben, z.B. Post #190 ff.) in Deinen Befehlen?

                    • brau01ma
                      brau01ma kommentierte
                      Kommentar bearbeiten
                      Danke, funktioniert jetzt!
                      Ich hatte leider nicht alle 15 Seiten hier durchgelesen.
                  • Gast

                    Hallo, ich kann nicht mehr Skript herunterladen. Kann die Weblink neu gemacht werden.

                    Kommentar

                    • svethi
                      Lebende Foren Legende
                      • 25.08.2015
                      • 6252

                      Die Links funktionieren. Nutzt Du vielleicht Tapatalk oder so? Solltest mal die Website besuchen
                      Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

                      Kommentar

                      Lädt...