Website-Icon Dein Smart Home Blog

MySensors Arduino Framework - Kabellose Sensoren im Eigenbau

MySensors Tutorial Titel

Die Überschrift klingt kompliziert? Ja, etwas technisches Verständnis ist hier nötig! Wer sich aber durch meine Pimatic Tutorials gefunden hat, kann hier einen Schritt weiter gehen.

Einführung in MySensors

Eigene Sensoren? Wow, das geht? Klar geht das! Alles was Z-Wave und co. kann, gibt es auch als Open Source Variante. Und damit sind diesmal nicht die China Steckdosen aus dem Baumarkt gemeint. Mit dem richtigen Verständnis lässt sich hier ein hochintelligentes und funktionales Smart Home Ökosystem von Grund aufbauen, sehr günstig und komplett individuell.

Was ihr dafür braucht

Die Komponenten gibt es meist bei Amazon oder auch billiger aus China über Ali-Express (3-4 Wochen warten). Ich kann die Bestellung aus China nur empfehlen, freue mich aber, wenn ihr über die Afiliate Links bei Amazon kauft. Kostet Euch nichts extra und wir bekommen eine Kleinigkeit für die Mühe!

Für das Tutorial benötigt ihr Grundlagenwissen in der Programmiersprache C und es ist auch von Vorteil schon einmal mit dem Arduino gearbeitet zu haben. Ich werde den Umgang mit der Arduino IDE und die Details zum Quellcode nicht von null erklären, das sprengt hier einfach den Rahmen. Wie immer kommt man aber vermutlich mit "Copy & Paste" zum Ziel. So soll es auch sein und wer Schwierigkeiten hat, melde sich bitte in den Kommentaren oder im Forum. Dafür sind sie bzw. es da.

Was ihr dafür bekommt

In diesem Tutorial 2 per Web-GUI oder RestAPI schaltbare Relais und eine Zentrale, die mit vielen weiteren Sensoren oder auch (siehe andere Tutorials) 433 Mhz Komponenten erweitert werden kann. MySensor bietet ein Mesh Network und eine bidirektionale Kommunikation und steht damit Z-Wave in kleinster Weise nach. ihr habt nun außerdem die Option Sensoren zu kreieren, die es so noch gar nicht gibt. Wie wäre es mit einer Steckdose mit integriertem Temperatursensor und Geräuschmessung? Die kommt dann ins gleiche Schlafzimmer, in dem der 1 jährige Schreihals liegt...

Der Gateway am Raspberry Pi

Als Erstes bauen wir unseren Server, das ist noch nicht allzu kompliziert. Auf dem Raspberry läuft bereits Pimatic und ihr habt im Idealfall schon einmal das 433 Mhz Tutorial absolviert. Sonst dieses wenigstens einmal lesen.

Wir bauen uns einen "Serial-Gateway". Der Arduino wird via USB an den Raspberry angeschlossen. An ihm befindet sich wiederum das FunkModul NRF. Der Arduino dient hier also als "Übersetzer" für Pimatic. Wenn Pimatic "Sensor 1 Einschalten" sagt, wird dies per USB-Serial an den Arduino übertragen und dieser sendet es dann per Funk. Warum nicht gleich das Funkmodul an den Raspberry, werden sich hier vielleicht die Ersten fragen. Das Betriebssystem vom Pi läuft nicht in Echtzeit und eignet sich auch sonst weniger für eine direkte Hardware-Ansteuerung. Die Zuverlässigkeit wird hier also, zum Preis von 5€ des Arduinos, erheblich gesteigert. Wer sich die direkte Hardware-Variante des Gateways ansehen will, diese gibt es selbstverständlich auch hier zum nachlesen.

Also auf gehts. Wir flashen jetzt die Firmware auf den Arduino, welcher dann per USB an den Raspberry kommt. Eventuell benötigt ihr einen Serial Treiber für den Arduino, wenn er einen CH340 Chipsatz hat. Diesen gibt es hier für Win/OSX/Linux zum Download.

Variante 1 für die Faulen

Wir nutzen Codebender direkt aus dem Chrome Browser. Dafür muss ein Plugin installiert werden. Die Konfiguration ist selbsterklärend. Unter dem Quellcode wird der Arduino ausgewählt (Arduino Nano 328 in diesem Tutorial) und rechts davon der Serial Port, mit welchem er verbunden ist. Dann "Run on Arduino" drücken. Das Flashen beginnt, der Arduino sollte nun blinken und beschrieben werden.

Für die Installation via Codebender wird das Codebender Plugin benötigt

Variante 2 für die Geeks

Wer sich auch in Zukunft weiter damit beschäftigen möchte oder den Code anpassen will, sollte gleich in der Arduino IDE arbeiten. Diese gibt es HIER.  MySensors muss dann in das /librarys Verzeichnis der Arduino IDE kopiert werden und der Sketch aus dem Beispiel oben kann kompiliert werden. Die libraries gibt es HIER. Den Sketch zum Kompilieren, fertig für die IDE, gibt es HIER. Sollten Fehler auftreten, habt ihr sicher die Libs nicht richtig installiert. Hier ein kleine Video, wie es geht:

[youtube url="https://youtu.be/Nz2CQyqEMfA" hd="1" showinfo="0"]

MySensors Gateway anschließen

Da Bilder immer am schönsten sind, gibt es eine Grafik, wie das NRF - Funkmodul angeschlossen wird. Zu beachten, dass ihr nicht 5V mit 3,3V verwechselt und auch nicht GND und 3,3V vertauscht. Beides führt zur sofortigen Detonation :) Der Arduino mit angeschlossenem Funkmodul wird dann an den Raspberry Pi gesteckt.

Verbindung von Arduino und NRF-Modul

Installation und Konfiguration mit Pimatic

Nachdem wir nun den Arduino gebaut und programmiert haben, wird er an das Raspberry Pi via USB angesteckt. Raspbian erkennt ihn dann als USB Device unter /dev/ttyUSB0 (Manchmal auch ttyUSB1 usw.). Wir verbinden uns per SSH mit dem Pi und beenden Pimatic via sudo service pimatic stop , sollte es laufen. Als Nächstes wird die Pimatic config geöffnet via sudo nano ~/pimatic-app/config.json . Hier fügen wir 1. die Initialisierung des MySensors Moduls ein und 2. die Devices, welches später unser Relais Akteur wird.

Unter Plugins also den mysensors Part:

Der Pfad bei "serialDevice" ist euer Arduino. Checkt einfach mit ls /dev/ | grep ttyUSB  ob der Arduino auch an USB0 ist und passt gegebenenfalls an.

Unter devices den Switch:

Was es hier mit nodeid und sensorid auf sich hat, erfahrt ihr noch später.

Eine komplette und funktionierende Config mit diesem Beispiel gibt es auch wieder HIER.

Mit angestecktem MySensors Gateway starten wir nun Pimatic via  sudo service pimatic start . Im WebGUI können wir oben rechts auf das Zahnrad klicken und dann "Add a new item" klicken. Hier sollten jetzt Switch1 und Switch2 auftauchen. Mit dem + Symbol fügen wir sie zu unserer Startseite. Das Ganze sieht dann so aus:

Pimatic GUI mit 2 MySensors Switches

Um Noch einmal den Gateway zu checken, kann man sich die Log-Datei ansehen. Einfach auf das Zeichen links neben dem Haken (im Bild oben 414 Errors) klicken und im Dropdown links "Info" anhaken und daneben "pimatic-mysensors" auswählen.

MySensors Log

Ausblick auf Teil 2 und Teil 3

Glückwunsch, auf der "Server - Seite" ist nun alles fertig. Zumindest für unsere 2 Relais. Wie der passende Wireless Sensor programmiert und aufgebaut wird, erfahrt ihr schon bald in Teil 2.

In Teil 3 wird es dann um allgemeines zu MySensors gehen. Ich gebe ein paar Tipps zu anderen Sensoren und zur Hardware. Also bleibt dabei.

Die mobile Version verlassen