HowTo: Denon HEOS als Multiroom Lösung
Einklappen
X
-
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 istMiniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)-
Es geht nicht um das Schalten sondern um das Auslesen des Zustandes -
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.
-
-
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 hatMiniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)Kommentar
-
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
-
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
-
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
BerniKommentar
-
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
-
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ß
Der Server ist eben schon da und läuft ohnehin...
Viele Grüße
MichaelKommentar
-
Das wurde doch schon alles beschrieben.
siehe Hinweis vom Post #1 welcher auf Seite 7 verweist
https://www.loxforum.com/forum/faqs-...-lösung/page7Beste Grüße
Amin CheemaKommentar
-
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. -
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 -
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.
-
-
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
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
MichaelKommentar
-
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
und der heos.log sagt:
Code:2017-03-02 22:47:26 - lox2heos gestartet 2017-03-02 22:57:33 - lox2heos gestartet
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
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
MichaelZuletzt geändert von Diablo_Vmax1200; 02.03.2017, 22:51.Kommentar
-
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=pause2 BilderKommentar
-
Die Links funktionieren. Nutzt Du vielleicht Tapatalk oder so? Solltest mal die Website besuchenMiniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)Kommentar
Kommentar