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.
Hallo !
Wie komme ich zum Teil 2 ?
Hallo danielboe,
ich wäre auch sehr sehr interessiert an dem 2ten Teil, da ich eine Max! Heizungssteuerung besitze und ein Fibaro Home Center 2.
Meine Hoffnungen schwinden aber, dass der 2te Teil noch folgt... Bitte sag mir, dass ich mich irre. :-)
LG,
HabKeinPlan
Hey, das tutorial kommt auf jeden fall. Ich fand es nur im Sommer etwas überflüssig aber jetzt wird es wohl langsam zeit ;)
Grüße
Teil 2 ist übrigens online! Auf gehts in den Winter ;)
Hallo Daniel,
vielen Dank für das tolle Tutorial.
Kannst Du noch das Schema für MAX Wandthermostate und Eco Taster zum Eintragen in die Config von pimatic nachreichen?
Hey Fabian,
die definitionen stehen alle hier:
http://pimatic.org/plugins/pimatic-max/
für den eco taster gibt es aktuell scheinbar keine unterstützung, das wandthermostat sollte gehen.
ein bsp dafür wäre
{
"id": "wall-bathroom",
"class": "MaxWallThermostat",
"name": "Bathroom Wall",
"rfAddress": "12345df"
}
Grüße Daniel
Hallo Daniel,
- welcher Port von pilight wird verwendet 8080 wie in deinem Beispiel angegeben, oder 80?
- was ist zu berücksichtigen, wenn port 80 bereits einem webserver zugewiesen ist?
Danke
Dietmar
Hey Dietmar, ich nutze pilight nicht mehr, weil pimatic die Funktionen eigentlich auch alle beherrscht. Welches von beiden besser ist, ist nicht klar. Aber beide braucht man auf jeden Fall nicht mehr.
Zu deiner Frage: Ich glaube es wird port 8080 genutzt. den kann man in der settings Datei auch anpassen http://www.pilight.org/configuring/settings/
Es dürfte also ohne Probleme auch parallel mit einem Webserver laufen
Grüße Daniel
Schönen guten Abend,
erst mal danke für diese tolle Anleitung!! Sie ist echt toll.
Aber leider habe ich doch ein kleines Problem. Alle installationen sind ohne Probleme abgelaufen. Nur wenn ich meine IP eingebe und den port bei , habe in der config auf 8080 geändert. Passiert nichts. Er findet jedes mal keine Seite.
Ich habe den Pi 2.
Kann es daran liegen das ich auch schon ein andere "webseite" als programm früher mal installiert habe?? picontrol. Diese App dafür Funktioniert auch noch.
Oder liegt es vieleicht daran das der Pi 2 mit dem neuen Betriebssystem we. und nicht jessy einen neuen Ordner braucht dafür??
Also 2 Webserver kann zu problemen führen, das kann ich jetzt leider nicht einschätzen. Da Spielen zu viele Faktoren eine rolle. Sie sollten auf jeden fall auf verschiedenen ports laufen.
Das OS bzw. Das Pi2 sollte nicht hinderlich sein
Grüße
Hallo, Klasse Anleitung. Würde ich auch gern mal versuchen umzusetzen, da die MAX! App wirklich Müll ist. Aber würde die Anleitung auch unter Openelec 6 funktionieren, da mein Mediacenter drauf läuft ?
Hi Leute,...
klasse Anleitung, danke... Ich habe alles so gemacht und ausgeführt wie in der Anleitung beschrieben, finde allerdings in der LOG von pimatic das "Pimatic-MAX" in der dropdown liste....
Hat hier jemand eine Idee woran das liegen kann?
MaxCube funktioniert und das MaxPlugin ist in der config.json
Details kann ich natürlich auch posten,...
LG, Robs
Hallo, ich habe das selbe Problem. Welche Lösung gibt es ?
Guten Tag,
ich habe eine Frage und zwar, warum brauch man diesen Cube? Er ist doch in Prinzip nur die Schnittstelle zwischen Software und Hardware und warum brauch man dazu einen Raspberry Pi, also, was genau spielt er für eine Rolle?
Grüssle Peter
Also ich habe diese Programmierung jetzt bestimmt schon 10 mal gemacht, aber immer kommt bein Start diese Meldung.
Wo liegt der Fehler?
pi@raspberrypi:~ $ sudo service pimatic start
Job for pimatic.service failed. See 'systemctl status pimatic.service' and 'jour nalctl -xn' for details.
Gruß MA
Hey, die Anleitung für Pimatic ist mittlerweile veraltet, denn die Version wurde für node 4.X Umgebaut und befindet sich mittlerweile in Version 0.9. Vermutlich fehlt dir diese passende version von Node. eine Installationsanleitung (aktuell) gibt es auf der pimatic website. zu deinem problem gibt es auch schon diverse beiträge, zb: https://forum.pimatic.org/topic/1964/solved-pimatic-v0-9-autostart-not-functioning/5
Hey DanielBoe,
ein Hinweis, der hier nicht fehlen sollte:
Seit November 16 ist SSH per default in Raspbian deaktiviert.
Um es zu aktivieren, und hier weiter voran zu kommen, muss eine leere Datei ohne Endung mit dem Namen ssh auf der SD liegen.
Unter windows einfach anlegen, unter Linux per touch ssh erzeugen.
Viele Grüße,
Daniel
Also, wenn ich mir den Preis der Fibaro Zentrale ansehe (449€) ist das für mich alles andere als eine Low Budget Lösung. Wird diese Zentrale für die Verwendung mit Max! Thermostaten wirklich benötigt?
Das Frage ich mich auch, was für eine Rolle übernimmt den hier diese zentrale, ich dachte Pimatic übernimmt die Steuerung?
npn ERR: ergo keine istallation möglich