NEWS
[Vorlage] Denon HEOS Script
-
Japp aber was sollte die docker station damit zu tun haben ?
Es geht ja sonst auch alles an Adapter , befehlen blockly etc
jetzt schreib ich alles im detail mache fotos und keiner kann hier helfen
-
Na ja, ich habe eine gänzlich andere Konfiguration und kann Dir leider nicht helfen. Aber es gibt ja hier einige, die ebenfalls den ioBroker in docker container laufen lassen.
Blöd halt, wenn sie kein HEOS nutzen -
@olli_m wenn da irgendwelche Ports verwendet werden dann müssen diese im Docker natürlich durchgereicht werden...
vll findest Du hier einen Ansatz?!
https://forum.iobroker.net/topic/10420/vorlage-denon-heos-script/176?_=1667232799666
Habe auch keinen Container am Start und kann da auch nur mühselig Tipps geben.
-
@meister-mopper
aber verstehe nicht warum es wegen dem Docker nicht laufen soll, wie gesagt es geht ja sonst auch alles -
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.