Ein Funkmodul für den Raspberry: RaspyRFM

Mit dieser Low-Cost-Funk-Erweiterung “RaspyRFM-II” für den Raspberry PI ist es möglich die Telegramme von vielen verschiedenen funkunterstützten Geräten (Funkthermometer, Energiekostenmessgerät, Handsender, Funksteckdosen) zu empfangen und zu senden. Das Aufsteckmodul besteht aus einem RFM69CW Funkmodul, welches direkt mit der SPI Schnittstelle des Raspberry PI verbunden ist. Mit einem Python-Modul kann man das Funkmodul sehr einfach in eigenen Projekten angesprochen werden, um die Daten z.B. an Smartmetering- (Volkszaehler.org oder openenergiemonitor.org) oder Hausbussysteme (FHEM, Homeassistant, ioBroker, Node Red u. a.) übergeben zu können.

Beispiele für funkunterstützte Geräte

  • Funksteckdosen (z.B. FS20, Intertechno, Brennenstuhl, Logilight, emylo, Hama, uvm.)
  • Funkthermometer (z.B. TX29-IT, TX35-IT, TX62-IT)
  • Funkenergiekostenmessgeräte (z.B. EMT7110, Voltcraft EC3000)
  • MAX! Heizungsthermostate
  • Bresser 7in1 Wetterstation
  • uvw.

Eigenschaften

  • Frequenzbereich 434 MHz oder 868 MHz
  • Modulationsarten OOK und FSK
  • SPI Schnittstelle, programmierbar in C, C++, Python…
  • Sendeleistung 13 dBm max.
  • SMA Antennenbuchse
  • Pythonmodul mit Programmierbeispielen mitgeliefert

Neu: Doppelmodul

Nun ist auch ein Doppelmodul verfügbar, welches jeweils ein Modul für 434 MHz und 868 MHz enthält. Damit kann über die beiden SPI Kanäle des Raspberry PIs auf zwei unterschiedlichen Frequenzbändern gearbeitet werden.

RaspyRFM Doppelmodul

Installation

Zunächst die SPI Schnittstelle aktivieren und den Raspberry PI neu starten:

sudo raspi-config

Anschließend die Software für das RaspyRFM installieren;

sudo apt-get install git-core 
git clone https://github.com/Phunkafizer/RaspyRFM.git
cd RaspyRFM
./setup.sh

Test des Moduls:

.env/bin/python apps/scan.py

Anschlussbelegung

Das RaspyRFM mit 10-poliger Buchse wird auf den Raspberry PI von Pin 17 – 26 gesteckt. Das RaspyRFM Twin II wird mit 12-poliger Buchse geliefert und auf Pin 15-26 gesteckt.

Raspberry PI
40-pol
RaspyRFM
15GPIO 22Nur RaspyRFM Twin II: DIO2 2. RFM69 Modul
16GPIO 23Nur RaspyRFM Twin II: DIO2 1. RFM69 Modul
173,3 V3,3 V
18GPIO 24Einzelmodul: DIO1
Doppelmodul: DIO0 des 2. RFM69 Moduls
19MOSIMOSI
20GNDGND
21MISOMISO
22GPIO 25DIO0 (1. RFM69 Modul)
23SCKSCK
24CE0NSS (1. RFM69 Modul)
25GNDGND
26CE1NSS 2. RFM69 Modul (Doppelmodul)

Software

Neben dem oben erwähntem Pythonmodul für das RaspyRFM enthält das Repository einige Anwendungen:

LaCrosse Funktemperatursensoren empfangen

Für die LaCross-Sensoren (TX29, TX35, etc.) gibt es eine Dekoderklasse welche die Daten aus dem Funktelegram gewinnt. Zu Funkthermometern mit dem RaspyRFM gibt es einen eigenen Artikel. Im Softwarepaket ist außerdem eine Anwendung enthalten mit der die empfangenen Messwerte in einem Webinterface dargestellt werden können. Dies ist in diesem Artikel genauer erklärt.

.env/bin/python apps/868gw.py
Found RaspyRFM twin
RFM69 found on CS 1
Init complete.
{'batlo': False, 'timestamp': '2021-01-11T23:28:34', 'AFC': 0, 'init': False, 'T': (-17.0, 'C'), 'RSSI': -108, 'RH': (78, '%'), 'ID': 'b0'}
{'batlo': False, 'timestamp': '2021-01-11T23:28:34', 'AFC': 0, 'init': False, 'T': (19.4, 'C'), 'RSSI': -107, 'RH': (46, '%'), 'ID': 'c0'}
{'batlo': False, 'timestamp': '2021-01-11T23:28:34', 'AFC': 0, 'init': False, 'T': (15.1, 'C'), 'RSSI': -87, 'RH': (31, '%'), 'ID': 'f8'}
{'batlo': False, 'timestamp': '2021-01-11T23:28:35', 'AFC': 0, 'init': False, 'T': (19.0, 'C'), 'RSSI': -103, 'RH': (47, '%'), 'ID': '88'}
{'batlo': False, 'timestamp': '2021-01-11T23:28:36', 'AFC': 0, 'init': False, 'T': (-0.8, 'C'), 'RSSI': -104, 'RH': (77, '%'), 'ID': '64'}
{'batlo': False, 'timestamp': '2021-01-11T23:28:36', 'AFC': 0, 'init': False, 'T': (19.1, 'C'), 'RSSI': -98, 'RH': (53, '%'), 'ID': '54'}
{'batlo': False, 'timestamp': '2021-01-11T23:28:37', 'AFC': 0, 'init': False, 'T': (19.2, 'C'), 'RSSI': -104, 'RH': (47, '%'), 'ID': '24'}

Funksteckdosen steuern & empfangen

Zum Thema Funksteckdosen mit dem RaspyRFM gibt es einen eigenen Artikel. Mit der Anwendung rcpulse können 433 MHz Funksteckdosen gesteuert und Fernbedienungen empfangen werden.

Funkkomponenten in Node-Red einbinden

Siehe eigener Artikel zu diesem Thema.

Funkkomponenten in Homeassistant einbinden

Siehe eigener Artikel zu diesem Thema.

Wetterstation Davis Vantage Vue

Bei Wetter Scharnhausen gibt es ein interessantes Projekt bei dem die Daten der Wetterstation Davis Vantage Vue empfangen werden, und so Temperatur, Windrichtung- und geschwindigkeit, Feuchtigkeit und Regen misst. Im Quellcode von Wetter Scharnhausen muss nur der IRQ Pin von 16 auf 22 geändert werden.

Beiträge zum RaspyRFM Funkmodul:

Modul im Shop

RaspyRFM