NEWS
[Vorlage] Denon HEOS Script
-
@djmarc75 said in [Vorlage] Denon HEOS Script:
iob diag
Skript v.2023-04-16 *** BASE SYSTEM *** Model : Raspberry Pi 4 Model B Rev 1.5 Architecture : aarch64 Docker : false Virtualization : none Distributor ID: Raspbian Description: Raspbian GNU/Linux 11 (bullseye) Release: 11 Codename: bullseye PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)" NAME="Raspbian GNU/Linux" VERSION_ID="11" VERSION="11 (bullseye)" VERSION_CODENAME=bullseye ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs" Systemuptime and Load: 20:16:29 up 58 min, 3 users, load average: 6.77, 2.36, 1.62 CPU threads: 4 Raspberry only: throttled=0x0 Other values than 0x0 hint to temperature/voltage problems temp=40.4'C volt=0.8900V *** Time and Time Zones *** Local time: Sun 2023-05-21 20:16:29 CEST Universal time: Sun 2023-05-21 18:16:29 UTC RTC time: n/a Time zone: Europe/Berlin (CEST, +0200) System clock synchronized: yes NTP service: active RTC in local TZ: no *** User and Groups *** pi /home/pi pi adm dialout cdrom sudo audio video plugdev games users input netdev lpadmin docker gpio i2c spi iobroker *** X-Server-Setup *** X-Server: true Desktop: Terminal: tty Boot Target: graphical.target *** MEMORY *** total used free shared buff/cache available Mem: 3.8G 1.2G 707M 40M 1.9G 2.5G Swap: 99M 0B 99M Total: 3.9G 1.2G 807M 3794 M total memory 1200 M used memory 1853 M active memory 646 M inactive memory 707 M free memory 245 M buffer memory 1640 M swap cache 99 M total swap 0 M used swap 99 M free swap Raspberry only: oom events: 0 lifetime oom required: 0 Mbytes total time in oom handler: 0 ms max time spent in oom handler: 0 ms *** FILESYSTEM *** Filesystem Type Size Used Avail Use% Mounted on /dev/root ext4 29G 22G 6.7G 76% / devtmpfs devtmpfs 1.7G 0 1.7G 0% /dev tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs tmpfs 759M 2.7M 757M 1% /run tmpfs tmpfs 5.0M 4.0K 5.0M 1% /run/lock /dev/loop0 squashfs 47M 47M 0 100% /snap/core18/2748 /dev/loop1 squashfs 47M 47M 0 100% /snap/core18/2723 /dev/loop2 squashfs 225M 225M 0 100% /snap/nextcloud/21522 /dev/loop3 squashfs 44M 44M 0 100% /snap/snapd/18936 /dev/loop4 squashfs 44M 44M 0 100% /snap/snapd/19124 /dev/mmcblk0p1 vfat 253M 51M 202M 20% /boot tmpfs tmpfs 380M 36K 380M 1% /run/user/1000 /dev/mmcblk0p3 ext4 88G 24K 84G 1% /media/pi/b6462cb4-edb3-a74c-b924-794fd764376a Messages concerning ext4 filesystem in dmesg: Show mounted filesystems (real ones only): TARGET SOURCE FSTYPE OPTIONS / /dev/mmcblk0p2 ext4 rw,noatime |-/snap/core18/2748 /dev/loop0 squashfs ro,nodev,relatime,errors=continue |-/snap/core18/2723 /dev/loop1 squashfs ro,nodev,relatime,errors=continue |-/snap/nextcloud/21522 /dev/loop2 squashfs ro,nodev,relatime,errors=continue |-/snap/snapd/18936 /dev/loop3 squashfs ro,nodev,relatime,errors=continue |-/snap/snapd/19124 /dev/loop4 squashfs ro,nodev,relatime,errors=continue |-/boot /dev/mmcblk0p1 vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,flush,errors=remount-ro `-/media/pi/b6462cb4-edb3-a74c-b924-794fd764376a /dev/mmcblk0p3 ext4 rw,nosuid,nodev,relatime,errors=remount-ro Files in neuralgic directories: /var: 11G /var/ 6.9G /var/lib 4.8G /var/lib/docker 4.7G /var/lib/docker/overlay2 3.8G /var/log Archived and active journals take up 1.7G in the file system. /opt/iobroker/backups: 737M /opt/iobroker/backups/ /opt/iobroker/iobroker-data: 275M /opt/iobroker/iobroker-data/ 128M /opt/iobroker/iobroker-data/files 119M /opt/iobroker/iobroker-data/backup-objects 51M /opt/iobroker/iobroker-data/files/javascript.admin 38M /opt/iobroker/iobroker-data/files/scenes.admin/static/js The five largest files in iobroker-data are: 9.1M /opt/iobroker/iobroker-data/objects.jsonl 8.9M /opt/iobroker/iobroker-data/files/scenes.admin/static/js/2.7de3299d.chunk.js.map 7.5M /opt/iobroker/iobroker-data/files/scenes.admin/static/js/2.2afdfa2c.chunk.js.map 7.1M /opt/iobroker/iobroker-data/files/scenes.admin/static/js/2.21829349.chunk.js.map 7.0M /opt/iobroker/iobroker-data/files/scenes.admin/static/js/2.5d4fbf6a.chunk.js.map *** NodeJS-Installation *** /usr/bin/nodejs v18.16.0 /usr/bin/node v18.16.0 /usr/bin/npm 9.5.1 /usr/bin/npx 9.5.1 nodejs: Installed: 18.16.0-deb-1nodesource1 Candidate: 18.16.0-deb-1nodesource1 Version table: *** 18.16.0-deb-1nodesource1 500 500 https://deb.nodesource.com/node_18.x bullseye/main armhf Packages 100 /var/lib/dpkg/status 12.22.12~dfsg-1~deb11u4 500 500 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf Packages Temp directories causing npm8 problem: 0 No problems detected *** ioBroker-Installation *** ioBroker Status iobroker is running on this host. Objects type: jsonl States type: jsonl MULTIHOSTSERVICE/enabled: false Core adapters versions js-controller: 4.0.24 admin: 6.3.5 javascript: 6.1.4 Adapters from github: 0 Adapter State + system.adapter.admin.0 : admin : raspberrypi - enabled, port: 8081, bind: 0.0.0.0 (SSL), run as: admin + system.adapter.backitup.0 : backitup : raspberrypi - enabled system.adapter.broadlink2.0 : broadlink2 : raspberrypi - disabled + system.adapter.discovery.0 : discovery : raspberrypi - enabled system.adapter.heos.0 : heos : raspberrypi - disabled + system.adapter.influxdb.0 : influxdb : raspberrypi - enabled, port: 8086 + system.adapter.info.0 : info : raspberrypi - enabled + system.adapter.javascript.1 : javascript : raspberrypi - enabled + system.adapter.mqtt.0 : mqtt : raspberrypi - enabled, port: 1886, bind: 192.168.178.101 + system.adapter.rpi2.0 : rpi2 : raspberrypi - enabled + system.adapter.scenes.0 : scenes : raspberrypi - enabled + system.adapter.signal-cmb.0 : signal-cmb : raspberrypi - enabled + system.adapter.simple-api.0 : simple-api : raspberrypi - enabled, port: 8087, bind: 192.168.178.101 (SSL), run as: admin + system.adapter.sonoff.0 : sonoff : raspberrypi - enabled, port: 1885, bind: 0.0.0.0 system.adapter.spotify-premium.0 : spotify-premium : raspberrypi - disabled system.adapter.upnp.0 : upnp : raspberrypi - disabled + system.adapter.web.0 : web : raspberrypi - enabled, port: 8082, bind: 0.0.0.0 (SSL), run as: admin + system.adapter.zigbee.0 : zigbee : raspberrypi - enabled, port: /dev/ttyUSB0 + instance is alive Enabled adapters with bindings + system.adapter.admin.0 : admin : raspberrypi - enabled, port: 8081, bind: 0.0.0.0 (SSL), run as: admin + system.adapter.influxdb.0 : influxdb : raspberrypi - enabled, port: 8086 + system.adapter.mqtt.0 : mqtt : raspberrypi - enabled, port: 1886, bind: 192.168.178.101 + system.adapter.simple-api.0 : simple-api : raspberrypi - enabled, port: 8087, bind: 192.168.178.101 (SSL), run as: admin + system.adapter.sonoff.0 : sonoff : raspberrypi - enabled, port: 1885, bind: 0.0.0.0 + system.adapter.web.0 : web : raspberrypi - enabled, port: 8082, bind: 0.0.0.0 (SSL), run as: admin + system.adapter.zigbee.0 : zigbee : raspberrypi - enabled, port: /dev/ttyUSB0 ioBroker-Repositories stable : http://download.iobroker.net/sources-dist.json beta : http://download.iobroker.net/sources-dist-latest.json Active repo(s): stable Installed ioBroker-Instances Used repository: stable Adapter "admin" : 6.3.5 , installed 6.3.5 Adapter "backitup" : 2.6.19 , installed 2.6.19 Adapter "broadlink2" : 2.1.5 , installed 2.1.5 Adapter "discovery" : 3.1.0 , installed 3.1.0 Adapter "heos" : 1.10.0 , installed 1.10.0 Adapter "influxdb" : 3.2.0 , installed 3.2.0 Adapter "info" : 1.9.26 , installed 1.9.26 Adapter "javascript" : 6.1.4 , installed 6.1.4 Controller "js-controller": 4.0.24 , installed 4.0.24 Adapter "mqtt" : 4.0.7 , installed 4.0.7 Adapter "rpi2" : 1.3.2 , installed 1.3.2 Adapter "scenes" : 2.3.9 , installed 2.3.9 Adapter "signal-cmb" : 0.3.0 , installed 0.3.0 Adapter "simple-api" : 2.7.2 , installed 2.7.2 Adapter "socketio" : 4.2.0 , installed 4.2.0 Adapter "sonoff" : 2.5.1 , installed 2.5.1 Adapter "spotify-premium": 1.2.1 , installed 1.2.1 Adapter "upnp" : 1.0.21 , installed 1.0.21 Adapter "web" : 4.3.0 , installed 4.3.0 Adapter "ws" : 1.3.0 , installed 1.3.0 Adapter "zigbee" : 1.8.10 , installed 1.8.10 Objects and States Please stand by - This may take a while Objects: 5151 States: 3385 *** OS-Repositories and Updates *** Hit:1 http://raspbian.raspberrypi.org/raspbian bullseye InRelease Hit:2 http://archive.raspberrypi.org/debian bullseye InRelease Hit:3 https://deb.nodesource.com/node_18.x bullseye InRelease Hit:4 https://download.docker.com/linux/raspbian bullseye InRelease Reading package lists... Pending Updates: 0 *** Listening Ports *** Active Internet connections (only servers) xxx *** Log File - Last 25 Lines *** 2023-05-21 20:09:38.649 - info: host.raspberrypi object deleted system.adapter.heos.1 2023-05-21 20:09:38.653 - info: host.raspberrypi iobroker host.raspberrypi Deleting 22 state(s). 2023-05-21 20:09:39.753 - info: host.raspberrypi iobroker exit 0 2023-05-21 20:09:41.703 - info: admin.0 (22943) ==> Connected system.user.admin from ::ffff:192.168.178.84 2023-05-21 20:10:16.793 - info: admin.0 (22943) <== Disconnect system.user.admin from ::ffff:192.168.178.84 2023-05-21 20:10:33.806 - error: rpi2.0 (345) GPIO is not initialized! 2023-05-21 20:11:33.780 - error: rpi2.0 (345) GPIO is not initialized! 2023-05-21 20:12:33.774 - error: rpi2.0 (345) GPIO is not initialized! 2023-05-21 20:13:21.759 - info: admin.0 (22943) ==> Connected system.user.admin from ::ffff:192.168.178.84 2023-05-21 20:13:29.605 - info: admin.0 (22943) <== Disconnect system.user.admin from ::ffff:192.168.178.84 2023-05-21 20:13:33.772 - error: rpi2.0 (345) GPIO is not initialized! 2023-05-21 20:14:15.071 - info: heos.0 (3089) searching for HEOS devices ... 2023-05-21 20:14:23.164 - info: heos.0 (3089) searching for HEOS devices ... 2023-05-21 20:14:31.254 - info: heos.0 (3089) searching for HEOS devices ... 2023-05-21 20:14:31.272 - warn: heos.0 (3089) rebooting player 192.168.178.23 2023-05-21 20:14:37.186 - info: heos.0 (3089) searching for HEOS devices ... 2023-05-21 20:14:46.836 - info: host.raspberrypi "system.adapter.heos.0" disabled 2023-05-21 20:14:46.839 - info: host.raspberrypi stopInstance system.adapter.heos.0 (force=false, process=true) 2023-05-21 20:14:46.851 - info: heos.0 (3089) Got terminate signal TERMINATE_YOURSELF 2023-05-21 20:14:46.852 - info: heos.0 (3089) disconnecting from HEOS ... 2023-05-21 20:14:46.855 - info: heos.0 (3089) disconnected from HEOS 2023-05-21 20:14:46.857 - info: heos.0 (3089) terminating 2023-05-21 20:14:46.859 - info: heos.0 (3089) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason 2023-05-21 20:14:46.933 - info: host.raspberrypi stopInstance system.adapter.heos.0 send kill signal 2023-05-21 20:14:47.456 - info: host.raspberrypi instance system.adapter.heos.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
-
@bouster welches Script startest du denn? Der Adapter ist aus dem Script aus diesem Forumseintrag entstanden. Wenn du dieses Script und den Adapter startest, hast du es doppelt laufen. Stelle das Logging Level des Adapters auf Debug und packe die Ausgabe mal hier rein.
-
@bouster sagte in [Vorlage] Denon HEOS Script:
Da ich etwas paranoid bin (evtl auch gerade weil ich mich nicht so gut auskenne) habe ich den Teil der IP adressen entfernt, wenn der auch nötig ist würde ich ihn lieber nicht ganz so öffentlich teilen.
Das sind alles lokale IP-Adressen, damit kann niemand was von außen kommend anfangen.
Imiob diag
steht ggf. nur in den 25 Zeilen aus dem iobroker log was sensibles drin. Da sollte man nochmal drüber schauen. Aber IPs aus deinem lokalen Netzwerk sind vollkommen uninteressant für 'Hacker'. -
@withstu Da kommt leider nichts nützliches bei raus... Das folgende spukt er beim Log-Level "silly" aus: und danach geht es immer mit "searching ..." weiter. Kein anderer output.
heos.0 14832 2023-05-31 16:51:14.263 debug searching for HEOS devices ... heos.0 14832 2023-05-31 16:50:44.248 info searching for HEOS devices ... heos.0 14832 2023-05-31 16:50:44.044 info starting. Version 1.10.0 in /opt/iobroker/node_modules/iobroker.heos, node: v18.16.0, js-controller: 4.0.24 host.raspberrypi 2023-05-31 16:50:40.075 info instance system.adapter.heos.0 started with pid 14832
-
@bouster Dann findet der Adapter die Player nicht mehr mit dem Protokoll SSDP. Prüfe mal, ob Netzwerkseitig alles passt: https://github.com/withstu/ioBroker.heos#network-requirements
Alternativ könntest du die statische IP eines Players in die Adapter Konfiguration als bevorzugten IP hinzufügen.
-
@withstu Hallo nochmal. Ich habe den Adapter jetzt eine weitere Nacht laufen lassen und etwas mehr output bekommen:
heos.0 14832 2023-06-01 06:58:30.112 info searching for HEOS devices ... heos.0 14832 2023-06-01 06:58:25.111 debug disconnected from HEOS heos.0 14832 2023-06-01 06:58:25.109 debug data sent: heos://system/register_for_change_events?enable=off heos.0 14832 2023-06-01 06:58:25.109 debug [HEARTBEAT] reset retries heos.0 14832 2023-06-01 06:58:25.109 debug [HEARTBEAT] stop interval heos.0 14832 2023-06-01 06:58:25.109 debug disconnecting from HEOS ... heos.0 14832 2023-06-01 06:58:25.109 debug reconnecting to HEOS ... heos.0 14832 2023-06-01 06:58:25.108 debug leader failure statistics: {"192.168.178.28":94,"192.168.178.23":94} heos.0 14832 2023-06-01 06:58:25.108 debug [connect] Error: connect EHOSTUNREACH 192.168.178.28:1255 heos.0 14832 2023-06-01 06:58:22.050 info searching for HEOS devices ... heos.0 14832 2023-06-01 06:58:22.050 debug connecting to HEOS (192.168.178.28) ... heos.0 14832 2023-06-01 06:58:22.050 debug try to connect to 192.168.178.28 to reboot device heos.0 14832 2023-06-01 06:58:22.049 debug following ips need to be rebooted: 192.168.178.28 heos.0 14832 2023-06-01 06:58:17.048 debug disconnected from HEOS heos.0 14832 2023-06-01 06:58:17.046 debug data sent: heos://system/register_for_change_events?enable=off heos.0 14832 2023-06-01 06:58:17.045 debug [HEARTBEAT] reset retries heos.0 14832 2023-06-01 06:58:17.045 debug [HEARTBEAT] stop interval heos.0 14832 2023-06-01 06:58:17.045 debug disconnecting from HEOS ... heos.0 14832 2023-06-01 06:58:17.045 debug reconnecting to HEOS ... heos.0 14832 2023-06-01 06:58:17.045 debug leader failure statistics: {"192.168.178.28":93,"192.168.178.23":94} heos.0 14832 2023-06-01 06:58:17.044 debug [connect] Error: connect EHOSTUNREACH 192.168.178.23:1255 heos.0 14832 2023-06-01 06:58:13.971 info searching for HEOS devices ... heos.0 14832 2023-06-01 06:58:13.970 debug connecting to HEOS (192.168.178.23) ... heos.0 14832 2023-06-01 06:58:13.970 debug try to connect to 192.168.178.23 to reboot device heos.0 14832 2023-06-01 06:58:13.970 debug following ips need to be rebooted: 192.168.178.23,192.168.178.28 heos.0 14832 2023-06-01 06:58:08.968 debug disconnected from HEOS heos.0 14832 2023-06-01 06:58:08.966 debug [HEARTBEAT] reset retries heos.0 14832 2023-06-01 06:58:08.966 debug [HEARTBEAT] stop interval heos.0 14832 2023-06-01 06:58:08.966 debug disconnecting from HEOS ... heos.0 14832 2023-06-01 06:58:08.965 debug reconnecting to HEOS ... heos.0 14832 2023-06-01 06:58:07.964 debug add reboot ip 192.168.178.28 heos.0 14832 2023-06-01 06:58:07.964 debug add reboot ip 192.168.178.23 heos.0 14832 2023-06-01 06:58:07.964 debug rebooting all players heos.0 14832 2023-06-01 06:58:07.963 debug can't find any HEOS devices. Try to connect known device IPs and reboot them to exclude device failure... heos.0 14832 2023-06-01 06:57:37.961 debug searching for HEOS devices ...
-
@bouster Der Adapter kann keine Verbindung zu Port 1255 des Players aufbauen (EHOSTUNREACH 192.168.178.28:1255). Hast du mal versucht die Player kurz vom Strom zu nehmen?
-
@withstu Beide player 192.168.178.28:1255 und 192.168.178.23:1255 werden regelmäßig vom Netz genommen und nur bei bedarf gestartet.
Was (soweit mein Verständnis reicht) merkwürdig ist, ist dass er die Player neustarten kann. Dann muss er den Player doch auch finden.
-
@bouster nicht ganz. Der Adapter versucht die Player zu rebooten, kann sich aber nicht verbinden. Wenn der Adapter keinen Player über SSDP finden kann, versucht er sich nacheinander mit allen bereits bekannten IPs aus den Player States direkt zu verbinden und die Player neu zu starten. So wird versucht mögliche SSDP Fehler durch Reboot der Player zu beheben.
-
@withstu Da das leider alles nicht geholfen hat. Frage ich mich auf welche Weise kommen sich denn das Skript und der Adapter in die Quere? Könnte da das Problem liegen, dass ich beides mal ausgeführt habe?
-
Hallo,
ich habe es final endlich hinbekommen und der Adapter läuft jetzt. Ich weiß nicht was anders ist als vorher. Es hat nun ohne andere Änderungen funktioniert den Adapter zu verbinden, jedoch nur mit direkter IP Eingabe der Player. -
Hi, ich bin gerade hier auf den Thread gestoßen und möchte auch die Browser Funktion umsetzen.
Das hat soweit geklappt, jedoch habe ich nicht die beiden Zeile "Overview" und "Back". Wie bekommt man die? -
@hg6806 Hast du dir bereits das Script in der Readme angeschaut? https://github.com/withstu/ioBroker.heos?tab=readme-ov-file#browse-sources
-
Ja sicher, daher habe ich es ja und implementiert. Ich kann ja auch durch die Favoriten browsen.
Jedoch fehlen mir eben diese zwei Zeilen. Und somit komme ich nicht zurück
-
Auf einmal klappt es.
Hatte vorher schon mal den Adapter neu gestartet. Die beiden Zeichen oben rechts waren immer ausgegraut.
Nun werde ich mal weiter experimentieren.
Danke für den Adapter und das Script! -
Sorry, habe noch eine Frage zu dem Script, bzw. Adapter.
Und zwar tauchen im Browser immer Dienste wie "Deezer", "Soundcloud" usw auf.
Diese Dienste habe ich aber gar nicht abonniert!
Wenn ich in der HEOS App unter "Musikdienste" -> "bearbeiten" schaue, ist lediglich TuneIn drin. Die ändern könnte ich hinzufügen, müsste dafür aber auch ein Konto erstellen.Ich habe auch schon in Objekten die Ordner der Dienste ganz rausgelöscht.
Sobald man den Adapter neu startet, werden diese wieder angelegt.
Die stehen zwar unter "Available" auf false, werden aber trotzdem im Browser angezeigtAlso, wie bekomme ich die Dienste ganz raus?
Wenn man danach googelt soll man die über den Reiter "Musik" die entfernen. Den Reiter habe ich aber gar nicht in der App.
-
@hg6806 sagte in [Vorlage] Denon HEOS Script:
Die stehen zwar unter "Available" auf false, werden aber trotzdem im Browser angezeigt
Joa, tauchen bei mir im Browser auch auf. Aber was solls, ist doch eher egal als wichtig.
-
@meister-mopper Ihr müsst nur euer JSON -> HTML Script anpassen und available = false rausfiltern. z.B.:
for (let i = 0; i < data.payload.length; i++) { let payload = data.payload[i]; if(!payload.available){ continue; }
-
Ich danke dir!
Obwohl ich von Scripten so gar keine Ahnung habe, habe ich es wohl hinbekommen. Zumindest wird es rausgefiltert.
Der Teil sieht dann hoffentlich wie folgt aus:...... html += "</th><th>" + (data.name == "sources" ? "Overview" : data.name) + "</th><th></th></tr>"; for (let i = 0; i < data.payload.length; i++) { let payload = data.payload[i]; if(!payload.available){ continue; } html += "<tr class=\""; if (payload.type == "control") { html += "heos-browse-row-control"; } else { html += "heos-browse-row-media" } ....
-
zu der HEOS Visualisierung hätte ich noch eine Frage.
Hat jemand schon einmal einen Slider umgesetzt um einen Song vor- und zurückzu"spulen"?
Also eine bewegbare Fortschrittsanzeige.Ich habe viele DJ-Sets die sind teilweise mehrere Stunden lang, dafür wäre eine solche Funktion ganz nett.