NEWS
[Vorlage] Denon HEOS Script
-
-
@withstu super, danke, habe das Skritpt eingespielt.
Vielleicht kurzer Erfahrungsbericht: Skript (also letzte Version) lief sehr stabil. Ich hatte Zwischenzeitlich mal einen Lautsprecher abgeschaltet (vom Strom getrennt). Wurde später wieder gefunden. Läuft alles gut.
Im neuen Skript zeigt er jetzt den Loginnamen und Status an... PrimaLustigerweise ist mir noch Folgendes aufgefallen, ist aber ein Fehler der Heos-App:
Ich habe ein Verzeichnisse mit Hörspielen, jedes eine mp3, die ein Cover drinnen gespeichert hat. Wenn ich mir die über DLNA-Ordneransicht zeigen lasse, haben alle das selbe Bild - da wird scheinbar nur das erste gelesen, im Verzeichnis selber liegt kein Bild. Auch wenn ich die Titel abspiele, wird mir ein falsches Bild angezeigt. In VIS zeige ich mir die URL zum Cover an, da wird das richtige Cover angezeigt. Aber das nur so nebenbei.Viele Grüße,
Christian -
Hallo,
ich interessiere mich auch sehr für das HEOS Script. Leider klappt es bei mir nicht.
Die States ließt er mir Korrekt in die Objekte aus.Aber einen Command zur Steuerung absetzen klappt nicht z.b. Lauter Leiser Mute, so wie im Kommentar beschrieben!!
screenshot.png
Im Script zeigt er mir auch mehrere Fehler an u.a. Findet der anscheinend das node-ssdp nicht. Obwohl ich es unter den Zusätzlichen npm Modulen im Script Adapter hinterlegt habe.Was mache ich Falsch?
Viele Grüße
-
@beowulf123456 zeig mal bitte die Adapterkonfiguration.
-
Hallo, das ist meine Konfiguration.
Die Version des Javascript Adapters die neueste.
Das ganze läuft auf Raspian auf einem Raspi 4Danke sehr
-
@beowulf123456 Sieht amtlich aus. Wie und wo setzt Du den command ab (in Objekten oder vis)?
-
Ich habe es bisher direkt über das Object versucht, als auch über blocky. Siehe Screenshot
Beides scheint jedoch nicht zu funktionieren.
VIS benutze ich nicht. Sondern eine eigene GUI.Das Script selbst, habe ich versucht sowohl in den Ordner global, als auch in einen anderen Ordner zu packen. Jedoch sind die angezeigten Script Fehler immer die selben.
-
@beowulf123456 bist Du dir sicher, dass Du das neueste script verwendest? Bei mir sehen die Geräte so aus:
-
Ahh jetzt klappt es, vielen vielen Dank...
Ich hatte zuerst ein älteres HEOS Script verwendet gehabt. Das stand bei mir unter den Objekten im javascript.0 Adapter drinnen, da vermutlich mein Javascript Adapter nicht aktuell war, ging es anfangs nicht.
Daraufhin habe ich das HEOS Script und den Javascript Adapter aktualisiert.
Weil die neue HEOS Script Version sich allerdings unter userdata.0 schreibt, kann ich mit dem alten Objekt Datenpunkten lange rum probieren. Vermutlich hat es als schon die ganze Zeit schon funktioniert...
Aber vielen Dank nochmal für den Hinweis mit dem Screenshot.
Vielleicht hilft dies ja jemandem weiter der ein ähnliches Problem hat. -
Hallo,
ich wollte heute auch mal das HEOS Script ausprobieren, leider findet das Script mein HEOS Device (AVR) nicht.10:24:31.840 info javascript.0 (23262) script.js.Heos.heos: [Heos] still searching for HEOS devices ...
Fehlermeldungen habe ich im Log keine. Script Version: 2.0/2020-04-02
Auch wenn ich über meine HEOS App steuere wird nichts erkannt. Liegt es daran dass ich HEOS auf meinem AVR nutze und keinen HEOS Lautsprecher habe?
Hat jemand einen Tipp was ich noch versuchen kann?
Danke!MfG,
André -
@andre was meinst Du? Was steuerst Du über die HEOS App? Was ist das für ein AVR?
-
@Meister-Mopper
Ich habe einen Denon-AVR-X1400H. Das ist eine 7.1 Anlage mit HEOS. Lässt sich über die App ganz normal steuern. -
Ich glaub ich weiß wo es hängt. Auf meinem Livesystem wird der AVR nicht gefunden. Mache ich das Ganze auf meinem Testsystem läuft es... Kann mir jemand sagen wie ich prüfen kann ob node-ssdp ordnungsgemäß tut?
MfG,
André -
@andre was kommt denn, wenn Du es mit npm installierst?
npm install node-ssdp
-
Hallo,
mich würde interessieren ob jemand eine Türklingel über KNX Taster mit dem Script umgesetzt hat. Ich habe Leider aktuell noch keinen vollen Erfolg. Muss aber auch dazu sagen, dass ich neu bin, in der IObroker Welt.
Was ich gemacht habe ist auf einen USB Stick ein Klingel mp3 file abgelegt. Der USB ist an meiner Soundbar. Ich kann sowohl über die Heos app als auch über das Script(mit Handeingabe der werte der Objekte) dieses mp3 abspielen.
Ich habe ein wahrscheinlich schlechtes blockly geschrieben das auf den KNX Taster getriggert ist und dann in jeder der Zeilen den Wert der Objekte das "richtige" rein schreibt. Dazu habe ich beim ersten mal das klingel mp3 über die HEOS app gestartet und geschaut was in die Zeilen geschrieben wird. Das habe ich dann übernommen. Soweit funktioniert das auch doch wenn ich dann zwischendurch mal einen Radio favorit höre und jemand die "klingel" taste drückt schreibt er zwar kurzzeitig die Werte die ich im blockly geschrieben habe in die Werte Zeilen jedoch werden die kuzerhand wieder überschrieben und der Radio läuft weiter.Ist mein Vorhaben mit dem Skript so möglich?
Gibt es eine Möglichkeiten Playlists gezielt abzuspielen wie das auch mit den favoriten funktioniert?
Gibt es eine Möglichkeit wie bei z.B. Echo Dot oder Sonos Lautsprecher erst ein klingel ton abzuspielen gefolgt mit einer Sprechansage "Es klingelt jemand an der Haustür"?
Würde mich freuen wenn ich Rückmeldung erhalten würde.
Vielen Dank!
Bedanke mich in dem Zug auch für die tolle Arbeit an den Script!
-
@Mars Ich hab die Erfahrung gemacht, dass das nich sehr komfortabel mit NAS/DLNA ist. Man muss erst über die CLI und Source ID 1024 die Track ID raussuchen. Bei mir war das leider nicht verlässlich, da sich die IDs ständig geändert haben. Das leichteste ist wahrscheinlich noch mit "play_stream&url=url_path" zu arbeiten.
Ich habe nächste Woche Urlaub und vielleicht habe ich ein wenig Zeit dafür übrig.
Entweder versuche ich den SONOS Adapter mit HEOS Technik nachzubauen, sodass man über den SayIt Adapter das komfortabel lösen könnte. Oder ich füge einfach nur ein tts State für jeden Player hinzu. -
Danke für deine schnelle Rückmeldung. Ok, wenn der Profi sagt es ist nicht verlässlich dann denke ich muss man einen anderen Weg wählen.
Das mit Kommando "play_stream&url=url_path" habe ich ehrlicherweise nicht verstanden. Kann man das in 2 Sätzen erklären? Bzw. wie finde ich den Pfad des audiofiles auf z.B. dem USB stick heraus?Eine Integration wie im SONOS Adapter wäre natürlich eine extrem komfortable Lösung und ich würde mich riesig freuen wenn du das umsetzen würdest.
Habe gerade das mit dem Befehl "play_stream&url=url_path" ausprobiert. Habe wieder zuerst über die App das Klingel file abgespielt und geschaut was er mir in die "aktuelle mid" rein schreibt. Diesen URL Pfad habe ich dann benutzt und das scheint erstmal zu funktionieren. Danke für den Hinweis. Ich hatte damit schon probiert mir war jedoch unklar wie ich das URL bekomme....
Jetzt wäre der nächste Schritt wenn gerade Musik läuft und es klingelt der Gong ertönt dann die Musik weiter geht. Das ist aber viell. in einem Skript abzubilden!? -
@Mars Um eine SayIt Datei über einen HEOS Player auszugeben würde der Command so aussehen: play_stream&url=http://IOBROKER:8082/state/sayit.0.tts.mp3
Ich habe wie beim SONOS einen neuen State tts und tts_playing hinzugefügt (heos.js). Den tts State gibt es sowohl global und für alle Player. Der State muss nach dem Schema VOLUME;URI gefüllt werden z.b.: 20;http://IOBROKER:8082/state/sayit.0.tts.mp3
Das Script ist noch nicht perfekt, da es von HEOS einige Einschränkungen gibt z.B. ist es schwierig zu erkennen, wann HEOS mit dem Abspielen der TTS Datei fertig ist. Aber nach dem Abspielen der SayIt Datei wird das Letzte Lied/Station für TuneIn, Amazon, AUX und NAS Streams wiederhergestellt.
-
@withstu Vielen Dank!
Ich habe jetzt probiert erst einen Gong abzuspielen und im Anschluss eine Sprachansage. Jedoch ist das vom Timing her nicht so einfach die Sprachausgabe kommt manchmal gar nicht "durch".
Hast du das bei dir so im Einsatz? Wenn ja wie?Der say.it adapter kann von sich aus auch einen Gong vor die Ansage setzen jedoch bekomme ich das nicht auf die Soundbar.
Viell. habe ich aber auch den say.it Adapter falsch konfiguriert.
-
Hallo,
ich danke vielmals für dieses Script. Habe es heute das erste mal hinzugefügt.
Ich laufe direkt auf einen Fehler beim Starten:21:34:42.068 error javascript.0 (21822) script.js.Heos: [Heos] parseResponse: Unexpected end of JSON input {"heos": {"command": "player/get_now_playing_media", "result": "success", "message": "pid=1849007305"}, "payload": {"type": "song", "song": "Casimir von Oettingen & Lenia don't wanna go home 21:34:42.070 error javascript.0 (21822) script.js.Heos: [Heos] parseResponse: Unexpected token K in JSON at position 1 Kater Blau 24.02.19", "album": "", "artist": "Casimir von Oettingen", "image_url": "https://i1.sndcdn.com/artworks-000495104037-6l4zar-t500x500.jpg", "album_id": "1", "mid": "581602872", "qid": 3, "sid": 9, "gid": 1849007305}, "options": []} 21:34:42.088 error javascript.0 (21822) script.js.Heos: [Heos] parseResponse: Unexpected end of JSON input {"heos": {"command": "player/get_now_playing_media", "result": "success", "message": "pid=-1557307954"}, "payload": {"type": "song", "song": "Casimir von Oettingen & Lenia don't wanna go home 21:34:42.090 error javascript.0 (21822) script.js.Heos: [Heos] parseResponse: Unexpected token K in JSON at position 1 Kater Blau 24.02.19", "album": "", "artist": "Casimir von Oettingen", "image_url": "https://i1.sndcdn.com/artworks-000495104037-6l4zar-t500x500.jpg", "album_id": "1", "mid": "581602872", "qid": 3, "sid": 9, "gid": 1849007305}, "options": []} 21:34:42.105 error javascript.0 (21822) script.js.Heos: [Heos] parseResponse: Unexpected end of JSON input {"heos": {"command": "player/get_now_playing_media", "result": "success", "message": "pid=413862456"}, "payload": {"type": "song", "song": "Casimir von Oettingen & Lenia don't wanna go home 21:34:42.107 error javascript.0 (21822) script.js.Heos: [Heos] parseResponse: Unexpected token K in JSON at position 1 Kater Blau 24.02.19", "album": "", "artist": "Casimir von Oettingen", "image_url": "https://i1.sndcdn.com/artworks-000495104037-6l4zar-t500x500.jpg", "album_id": "1", "mid": "581602872", "qid": 3, "sid": 9, "gid": 1849007305}, "options": []}
Jetzt hab ich mir mal den Liedtitel (Soundcloud) angesehen. Der beinhaltet ein "|". Kann es sein, dass daher der Parsing-Error entsteht? Das "Lied" habe ich einfach in meinen Likes drin.
Hast du zufällig eine Idee wie man das fixen könnte?Schöne Grüße