Seit einiger Zeit hat Amazons Alexa einen Platz in unserem Wohnzimmer eingenommen. Lichter und Steckdosen steuern ist hier nichts mehr neues und schnell kam die Überlegung das Ambilight, welches über Hyperion auf dem Raspberry Pi läuft, ebenfalls mit Alexa ansteuern zu können.
Das Ganze funktioniert sogar relativ einfach mithilfe von „ha-bridge“. Die Software emuliert eine Philips Hue Bridge und ermöglicht die direkte Steuerung von Hyperion über Alexa. So könnt ihr dann Befehle geben wie „Alexa, schalte Ambilight an“.
Wie ihr das alles einrichtet und was sich sonst noch alles damit machen lässt, erfahrt ihr in diesem Beitrag.
Anleitung:
ha-bridge installieren
loggt euch auf eurem Raspberry Pi auf dem Hyperion läuft über SSH ein und prüft, ob ihr Java installiert habt.
java -version
Wenn keine Versionsnummer angezeigt wird und ein Fehler erscheint, dann müsst ihr erst Java mit diesem Befehl installieren:
sudo apt-get update && sudo apt-get install oracle-java8-jdk
Im Home Ordner führt ihr jetzt nacheinander diese Befehle aus, um ha-bridge zu installieren:
mkdir habridge
cd habridge
wget https://github.com/bwssytems/ha-bridge/releases/download/v5.1.0/ha-bridge-5.1.0.jar
habridge Service
cd /etc/systemd/system
sudo nano habridge.service
Folgenden Text einfügen. Wählt als Port z.B. 81 oder einen über 1024, damit ihr keine Root Rechte benötigt.
[Unit]
Description=HA Bridge
Wants=network.target
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/java -jar -Dserver.port=81 -Dconfig.file=/home/pi/habridge/data/habridge.config /home/pi/habridge/ha-bridge.jar
[Install]
WantedBy=multi-user.target
Mit Strg+X schließen und „Y“ mit anschließendem Enter die Datei speichern.
Jetzt die systemctl neustarten und habridge starten.
sudo systemctl daemon-reload
sudo systemctl enable habridge.service
Sollten Fehler erscheinen, könnt ihr diese im Log nachsehen.
tail -f /var/log/syslog
Nun erstellt ihr ein Start Script..
cd ~/habridge
nano starthabridge.sh
..fügt den folgenden Code ein. Anschließend wieder mit Strg+X und Y schließen und 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-5.1.0.jar > /home/pi/habridge/habridge-log.txt 2>&1 &
chmod 777 /home/pi/habridge/habridge-log.txt
Dem Skript die benötigen Rechte verteilen:
chmod u+x starthabridge.sh
Hyperion Skripte
Ich habe mir nun im Home Ordner den Ordner „hyperion“ angelegt, (könnt dieses natürlich auch anders nennen) und habe dort meine ganzen Skripte reingelegt.
In meinem Fall habe ich eine neue Hyperion Config angelegt und hier keinen Grabber ausgewählt, Starteffekt rausgenommen und Startfarbe auf Schwarz gesetzt.
Diese config habe ich dann in den Autostart gesetzt, sodass beim Starten des Raspberrys das Ambilight erst mal ausbleibt.
Das „AN“ Skript sieht dann folgendermaßen aus und startet die richtige Config.
#!/bin/sh
sudo killall hyperiond
sleep 1
sudo /usr/bin/hyperiond /etc/hyperion/hyperion.config.json
</dev/null >/dev/null 2>&1 &
Speichert es dann zB. unter dem Namen hyperion_an.sh in eurem eben erstellen Ordner ab.
Für das „AUS“ Skript habe ich folgendes gewählt und hyperion_aus.sh genannt.
#!/bin/bash
curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"id":1,"jsonrpc":"2.0","method":"GUI.ShowNotification","params":{"title":"Hyperion","message":"Enabled","image":"/home/pi/hyperion.png"}}' http://127.0.0.1:8080/jsonrpc
hyperion-remote --color black
Dieses setzt dann einfach die Farbe des Ambilight auf Schwarz. Das hat den Vorteil, dass es durch Störungen oder Stromschwankungen hier nicht zu einem Blitzen der LEDs kommt, weil Hyperion immer den Schwarz Wert sendet.
Wichtig an dieser Stelle: Gebt den Skripten 777 Berechtigungen, sodass sie ausführbar sind.chmod 777 ~/hyperion/skript.sh
habridge Webinterface / Konfiguration
Loggt euch nun mit dem Browser auf das ha-bridge Interface mit dem von euch gewählten Port ein:
Bsp. http://192.168.1.100:81
Das sollte dann so aussehen:
Klickt in der Menüleiste auf Add/Edit und fügt ein neues Gerät hinzu. Als Name irgendetwas eindeutiges wählen, was später dann das Signalwort für Alexa ist.
Device Type und Map Type auf „Execute Command/Script…“ setzten.
Bei On bzw. Off Items unten wählt ihr ebenfalls „Execute Command/Script..“ und gebt bei Target Item den Pfad zu eurem Skript ein.
/home/pi/hyperion/skript.sh
Rechts dann auf Add klicken und danach oben auf „Add Bridge Device“ zum Abspeichern.
Jetzt sagt ihr Alexa „Suche nach neuen Geräten“ oder macht es manuell über die App und euer neu hinzugefügtes Gerät sollte jetzt erscheinen und ansteuerbar sein.
FERTIG.
Möchtet ihr nun auch noch Effekte und Farben steuern, müsst ihr für jedes ein extra Skript anlegen.
Skript Beispiel zum Starten des Effektes „Red mood blobs“ wäre:
#!/bin/bash
sudo hyperion-remote -e "Red mood blobs"
Skript Beispiel zum Anschalten der Farbe Blau
#!/bin/bash
sudo hyperion-remote -c blue
Ich habe bei mir unter ON-Items immer das Skript eingetragen zum Anschalten der Farbe bzw. des Effektes und unter OFF-Items dann die Farbe Schwarz zum Ausschalten. Gibt natürlich auch paar andere Möglichkeiten.
Wenn ihr auch noch gute Ideen für die Steuerung und coole Skripte habt, freue ich mich über Kommentare :).
Hallo Patrick,
ich habe heute diese Anleitung gefunden und versuche das gerade bei mir umzusetzen. Die Installation von Java musste ich mir zwar an anderer Stelle suchen, damit ich sie „hinbekommen“ habe – das läuft aber nun und obwohl ich die Anleitung fehlerlos nachstellen konnte, scheitere ich jetzt an der Stelle, an der ich mich mit dem Browser auf dem HA Bridge Interface einloggen möchte.
Beim Reboot des Pi sehe ich, dass die HA Bridge ohne Fehlermeldung gestartet wird, als Port habe ich 1024 angegeben (habe es aber auch schon mit 81 und 1028 ausprobiert), aber wenn ich in meinen Browsern (Chrome und Edge) die Adresse 192.168.178.29:1024 eingebe, erhalte ich ständig die Meldung, dass diese Website nicht erreichbar ist und die Verbindung abgelehnt wurde.
Kann es evtl. sein, dass ich diesen Port noch irgendwie in meinem Netzwerk freigeben muss? In meiner Fritzbox dürfen die Geräte untereinander kommunizieren, und testweise habe ich meinem PI auch selbständige Portfreigaben erlaubt.
Ich hoffe, Du liest hier überhaupt noch mit und kannst mir einen Tipp geben, woran das vielleicht liegen könnte.
Vielen Dank und viele Grüße, Jürgen
Hey, danke für diese Anleitung, hat alles super geklappt! Hast du ne Idee wie ich das Licht dimmen kann? ich komm nämlich nicht drauf. Ich hatte es hiermiet probiert aber es will wohl nicht „hyperion-remote -v ${intensity.percent}“
Hallo, danke erstmal für die Ausführliche Anleitung.
Ich habe alles so gemacht wie du es beschrieben hast, doch leider findet mein Echo-Dot keine Geräte.
Wäre über einen Tipp sehr dankbar.
LG
Sakis
Hi Patrick
bekomme das ganz auf libreelec nicht installiert, da ich nur die Leserechte auf dem Pfad /etc habe.
Wie hast du das ganze da installiert?
Hi,
coole Sache und vielen Dank für die Anleitung!
Laut dem Webinterface kann ich mein Hyperion schalten, aber mit dem „on“ Skript passiert nichts am LED Strip .. vermutlich weil nur der hyperiond restartet wird (der läuft bei mir aber sowieso automatisch mit Boot)?
Kannst Du etwas ausführlicher Beschreiben, wie Du die Konfiguration zum Farben umschalten gebaut hast? Ich habe die Skripte jetzt unter „Color Items“ – ist das falsch?
Meine Alexa findet das Gerät leider nicht. Braucht es noch die Hue App, um die emulierte Bridge zu finden?
Und noch ein kleines Feedback: das Start-Skript erwartet das jar file als „ha-bridge.jar“, heruntergeladen wird mit dem curl aber i.d.R. ein file, das „ha-bridge-x.xx.xxx.jar“ heißt, also eine Versionsnummer angehängt hat.
Ich würde empfehlen einen symlink zu erzeugen, um „ha-bridge.jar“ auf das heruntergeladene File zu linken.
Hallo
Hab Es so wie beschrieben ausgeführt ha bridge kann ich starten.das ambilight als Gerät wird auch erkannt. Wenn ich jetzt testen möchte kommen grüne Popups gehe ich auf aus geht ambilight aus gehe ich auf on bleibt es aus obwohl die Wege zum Script stimmen
Hast du mal einen tip
Was steht denn in den PopUps drin? Fehlermeldung oder Request Executed: success…
Wie sieht dein EIN-Script aus? Hast du die richtige Hyperion Config dort angegeben (also stimmt Name der Config etc) ?
Hi Patrik,
ich versuche auf meine RPi 3B das mit OSMC (frisch installiert wegen Java) das ganze durchzuführen damit ich meine Amibilight mit alexa steuern kann, klappt leider nicht. Bekomme kein ha-bridge installiert :/
Welches betriebsystem hast du?
Ich habe es mit Raspbian Stretch und Libreelec ohne Probleme einrichten können.
Bekommst du eine Fehlermeldung bei der Installation oder was genau funktioniert nicht?
Wichtig ist die richtige Port Einrichtung, da ha-bridge sich standardmäßig gerne Port 80 nimmt, was ohne root Rechte nicht möglich ist bzw. dieser meistens auch schon durch andere Dienste belegt ist.
Wenn du mir genauere Informationen noch geben kannst, kann ich dir eventuell helfen.