NEWS
[Vorlage] Denon HEOS Script
-
was für ports sollen da denn durch gereicht werden? ich guck mir das mal an deinen Link
Der Command reagiert ja scheinbar wenn ich über die HEOS App was aktiviere sehe ich im Debug Modus dass er was macht.
Ich hoffe immer noch das sich der Entwickler meldet...
-
@nwh Das sieht nach Amazon Music aus oder? Die Daten von Heos sind an dieser Stelle fehlerhaft. Bei Amazon Music fehlt der Indikator, dass eine Liste abspielbar ist. Deswegen wurde der "Play all" Button nicht eingeblendet, obwohl ein Play all funktionieren würde. Da hier offenbar ein weiterer Bug bei HEOS vorliegt, habe ich einen Workaround in der neusten Version implementiert. Der Play all Button taucht nun auch bei Amazon auf und funktioniert.
-
@olli_m Bei mir funktioniert der Command. Aber ich benutze auch kein Docker. Kannst du den Player mit den States next, play etc. steuern?
-
@withstu
Gerade installiert und funktioniert.
Danke du bist der beste. Besser gehts nicht. -
@withstu
Kann es sein, das es noch Probleme gibt wenn es mehrere Player gibt?
Auf meinem ersten Player funktioniert die Funktion alle Songs abspielen einer Playlist, aber auf meinem zweiten Player geht es nicht. Da kann ich wie bisher immer nur einen Titel starten.Wenn ich unter Objekte schaue, werden alle Titel der Playlist geladen aber sie wird nicht abgespielt bzw. gestartet.
-
@nwh Ich habe es gerade bei mir getestet. Sowohl bei zwei Einzelplayern als auch in einer Gruppe wurde eine Amazon Playlist mit "Play all" abgespielt. Was passiert wenn du manuell dann nochmal auf play drückst? Eventuell fügt HEOS die Lieder nur der Playlist hinzu, aber startet die Wiedergabe nicht.
-
@withstu
Habe gerade gesehen das der Player ein update will
Hoffe es geht dann.... ---> Sorry nach dem update geht es...... -
Ich hätte eine Frage zu den Protokolleinträgen, bekomme plötzlich diese Warnmeldungnen
heos.0 Zeit debug Nachricht heos.0 2022-11-15 08:51:24.698 warn [Marantz SR7013] [setError] Player Marantz SR7013 has to many leader failures. Reboot. Activate "reboot on failure" in the configuration or reboot manually the device. heos.0 2022-11-15 08:51:09.696 warn [Marantz SR7013] [setError] Player Marantz SR7013 has to many leader failures. Reboot. Activate "reboot on failure" in the configuration or reboot manually the device. heos.0 2022-11-15 08:50:54.695 warn [Marantz SR7013] [setError] Player Marantz SR7013 has to many leader failures. Reboot. Activate "reboot on failure" in the configuration or reboot manually the device. heos.0 2022-11-15 08:50:42.984 warn [setLastError] result=fail,text=ID Not Valid,command=player/get_play_state heos.0 2022-11-15 08:50:42.981 warn [checkDuplicateRequest] Response timed out: player/get_play_state?pid=1784603970. Increase leader failure counter. heos.0 2022-11-15 08:50:42.981 warn [checkDuplicateRequest] Response timed out: player/get_play_state?pid=1784603970. Increase leader failure counter. heos.0 2022-11-15 08:50:42.980 warn [Werkstatt ] [setError] HEOS is not responding as expected. Request timed out. Update play state. heos.0 2022-11-15 08:50:42.980 warn [Werkstatt ] [setError] Player Werkstatt has to many failures. Reboot. Activate "reboot on failure" in the configuration or reboot manually the device. heos.0 2022-11-15 08:50:42.980 warn [Werkstatt ] [setError] Player Werkstatt has to many upnp failures. Reboot. Activate "reboot on failure" in the configuration or reboot manually the device. heos.0 2022-11-15 08:50:42.979 warn [Werkstatt ] [setError] Player Werkstatt has to many timeouts. Reboot. Activate "reboot on failure" in the configuration or reboot manually the device.
Was ist hier nicht Richtig?
-
@withstu
Hialso über mein Blockly schreibt er zwar die DP aber der Denon Ansich verändert nicht seine Laustärke.
Es geht aber über diesen JS Befehl:
setState('denon.0.zoneMain.volume', 47.5);
Jetzt meine Frage bekomme ich da auch eine Bedinung rein wenn z.b. der Input auf TV ist Lautstärke XY
Hätte 3 Bedingungen wo er die Lautstärke verändern müsste anhand vom Eingang.
TV
BD
DVDGeht das mit JS?
-
@olli_m sagte in [Vorlage] Denon HEOS Script:
Jetzt meine Frage bekomme ich da auch eine Bedinung rein wenn z.b. der Input auf TV ist Lautstärke XY
siehe dazu deinen anderen Thread.
Du musst nicht JS und Blockly mischen.
Geht easy mitdenon.0.zoneMain.volume
unddenon.0.zoneMain.selectInput
-
@negalein
es geht ja eben nicht. Hab das Blockly nochmal neu aufgesetzt ohne den Aufruf des JS.Und wenn ich nur den JS Befehl nutze geht es ja nur da hab ich die Bedinung nicht drin.
Aktuell ist nichts vermischt
-
@olli_m sagte in [Vorlage] Denon HEOS Script:
es geht ja eben nicht. Hab das Blockly nochmal neu aufgesetzt ohne den Aufruf des JS.
Und wenn ich nur den JS Befehl nutze geht es ja nur da hab ich die Bedinung nicht drin.
Aktuell ist nichts vermischthab dir drüben geantwortet
-
Liebe HEOS Gemeinde vielleicht kann mir hier geholfen werden...
Nach welchen Kriterien wird das Heos / Denon Gerät gesucht?
Lediglich auf Port 1255?
Muss das Heos Gerät im gleich Netzwerk wie der Adapter / IoBroker sein?
Falls ja, gibt es eine einfache Möglichkeit eine feste IP-Adresse zu hinterlegen?Beides, der HEOS-Adapter und auch das Uhula Script finden keinen Player.
Aus allen Netzen kann ich den Denon Home Player via IP-Adresse über Telnet mit Port 1255
ansprechen.
Bei Anfrage über IP-Adresse funktioniert das Routing anscheinend nur auf Port-Ebene evtl. nicht bis schlecht im NetzwerkBin für jede Hilfe bzw. Tipps dankbar
-
@ratze Für die Suche der Player wird das Protokoll SSDP verwendet (https://de.m.wikipedia.org/wiki/Simple_Service_Discovery_Protocol), welches die Multicast Pakete der Player über UDP findet. Ich schaue mal, ob ich als Fallback zur automatischen Suche auch einen manuelle IP Konfiguration ermögliche. Die IP sollte dann aber statisch sein.
Zum Testen der SSDP Suche hatte ich mal folgendes Script im Adapter hinzugefügt. Vielleicht hilft es ja beim Debuggen:
https://github.com/withstu/ioBroker.heos/blob/main/test/node-ssdp/index.js -
@withstu
Super für die schnelle Antwort...
Habe gestern Abend noch den Home350 ins IoBroker Netz (gleiche 192.xxx.xxx.xxx/24) gehangen.
Über den UPNP Adapter wird er erkannt.
Also SSDP sagt mir inziwschen etwas und ich kann auch sehen wo er aktiv ist.pi@Iobroker:~ $ npm list node-ssdp /home/pi `-- (empty) pi@Iobroker:~ $ cd /opt/iobroker pi@Iobroker:/opt/iobroker $ npm list node-ssdp iobroker.inst@3.0.0 /opt/iobroker +-- iobroker.discovery@3.1.0 | `-- node-ssdp@4.0.1 deduped +-- iobroker.heos@1.10.0 | `-- node-ssdp@4.0.1 deduped +-- iobroker.javascript@6.1.4 | `-- node-ssdp@4.0.1 +-- iobroker.upnp@1.0.21 | `-- node-ssdp@4.0.1 deduped `-- node-ssdp@4.0.1
Über Telnet kann ich allerdings die Zustände / Statis des Home350 abfragen.
const searchTargetName = 'urn:schemas-denon-com:device:ACT-Denon:1'
Ich gehe mal davon aus, dass
ACT-Denon:1
nicht unbedingt über Telnet mit Port 1255
zurückgegeben wird.Der UPNP Adapter zeigt folgendes Ergebnis an
{ "type": "device", "common": { "name": "350SLE", "extIcon": "http://192.xxx.xxx.xxx:60006" }, "native": { "ip": "192.xxx.xxx.xxx", "port": 60006, "uuid": "b63f6000-af30-1683-0080-00a96f0fdfe4", "deviceType": "urn:schemas-denon-com:device:AiosDevice:1", "manufacturer": "Denon", "manufacturerURL": "http://www.denon.com", "modelNumber": "Aios 6.0S", "modelDescription": "", "modelName": "Denon Home 350", "modelURL": "", "name": "350SLE" }, "from": "system.adapter.upnp.0", "user": "system.user.admin", "ts": 1676664594189, "_id": "upnp.0.350SLE.AiosDevice", "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Der Überblick was Telnet über heos://player/get_player_info? zurückgibt
heos://player/get_player_info?pid=-1234567890 {"heos": {"command": "player/get_player_info", "result": "success", "message": " pid=-1234567890"}, "payload": {"name": "350SLE", "pid": -1234567890, "model": "D enon Home 350", "version": "2.71.510", "ip": "192.xxx.xxxx.xxx", "network": "wifi" , "lineout": 0, "serial": "BME27234567899"}}
https://github.com/withstu/ioBroker.heos/blob/main/test/node-ssdp/index.js
Das Script ist im Einsatz, Debug gibt invalid Response State aus... macht aber eine Schleife
beide der Player Suche... Ich vermute das mein Home350 evtl. ein anderes Ergebnis alssearchTargetName = 'urn:schemas-denon-com:device:ACT-Denon:1'
zurück gibt.
Was ich noch gefunden habe...
https://support-de.denon.com/app/answers/detail/a_id/4720/~/netzwerk-anforderungen-fÜr-heos
Laut Denon Support-Seite sind folgende Voraussetzungen zu erfüllen
Der Bereich zwischen 50000 und 64999 für MediaRenderer und 60006 für Media Server.Darüber hinaus ist für UPnP ein Multicast-Zugriff zu 239.255.255.250:1900 zusammen mit den entsprechenden "IGMP Control Messages" zu ermöglichen.
Wirklich vielen Dank... an alle die sich die Mühe machen Scripte und Adapter
für uns zu erstellen und dann die bereit sind Mensche wie mir zu helfen!!!
DankesehrZum UPNP-Adapter https://github.com/Jey-Cee/ioBroker.upnp/blob/master/main.js
Dieser hat tatsähclich im Skript den Aufruf bzgl. SSDP-IP zu 239.255.255.250let server = new Server({ssdpIp: '239.255.255.250'});
Und den Parameter bei der Suche
client.search('ssdp:all');
(Was mir bewusst ist, dass alle möglichen UPNP Geräte über die UPNP-Adapter Suche gefunden werden sollen)
-
Danke für die Hilfe, habe in der Zwischenzeit den Player Home 350 eingebunden.
Netzwerke nochmals kontrolliert Multicast auf dem Wifi-Netz freigegeben.
Änderung im Script
const searchTargetName = 'urn:schemas-denon-com:device:AiosDevice:1';
Zappp... Ist der HEOS-Player aufgetaucht.
danke danke... Danke @Uhula für das Script... Super arbeit!
Ups mit ist da etwas entgangen!
Herr @withstu ... ich möchte mich für den HEOS-Adapter Bedanken (WOW)
und noch mal Danke für den Einsatz. -
Hallo,
ich hatte das Skript etwa 2 Jahr am laufen jetzt und es hat alles problemlos für meine Zwecke (Umschalten des Eingangs, Start, Stop, Pause, Weiter, Zurück, Lauter, Leiser) geklappt.
Seit Februar wird leider kein Player mehr erkannt.
Ich finde das alte skript aus 2019, das neue aus 2020 und auch im HEOS adapter keine Player mehr. Der Heos adapter startet jedoch den im Netzwerk befindlichen HEOS Amp etwa alle 5-10 min neu.Mit ist noch aufgefallen, dass das Skript keine meldung signed in gibt und auch der signed in status false zurück gibt, obwohl ich sowohl im HEOS adapter als auch im Skript die Logindaten angegeben habe und mehrfach auf richtigkeit geprüft (sie haben ja auch 2 Jahre lang funktioniert).
Da ich aber nichts an den Einstellungen noch am Skript verändert habe ist es mir ein Rätsel wo der Fehler liegen könnte der sich eingeschlichen hat.Leider sind meine Kenntnisse in diesem Bereich nicht so groß und ich habe das meiste mit Hilfe diverser Tutorials eingerichtet. Meine Fehlersuche beschränkt sich bis jetzt auf das verstehen der Log Meldungen. Wenn ich das Skript starte erhalte ich folgende Log Einträge:
javascript.1 15550 2023-05-17 12:02:16.818 info script.js.Heos.Heos_2020: [Heos] still searching for HEOS devices ... javascript.1 15550 2023-05-17 12:01:46.817 info script.js.Heos.Heos_2020: [Heos] still searching for HEOS devices ... javascript.1 15550 2023-05-17 12:01:16.817 info script.js.Heos.Heos_2020: [Heos] still searching for HEOS devices ... javascript.1 15550 2023-05-17 12:00:46.817 info script.js.Heos.Heos_2020: [Heos] still searching for HEOS devices ... javascript.1 15550 2023-05-17 12:00:16.815 info script.js.Heos.Heos_2020: [Heos] still searching for HEOS devices ... javascript.1 15550 2023-05-17 11:59:46.815 info script.js.Heos.Heos_2020: [Heos] still searching for HEOS devices ... javascript.1 15550 2023-05-17 11:59:16.814 info script.js.Heos.Heos_2020: [Heos] still searching for HEOS devices ... javascript.1 15550 2023-05-17 11:58:46.814 info script.js.Heos.Heos_2020: [Heos] still searching for HEOS devices ... admin.0 4495 2023-05-17 11:58:19.744 info <== Disconnect system.user.admin from ::ffff:192.xxx.xxx.xxx javascript admin.0 4495 2023-05-17 11:58:19.744 info <== Disconnect system.user.admin from ::ffff:192.xxx.xxx.xxx javascript javascript.1 15550 2023-05-17 11:58:16.867 warn Object of state "0_userdata.0.heos.connected" is missing the required property "common.type" javascript.1 15550 2023-05-17 11:58:16.814 info script.js.Heos.Heos_2020: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.1 15550 2023-05-17 11:58:16.806 info script.js.Heos.Heos_2020: [Heos] searching for HEOS devices ... javascript.1 15550 2023-05-17 11:58:16.775 info Start javascript script.js.Heos.Heos_2020
Für den Heos Adapter sieht es wie folgt aus:
heos.0 19051 2023-05-17 12:03:06.253 info searching for HEOS devices ... heos.0 19051 2023-05-17 12:03:06.025 info starting. Version 1.10.0 in /opt/iobroker/node_modules/iobroker.heos, node: v14.21.3, js-controller: 4.0.23 host.raspberrypi 2023-05-17 12:03:03.125 info instance system.adapter.heos.0 started with pid 19051 host.raspberrypi 2023-05-17 12:03:02.944 info "system.adapter.heos.0" enabled
Kann mir jemand bei der Fehlersuche behilflich sein? Gibt es einen anderen Ansatzpunkt (HEOS Adapter Update, JS Adapter Update?), warum die Verbindung plötzlich nicht mehr funktioniert?
-
@bouster sagte in [Vorlage] Denon HEOS Script:
node: v14.21.3, js-controller: 4.0.23
Vermutlich das System noch nie so richtig auf Stand gebracht.
Zeig mal bitte die Ausgabe von
iob diag
-
@djmarc75
iob diag gibt folgendes aus:iobroker [command] Commands: iobroker setup Setup ioBroker iobroker start [all|<adapter>.<instance>] Starts the js-controller or a specified adapter instance iobroker stop [<adapter>.<instance>] stops the js-controller or a specified adapter instance iobroker restart [<adapter>.<instance>] Restarts js-controller or a specified adapter instance [aliases: r] iobroker debug <adapter>[.<instance>] Starts a Node.js debugging session for the adapter instance iobroker info Shows the host info iobroker logs [<adapter>] Monitor log iobroker add <adapter> [desiredNumber] Add instance of adapter [aliases: a] iobroker install <adapter> Installs a specified adapter [aliases: i] iobroker rebuild [<module>] Rebuild all native modules or path iobroker url <url> [<name>] Install adapter from specified url, e.g. GitHub iobroker del <adapter> Remove adapter and all instances from this host [aliases: delete] iobroker del <adapter>.<instance> Remove adapter instance [aliases: delete] iobroker update [<repositoryUrl>] Update repository and list adapters iobroker upgrade Upgrade management iobroker upload [all|<adapter>] Upload management [aliases: u] iobroker object Object management [aliases: o] iobroker state State management [aliases: s] iobroker message <adapter>[.instance] <command> [<message>] Send message to adapter instance/s iobroker list <type> [<filter>] List all entries, like objects iobroker chmod <mode> <file> Change file rights iobroker chown <user> <group> <file> Change file ownership iobroker touch <file> Touch file iobroker rm <file> Remove file iobroker file File management iobroker user User commands iobroker group group management iobroker host <hostname> Set host to given hostname iobroker set <adapter>.<instance> Change settings of adapter config iobroker license <license.file or license.text> Update license by given file iobroker cert Certificate management iobroker clean <yes> Clears all objects and states iobroker backup Create backup iobroker restore <backup name or path> Restore a specified backup iobroker validate <backup name or path> Validate a specified backup iobroker status [all|<adapter>.<instance>] Status of ioBroker or adapter instance [aliases: isrun] iobroker repo [<name>] Show repo information iobroker uuid Show uuid of the installation [aliases: id] iobroker unsetup Reset license, installation secret and language iobroker fix Execute the installation fixer script, this updates your ioBroker installation iobroker multihost Multihost management iobroker compact compact group management iobroker plugin Plugin management iobroker version [<adapter>] Show version of js-controller or specified adapter [aliases: v] Options: --help Show help [boolean]
-
Über folgendes skirpt https://forum.iobroker.net/topic/59549/iob-diag-skript bekomme ich eine Menge sensible Informationen. Ich habe mal das was ich denke wichtig ist angehängt:
ioBroker Status iobroker is running on this host. Objects type: jsonl States type: jsonl No configuration change needed. Multihost discovery server: disabled Discovery authentication: enabled Persistent activation: disabled Objects: jsonl on 127.xxx.xxx.xxx States: jsonl on 127.xxx.xxx.xxx Core adapters versions js-controller: 4.0.23 admin: 6.3.5 javascript: 6.1.4 Adapters from github: 1 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 - enabled + system.adapter.influxdb.0 : influxdb : raspberrypi - enabled, port: xxxx + system.adapter.info.0 : info : raspberrypi - enabled + system.adapter.javascript.1 : javascript : raspberrypi - enabled + system.adapter.mqtt.0 : mqtt : raspberrypi - enabled, port: xxxx, bind: 192.xxx.xxx.xxx + 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: xxxx, bind: 192.xxx.xxx.xxx (SSL), run as: admin + system.adapter.sonoff.0 : sonoff : raspberrypi - enabled, port: xxxx, bind: 0.0.0.0 system.adapter.spotify-premium.0 : spotify-premium : raspberrypi - disabled + system.adapter.upnp.0 : upnp : raspberrypi - enabled + system.adapter.web.0 : web : raspberrypi - enabled, port: xxxx, bind: 0.0.0.0 (SSL), run as: admin + system.adapter.zigbee.0 : zigbee : raspberrypi - enabled, port: /dev/serial/by-id/usb-Silicon_Labs_CP2102N_USB_to_UART_Bridge_Contr + instance is alive Enabled adapters with bindings + system.adapter.admin.0 : admin : raspberrypi - enabled, port: xxxx, bind: 0.0.0.0 (SSL), run as: admin + system.adapter.influxdb.0 : influxdb : raspberrypi - enabled, port: xxxx + system.adapter.mqtt.0 : mqtt : raspberrypi - enabled, port: xxxx, bind: 192.xxx.xxx.xxx + system.adapter.simple-api.0 : simple-api : raspberrypi - enabled, port: xxxx, bind: 192.xxx.xxx.xxx(SSL), run as: admin + system.adapter.sonoff.0 : sonoff : raspberrypi - enabled, port: xxxx, bind: 0.0.0.0 + system.adapter.web.0 : web : raspberrypi - enabled, port: xxxx, bind: 0.0.0.0 (SSL), run as: admin + system.adapter.zigbee.0 : zigbee : raspberrypi - enabled, port: /dev/serial/by-id/usb-Silicon_Labs_CP2102N_USB_to_UART_Bridge_Contr 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.23 [Updatable] Adapter "mqtt" : 4.0.7 , installed 2.7.4 [Updatable] 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