Denon AVR Receiver (z.B. Denon AVR-X3300W) per HA-Bridge und http requests steuern

Benutzeravatar

Themenstarter
gessi
Beiträge: 4
Registriert: Mi 21. Dez 2016, 05:59

Mi 21. Dez 2016, 15:11

Hallo,

ich wollte Mal ein Tutorial schreiben wie man Denon AVR Receiver, in meinem Falle ein AVR-X3300W, welche ein Webinterface (http) besitzen haben steuern kann indem man den Receiver als "Bridge Device" in der HA-Bridge einrichtet und die entsprechenden http Requests an den Receiver schickt. Derzeit wird noch an der Amazon Echo/Alexa Integration seitens Denon gearbeitet aber dazu wird entweder ein AVR Receiver mit Denon HEOS Support (ab dem AVR-X4300W) benötigt oder jedoch ein komplettes Denon HEOS System/Gateway welches mit ca. 400EUR zu Buche schlägt.

Da die Receiver ein Webinterface haben (übrigens auch komplett per Telnet gesteuert werden könnten, suche dazu in Google nach "Denon AVR control protocol) kann man die http Requests relativ bequem per Chrome Webbrowser und den Chrome Developer Tools herausfinden (Alternative wäre die Requests per Wireshark abzuhören und dann in der HA-Bridge zu implementieren) und dann als manuelles TCP Device in der HA-Bridge einzurichten.

Ich habe mich eines Raspberry Pi2 mit Raspbian bedient auf welchem man nach Java nur noch das aktuelle HA-Bridge Paket benötigt.

Zuerst gehe ich auf die Installation der HA-Bridge ein damit die Vorbereitungen schon Mal passen:
Im zweiten Post zeige ich wie man die http Post requests an den Denon Receiver über das Webinterface per Chrome Browser und Developer Tools auslesen kann und danach in der HA-Bridge einrichten kann.

1. Java und HA-Bridge Github Pakete installieren und konfigurieren


a. Ha-bridge Verzeichnis erstellen und die Binaries downloaden:
pi@raspberrypi:~ $ mkdir habridge
pi@raspberrypi:~ $ cd habridge
pi@raspberrypi:~/habridge $ wget https://github.com/bwssytems/ha-bridge/ ... -3.5.1.jar

b. Java installieren falls nicht schon vorhanden:
pi@raspberrypi:~/habridge $ sudo apt-get update && sudo apt-get install oracle-java8-jdk
pi@raspberrypi:~/habridge $ java -version
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) Client VM (build 25.65-b01, mixed mode)


c. Das Startscript erstellen (für das manuelle Starten):
pi@raspberrypi:~/habridge $ nano starthabridge.sh

Folgenden Text dann einfügen und per Strg/Cmd+X die Datei speichern:
cd /home/pi/habridge
rm /home/pi/habridge/habridge-log.txt
nohup java -jar -Dconfig.file=/home/pi/habridge/data/habridge.config /home/pi/habridge/ha-bridge-3.5.1.jar > /home/pi/habridge/habridge-log.txt 2>&1 &
chmod 777 /home/pi/habridge/habridge-log.txt
pi@raspberrypi:~/habridge $ chmod u+x starthabridge.sh

d. Systemctl Unit Datei schreiben damit der Dienst nach einem Reboot des Pi auch wieder automatisch started:
pi@raspberrypi:~/habridge $ sudo nano /lib/systemd/system/ha-bridge.service
Folgenden Text in die Datei schreiben und dann per Strg/Cmd+X speichern:
[Unit]
Description=HA Bridge
Wants=network.target
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/java -jar -Dconfig.file=/home/pi/habridge/data/habridge.config /home/pi/habridge/ha-bridge-3.5.1.jar

[Install]
WantedBy=multi-user.target
Dienst registrieren:
pi@raspberrypi:~/habridge $ sudo systemctl enable ha-bridge.service
Created symlink from /etc/systemd/system/multi-user.target.wants/ha-bridge.service to /lib/systemd/system/ha-bridge.service.

e. Manuelles Starten des Dienstes (Reboot sollte auch klappen da ja der systemctl Dienst konfiguriert wurde):
pi@raspberrypi:~/habridge $ sudo ./starthabridge.sh

Nun kann man per Webbrowser auf die HA-Bridge zugreifen: http://<Ha-Bridge_IP>

Wie man auch den Standard Port 80 abändern kann habe ich bereits hier im Forum beschrieben: Link zum Post

Es gibt die Option in den Scripts den Port manuell zu definieren, siehe dazu die Github Anleitung unter https://github.com/bwssytems/ha-bridge/ ... /README.md.
-Dserver.port=<port number>
The default port number for the bridge is 80. To override what the default or what is in the configuration file for this parameter, specify
-Dserver.port=<port number> explicitly.
This is especially helpful if you are running the ha-bridge for the first time and have another application on port 80. The command line example:

java -jar -Dserver.port=80 ha-bridge-W.X.Y.jar
Note: if using with a Google Home device, port 80 must be used.
So könnte man also entweder das Script starthabridge.sh entsprechend anpassen oder die Systemctl Unit Datei:

starthabridge.sh
nohup java -jar -Dserver.port=88 -Dconfig.file=/home/pi/habridge/data/habridge.config /home/pi/habridge/ha-bridge-3.5.1.jar > /home/pi/habridge/habridge-log.txt 2>&1 &
Systemctl Unit Datei:
ExecStart=/usr/bin/java -jar -Dserver.port=88 -Dconfig.file=/home/pi/habridge/data/habridge.config /home/pi/habridge/ha-bridge-3.5.1.jar
1 x
Benutzeravatar

AntiHeld889
Beiträge: 2
Registriert: Mo 16. Jan 2017, 19:04

Mo 16. Jan 2017, 19:07

Sehr schönes Tutorial, was mir hier noch fehlt wäre jetzt z.b auch das einbinden des Denon AVR. Habe es aber hinbekommen. Mich würde noch interessieren wie ich einfügen kann das er den AVR lauter oder leiser stellt.
0 x
Benutzeravatar

benutzername
Beiträge: 10
Registriert: Mo 16. Jan 2017, 12:16

Mo 16. Jan 2017, 19:12

ab ins wiki damit... sowas geht schnell unter
bleibt die hoffnung, dass irgendwann mal mehr geht als an, aus und dimmen.
sonst kann man sich die mühe auch aparen.
0 x
Benutzeravatar

John982
Beiträge: 141
Registriert: Di 15. Nov 2016, 19:38

Mo 16. Jan 2017, 19:23

wo ist denn der "zweite Post" den der Threadersteller angesprochen hat`? Mir scheint das Tutorial noch nicht ganz fertig zu sein
0 x
Benutzeravatar

manfred.bartelt
Beiträge: 37
Registriert: Do 10. Nov 2016, 19:19
Wohnort: Kerpen, NRW
Vorhandene Echos: 1

Di 17. Jan 2017, 11:50

Hier sind einige http-requests um Denon/Marantz Receiver zu steuern.

Diese habe ich getestet:

Code: Alles auswählen

Power-on:
http://receiver_ip/MainZone/index.put.asp?cmd0=PutZone_OnOff%2FON

Power-off:
http://receiver_ip/MainZone/index.put.asp?cmd0=PutZone_OnOff%2FOFF

Eingang Media Player:
http://receiver_ip/MainZone/index.put.asp?cmd0=PutZone_InputFunction%2FMPLAY

Eingang Cable/Sat:
http://receiver_ip/MainZone/index.put.asp?cmd0=PutZone_InputFunction%2FSAT%2FCBL

Eingang DVD:
http://receiver_ip/MainZone/index.put.asp?cmd0=PutZone_InputFunction%2FDVD

Eingang Game:
http://receiver_ip/MainZone/index.put.asp?cmd0=PutZone_InputFunction%2FGAME

Eingang Phono:
http://receiver_ip/MainZone/index.put.asp?cmd0=PutZone_InputFunction%2FPHONO

Eingang Aux 1:
http://receiver_ip/MainZone/index.put.asp?cmd0=PutZone_InputFunction%2FAUX1

Eingang Blu-ray:
http://receiver_ip/MainZone/index.put.asp?cmd0=PutZone_InputFunction%2BD

Eingang TV-Audio:
http://receiver_ip/MainZone/index.put.asp?cmd0=PutZone_InputFunction%2TV
Nicht getestet:

Code: Alles auswählen

Volume-up:
http://receiver_ip/MainZone/index.put.asp?cmd0=PutMasterVolumeBtn/>

volume down:
http://receiver_ip/MainZone/index.put.asp?cmd0=PutMasterVolumeBtn/<

set volume at 35 (-45=35-80):
http://receiver_ip/MainZone/index.put.asp?cmd0=PutMasterVolumeSet/-45.0

volume mute:
http://receiver_ip/MainZone/index.put.asp?cmd0=PutVolumeMute/off
http://receiver_ip/MainZone/index.put.asp?cmd0=PutVolumeMute/on
Zuletzt geändert von manfred.bartelt am Di 17. Jan 2017, 19:58, insgesamt 1-mal geändert.
0 x
Benutzeravatar

benutzername
Beiträge: 10
Registriert: Mo 16. Jan 2017, 12:16

Di 17. Jan 2017, 14:05

Das ist alles schön, aber irgendwie fehlt ja noch die Idee, beides sinnvoll miteinander zu verknüpfen. Für Sachen stehen ja mehr oder minder schon im Readme des git Repos. Das ist ja die eigentliche Fleißarbeit. Man müsste also etwas scripten bzw. bestehende Scripte etwas aufbohren. Vermutlich wäre der http Request dann auch immer nur ein kleiner Baustein, der sich auf Eingangswahl und Volume begrenzt.
0 x
Benutzeravatar

Thronis
Beiträge: 13
Registriert: Do 2. Feb 2017, 20:00

Sa 11. Feb 2017, 22:01

Hat sich hier schon jemand ein wenig mehr mit beschäftigt?
Ich weiß leider nicht so genau, wie ich es in die ha bridge eintragen muss
0 x
Benutzeravatar

Thronis
Beiträge: 13
Registriert: Do 2. Feb 2017, 20:00

Mo 13. Feb 2017, 20:00

habe übrigens herausgefunden mit Hilfe in einem anderen Forum wie es mit der Lautstärke funktioniert.

und zwar folgendes bei dim items - target items eintragen
allerdings wird hier immer der Grundwert (max. Wert) genommen und die % Angabe die man sagt, davon
abgezogen.
Also du sagst "Alexa sound 70 prozent" heißt alexa schaltet die Lautstärke auf 10 (80-70).
Ist ein wenig tricky aber funktioniert.

Bei mir funktionieren momentan leider nur ganze zahlen heißt 10,20,30 usw. keine krummen...
Vielleicht kann es ja jemand mal bei sich testen.

edit: also mit dem Ansprechwort "Lautstärke" versteht Alexa jetzt auch krumme Zahlen, allerdings fragt sie immer nochmal nach
dem Gerät nach, welches Sie ansprechen soll.
Jemand vielleicht eine Idee welches Wort man noch nutzen kann. Bei Sound und Ton nimmt sie nur 10er werte... warum auch immer...
0 x
Benutzeravatar

volkerg
Beiträge: 5
Registriert: So 12. Feb 2017, 14:16

Do 23. Feb 2017, 00:05

Bei mir gehts als Dimm Befehl in der HA Bridge folgendermaßen einwandfrei auf den gewünschten Wert :relaxed:

http://<deineIP>/MainZone/index.put.asp?cmd0=PutMasterVolumeSet/${intensity.math((X/2.55)-80)}

dann einfach mit "Alexa stelle <Codewort> auf 40 Prozent" => Lautstärke geht auf 40 !!
oder "Alexa stelle <Codewort> auf 56 Prozent" => Lautstärke geht auf 56 ...

so wie gewünscht halt ;-)

Gruß
0 x
Benutzeravatar

Thronis
Beiträge: 13
Registriert: Do 2. Feb 2017, 20:00

So 26. Feb 2017, 08:45

Das klappt super... vielen Dank.
jetzt muss ich nur noch lernen nicht zu nuscheln :-)
dann versteht alexa auch fünfzehn und nicht fünfzig :-)
0 x
Antworten

Zurück zu „HA-Bridge“

  • Information