Springe zum Inhalt

Openhab mit Homematic und Zigbee auf dem Raspberry Pi

Nachdem ich hier sowieso einen Raspberry Pi (RPi) rumliegen hatte, wollte ich nun auch in die Heimautomatisierung einsteigen.

Für den Moment sollen damit die Heizungsthermostate und ein paar Lichtspielereien gesteuert werden. Die bisher zusammengekaufte Ausstattung richtete sich mehrheitlich danach wo grade das beste Schnäppchen lauerte.

Für die Heimautomatisierung mit dem Raspberry gibt es inzwischen mehrere Lösungen: OpenHab, Home Assistant und Domoticz.  Meine Wahl fiel auf OpenHab.

Die erste Installation habe ich via Paketmanager auf einem etwas angegrauten Raspian gemacht. Leider lief das nicht stabil. Deshalb habe ich mich dazu entschlossen, alles neu aufzusetzen.

1) Installation von OpenHab

  • Download von Etcher (zum Schreiben des Images auf eine SD-Karte)
  • Download des fertigen openHabian-Images
  • Schreiben des Images.
  • Einsetzen der SD-Karte in den RPi und starten (Der RPi sollte bereits mit einem Netzwerk verbunden sein)
  • Warten... (laut OpenHab 15-45 Minuten) .. ich hatte im Hintergrund einen IP-Scanner laufen und konnte dort sehen, ab wann eine IP über den Port 8080 erreichbar war. Dafür eignet sich z.B. der Eusing Free IP Scanner. Bei mir dauerte es 30 Minuten.
  • Der RPi bezieht seine IP via DHCP automatisch und ist zum Schluss über's Web unter http://openhabianpi:8080 erreichbar. Kurz schauen ob es läuft, dann die Option Recommended wählen. Dadurch werden die Paper UI und andere Komponenten installiert.

Für meine Zwecke habe ich noch einige Einstellungen angepasst. Dazu habe ich mich mit PuTTY per SSH angemeldet.

Standarduser: openhabian
Standardkennwort: openhabian

2) Linux-/Netzwerkeinstellungen anpassen

  • Neuen Nutzer mit sudo-Rechten anlegen: Ich wollte wieder einen pi-Nutzer wie er bei Raspbian standardmäßig eingerichtet wird. sudo adduser pi. Die sudoers-Datei unter /etc/sudoers.d/ für den User pi ist bei Openhabian noch vorhanden. Also ist dort nichts zu weiter tun. (Doku: Nutzer anlegen).
  • Root-Kennwort ändern. sudo su , passwd, exit
  • Hostnamen ändern: klappt mit sudo hostname nur bedingt. Stattdessen empfiehlt es sich, die relevanten Dateien direkt zu bearbeiten. sudo vi /etc/hostname und dort den Namen bearbeiten, anschließend sudo vi /etc/hosts und dort den Namen hinter der Zeile mit der IP 127.0.1.1 bearbeiten. Anschließend mit sudo reboot neustarten.
  • Feste IP einstellen: sudo vi /etc/dhcpcd.conf Ich verwende die 192.168.11.191 für die LAN (eth0) Schnittstelle
    interface eth0
    static ip_address=192.168.11.191/24
    static routers=192.168.11.1
    static domain_name_servers=192.168.11.1 9.9.9.9

    Anschließend sudo reboot

  • Deaktivieren des SSH-Zugriffs per Kennwort für den User openhabian: sudo vi /etc/ssh/sshd_config
    Match User openhabian
    PasswordAuthentication no
    Match all
    

    Neustart des Dienstes: sudo service ssh restart

3) Homematic mit Homegear einrichten

Für die Schnittstelle zu Homematic habe ich nach dem Durchwühlen der Foren etwas schönes gefunden : den CC1101 als steckbares Modul ... mehr Infos gibt's im zugehörigen Blogartikel.

Möglicherweise muss SPI dafür erst mit dem Tool raspi-config (unter Interfacing Options) aktiviert werden.

Die Schnittstelle zu OpenHab bildet Homegear.

Das wird laut Anleitung installiert (für Raspbian Stretch!):

apt install apt-transport-https
wget https://apt.homegear.eu/Release.key && apt-key add Release.key && rm Release.key
echo 'deb https://apt.homegear.eu/Raspbian/ stretch/' >> /etc/apt/sources.list.d/homegear.list
apt update
apt install homegear homegear-nodes-core homegear-management
apt install homegear-homematicbidcos homegear-homematicwired homegear-insteon homegear-max homegear-philipshue homegear-sonos homegear-ipcam homegear-kodi homegear-beckhoff homegear-knx homegear-enocean homegear-intertechno homegear-nanoleaf homegear-ccu2 homegear-mbus homegear-influxdb

Anschließend den Raspberry herunterfahren, das Modul aufstecken und wieder einschalten. Dann das Modul aktivieren indem man die Einstellungen anpasst: sudo vi /etc/homegear/families/homematicbidcos.conf

[TI CC1101 Module]
id = My-C1101-Module
default = true
deviceType = cc1100
device = /dev/spidev0.0
responseDelay = 100
interruptPin = 0
gpio1 = 25 

Zuguterletzt service homegear restart

Jetzt kann man zurück zum Webbrowser und OpenHab. Dort öffnen wir die Paper UI. Unter Add-ons > Bindings muss das Homematic Binding hinzugefügt werden.

Nach der Installation muss die Bridge als Thing hinzugefügt werden.  Dazu geht man in der Inbox auf Add > Homematic Binding > Add Manually.  Es genügt hier als Gateway Address die 127.0.0.1 einzutragen. Die übrigen Einstellungen kann man auf ihren Standardwerten belassen. Hat alles funktioniert, tauchen in der Inbox automatisch die Gateway-Extras auf.

4) Einrichten von Homematic Geräten in OpenHab

Dazu müssen gibt es den Install Mode. Um ihn aktivieren zu können, muss zuerst der entsprechende Channel verknüpft werden.  Unter Configuration > Things > HM-GATEWAY-EXTRAS klickt man dazu auf den kreisrunden Link vor dem Namen und wählt dann Create new item. Die vorgegebenen Einstellungen kann man stehen lassen und direkt auf Link klicken.

Anschließend kann man den Install Mode aktivieren und beim Thermostat zum Anlernen 3 Sekunden die Boost-Taste drücken. Das Thermostat erscheint dann automatisch in der Inbox.

Mit Klick auf das Häkchen wird das Gerät hinzugefügt.  Auch hier werden dann wieder die gewollten Channels verbunden um sie unter Control verfügbar zu machen.

OpenHab Homematic Thermostat

5) Zigbee-Stick installieren

Mir waren die in Deutschland verfügbaren fertigen Zigbee-Sticks mit Preisen um die 50 Euro zu teuer, daher habe ich mir "nackte" Sticks direkt in China bestellt. Diese haben den kleinen Nachteil, dass man sie selbst programmieren muss. Stick+Programmer bekommt man dafür unter 20 Euro und es befriedigt zusätzlich den Spieltrieb. Dazu gibt es einen eigenen Blog-Artikel: Zigbee-Stick programmieren.

Der fertige Stick wird an einen beliebigen USB-Port gesteckt. Eine leuchtende LED ist ein guter Indikator dafür, dass das Gerät erkannt wurde. Am Besten überprüft man dies durch die Eingabe vom dmesg. Die Ausgabe sollte so aussehen:

dmesg

Der Raspberry hat das Gerät erkannt und verwendet den Treiber cdc_acm (CDC = Communications Device Class, ACM = Abstract Control Model), d.h. wir können über den seriellen Anschluss (in diesem Fall ttyACM0) zugreifen. So weit, so gut. Falls das Gerät dort nicht auftaucht, kann mit lsusb geprüft werden ob überhaupt etwas am USB erkannt wurde. Falls dem nicht so ist, ist das Programmieren vielleicht schief gelaufen und sollte wiederholt werden.

Mit ls /dev/tty* kann geprüft werden ob die Schnittstelle vorhanden ist.

Im Normal sollten zwei Schnittstellen auftauchen. ttyACM0 ist dabei der Stick, ttyAMA0 ist die serielle Konsole des Raspberrys, die uns nicht weiter interessiert. Man sieht, dass ttyACM0 nur vom Nutzer root und der Gruppe dialout verwendet werden darf. Wir müssen dem Nutzer openhab also mit sudo adduser openhab dialout noch entsprechende Rechte einräumen.  Mit id openhab lässt sich prüfen ob alles geklappt hat.

6) ZigBee-Binding installieren

  • Unter Add-ons > Bindings nach Zigbee suchen und installieren 
  • Unter Inbox > Search for things > Zigbee Binding  den CC2531EMK Coordinator wählen
  • Unter Port /dev/ttyACM0 eintragen
  • Speichern und ein paar Sekunden warten bis das Gerät online kommt. 

7) Einrichten eines Zigbee- / Hue- / Lightify-Geräts in OpenHab

Zum Testen pairen wir unsere erste Glühbirne. Da ich diese schon einmal mit meiner alten Installation eingerichtet hatte musste ich sie zuerst umständlich zurücksetzen. Danach auf Inbox > Search for things > Zigbee Binding. Nach kurzer Zeit taucht die Birne auf. Es kann noch etwas länger dauern bis der Gerätename korrekt angezeigt wird. Mit Klick auf den Haken wird die Birne hinzugefügt.

Noch schnell die Channels mit Klick auf die leeren Kreise verbinden.

Und schon können wir unter Control die "Glühbirne" steuern.

8) Neustarten des Raspberry

Zum abschließenden Test sollte der Raspberry neu gestartet werden. Nur wenn nach dem Neustart alles noch so funktioniert wie vor dem Neustart war die Installation tatsächlich erfolgreich. Davor würde ich keine weiteren Geräte pairen. Macht bloß Arbeit falls etwas schief läuft. Danach (!) ein Backup von der SD-Karte anlegen.

Raspberry Pi mit CC2531 Zigbee und CC1101 Homematic
Der (vorerst) fertige Raspberry Pi

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.