Ich hätte es wissen müssen, die vielen Euronen für den wahrlich schlechten Mediola Creator Neo waren für’n Allerwertesten. Nicht so für die CCU und HomeMatic. Ein Ubuntu mehr als VM und die herrlich stabil laufende Software #homebridge von nfarina bin ich noch glücklicher und habe ein besseres UI, welches – man staunt – sogar auf mein Wort hört. Sogar, wenn ich nicht zuhause bin, weil ich nämlich mit einem AppleTV4 – ohne es zu wissen – schon das passende Gerät zuhause hatte.
Update 18.12.2017 – Hinweise zu SystemD und Ubuntu 16.04
#update: Im Moment ist mir ein kleines „Sicherheitsproblem“ aufgefallen, mehr dazu hier: Link.
Ich kann so ziemlich alles machen, was ich will. Und einbetten lässt sich nicht nur meine HomeMatic, sondern auch meine Sonos-Boxen und Logitech Harmony Smart. Alles Dinge, die mich bei Mediola richtig viel Geld gekostet hätten. Und das UI, welches mir Apple bietet, ist schöner als ich es jemals hätte selbst bauen können. Außerdem hört es auf mich:
Und ich kann verschiedene Programme definieren, z.B. wenn ich das Haus verlasse oder zurück komme, oder wenn ich aufwache. Das geht alles so supersimpel, ohne massiven Konfigurationsaufwand, so dass ich mir einen ganzen Rutsch von Programmen in der CCU selbst sparen kann.
Willst Du auch? Geht recht simpel. Was brauchst Du dafür? N‘ Raspberry oder eine VM. Die Variante Raspberry findest Du hier: Klick
Die Variante Ubuntu VM für HomeMatic, Sonos und Logitech Harmony Hub schreibe ich Dir kurz auf.
Du konfigurierst irgendwo (QNAP, Synology, ESXI, Proxmox) eine VM Ubuntu 16.04 LTS Server (1CPU mit 1GB und 40GB VHD). Problematisch war für mich lediglich, die passende NodeJS zu finden, sowie die passende Distro. Im Moment klappt’s mit Node 6 und Ubuntu 16.04 LTS.
Alle Befehle mit passendem SUDO
apt-get update && apt-get upgrade curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - apt-get install libavahi-compat-libdnssd-dev apt-get install nodejs npm install -g --unsafe-perm homebridge npm install -g homebridge-homematic npm install -g homebridge-sonos npm install -g homebridge-harmonyhub
Je nachdem von wo oder durch welchen User Du „homebridge“ startest, solltest Du die config.json adäquat speichern. Für systemctl z.B. sollte sie in nachfolgendem Pfad liegen, dazu legst Du diesen an:
mkdir /var/lib/homebridge chmod -R 0777 /var/lib/homebridge
So sieht meine „config.json“ in „/var/lib/homebridge“ (Beispiel) aus:
{ "bridge": { "name": "Homebridge-Mac", "username": "CC:22:3D:E3:CE:30", "port": 51826, "pin": "011-22-333" }, "description": "CCU", "platforms": [{ "platform": "HomeMatic", "name": "HomeMatic CCU", "ccu_ip": "xxx.xxx.xxx.xxx", "subsection": "Homekit", "doors": [], "filter_device": [], "filter_channel": [], "programs": [], "variables": [], "outlets": [] }, { "platform": "HarmonyHub", "name": "Harmony Hub" } ], "accessories": [ { "accessory": "Sonos", "name": "Schlafzimmer Sonos", "room": "Schlafzimmer" }, { "accessory": "Sonos", "name": "Küche Sonos", "room": "Küche" }, { "accessory": "Sonos", "name": "Wohnzimmer Sonos", "room": "Wohnzimmer" }, { "accessory": "Sonos", "name": "Büro Sonos", "room": "Büro" }, { "accessory": "Sonos", "name": "Badezimmer Sonos", "room": "Badezimmer" } ] }
Hier tauschst Du nur noch die korrekte IP für die CCU aus und passt für Deinen Harmony Hub und Deine Sonos Boxen an. Weitere Hinweise zur config.json weiter unten.
Anschließend legst Du den Nutzer „homebridge“ an:
sudo useradd -M --system homebridge
unter „etc/default“ liegt die nachfolgende Datei „homebridge“:
# Defaults / Configuration options for homebridge # The following settings tells homebridge where to find the config.json file and where to persist the data (i.e. pairing and others) HOMEBRIDGE_OPTS=-U /var/lib/homebridge # If you uncomment the following line, homebridge will log more # You can display this via systemd's journalctl: journalctl -f -u homebridge # DEBUG=*
und unter „/etc/systemd/system“ liegt nachfolgende Datei „homebridge.service“:
[Unit] Description=Node.js HomeKit Server After=syslog.target network-online.target [Service] Type=simple User=homebridge EnvironmentFile=/etc/default/homebridge # Adapt this to your specific setup (could be /usr/bin/homebridge) # See comments below for more information ExecStart=/usr/bin/homebridge $HOMEBRIDGE_OPTS Restart=on-failure RestartSec=10 KillMode=process [Install] WantedBy=multi-user.target
Anschließend sagst Du systemd bescheid und startest den Dienst homebridge:
systemctl daemon-reload systemctl enable homebridge systemctl start homebridge
mit nachfolgendem Befehl kannst Du herausfinden, ob alles gut ist:
systemctl status homebridge
Ein paar Hinweise noch:
- In Sonos müssen die Räume adäquat sein, so dass sie zu Deiner Umgebung passen, dann werden die Boxen in den passenden Räumen ebenfalls gefunden. Ein Ü für Küche oder Büro ist jeweils kein Problem.
- Hast Du mehrere Harmony Hubs, müssen sie adäquat benannt sein.
- In JSON musst Du auf das korrekte Schließen und Öffnen achten, sonst fliegt Dir homebridge um die Ohren.
Nach der Einrichtung über Pin (Wird automatisch in der Home UI gefunden) kannst Du alle Räume korrekt zuordnen und findest auch gleich alles auf Deinen anderen iOS Geräten wieder. Hast Du Dich mal vertan und aus Versehen in Home Deine Homebridge gelöscht, musst Du den Ordner „persist“ neben Deiner config.json löschen und kannst von vorne beginnen.
Ist Dein AppleTV4 eingeschaltet, so brauchst Du nichts weiter zu konfigurieren und kannst auch von der Ferne aus schalten und walten:
Ach, das war herrlich einfach. Es klappt und das Ding von nfarina ist wunderbar stabil. Schwierig war für mich lediglich, die passende node.js Version zu finden, aber das ist bei mir und dem Ding ja immer so. Alles andere ging wie von selbst. Perfektes Ergebnis.
Passende Quellen:
- Ubuntu 16.04 LTS Server: Link
- NodeJS 6 – Via Package Manager: Link
- Homebridge: Link
- Homebridge Sonos: Link
- Homebridge Harmony: Link