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:
pi@raspberrypi:~/habridge $ chmod u+x starthabridge.shcd /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
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:
Dienst registrieren:[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
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>
So könnte man also entweder das Script starthabridge.sh entsprechend anpassen oder die Systemctl Unit Datei: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.
starthabridge.sh
Systemctl Unit Datei: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 &
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