Fhem: Fhem2Fhem und Temperatursensordaten empfangen

Update: 07.10.2014 Blog-Beitrag erweitert

raspberry pi mit gehäuseProblem: Man hat einen Raspberry Pi mit Fhem und leider nur 2 USB-Ausgänge, welche schon voll belegt sind. Beispielsweise mit einem CUL-Transceiver und einem WLAN-Stick. Entweder kauft man sich jetzt einen aktiven USB-HUB oder, wenn man nur ein bis zwei weitere USB-Slots benötigt, einen neuen Raspberry Pi B Plus (-> Erfahrungsbericht).
Da in meinem Umgebung grundsätzlich USB-Anschlüsse fehlen, weil ich vieles ausprobiere, habe ich mir überlegt, einen zweiten Fhem-Server aufzusetzen. Ich möchte mit der Installation und Konfiguration nicht zu sehr ins Detail gehen, wer jedoch noch einen zweiten Raspberry Pi herumliegen hat, sollte vielleicht an dem Experiment teilnehmen.
Benötigt wird:

  • 2 Raspberry Pi (B oder B-Plus) – Master 192.168.178.6, Slave 192.168.178.29
  • funktionierendes Netzwerk
  • JeeLink oder einen Jeelink-Ersatz, siehe Foto unten (-> siehe Blogbeitrag)
  • ggf. preiswerte Temperatursensoren (-> siehe Blogbeitrag)

Was habe ich vor?
An meinem zweiten Raspberry Pi – nennen wir ihn Slave – habe ich einen Jeelink-Transceiver angedockt, mit dem ich Temperaturdaten aufnehmen kann. Es spielt keine Rolle wo sich der Raspberry Pi befindet, Hauptsache er hat Strom und Netzwerk. Der Jeelink-Tranceiver nimmt die Temperaturdaten auf, die von den Temperatursensoren kommen. Das kann ein Temperatursensor oder auch mehrere sein.
Das Problem ist jetzt, das die Daten natürlich nur auf dem Slave ankommen und dort verwurstet werden, sorry, Graph und Log gespeichert werden.
Ich möchte aber, das diese Daten auch auf dem ersten Raspberry Pi – nennen wir ihn Master – empfangen werden. Hier möchte ich genauso die Daten bekommen, die ich normalerweise auf dem Slave empfange.

Hier kommt Fhem2Fhem ins Spiel: Fhem2Fhem verbindet beide Raspberry Pis auf einfache Weise, entweder durch den RAW oder LOG-Modus. Beim Log-Modus empfängt der Master die Log-Daten des Gerätes (Schalter, Temperatursensor, Feuchtigkeitssensor etc.) im Log.
Im RAW-Modus verhält es sich so, als wenn man das Gerät direkt am Master angeschlossen hätte.

Beides meiner Meinung nach eine geniale Lösung. Ich finde das super ausbaufähig und flexibel, wenn man keine USB-Slots mehr frei hat, oder weitere Strecken überwinden muss, die der 868 MHz – Sensor nicht mehr empfangen kann. Einfach eine Fhem2Fhem-Struktur aufbauen und los gehts.

Software: Um eine Lösung für das obige Beispiel bereitzustellen, war natürlich wieder das Fhem-Forum eine große Hilfe. Hier folgt dem Kochrezept:

Auf der Konsole des Masters (da kommt man am Besten mit Putty unter Windows drauf, oder unter der Mac-Umgebung mit

[sourcecode language=“text“ gutter=“false“]Robin$ ssh root@192.168.178.6[/sourcecode]

, wobei ihr natürlich die IP des Raspberry Pi eingeben müsst.
Anschließend gebt ihr dort ein:

[sourcecode language=“text“ gutter=“false“]mkfifo /tmp/jdummy[/sourcecode]

.
Wichtig: Der Pfad könnt ihr selber auswählen, ich habe aber auch sofort komplette Schreib-Lesezugriffe dazu gegeben, da es bei mir nicht auf Anhieb funktionierte (chmod).

Nun wird in der Fhem.cfg des Masters folgendes eingetragen:

[sourcecode language=“text“ gutter=“false“]define jeelinkcross JeeLink /tmp/jdummy@directio
define remoterpi FHEM2FHEM 192.168.178.29:7072 RAW:jeelinkcross[/sourcecode]

Wichtig: es muss ein funktionierender Zugang zum Telnet-Port vorhanden sein.

Auf dem Slave gebt ihr in der fhem.cfg ein:

[sourcecode language=“text“ gutter=“false“]define jeelinkcross JeeLink /dev/ttyUSB0@57600[/sourcecode]

wenn ihr den Jeelink auf USB0 gesteckt habt. Das könnt ihr auf der Console (s.o.) mit

[sourcecode language=“text“ gutter=“false“]dmesg[/sourcecode]

herausbekommen.

Jetzt sollte bei jeelinkcross ein opened oder connected stehen.

Kehren wir zurück zum Master. Jetzt können wir die Daten vom entfernten Jeelink entfangen. Kurzer Test in der fhem.cfg:

[sourcecode language=“text“ gutter=“false“]
define 04Thermo LaCrosse 68
attr 04Thermo IODev jeelinkcross
#define 04Thermo dummy
attr 04Thermo alias Büro
attr 04Thermo event-min-interval state:600
attr 04Thermo group Temperaturen
attr 04Thermo icon scene_office
attr 04Thermo room Plots
attr 04Thermo doAverage 1
define FileLog_04Thermo FileLog ./log/04Thermo-%Y.log 04Thermo:T:.*
attr FileLog_04Thermo logtype temp4hum6:Temp/Hum,text
define weblink_04Thermo SVG FileLog_04Thermo:weblink_04Thermo:CURRENT
attr weblink_04Thermo alias 6. Büro
attr weblink_04Thermo label "Büro min.: $data{min1} °C, max: $data{max1} °C, Letzte: $data{currval1} °C"
attr weblink_04Thermo room Plots
[/sourcecode]

Bei Euch wird in der ersten Zeile möglicherweise etwas anderes als die 68 stehen, ist abhängig vom gerade automatisch gewählten Funkkanal des Temperatur-Sensors.

 

Monitoring der Temperaturen auf dem Master, am Slave hängt der Jeelink-Ersatz dran

Monitoring der Temperaturen auf dem Master, am Slave hängt der Jeelink-Ersatz dran

Fazit: Auch wenn ihr wenig USB-Slots an Eurem Raspberry Pi besitzt, könnt ihr durch Fhem2Fhem Daten tunneln. Hier am Beispiel mit einem Jeelink und Temperatursensoren erklärt.

Das könnte Euch auch interessieren:

Arduino Nano mit Transceiver - ein Foto vom Blog-Leser Jörg

Arduino Nano mit Transceiver – ein Foto vom Blog-Leser Jörg

Arduino Nano mit Hope FM RFM12BS - Jeelink-Ersatz

Arduino Nano mit Hope FM RFM12BS – Jeelink-Ersatz

Temperatursensoren mit JeeLink, Raspberry Pi und  Fhem im Einsatz

Temperatursensoren mit JeeLink, Raspberry Pi und Fhem im Einsatz

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

6 Antworten zu Fhem: Fhem2Fhem und Temperatursensordaten empfangen

  1. Pingback: Raspberry Pi 2 für Windows 10 IoT zum Downloaden | Robins Blog - Technik und Multimedia

  2. Thomas sagt:

    Mit meine JeeLink war das kein Problem FHEM2FHEM tut sofort. Aber mit dem CUL868 klappt es nicht, da sehe ich auf dem Server immer nur die Meldung
    “ unknown IODev specified“ bzw. „No I/O device found“.
    Geht das mit dem CUL im Homematic Modus nicht?

  3. Robin sagt:

    Hallo Maikel,

    habe ich gerade beantwortet.

    LG
    /robin

  4. Robin sagt:

    Hallo rugga,

    sorry, ich bin am 10.09. Richtung Urlaub geflogen und dann habe ich Dein Kommentar überlesen.

    1: Ich habe mal zwei Slaves angeschlossen, funktioniert. Im Grunde ist es ja nur ein Eintrag in der Konfig (Define), worauf „gehört“ werden soll. Ich habe an meinem „Slave“ mein Jeelink-Ersatz für die Temperatursensoren TX 29 DTH hängen. Nebenbei misst dieser noch den Luftdruck und Lichtintensität in Lux. Ebenfalls gibt er die Daten der Revolt-Steckdosen weiter. Alle diese Daten schubst er dann zum Master.

    2. Da bin ich überfragt. Ich würde sagen, nein.
    3. Ja, kann man verhindern per define. Bei mir sieht das Define (Master / Slave) so aus: Hier der Konfig-Eintrag im Master: define F2F2 FHEM2FHEM 192.168.178.29:7072 LOG:(NASuFritz.*|SamsungLC650.*|Luminosity.*|BMP1802.*|WohnzimmerTemperatur.*|Aussenfenster.*)
    Heisst soviel wie: Schicke mir nur die Daten vom den Revolt-steckdosen von der NAS, vom Samsung, die Lichtintensität, Luftdruck, und Wohnzimmertemperatur von der IP-Adresse 192.168.178.29 (= Slave)
    Es geht aber auch so: define jeelinkcross JeeLink /tmp/jdummy@directio Hier werden die Daten vom Jeelink „durchgereicht“. Heißt also, man muss die Temperatursensoren im Master (nochmals) definieren. Ist nicht auf meinem Mist gewachsen, sondern aus dem genialen Forum geholt..

    LG
    /robin

  5. Maikel sagt:

    Mich würde diese Antwort auch brennend interessieren…..

  6. rugga sagt:

    Hallo,
    schöner Blog-Eintrag!
    Ich hätte da mal mehrere Fragen zum FHEM2FHEM, die ich bislang noch nicht durch Google klären konnte:
    1. Wieviele Slaves sind mit F2F möglich?
    2. Wenn mehr als 2 möglich sind, kann man die FHEMs dann „in Reihe“ betreiben (Daisy-Chain) und somit die Reichweite erhöhen (z.B. vom Keller zum EG und dann vom EG zum OG)?
    3. Kann es Probleme geben wenn ein Sensor von Master und Slave erkannt und ausgewertet wird? Z.B. ein Temperatursensor im EG wird vom Master im Keller sowie dem Slave im EG „gesehen“. Oder kann dies per Konfiguration verhindert werden?

    Schönen Gruß,
    rugga

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

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