Fhem: Sensoren an Fhem nRF24L01+ Transceiver

Update 09.11.2014 Aktualisierung Blog-Beitrag Gateway-LAN Interface

Update: 01.11.2014 Achtung, es ist ein besseres Modul entwickelt worden, welches auch schon in Fhem eingecheckt ist, ich werde bald einen neuen Blog-Beitrag darüber schreiben.

Update 15.10.2014 Blog-Beitrag erweitert

Jetzt ist möglich auch mit Fhem Daten (Temperaturen, Luftfeuchtigkeit, Aktoren) mit den nRF24L01+ – Modulen zu senden und zu empfangen.

Möglich wurde das erst mit einem Arduino-Gateway-MQTT-Sketch, welcher MQTT-Daten senden und empfangen kann.
Im Fhem-Forum hat der Fhem-Entwickler nTruchsess dann ein Wrapper geschrieben, mit den dann die MQTT Daten gelesen werden können. Und das klappt sehr gut.
Installation Fhem-seitig:
Hier ist es noch etwas holprig zu installieren. Zunächst muss man vom Trunk die kompletten Verzeichnisse /opt/fhem/FHEM/lib/Net installieren. Wichtig: Gebt sofort alle Rechte auf dieses Verzeichnis:

cd /opt/fhem/FHEM/lib
chmod -R 777 Net,dann noch die Rechte/Eigentümer
chown -R fhem:root Net

Jetzt Fhem nochmal neu booten und das Modul 00_MQTT.pm sollte erkannt werden.

In der Fhem-Konfig gibt man dann die Konfiguration vom MQTT-Gateway ein (feste IP) und die einzelnen Devices.

define mqtt MQTT 192.168.178.234:1883
attr mqtt keep-alive 60
define mqtt_Temperaturmodul MQTT_DEVICE
attr mqtt_Temperaturmodul IODev mqtt
attr mqtt_Temperaturmodul alias Temperaturmodul-Test
attr mqtt_Temperaturmodul stateFormat transmission-state
attr mqtt_Temperaturmodul subscribeReading_state MyMQTT/1/0/V_TEMP
define mqtt_Blumen MQTT_DEVICE
attr mqtt_Blumen IODev mqtt
attr mqtt_Blumen stateFormat transmission-state
attr mqtt_Blumen subscribeReading_state MyMQTT/20/0/V_TRIPPED
define mqtt_Distanz MQTT_DEVICE
attr mqtt_Distanz IODev mqtt
attr mqtt_Distanz stateFormat transmission-state
attr mqtt_Distanz subscribeReading_state MyMQTT/21/1/V_DISTANCE
define mqtt_18b20 MQTT_DEVICE
attr mqtt_18b20 IODev mqtt
attr mqtt_18b20 stateFormat transmission-state
attr mqtt_18b20 subscribeReading_state MyMQTT/21/0/V_TEMP

MyMQTT/1/0/V_TEMP, MyMQTT/21/0/V_TEMP könnte bei Euch anders heißen, also drauf achten, was im Serial-Monitor vom Arduino rüberkommt und korrigieren.

Installation MySensors-MQTT-Gateway.
Hier nimmt man den aktuellen Sketch und kopiert ihn auf dem Arduino drauf. Wichtig: Auf die richtige IP für Euer Netzwerk achten und im Sketch die Änderung vornehmen.

Technik MQTT: Die Technik vom „Message Queue Telemetry Transport“-Protokoll ist schon sehr alt und wurde dafür genutzt um Probleme bei den Öl-Pipelines (Leckagen) festzustellen. Vorteil dieses Protokolls ist der geringe Datenaustausch zwischen der Zentrale (Broker) und den einzelen Sensoren. So ist es nicht verwunderlich, das selbst Facebook diese Technik noch benutzt, um die DFÜ-Raten gering zu halten. Wichtig ist vielleicht noch zu wissen, das MyMQTT/20/0/V_TRIPPED oder MyMQTT/21/0/V_TEMP nicht der Sensor gemeint ist, sondern der Kanal, mit dem der Broker mit dem Device kommuniziert. Deshalb kann man nicht nur Daten aus den Sensoren, die sich auf dem gleichen Kanal befinden, lesen, sondern auch schreiben. In unserem Fall könnte der Kanal auch heißen: MyMQTT/Wohnzimmer/Temperatur oder MyMQTT/Wohnzimmer/Luftfeuchte. So kann man natürlich auch Wildcards (+,#) einsetzen um beispielsweise alle Informationen von einem Kanal empfangen, beispielsweise MyMQTT/Wohnzimmer/+ . Hier würde man die Temperatur und Luftfeuchte vom Sensor empfangen. Die Software in mySensors und Fhem ist noch nicht komplett ausgereift, aber man arbeitet dran.

Installation MySensor-Devices
Hier kann man aus der MySensors.org Seite den aktuellen Sketch draufbeamen.

Alle notwendigen Sketches für die Arduinos gibt es bei mySensors.org

Ich habe Euch ein kurzes Youtube-Video gemacht, um die Funktionsweise zu zeigen.

Selber bauen: Die Zutaten

Sensor, je nach Gusto, die folgenden Links führen zu Amazon.de:
Hier ein Testaufbau eines Temperatursensors

Das Gateway mit MQTT-Sketch:
Ich habe dafür einen Arduino Uno R3 mit Ethernet-Shield genommen, weil auf einem Arduino Nano mit ENC28J60-Netzwerk-Shield nicht mehr in den Speicher passte. Die nachfolgenden Links führen zu amazon.de

und natürlich Fhem.

Gateway-LAN (oder auch Seriell): Ich habe hier aus Standard-Komponenten anstatt eines Arduino-UNO einen Arduino Nano genommen und als Netzwerk-Interface einen ENC28J60 mit einem nRF24L01+. Diese habe ich zusammengelötet und noch mit 3 Status-LED (Transmit, Receive und Error) versehen. Alles zusammen habe ich in einem Raspberry Pi Leergehäuse gepackt. Sketch usw. gibt es bei Mysensor.org. Wie das am Ende aussieht, seht ihr hier auf dem Foto.

Die einzelnen Bauteile (Raspberry Pi – Gehäuse, LAN-Interface, Platine, Arduino Nano, nRF24L01+, LEDs) habe ich noch vorrätig, Anfrage im Kommentarfeld genügt!

gatewaylan mit arduino

Serial- und LAN- Gateway für MySensors, mit Status LEDs (Transmit / Receive / Error-Inclusion)

 

Dieser Beitrag wurde unter Fhem-Hausautomation abgelegt und mit verschlagwortet. Setze ein Lesezeichen auf den Permalink.

7 Responses to Fhem: Sensoren an Fhem nRF24L01+ Transceiver

  1. Pingback: Einfaches WLAN-Thermometer für Fhem mit NodeMCU ohne Löten (Teil 2) | Robins Blog – Technik und Multimedia

  2. Pingback: HooToo HT IP211 HDP WLAN IP Webcam – ein Erfahrungsbericht | Robins Blog - Technik und Multimedia

  3. Pingback: Fhem, MySensors: Stromausfall am Raspi per Fhem mitteilen – USV Monitor mit nRF24L01+ | Robins Blog - Technik und Multimedia

  4. Robin sagt:

    Hallo Tim,

    das MQTT-Modul nehme ich nicht mehr. Schaue dir bitte mal das MySensor-Modul an, nutze ich schon seit November 2014.
    Das Gateway funktioniert ohne Änderung des Codes per USB oder mit LAN. Die Hardware bleibt unverändert.
    Wenn ich Zeit habe, schreibe ich bald mal einen Blog-Beitrag dazu. Das Modul ist es wert.

    LG
    /robin

  5. Tim sagt:

    Hallo,
    tolle Anleitung zum MQTT-Gateway! Ich nehme an, beim seriellen Gateway geht man was die FHEM-Installation/Benutzerrechte angeht gleich vor nur mit dem /Device Verzeichnis? Wie funktioniert dann aber die Konfiguration?
    Wie ist das mit der Installation, da müssen schon noch die ganzen make-Commands vor der Rechtevergabe erfolgen oder, also wies im Readme steht..


    Gibt irgendwie nirgends eine Anleitung fürs serielle Gateway mit FHEM, fände ich auch einen sehr hilfreichen und interessanten Blog-Eintrag. 😉
    Viele Grüße
    Tim

  6. Robin sagt:

    Hallo hexenmeister,

    vielen Dank für die Info. Das + ist gar nicht so bewusst geworden. In der „Zutatenliste“ hier im Blog habe ich das sofort überprüft, im Video werde ich noch ein Hinweis hinzufügen. Meine Module, welche ich hier im Hause habe, sind alle „+“.
    Ich habe gerade noch mal bei amazon und ebay geschaut, die ohne + haben eine grüne Platine.

    LG
    /robin

  7. hexenmeister sagt:

    Du sprichst mal von NRF24L01 und dann von NRF24L01+ Modulen. Das sind zwei verschiedene Versionen des Chips. Die Plus-Version beherrscht zusätzlich den langsameren 250kBps Übertragunsmodus, das dafür eine wesentlich höhere Reichweite erlaubt. Soweit ich es weiß, benutz „MySensors“ genau diesen und wird vermutlich nicht mit der älteren Version normal funktionieren.

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.