MySensors WLAN-Gateway in FHEM

Wie der FHEM-User schnell merkt, sind Gateways das A und O bei FHEM. Es gibt für unzählige Protokolle das passende Gateway um mit Geräten zu kommunizieren. In diesem Blog habe ich euch zum Beispiel schon den USB-1wire-Adapter vorgestellt. Mit diesem konnte man mit 1Wire-Geräten kommunizieren. In diesem Beitrag möchte euch gerne zeigen wie ihr mit wenig Bauteilen ein WLAN-Gateway für „MySensors“ Sensoren bauen könnt.

Wie der Name schon sagt, wird das Gateway später per WLAN in euer Netzwerk eingebunden und kommuniziert so mit eurem Raspberry. Ein weiterer Vorteil von MySensors ist der, dass auch die einzelnen Sensoren drahtlos mit dem Gateway kommunizieren. Das Gateway lässt sich natürlich auch in FHEM einbinden. Die „MySensor“ Sensoren lassen sich also später bequem mit FHEM auslesen.

Hardware

Die Software des Gateways wird später auf ein NodeMCU (Amazon Affiliate Link) geschrieben. Ein NodeMCU ist eine Art Arduino mit integriertem WLAN-Chip (esp8266). Für die Kommunikation mit den Sensoren wird ein nRF24L01+ (Amazon Affiliate Link) verwendet. Von diesem Funkmodul sollte man sich ruhig ein paar mehr bestellen, da für jeden Sensor später ein extra Funkmodul benötigt wird.

ELEGIANT NodeMcu Lua ESP8266 ESP-12E WIFI Development Board
  • NodeMcu Lua ESP-12E WIFI Development Board. From 2015/10/1, NodeMCU has been upgraded to a new chip CH340
  • WINDOWS driver USB to serial CH341 / CH340 installation package
  • Support WINDOWS 98 / ME / 2000 / XP / Server 2003 / VISTA / Server 2008 / Win7 / Win8 / Win8.1 32 Bit / 64 and MAC Through Microsoft's digital signature authentication

Letzte Aktualisierung am 3.12.2016 / Affiliate Links / Bilder von der Amazon Product Advertising API

benötigte Bauteile:

Hat man sich die beiden Komponenten besorgt, kann es an das Verdrahten gehen.

MySensor-Gateway-WLAN

NodeMCUnRF24L01+
GNDGND
3V3VCC
D2CE
D5SCK
D6MISO
D7MOSI
D8CSN/CS

Der Anschluss IRQ des nRF24L01+ wird für das Gateway nicht benötigt. Ich persönlich habe die beiden Komponente auf eine Lochrasterplatine gelötet und von unten mit Draht verbunden.

 MySensors WLANGateway

Um das Gateway nun mit Strom zu versorgen kann man ein einfaches 5V Steckernetzteil verwenden. Da diese Möglichkeit jedoch eine Steckdose belegen würde, habe ich es einfach an einen freien USB-Port meiner FritzBox angeschlossen.

Software

Nachdem die Hardware fertig ist, können wir uns an die Software machen. Der NodeMCU lässt sich mit der Arduino-Software beschreiben. Damit dies jedoch möglich ist, müssen wir zuerst die passenden Boardtreiber installieren. Dies geschieht indem wir in der Arduino-Software über „Datei / Voreinstellungen“ indem wir eine zusätzliche Boardverwalter-URL hinzufügen:

BoardTreiber Arduino MySensors WLAN Gateway

Nun können wir über den Boardverwalter die benötigten Treiber installieren. „Werkzeuge / Board / Boardverwalter“. Ganz unten sehen wir nun den Eintrag „esp8266 by ESP8266 Community“. Durch Auswahl der neusten Version und klicken auf Installieren lassen sich diese Installieren.

BoardTreiber Arduino MySensors WLAN Gateway

Damit aus der Hardware auch ein MySensor-Gateway wird (und später auch für die Sensoren), benötigen wir noch die entsprechenden Bibliotheken. Diese erhalten wir direkt auf der Homepage von MySensors. Der Inhalt des heruntergeladenen ZIP-Archivs muss nun in den Sketch-Ordner eurer Arduino-Software-Installation kopiert werden. Mehr Infos dazu findet ihr auch auf der Homepage.

ACHTUNG: Version 2.0 der MySensors-Libary enthält aus irgendwelchen Gründen nicht alle benötigten Dateien. Darum am besten die Version 1.5.4 verwenden.

Der Standard-Pfad des Sketch-Ordners befindet sich unter Dokumente.

Sketch Pfad

Damit unser Gateway später auch problemlos mit FHEM kommunizieren kann, muss der angepasste Esp8266Gateway-Sketch von Hexenmeister genommen werden. Diesen erhält ihr auf GitHub

Den Ordner „MyESP8266Gateway“ am besten auch zu den Examples der MySensors-Libary kopieren.

Wichtig ist es, dass ihr nun im Ordner „MyESP8266Gateway“ eine Datei mit dem Namen „mySecret.h“ mit dem Inhalt eurer WLAN-Zugangsdaten erstellt.

Jetzt können wir das Gateway mit dem PC verbinden und über „Werkzeuge“ den passenden Port und das passende Board auswählen. In unserem Fall ist es das „NodeMCU 1.0 (ESP-12E Module)“.

Nun könnt ihr in der Arduino-Software über „Datei / Beispiele / MySensors“ den passenden Sketch auswählen und auf den NodeMCU laden.

ESPGateway Arduino Sketch

Wenn das Programmieren erfolgreich geklappt hat, sollte das Gateway bereits einsatzbereit sein. Am besten kontrolliert ihr dies über den Seriell-Monitor der Arduino-Software (Lupe open rechts). Achtet darauf, dass ihr die richtige Baudrate eingestellt habt (Version 1.5.4: 115200 Baud, Version 2.0: 9600 Baud).

seriellMonitor MySensors Gateway

Wenn alles richtig funktioniert, solltet ihr nun lesen können, dass der Verbindung zu euem WLAN erfolgreich war und mit welcher IP-Adresse er ab sofort im Netzwerk aufzufinden ist. Diese Adresse solltet ihr euch für die Einrichtung in FHEM merken.

Einrichtung in FHEM

Die Einrichtung in FHEM ist im Gegensatz zur bisherigen Arbeit das Einfachste. Wir definieren uns einfach ein MYSENSORS-Device.

und fügen noch einige Attribute hinzu:

MySensors FHEM WLAN Gateway

Mehr Infos zum Modul „MYSENSORS“ im FHEM Command-Ref. Aber das Gateway bringt uns natürlich nicht sehr viel, wenn wir keine passenden Sensoren dafür haben. Wie ihr eure ersten MySensors-Sensoren baut erkläre ich euch in meinem nächsten Blog-Beitrag.

13 Kommentare zu “MySensors WLAN-Gateway in FHEM

  1. Leider bekomme ich beim aufspielen der Software den Fehler:

    C:\Users\meilb\Documents\Arduino\libraries\MySensors\examples\MyEsp8266Gateway\MyEsp8266Gateway.ino:72:28: fatal error: MySigningNone.h: No such file or directory

    #include

    ^

    compilation terminated.

    exit status 1
    Fehler beim Kompilieren für das Board NodeMCU 1.0 (ESP-12E Module).

    Kann mir jemand helfen?

    Gruss
    ME

    • Hallo ME,
      so wie es aussieht findet er die Daten „MySigningNone.h“ nicht. Hab es mal versucht zu rekonstruieren. Die MySensor-Libary 2.0 beinhalt aus irgendwelchen Gründen einige Dateien nicht mehr. Unter anderem auch die „MySigningNone.h“. Keine Ahnung warum. Habe mir dann die Version 1.5.4 in meinen Sketch-Ordner kopiert. Mit dieser hat alles funktioniert. Einfach den Inhalt „libaries“ im Ordner „MySensors-1.5.4“ in den Sketch-Ordner kopieren. Im Ordner „MySensors“ befindet sich dann auch die gesuchte „MySignungNone.h“.
      Gruß Daniel

  2. Hallo Daniel

    ich versuche mich an deiner Anleitung um den MySensor nachzubauen, doch leider funktionert es nicht. Ich bekommen folgende Fehlermeldung.

    Kannst du mir sagen was ich falsch mache.

    Arduino: 1.6.11 (Windows 10), Board: „NodeMCU 1.0 (ESP-12E Module), 80 MHz, 115200, 4M (3M SPIFFS)“

    WARNUNG: Kategorie “ in der Bibliothek UIPEthernet ist ungültig und wird auf ‚Uncategorized‘ festgelegt

    Der Sketch verwendet 244.369 Bytes (23%) des Programmspeicherplatzes. Das Maximum sind 1.044.464 Bytes.
    Globale Variablen verwenden 33.820 Bytes (41%) des dynamischen Speichers, 48.100 Bytes für lokale Variablen verbleiben. Das Maximum sind 81.920 Bytes.
    warning: espcomm_sync failed
    error: espcomm_open failed
    error: espcomm_upload_mem failed
    error: espcomm_upload_mem failed

    Invalid version found: 1.04
    Invalid version found: 1.04

    Dieser Bericht wäre detaillierter, wenn die Option
    „Ausführliche Ausgabe während der Kompilierung“
    in Datei -> Voreinstellungen aktiviert wäre.

    Gruß Peter

    • Hallo Peter,
      ich habe eben nochmal Versucht das WLAN-Gateway einzurichten. Habe es mit der Version 2.0 ausprobiert. Das Uploaden hat ohne Probleme geklappt. Version 2.0 scheint direkt mit FHEM kommunizieren zu können, ohne den angepassten Sketch verwenden zu müssen. –> leider doch nicht, zu früh gefreut. Du kannst es ja sonst nochmal damit probieren. Habe meinen Beitrag entsprechend angepasst bzw. erweitert.
      Ansonsten klingt der Fehler so, als ob keine Verbindung zum ESP besteht (sync failed). Vielleicht nochmal die Verdrahtung überprüfen. Ich habe zudem die Arduino Version 1.6.8 verwendet. Aber das sollte ja im Grunde egal sein.

      Gruß Daniel

    • Hallo Daniel

      Ich bin nochmal von ganz vorne angefangen.

      Arduino Software : 1.6.11
      MySensor : 2.0
      WLAN Daten direkt im Programm hinterlegt

      jetzt bekomme ich folgende Meldung:

      In file included from C:\Users\Laptop\Documents\Arduino\libraries\MySensors-master/MySensors.h:299:0,

      from C:\Users\Laptop\AppData\Local\Temp\arduino_modified_sketch_152859\GatewayESP8266.ino:137:

      C:\Users\Laptop\Documents\Arduino\libraries\MySensors-master/core/MyMainESP8266.cpp:4:22: fatal error: Schedule.h: No such file or directory

      #include „Schedule.h“

      ^

      compilation terminated.

      exit status 1
      Fehler beim Kompilieren für das Board NodeMCU 1.0 (ESP-12E Module).

      Gruß Peter

    • Hallo Peter,
      ich konnte diesen Fehler reproduzieren, es liegt an der Version des Boardtreibers. Einfach in der Arduino-Umgebung unter Wekrzeuge/Board/Boardverwalter den Treiber für die ESP-Boards auf Version 2.3.0 updaten. Über ein DropDown-Menü lässt sich die gewünschte Version auswählen und dann installieren.

      Gruß Daniel

  3. Hallo Daniel

    ich habe es jetzt mit Version 2.3.0 versucht, damit scheint es zu gehen.
    Im Seriellen Monitor bekomme ich folgendes angezeigt ist das richtig?

    pm open,type:2 0
    0;255;3;0;9;TSP:SANCHK:OK
    0;255;3;0;9;TSP:SANCHK:OK
    0;255;3;0;9;TSP:SANCHK:OK
    0;255;3;0;9;Client 0 connected
    0;255;3;0;9;Client 0: 0;0;3;0;2;
    0;255;3;0;9;TSP:SANCHK:OK
    0;255;3;0;9;TSP:SANCHK:OK

    Gruß Peter

    • Ist richtig. Wenn Sensoren bereits vorhanden sind, können diese nun in FHEM eingerichtet werden und dann erscheinen deren Werte auch auf dem Seriellen Monitor vom Gateway.

  4. Hallo Daniel

    Ich bekomm den Node einfach nicht beschrieben, ständig Fehlermeldungen… 🙁 Ich häng den Log mal an. Danke schon mal 🙂
    LG Dirk
    Arduino: 1.6.11 (Windows 10), Board: „NodeMCU 1.0 (ESP-12E Module), 80 MHz, 115200, 4M (3M SPIFFS)“

    C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\haui7\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\haui7\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\haui7\Documents\Arduino\libraries -fqbn=esp8266:esp8266:nodemcuv2:CpuFrequency=80,UploadSpeed=115200,FlashSize=4M3M -ide-version=10611 -build-path C:\Users\haui7\AppData\Local\Temp\build634bad4f50a17ec7ef2500cb89f1ae0b.tmp -warnings=all -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.mkspiffs.path=C:\Users\haui7

    … (aus Übersichtsgründen gekürzt – gez. Daniel)

    MyEsp8266Gateway:26: error: stray ‚\267‘ in program

    MyEsp8266Gateway:26: error: stray ‚\302‘ in program

    MyEsp8266Gateway:26: error: stray ‚\267‘ in program

    C:\Users\haui7\Documents\Arduino\MySensors-master\examples\MyEsp8266Gateway\MyEsp8266Gateway.ino:139:28: warning: missing terminating ‚ character [enabled by default]

    <!– –>

    ^
    MyEsp8266Gateway:139: error: missing terminating ‚ character

    <!– –>

    ^

    MyEsp8266Gateway:693: error: stray ‚#‘ in program

    #define NO_PORTB_PINCHANGES

    … (aus Übersichtsgründen gekürzt – gez. Daniel)

    MyEsp8266Gateway:1010: error: expected unqualified-id before ‚<' token

    static inputBuffer inputString[MAX_SRV_CLIENTS];

    exit status 1
    stray ‚\302‘ in program

    • Hallo Dirk,
      die Fehlermeldungen sehen ja ganz schön übel aus. Die genaue Ursache kann ich dir leider auch nicht sagen. Was ich in den vorangegangenen Kommentaren bereits erwähnt habe, Version 2.0 der MySensors-Libary enthält nicht alle benötigten Dateien. Deswegen Version 1.5.4 verwenden. Habe es nun auch nochmal im Beitrag erwähnt. Zusammen mit der angepassten Version der MyESP8266Gateway.ino Datei von Hexenmeister sollte eigentlich alles klappen.

      Gruß Daniel

  5. Hallo Daniel,

    versuche mich gerade an einem MySensor Gatway. Deine Anleitung ist super!
    Habe eine Frage zum Passwort in der mySecret.h. Mein WLAN Passwort enthält ein “ Zeichen. Habe keine Ahnung wie ich es in der MySecret.h schreiben muss. Kannst Du mir einen Tip geben?

    mfg Rainer

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*