Während den letzten Wochen habe ich über diverse Möglichkeiten gelesen, wie der Amazon Echo mit einer Homematic CCU2 verbunden werden kann.
Leider habe ich nirgendwo ein Tutorial gefunden, welche diese Implementation Schritt-für-Schritt aufzeigt. Gestern habe ich mich also selber ans Werk gemacht und war erfolgreich. Gerne liefere ich euch dieses hiermit nach - eventuell erspart es jemandem Zeit, welcher sich vorher noch nicht mit den Möglichkeiten auseinandergesetzt hat.
Meine Ausgangslage:
- CCU2 mit 5 Heizköperthermostaten (2 separat und 3 zusammen in einer Gruppe) und 1 Wandthermostat seit letztem Herbst erfolgreich in Betrieb.
- Letzten Monat ein Amazon Echo Dot gekauft, welcher derzeit nur zur Steuerung von Philips Hue dient.
Mein Ziel:
- Mit dem Amazon Echo die Temperatur der Heizkörperthermostate per Echo Dot Sprachsteuerung zu ändern.
Konzept:
Von einem Homematic Cloud-Dienst möchte ich nicht abhängig sein, deshalb muss eine lokale Lösung her. Auf einem Intel NUC Mini-Computer im Netzwerk läuft ein VMware ESXi Server, der bereits einige virtuelle Maschinen hostet. Auf diesem soll eine weitere virtuelle Maschine mit Linux (CentOS 7) installiert werden, um "openHAB2" darauf betreiben zu können.
Die Sprachbefehle sollen schlussendlich von Amazon Echo über openHAB2 an die CCU2 gesendet werden.
1. Installation von CentOS 7
Erstmal wird eine virtuelle Maschine im VMware ESXi Server angelegt und die CentOS7 Minimal ISO gemounted. Ihr könnt hier natürlich auch eine andere Linux Distribution nehmen; diese auf einem Standalone PC oder Computing-Stick installieren; oder auch einen Raspberry Pi verwenden. Die Befehle, welche ich unten nenne, weichen dann unter Umständen ab.
Auf die Grundinstallation von CentOS 7 gehe ich nicht detailliert ein; lediglich die folgenden Änderungen habe ich in der Setup-Oberfläche vorgenommen:
- Statische IP vergeben und Netzwerkadapter aktiviert.
- Deutsche Zeitzone ausgewählt.
- Schalter für Zeitsynchronisation per NTP aktiviert.
- Deutsche Tastatur eingestellt.
- Vorgeschlagene Partitionierung bestätigt.
Während die Installation läuft, habt ihr Gelegenheit, ein Root-Passwort zu vergeben. Nehmt diese Gelegenheit wahr.
Sollte jemand bei diesem Schritt nicht weiterkommen, meldet euch - ich unterstütze gerne.
2. Vorbereitung des Linux Servers für openHAB2
Einen Hostnamen für den Server vergeben:
Code: Alles auswählen
hostnamectl set-hostname <HOSTNAME>
Code: Alles auswählen
yum update
yum install wget
yum install unzip
yum install java-1.8.0-openjdk
Aktueller Snapshot von openHAB2 herunterladen und entpacken:
Code: Alles auswählen
cd /tmp
wget https://openhab.ci.cloudbees.com/job/openHAB-Distribution/lastSuccessfulBuild/artifact/distributions/openhab-offline/target/openhab-offline-2.0.0-SNAPSHOT.zip
sudo unzip openhab-offline-2.0.0-SNAPSHOT.zip -d /opt/openhab2
Code: Alles auswählen
sudo adduser --system --user-group openhab
sudo chown -hR openhab:openhab /opt/openhab2
Code: Alles auswählen
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --add-port=1900/udp
Code: Alles auswählen
sudo su -s /bin/bash -c '/opt/openhab2/start.sh' openhab
Wählt in der Weboberfläche die "Standard" Installation aus. Danach das "Paper UI".
Gebt openHAB nun etwa 15 Minuten Zeit, damit es sich initialisieren kann.
Falls alles soweit funktioniert, beendet openHAB (vorerst) wieder:
Code: Alles auswählen
logout
Damit openHAB beim Beenden unserer Terminal-Session nicht auch gleich stoppt, installieren wir es als Service.
Wir legen mit folgendem Befehl eine neue Datei an:
Code: Alles auswählen
vi /lib/systemd/system/openhab2.service
Code: Alles auswählen
[Unit]
Description=The openHAB 2 Home Automation Bus Solution
Documentation=http://docs.openhab.org
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=openhab
Group=openhab
GuessMainPID=yes
WorkingDirectory=/opt/openhab2
#EnvironmentFile=/etc/default/openhab2
ExecStart=/opt/openhab2/start.sh server
ExecStop=/bin/kill -SIGINT $MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target
Code: Alles auswählen
sudo systemctl daemon-reload
sudo systemctl enable openhab2.service
sudo systemctl start openhab2.service
Code: Alles auswählen
sudo systemctl status openhab2.service
Bevor wir loslegen, deaktivieren wir auf unserem Linux Server temporär die Firewall:
Code: Alles auswählen
systemctl stop firewalld
Von einem Rechner mit grafischem Interface und Webbrowser im gleichen Netz verbinden wir uns erneut mit der Weboberfläche von openHAB: http://<IP>:8080
Wählt wieder die "Paper UI" aus.
Navigiert links im Menu zu "Add-Ons" und installiert:
- In der Kategorie "BINDINGS" das "Homematic Binding" (für die Kommunikation mit Homematic)
- In der Kategorie "MISC" die "Hue Emulation" (für die Kommunikation mit Amazon Echo)
Nach erfolgreicher Installation, navigiert im Menü nach "Configuration -> Services", wählt oben "IO" aus und klickt bei der "HUE Emulation" auf "Configure". Wählt hier bei "Enable Device Pairing" "Pairing Enabled" aus und klickt auf "Save".
Dies ist nötig, damit der Amazon Echo später unsere Geräte findet. Nun fügen wir unsere Homematic CCU2 hinzu. Im Menü finden wir unter "Inbox" die Möglichkeit, Geräte zu suchen und manuell zu erfassen. Leider wird die CCU2 nicht automatisch erkannt, dies ist aber nicht weiter schlimm. Wir klicken oben auf das weisse "+" auf blauem Kreis, wählen "Homematic Binding" aus und klicken unten auf "Add Manually". Wir möchten eine "Homematic Bridge" hinzufügen. Das wichtigste ist unter "Gateway Address" die IP Adresse der Homematic CCU2 anzugeben. Wir speichern diesen Eintrag mit dem weissen Haken auf blauem Kreis (oben). Es dauert nun einige Minuten, dann werden unter dem Menüpunkt "Inbox" sämtliche von der CCU2 ansteuerbare Geräte gefunden. Alle Geräte, welche wir ansteuern möchten, bestätigen wir mit dem entsprechenden weissen Haken auf blauem Kreis und vergeben einen für uns passenden Namen.
Die zu nutzenden Geräte werden dann zum Menüpunkt "Configuration -> Things" verschoben. Hier können wir auch den für die Ansteuerung nötigen String einsehen. Nun geht es darum, diese Things für den Amazon Echo verfügbar zu machen - sogenannte "Items" zu erstellen.
Dazu legen wir (wiederum auf der Linux Konsole) eine Datei an:
Code: Alles auswählen
vi /opt/openhab2/conf/items/homematic.items
Code: Alles auswählen
<Art des Übermittlungswertes> <Name der Variable> "<Name des Gerätes>" [ "<Wertkategorie>" ] {channel="<String für Ansteuerung>"}
Code: Alles auswählen
Number homematic_liv_temp "Living room thermostat" [ "TargetTemperature" ] {channel="homematic:HM-TC-IT-WM-W-EU:0165d838:MEQxxxxxxx:2#SET_TEMPERATURE"}
Number homematic_bed_temp "Bathroom thermostat" [ "TargetTemperature" ] {channel="homematic:HM-CC-RT-DN:0165d838:LEQxxxxxxx:4#SET_TEMPERATURE"}
Number homematic_off_temp "Office thermostat" [ "TargetTemperature" ] {channel="homematic:HM-CC-RT-DN:0165d838:MEQxxxxxxx:4#SET_TEMPERATURE"}
Mit dem Sprachbefehl "Alexa, set <Name des Gerätes> to 24 degrees" wird der Thermostat entsprechend eingestellt.
Ganz zum Schluss nicht vergessen, die Firewall wieder einzuschalten (für ein erneutes Discovery muss diese wieder deaktiviert werden):
Code: Alles auswählen
systemctl start firewalld
Diverse Links, welche zum Herstellen dieser Lösung beigetragen haben:
-http://docs.openhab.org/installation/linux.html
-http://onesmarthome.de/smart-home-openh ... iguration/
-http://homematic-forum.de/forum/viewtop ... 64&t=33601
Frohe Festtage und einen guten Rutsch ins neue Jahr!
EDIT; 31.12.16, 15:14: Einige Bilder hinzugefügt.