Pimatic habe ich bereits viel früher vorgestellt, seit dem hat sich aber schon viel geändert. Das Plugin Pilight gibt es im Zusammenspiel leider nicht mehr und wir müssen einen anderen Weg einschlagen. Dieser ist übrigens kein Schlechter, denn Pimatic hat jetzt ein eigenes Plugin für die 433 Mhz Komponenten. Das Beste: Es gibt sogar eine Variante ohne Umbaumaßnahmen und zusätzliche Kosten. Das Einzige was ihr braucht, ist etwas Zeit.
Was wir brauchen
Wer bereits Teil 2 der Tutorial Serie absolviert hat, braucht eventuell GAR KEINE Einkäufe tätigen. Der Umstieg lässt sich via Software realisieren. Ich erkläre hier später, warum es trotzdem viele Punkte gibt, welche für die Arduino gesteuerte Variante sprechen. Die Umbaukosten belaufen sich auf 5-10€. Für unser Projekt reicht dieser günstige und komplett kompatible Nachbau:
- Arduino Nano (ATmega 328P) (ca. 6€) Amazon
Wer ganz neu anfängt, hier noch einmal eine Liste
- Ein WLAN
- RF Sender und Empfänger (2-15€) Links: DealExtreme, Conrad
- Schrumpfschlauch (5€) Links: Amazon
- Schaltdraht (3€) Links: Conrad
- Brettchen als Unterlage
- Verbinder (6€) Links: Conrad
- Funksteckdose(n) (5-10€/Stk.) Links: Amazon
- Lötkolben + Zinn (12€/Set) Links: Amazon
Raspberry Pi Installation
Für die Installation von Raspbian auf dem Raspberry Pi nutzt einfach das Tutorial vom MAX! Cube. http://siio.de/heizenenergiesparen/heizungssteuerung-max-raspberrypi-low-budget-solution-1/
Diese Schritte müssen als Erstes abgearbeitet werden
- Raspbian Image auf dem Raspberry Pi installieren
- Abschließendes Setup & WLAN Installieren (Optional - Wenn ihr WiFi bzw. W-Lan braucht)
Installation von Pimatic
Ich habe diese Schritte schon in anderen Tutorials angegeben, hier aber noch einmal der komplette Ablauf, damit niemand suchen muss:
- 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 denInstallationsordner 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 alles fertig installiert 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.
Das neue "homeduino" Plugin im Detail
Wer meine Tutorials kennt, weiß, dass Pimatic bis jetzt Pilight zur Lichtsteuerung verwendet hat. Das ist mit aktueller Pilight Version nicht mehr möglich. Ob sich die Entwickler hier in die Haare bekommen haben oder ob einfach jedes Tool seinen eigenen Weg gehen möchte - Man weiß es nicht. Wir wollen uns hier mit Pimatic beschäftigen, welches nach wie vor sehr mächtig, einfach und vielseitig ist. Das Wichtigste zuletzt: Die Steuerung von 433 Mhz Komponenten funktioniert weiterhin, Zusatzhardware braucht ihr nicht unbedingt und die Implementierung funktioniert besser denn je. Wer noch einen Schritt weiter in Richtung Stabilität und minimalen Stromverbrauch gehen will, kann ein Arduino als “Funkzentrale” verwenden. Vorteil ist, dass der Raspberry Pi sich nur um die Steuerung, nicht um die Generierung von Funkcodes und Low-Level Befehlen kümmern muss. Das Resultat: Eine wesentlich stabilere und zuverlässigere Schaltung der 433 Mhz Komponenten. Meiner Meinung nach auch besser als Pilight. Schauen wir uns beide Möglichkeiten im Detail an.
(a) Installation ohne Zusatzhardware
Die erste Variante erledigt alle Anforderungen wie gehabt auf dem Raspberry Pi. Der 433 Mhz Sender und Empfänger wird an das Raspberry Pi angeschlossen.
Wenn ihr dieses Tutorial abarbeitet, könnt ihr alles wie im Bild machen. Wenn ihr die Anschlüsse anders nutzen wollt, geht das auch. Ihr müsst später in die Config Datei die passenden Pins eintragen. Die Nummern noch einmal in der nachfolgenden Grafik. Wir nutzen Pin 0 für den Empfänger und Pin 1 für den Sender.
- Wenn alles verkabelt ist, geht es weiter mit der Konfiguration. Wichtig ist, dass Pimatic vorher im Terminal beendet wurde.
1sudo service pimatic stop - Die Config Datei öffnen
1sudo nano /home/pi/pimatic-app/config.json - bei Plugins hinzufügen:
1234567{"plugin": "homeduino","driver": "gpio","driverOptions": {},"receiverPin": 0,"transmitterPin": 1} - Speichern mit Strg-X,(y)es,Enters und Pimatic wieder starten
1sudo service pimatic start
Auf gehts zum Web GUI über den Browser und im Menü links den Punkt Messages auswählen. Auf das runde Feld “Info, Warn, Error” links klicken und den Haken bei “Debug” setzen. Wenn ihr euren Empfänger verkabelt habt und mit der 433 Mhz Fernbedienung nah genug an diesem seid, sollten beim Drücken einer Taste einige Zeilen angezeigt werden. Probiert hier ein wenig herum und schaut, wie sich die Felder beim Drücken von “Ein” und “Aus” ändern. Findet eine Ausgabe mit “switch”, wo sich der Wert true und false entsprechend bei ein und aus ändert. Das ist höchstwahrscheinlich der richtige Code für eure Steckdose. Diesen dann kopieren bzw. irgendwo sichern (am besten den ganzen Log). Wir brauchen diese Daten später für die Config Datei. Ein Beispiel von mir: Ich habe mich hier für “switch4” entschieden.
(b) Installation mit Zusatzhardware (Arduino)
Das Vorgehen hier ist im allgemein nicht großartig anders als bei der Variante oben. Wir nutzen nur noch einen kleinen Arduino als Filter für die Funkkommandos. Das bietet sich an, da die Hardware des Raspberry dann nicht unnötig belastet wird. Außerdem ist der Arduino für diese Aufgabe wesentlich besser geeignet und arbeitet zuverlässiger. Als erstes wieder das Bild zur Verkabelung am Arduino:
Wir nutzen Pin D2 (Config Pin 0) für den Empfänger und Pin D4 (Config Pin 4) für den Sender. Das solltet ihr erst einmal genau so tun. Der Arduino Nano wird dann per USB Kabel an den Raspberry Pi verbunden. Dann geht es im Terminal weiter:
- Ins Home Verzeichnis
1cd /home/pi/ - Mit dem Befehl alle benötigten Programme installieren
1sudo apt-get install arduino-core avr-libc avrdude binutils-avr gcc-avr libconfig-yaml-perl libftdi1 libyaml-perl screen python-serial - die aktuelle homeduino Version herunterladen
1sudo git clone --recursive https://github.com/pimatic/homeduino.git - nach dem download ins Verzeichnis
1cd homeduino - Pimatic beenden, falls noch nicht geschehen
1sudo service pimatic stop - Das Image auf den Arduino überspielen
1sudo make upload - Wenn alles funktioniert hat, kommt in etwa diese Ausgabe im Terminal:
- Der Arduino ist jetzt bereit und kann in der Pimatic Konfiguration angegeben werden. Hierzu öffnen wir diese als erstes:
1sudo nano /home/pi/pimatic-app/config.json
12345678910{"plugin": "homeduino","driver": "serialport","driverOptions": {"serialDevice": "/dev/ttyUSB0","baudrate": 115200},"receiverPin": 0,"transmitterPin": 4}
Das Auslesen der Codes funktioniert wie oben beschrieben ohne Arduino über das Web GUI. Als kleines Feedback sieht man hier noch die LED für Serial am Arduino blinken, wenn etwas empfangen wird. Der Kleine sendet unsere Daten an das Raspberry, Glückwunsch!
Erstellen von Geräten zum Senden
Die eingelesenen Codes nutzen wir nun, um ein Gerät für das Web GUI zu erstellen. Das kennen einige vielleicht bereits aus Pilight, für andere ist es möglicherweise komplett neu. Schritt eins wie immer: Pimatic beenden!
Die Config Datei öffnen
1 |
sudo nano /home/pi/pimatic-app/config.json |
Dort dann unter devices eintragen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
{ "id": "stecker1", "name": "Stecker Licht Zimmer", "class": "HomeduinoRFSwitch", "protocols": [ { "name": "switch4", "options": { "unit": 9, "id": 0 } } ] }, |
- ID: kann freige wählt werden, keine Leerzeichen, Sonderzeichen etc.
- NAME: Der Angezeigte Name im WebGUI. Hier gehen auch umlaute etc.
- name, unit und id bei “protocols” werden aus den ausgelesenen Daten des Logs ausgefüllt.
Es kann auch sein “unit” & “id” werden in “houseCode” und “unitCode” angepasst. Das seht ihr alles im Log, welchen wir vorher aufgezeichnet haben. Das Beispiel ist so ausgefüllt, wie es im log oben durch meine Fernbedienung angezeigt wurde. Diese Schritte können natürlich für beliebig viele Komponenten wiederholt werden. Wenn alles eingetragen ist Speichern mit Strg-X,(y)es,Enters und Pimatic wieder starten.
Auf der Weboberfläche jetzt das Zahnrad oben rechts, "add Device" und dann die Steckdose hinzufügen. Fertig, Pimatic kann jetzt die Steckdose steuern. Weitere Informationen zur Funktionsweise und weitere Möglichkeiten mit Pimatic gibt es in der Tutorial Serie. Die Bedienung ist die Gleiche geblieben.
Zusammenfassung
Wir konnten hier mit wenig Aufwand auf das “neue System” von Pimatic umstellen. Dieses wird in Zukunft weiter entwickelt und mit jedem Update stabiler. Ich kann nur die Variante mit dem Arduino empfehlen, denn die 7€ Mehraufwand tragen erheblich zur Stabilität und Zuverlässigkeit bei. Kleiner Nebeneffekt: Ihr müsst nicht am Raspberry Pi herumbasteln und Löten. Sollte mal etwas schief gehen, muss nur der 7€ Arduino getauscht werden.
Hilfreiche Links
Forum der Entwickler (englisch)
Es gibt im pimatic Forum einen howto Bereich, wo die Installation nochmals genau erklärt wird.
Für alle die mit Linux noch nicht richtig warm geworden sind, empfehle ich auf jeden Fall erstmal den Installer zu nutzen.
Die Facebook Seite der Entwickler
Liken und Teilen! ;)