Leider gibt es für Amazon Alexa Voice Service (Amazon Echo) keinen Homematic Skill. Dennoch lässt sich die Homematic sehr leicht mit dem Echo, bzw, dem Echo Dot steuern. Diese Anleitung kann man in ca. 20 Minuten abarbeiten. Da wir dem Echo Hue Lampen simulieren (diese kann Alexa ohne Skill bereits ansprechen), können wir leider nur Licht schalten und dimmen. Weitere Funktionen wie Rollläden wären auch denkbar, müssen jedoch mit dem Sprachbefehl „Licht anschalten“, „Licht ausschalten“, „Licht dimmen“ gesteuert werden und bietet daher hierfür noch keine perfekte Lösung. Möchte man jedoch nur Lichter schalten, ist dies eine sehr gut funktionierende Lösung, welche ich nicht mehr missen möchte.
Ausgangssituation: Ich habe eine Homematic (keine Homematic IP) mit einer CCU1 und daran angeschlossenen Lichtaktoren. Außerdem benötigen wir einen Raspberry Pi. Diesen habe ich bereits für andere Dinge im Betrieb und kann ihn hierfür leicht erweitern. Darüber hinaus ist natürlich ein Amazon Echo oder Amazon Echo Dot nötig.
Die Vorgehensweise in Kurzform:
- Auf dem Raspberry installieren wir die habridge, eine Opensource Java Software welche Hue Lampen simuliert
- Diese simulierten Hue Lampen werden von Alexa erkannt
- habridge sorgt dafür das beim Schalten der simulierten Lampen eine frei gewählte Aktion durchgeführt wird, in unserem Fall lassen wir die XML Schnittstelle der CCU ansprechen
- Fertig 🙂
Beginnen wir mit der Installation der habridge auf dem Raspberry Pi:
habridge ist eine Java Software, daher müssen wir sicherstellen das Java auf unserem Pi installiert ist. Dies geht mit
sudo apt-get update && sudo apt-get install oracle-java8-jdk
Nun erstellen wir einen neuen Unterordner in unserem Homeverzeichnis und downloaden es
cd /home/pi/ mkdir habridge cd habridge wget https://github.com/bwssytems/ha-bridge/releases/download/v4.1.2/ha-bridge-4.1.2.jar
Als nächstes erstellen wir eine Startdatei für habridge. In dieser geben wir auch den Port an auf welcher das Webinterface zu erreichen sein soll. Diesen musste ich ändern, da der Standardport 8080 auf meinem Raspberry Pi bereits benutzt wurde:
vi starthabridge.sh
Und tragen ein:
cd /home/pi/habridge rm /home/pi/habridge/habridge-log.txt nohup java -jar -Dserver.port=8080 /home/pi/habridge/ha-bridge-4.1.2.jar > /home/pi/habridge/habridge-log.txt 2>&1 & chmod 777 /home/pi/habridge/habridge-log.txt
Dann machen wir das Startscript ausführbar
chmod u+x starthabridge.sh
Und starten habridge
./starthabridge.sh
Nun kontrollieren wir das Logfile auf Fehler
tail -f habridge-log.txt
Sollten keine Fehler aufgetreten sein ist habridge nun installiert und über den oben konfigurierten Port im Webbrowser erreichbar.
Wir rufen nun das Webinterface auf. Auf der Startseite sehen wir alle Geräte die Alexa als Hue Lampen erkennen würde. Aktuell ist natürlich noch keines angelegt, dies ändern wir in dem wir auf „manual add“ klicken.
Für die Anlage benötigen wir nur wenige Felder:
- Name (unter diesem Namen wird Alexa das Gerät erkennen, der Name „Wohnzimmer Licht“ führt demnach zu folgendem Sprachbefehl „Alexa, schalte Wohnzimmer Licht an“)
- Device Type „Custom“
- Map Type „HTTP Device“
- On Items -> Target Item
- http://[CCU_IP]/config/xmlapi/statechange.cgi?ise_id=[ise_id]&new_value=1
- Off Items -> Target Item
- http://[CCU_IP]/config/xmlapi/statechange.cgi?ise_id=[ise_id]&new_value=0
Hinweis: Dafür wird das XML-API Addon der CCU benötigt, dies gibt es hier. Die ise_id findet man in dem man folgende Url im Browser aufruft und dort dann nach dem entsprechendem Gerät sucht
http://[CCU_IP]/config/xmlapi/devicelist.cgi
Nun speichern wir die Konfiguration. Dieses Gerät wurde damit fertig eingerichtet. Das machen wir auch noch für alle anderen Geräte / Lichter die wir schalten wollen.
Zuletzt koppeln wir das ganze noch mit Alexa:
Wir gehen in die Alexa App, dort auf Smart Home und scrollen ganz runter. Dort lassen wir Alexa neue Geräte suchen. Dies dauert kurz und danach ist die Einrichtung abgeschlossen. Die Lichter können nun geschalten werden.
Ich bekomme keine Verbindung zw. ALEXA und HA-Bridge …
meine Lampen sind in HA-Bridge eingerichtet und lassen sich von dort aus auch ansteuern.
Nur findet ALEXA keine Geräte. Was kann ich tun?
Das Problem hatte ich nach einem Update auch. Bei mir fehlte die Einstellung „UPNP IP Address“ unter „Bridge Control“. Dieser Wert muss auf die IP der habridge gesetzt werden.
Danke für diesen Artikel – klappt alles prima. Inzwischen hat sich die Weboberfläche leicht verändert, was der Sache aber keinen Abbruch tut.
Was mich noch interessieren würde: Schon mal jemand probiert, einen Dimm-Wert irgendwie zu setzen?
Dimmwerte kann habridge auch entgegen nehmen, dazu musst du in der Url an entsprechender Stelle einen der folgenden Werte einfügen:
${intensity.percent}
${intensity.byte}
Danke – das klingt schonmal nicht schlecht.
Ich komme morgen erst zum testen, aber vorab eine Nachfrage: Homatic nimmt ja die Dimmwerte per XML-API in Kommawerten entgegen, also 0.2 für 20 Prozent.
Klappt das ebenfalls?
${intensity.percent} liefert Werte zwischen 0 bis 100. Es gibt zwar eine math() Funktion mit der man das ganze dann teilen könnte, jedoch liefert diese Funktion auch nur Ganzzahlen und ist daher für diesen Anwendungsfall nicht geeignet. Soweit ich weiß gibt es nur die Möglichtkeit mit Hilfe eines Tricks:
http://SomeUrlToCall/dim=0.${intensity.percent}
D
Damit kannst du aber nur von 0.0 bis 0.9 schalten. 100% würde 0.1 ergeben.
Hmpf…auf die Idee hätte ich auch kommen können, danke nochmal 😉
Klappt hervorragend…und die 100% erreiche ich ja ganz einfach durch das „On Item“.
Die Kommentare sind zwar schon etwas älter, trotzdem mal eine Info:
Ich spiele derzeit parallel zu Carstens HConnect auch mit der HA-Bridge rum. Grund: keine extra Cloud nötig.
Die math()-Funktion kann man sehr wohl auch für Alexa und HM einsetzen. Man muss die nur richtig verpacken. Beispiel:
HM-Rollladen-Aktoren funktionieren ja „anders rum“, sprich, bei 10% sind die fast ganz unten. Das bekomme ich meiner Family nicht verständlich beigebracht.
Somit ist der „Dimmbefehl“ folgender:
http://[CCU-IP]/config/xmlapi/statechange.cgi?ise_id=%5Bise_id%5D&new_value=0.${intensity.math(100-${intensity.percent})}
Damit wird er Wert umgekehrt. Bei „Alexa, Rollladen X auf 10%“ wird der Aktor auf 90% von seinem Wert her heruntergefahren. Der Rollladen ist jedoch nur 10% geschlossen 😉
Hallo zusammen, zur Zeit arbeite ich intensiv an einem Alexa Homematic Skill. Ziel dieses Skills ist es eine möglichst einfache Anbindung von Homematic an Alexa zu erreichen und noch etwas mehr Intelligenz in die Steuerung zu bringen. Ein zusätzliche Skill ermöglicht es dann auch Statusabfragen durchzuführen, z.b. Alexa, ist überall das Licht aus, oder Alexa, wie ist die Heizung im Arbeitszimmer eingestellt. Das Projekt befindet sich noch im Beta Test und ich könnte noch einige wirklich aktive Beta Tester gebrauchen. Wer also Interesse hat, kann sich ja einmal die folgende Seite anschauen: https://hconnectweb.azurewebsites.net/ und sich bei Interesse bei mir melden unter hconnect@deike.cc