MySensors Arduino Framework - Kabellose Sensoren im Eigenbau

MySensors Tutorial Titel
Geschrieben von danielboe

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.

Arduino MySensors Pins

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

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

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.

Diesen Blogpost hat geschrieben ...

danielboe

Hi, ich bin Daniel, Geschäftsführer bei der "Smarthome Agentur UG" und mein Leben dreht sich rund um Technik seit ich denken kann. Mein Interesse gilt neuen Trends, welche den Alltag erleichtern. Dinge zu verstehen und sie noch besser zu machen ist mein Motto.
Wenn ich gerade nicht der Informatik Nerd bin, höre ich Musik, fahre Fahrrad oder treffe mich mit Freunden.

20 Kommentare

  • Hi,
    Sicherlich kann man diese Sensoren auch mit einem FibaroFensterkontakt oder Universal Sensor (UBS) koppeln und ins HC2 integrieren, oder?
    Ich suche nämlich immer noch etwas zur Füllstandsmessung meiner Zisterne....
    Und bei Deinen Links gab es einen Ultraschallsensor.....
    Gibt es bei der Auswahl der Sensoren/Anschluss an den Fenstetsensor etwas grundsätzliches zu beachten?

    VG Hoggle

    • Hey, ein Ultraschallsensor funktioniert grundsätzlich erst einmal nicht mit dem Fensterkontakt. Du kannst einen Arduino so programmieren, dass er einen Pin ab Wert X schaltet (Fensterkontakt). ooooder du wartest noch ein paar Tage, denn mit dem Z-Uno wird es bald einen komplett programmierbaren Z-Wave Baustein geben. Der Artikel ist schon in Arbeit ;) Damit ist ALLES möglich und du kannst z.B. den Wert deines Ultraschallsensor als Z-Wave Device darstellen.

      Grüße

      Daniel

    • Klar funktioniert das. Ich habe z.B. einen Rollladen umgebaut und kann ihn über MySensors steuern. Meine Klingel + Türöffner kann ich auch über mysensors bedienen. Das sind jetzt alles keine Projekte für den Einstieg, aber vom Prinzip her lohnt es sich immer sich einmal mit Arduino, C Programmen und co auseinander zu setzen ;)

      Grüße Daniel

  • Hallo Daniel.

    Ich habe sehr interessiert deinen Artikel verfolgt, da ich selber pimatic nutze und schon einige 433 MHz Sensoren betreibe. Zusätzlich habe ich noch eine Keymatic mit Homematic auf einem weiteren PI.

    Das MySensor system reizt mich aber ungemein, da es sehr kreativ ist und viele Ideen bei gleichzeitiger bidirektionalität bietet.

    Wann meinst du denn, dass der 2. Teil des Tutorial veröffentlich werden kann?

    Gruß
    Stefan

    • Hey Bernd. Ich habe leider gerade einiges in der Arbeit zutun, werde aber bald Teil 2 schreiben. Ansonsten, wenn du der Englischen Sprache mächtig bist, kannst du auch auf "https://www.mysensors.org/build/" schauen. Ich denke mir die Sachen ja auch nicht aus ;) Ich versuche es nur weniger Wissenschaftlich als Guide hier darzustellen.

      Grüße

  • Hi,
    vielen Dank für Deine schnelle Antwort. Auch wenn Du Dir die Sachen nicht ausdenkst, kann ich hier die Zusammenhänge erst verstehen. Ob auf MySensors oder Pimatic.org werde ich das Gefühl nicht los, da sind die Experten unter sich. Es werden immer nur Fragmente aufgeführt. Hier wird ein funktionierendes System hinzugefügt. Vom Sensor bis zu Pimatic.
    Dann werde ich auf Teil 2 voller Spannung warten.
    Bernd

  • Hallo Daniel.
    in Deinem angegebenen Link für die Library kann man MySensor-Master.zip herunterladen, jedoch befindet sich darin kein Ordner Library. Im Ordner Core sind zwar viele der Bibliotheken enthalten, aber nicht alle. So fehlt z.B die MyTransportRFM69.h.
    Kannst Du bitte die Variante2 überprüfen und die geänderten Gegebenheiten einarbeiten.
    Vielen Dank
    Grüße
    Bernd

  • Hallo,
    Wo sind die libs in der "neuen" Git? In der von dir beschriebenen Version gibt es die scheinbar noch, mittlerweile ist mysensor aber bei 2.0
    Kannst du mir weiterhelfen wie man die aktuellsten libs erfolgreich einfügt?

    Beste Grüsse
    Christoph

  • Hallo Christoph,

    von hier: https://github.com/mysensors/MySensors/tree/master über den grünen Button die .zip-Datei herunterladen und entpacken. Den Ordner MySensors-master in den libraries Ordner der Arduino IDE legen. Der sollte unter Dokumente/Arduino zu finden sein. In dem MySensors-master Ordner liegt noch ein Ordner examples. Den kannst Du in Deinen Arduino Ordner legen. Darin sind dann alle Arduino-sketche z.B. für das serielle Gateway und der Relais-Anwendung zu finden.
    einen schönen 3.Advent

    Bernd

Gib deinen Senf dazu!

Cookie Consent mit Real Cookie Banner