In diesem Tutorial soll es darum gehen, wie es mit ein bisschen Fleiß und Zeitaufwand recht einfach möglich ist das MAX! Heizungssystem in die Smart Home Zentrale einzubinden. Der Vorteil liegt auf der Hand: Es kann dann mit allen Sensoren und Aktionen, welche bereits mit der (Fibaro) Zentrale funktionieren, verknüpft werden.
Was wir brauchen
- Einen Heizkörpferthermostat
- Ein WLAN
- Eine Fibaro Zentrale (oder andere) und Grundkenntnisse über "virtuelle Module"
- Die Software Pimatic mit dem MAX Plugin
- Optional: Fensterkontakte und weitere Thermsostate
Raspbian Image auf dem Raspberry Pi installieren
Hier noch einmal ein kleines Step-by-Step, wie ihr euch das Raspbian Image installiert. Der einfachste und auch komfortabelste Weg zu einem frisch aufgesetzen System.
- Als erstes das Image HERUNTERLADEN - Wir benötigen Raspbian
- Win32DiskImager HERUNTERLADEN
- SD-Karte einlegen und schauen unter welchem Laufwerksbuchstaben sie erkannt wird
- DiskImager starten (als Administrator)
- Das Raspbian ImageFile aus der ZIP auswählen, den Laufwerksbuchstaben auswählen (auf den richtigen Buchstaben achten!)
- Schreiben (Write) Klicken und warten bis die SD beschrieben ist.
- SD ins Raspberry einlegen und dieses per LAN im Netzwerk verbinden
- IP Adresse erfahren (über HDMI oder Router DHCP Log)
- Putty starten und verbinden: (IP: 192.168.XXX.XXX Benutzer:pi Passwort: raspberry) –> das login ist immer dann wieder notwendig, wenn ihr die Verbindung trennt, z.B. bei einem Neustart. Ihr kommt so immer wieder zum Terminal.
Abschließendes Setup & WLAN Installieren
Weiter geht es im Terminal. Dort schließen wir die Installation ab und aktivieren den WLAN-Stick.
Als erstes werdet ihr nach dem verbinden nach dem Login gefragt. Standard nach der Installation ist Benutzer:pi Passwort: raspberry
- Superuser Rechte erlangen
1sudo su - Konfiguration öffnen
1raspi-config - Abarbeiten: Erster Punkt, dann 2. (Benutzerdaten merken) -> Finish -> Reboot: Yes (Neustart)
- Treiber für Wifi installieren>
1sudo wget https://github.com/lwfinger/rtl8188eu/raw/c83976d1dfb4793893158461430261562b3a5bf0/rtl8188eufw.bin -O /lib/firmware/rtlwifi/rtl8188eufw.bin - Die Konfigurationsdatei öffnen für WLAN-Name und Passwort
1sudo nano /etc/wpa_supplicant/wpa_supplicant.conf - Das Folgende am Ende einfügen (bei Putty mit Rechtsklick einfügen):
1234network={ssid="ESSID (Name) Hier eintragen"psk="WiFi Passwort hier"} - So sollte es dann am Ende in etwa aussehen:
- Speichern mit Strg+X->(y)es->Enter
- Neustart mit sudo reboot
Ihr könnt nun wieder wie oben auf dem Router schauen unter welcher IP das Wifi verbunden ist. Das LAN-Kabel kann entfernt werden.
Installation von Pimatic als Hub für MAX! Cube
Das MAX! System an sich ist ein geschlossenes und kann daher nicht via API einfach eingebunden werden. Das wollen wir ändern und genau dafür brauchen wir das Raspberry Pi. Er ist quasi die Softwareschnittstelle zwischen MAX! Cube und der Fibaro Zentrale (oder auch anderer Smart Home Zentrale). Wir können die Heizung dann mit einfachen HTTP-Aufrufen steuern und werden uns einen "Virtual Device" bauen.
- Als erstes über SSH auf dem Raspberry Pi anmelden
- NodeJS installieren
1wget http://nodejs.org/dist/v0.10.24/node-v0.10.24-linux-arm-pi.tar.gz -P /tmp1cd /usr/local1sudo tar xzvf /tmp/node-v0.10.24-linux-arm-pi.tar.gz --strip=1 - Es sollte die aktuelle Version von NODE angezeigt werden “v0.10.24”
1/usr/bin/env node --version - Ins Nutzerverzeichnis wechseln
1cd /home/pi - Verzeichnis für Installation erstellen
1mkdir pimatic-app - In das Verzeichnis installieren
1npm install pimatic --prefix pimatic-app --production - In den Installationsordner wechseln
1cd pimatic-app - Standard Konfiguration kopieren
1cp ./node_modules/pimatic/config_default.json ./config.json - Damit wir Pimatic immer über die Konsole starten können und nicht jedes mal in den Installationsordner müssen, machen wir es global:
In den richtigen Ordner wechseln
1cd /home/pi/pimatic-app/node_modules/pimatic - Und damit systemweit zugänglich machen (dauert etwas länger)
1sudo npm link - Als letztes packen wir die Anwendung noch in den Autostart vom Raspberry Pi, dazu laden wir als erstes ein Startscript, dieses gibt es schon fertig:
In den Nutzerordner wechseln
1cd /home/pi - Das Script downloaden
1wget https://raw.github.com/pimatic/pimatic/master/install/pimatic-init-d - Das Script in den Autostartordner schieben
1sudo cp pimatic-init-d /etc/init.d/pimatic - Das Script bekommt 1. die richtigen Nutzerrechte und wird 2. in die Autostart-Konfiguration eingefügt.
1sudo chmod +x /etc/init.d/pimatic1sudo chown root:root /etc/init.d/pimatic1sudo update-rc.d pimatic defaults - Die Konfigurationsdatei öffnen mit
nano /home/pi/pimatic-app/config.json . Dort dann "username": "" und "password": "" ausfüllen (für das Login im Webinterface. Speichern mit Strg-X,(y)es,Enters. Die Stelle in der Datei sollte dann in etwa so aussehen:
1234567"users": [{"username": "daniel","password": "hallo","role": "admin"}],
Das war es auch schon. Wir können nun per sudo service pimatic start testen ob alles läuft. Im Terminal sollte ein OK erscheinen und Pimatic wurde gestartet. Nun werden erst einmal viele Module installiert, das dauert. Was gerade passiert kann man verfolgen mit:
1 |
tail -f /home/pi/pimatic-app/pimatic-daemon.log |
Ihr solltet, wenn installiert ist alles fertig ist, über den Browser und die IP des Raspberry Pi´s zugreifen können: http://ip_des_RPi:8080 (Als Beispiel, bei mir lautet die komplette Adresse “http://192.168.100.109:8080”). Beim ersten Start dauert es erst einmal über 20 Minuten, das geht später schneller.
Via sudo service pimatic stop wird es wieder beendet. Das sollte immer dann passieren, wenn die Konfiguration bearbeitet wird.
Auf dem Max! Cube
Der MAX! Cube wird erst einmal wie gewohnt eingerichtet. Die Heizregler und Fensterkontakte werden eingebunden und sollten mit dem Cube auch funktionieren. Einen Heiz-Plan sollten wir erst einmal nicht hinterlegen denn wir wollen ja die Steuerung der Fibaro Zentrale überlassen. Ich möchte darauf nicht weiter eingehen, denn der Hersteller dokumentiert das System ausreichend gut. HIER gibt es eine PDF Datei als Leitfaden. Auch in diversen Erfahrungsberichten findet man schöne Anleitungen, wie z.B. HIER.
Pimatic Konfiguration für MAX!
Wenn auf dem MAX! Cube alles schick ist, können wir mit dem Pimatic Gateway weiter machen. Hier müssen wir als erstes das Plugin für die Heizungssteuerung installieren.
- Wieder per SSH auf dem Raspberry Pi einloggen
- Super-User Rechte erlangen
1sudo su - Pimatic anhalten, falls es läuft
1service pimatic stop - Die config.json Datei öffnen
1nano /home/pi/pimatic-app/config.json - Folgenden Abschnitt bei
"plugins": [ hinzufügen. Die IP-Adresse des Cubes anpassen (im Router nach der IP des MAX! Cubes schauen)
12345{"plugin": "max","host": "192.168.X.X","port": 62910}
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107{"//": "Please only change this file when pimatic is NOT running, otherwise pimatic will overwrite your changes.","settings": {"httpServer": {"enabled": true,"port": 80},"database": {"deviceAttributeLogging": [{"deviceId": "*","attributeName": "*","type": "*","interval": "0","expire": "7d"},{"deviceId": "*","attributeName": "*","type": "continuous","interval": "5min","expire": "7d"},{"deviceId": "*","attributeName": "temperature","type": "number","expire": "1y"},{"deviceId": "*","attributeName": "humidity","type": "number","expire": "1y"}],"messageLogging": [{"level": "*","tags": [],"expire": "7d"},{"level": "debug","tags": [],"expire": "0"}]},"authentication": {"secret": "lHtGUbmfJuAHUqjsOvXXLgGCT22HvKJbSqWONBxkkf40n0m5huw28HwSokGqK/HNiAnvr4iGn6VKxXd4dC60wg=="},"httpsServer": {},"gui": {}},"plugins": [{"plugin": "cron"},{"plugin": "mobile-frontend"},{"plugin": "max","host": "192.168.100.120","port": 62910}],"devices": [],"rules": [],"pages": [{"id": "favourite","name": "Favourites","devices": []}],"groups": [],"users": [{"username": "daniel","password": "hallo","role": "admin"}],"roles": [{"name": "admin","permissions": {"pages": "write","rules": "write","variables": "write","messages": "write","events": "write","devices": "write","groups": "write","plugins": "write","updates": "write","database": "write","config": "write","controlDevices": true,"restart": true}}],"variables": []} - Speichern mit Strg-X,(y)es,Enter
- Pimatic wieder starten (das Terminal aber geöffnet lassen)
1service pimatic start
Im Webinterface können wir nun, nachdem das Plugin installiert wurde, über den Log die Komponenten des Cubes auslesen. Wir benötigen ein paar Daten um entsprechende "Devices" in der Config Datei zu erstellen. Je nach dem, welche Geräte am Cube verbunden sind, kann dieser Abschnitt variieren. Ich gehe hier mal das Beispiel eines Heizkörperthermostats durch.
- Im Pimatic Web-Interface oben links auf das Menü, dort dann "Messages" klicken
- Oben links den Button drücken und Häkchen bei Debug setzen.
- Button oben links-Mitte drücken und pimatic-max einblenden.
- Den Informationstext mit dem "debug pimatic-max" Label aus dem Log kopieren und z.B. im Editor speichern (kann etwas dauern).
- Im Terminal Pimatic beenden mit
1sudo service pimatic stop - Pimatic Config.json öffnen und bearbeiten.
1sudo nano /home/pi/pimatic-app/config.json - Die Werte aus eurem log anschauen und je nach Komponente entsprechende Felder in der Config anpassen. Das Schema lautet:
12345678{"id": "bathroomLeft","class": "MaxHeatingThermostat","name": "Bathroom Radiator left","rfAddress": "12345cf","comfyTemp": 23.0,"ecoTemp": 17.5,} - Der daraus resultierende Eintrag (hier noch einmal in der gesamten Config.json) wäre dann:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116{"//": "Please only change this file when pimatic is NOT running, otherwise pimatic will overwrite your changes.","settings": {"httpServer": {"enabled": true,"port": 80},"database": {"deviceAttributeLogging": [{"deviceId": "*","attributeName": "*","type": "*","interval": "0","expire": "7d"},{"deviceId": "*","attributeName": "*","type": "continuous","interval": "5min","expire": "7d"},{"deviceId": "*","attributeName": "temperature","type": "number","expire": "1y"},{"deviceId": "*","attributeName": "humidity","type": "number","expire": "1y"}],"messageLogging": [{"level": "*","tags": [],"expire": "7d"},{"level": "debug","tags": [],"expire": "0"}]},"authentication": {"secret": "lHtGUbmfJuAHUqjsOvXXLgGCT22HvKJbSqWONBxkkf40n0m5huw28HwSokGqK/HNiAnvr4iGn6VKxXd4dC60wg=="},"httpsServer": {},"gui": {}},"plugins": [{"plugin": "cron"},{"plugin": "mobile-frontend"},{"plugin": "max","host": "192.168.100.120","port": 62910}],"devices": [{"id": "thermostatmarius","class": "MaxHeatingThermostat","name": "Thermostat Marius","rfAddress": "078316","comfyTemp": 23.0,"ecoTemp": 17.5,}],"rules": [],"pages": [{"id": "favourite","name": "Favourites","devices": []}],"groups": [],"users": [{"username": "daniel","password": "hallo","role": "admin"}],"roles": [{"name": "admin","permissions": {"pages": "write","rules": "write","variables": "write","messages": "write","events": "write","devices": "write","groups": "write","plugins": "write","updates": "write","database": "write","config": "write","controlDevices": true,"restart": true}}],"variables": []} - Wenn alles fertig ist Speichern mit Strg-X,(y)es,Enter
- Das Schema für einen Fensterkontakt ist übrigens folgendes:
123456{"id": "window-bathroom","class": "MaxContactSensor","name": "Bathroom Window","rfAddress": "12345df"} - Nach dem Speichern Pimatic wieder starten.
1sudo service pimatic start
Die Komponente sollte nun im Webinterface auftauchen. Sollte der Cube nicht erkannt werden kann es auch nötig sein, ihn zwischendurch neu zu starten. Ihr müsst jedes Gerät im Webinterface per "Add Device" zum Bildschirm hinzufügen. Das geht mit dem Zahnrad oben rechts. Mehr Infos zur Handhabung von Pimatic auch in meinem anderen Artikel dazu.
Das war es schon (oder endlich?). Das Thermostat kann nun schon über Pimatic gesteuert werden und somit auch via Smartphone im WLAN. Wir sind hier nur einen kleinen Schritt weiter, denn wir brauchen zumindest die MAX! App nicht mehr und können uns schöne Diagramme zur Nutzung der Heizung im Pimatic ansehen.
Wie geht es weiter?
In Teil 2 zeige ich euch, wie per API die Thermostate in die Fibaro Zentrale bzw. in jede andere Smart Home Box als virtuelles Modul einbindet. Mit einem Beispiel-Script gehe ich kurz auf die Funktionsweise ein. Jeder sollte dann in der Lage sein, ein eigenes kleines Heizsystem individuell zu programmieren.