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) ü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
  • 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. Auf Anfrage kann das Modul auch mit zwei 868 MHz Modulen bestückt werden, etwa um TX29 und TX35 Module gleichzeitig empfangen zu können.

RaspyRFM Doppelmodul

Installation

sudo apt-get install git-core python-dev python-pip
git clone https://github.com/Phunkafizer/RaspyRFM.git
cd RaspyRFM
sudo pip install -e .

Dann noch mit

sudo raspi-config

die SPI Schnittstelle aktivieren und den Raspberry PI neu starten.

Anschlussbelegung

Das RaspyRFM wird auf den Raspberry PI von Pin 17 – 26 gesteckt.

Raspberry    -> RaspyRFM
------------------------
17           -> 3,3 V
18 (GPIO 24) -> DIO1 bei Einzelmodul, DIO0 von Modul #2 bei Doppelmodul
19 (MOSI)    -> MOSI
20           -> GND
21 (MISO)    -> MISO
22 (GPIO 25) -> DIO0
23 (SCK)     -> SCK
24 (CE0)     -> NSS Modul #1
25           -> GND
26 (CE1)     -> DIO2 bei Einzelmodul, NSS von Modul #2 bei 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.

apps/lacrosse.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.

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.

Artikel zum RaspyRFM Funkmodul:

Modul im Shop

RaspyRFM

40 Gedanken zu „Ein Funkmodul für den Raspberry: RaspyRFM“

  1. Guten Tag Herr Seegel,
    offenbar ist auf dem RaspyRFM-II nicht die high power Variante des RFM69 installiert, so dass „nur“ eine Sendeleistung von +13dBm erreicht werden kann.
    Gibt es denn auch Pläne, das RFM69HW zu verbauen? Ist das RFM69HW pinkompatibel zu dem verbauten RFM69?

    Vielen Dank!

    mfg
    D. Fries

  2. Tatsächlich ist eine Art Scanner als Softwarebeispiel dabei. Dabei werden OOK Impulse empfangen und mit einigen verbreiteten Protokollen abgeglichen und ggf. dekodiert. Da es zahlreiche Protokolle gibt kann ich nicht sagen ob das mit den Velux-Rollläden klappt.

  3. Hallo,

    Die App PowerSwitch auf Android hat die Möglichkeit RaspyRFM als Gateway einzustellen. Meine Frage, muss ich zum Ansteuern Nach Installation auf dem Rasberry noch zusätzlich irgendwas Programmieren? Denn Die Kodierung für die Steckdosen (z.B. Brennstuhl) Stelle ich ja in der App ein. Muss ich die zusätzlich noch im Raspberry einstellen?

    • Hallo,

      auf dem Raspberry muss nur das connair Skript laufen, welches beim RaspyRFM dabei ist. Weitere Einstellungen zu den Steckdosen ist auf dem Raspberry nicht nötig, das wird alles In der PowerSwitch App gemacht.

  4. Hallo,

    als Neuling auf diesem Gebiet bitte ich um die Beantwortung der folgende Frage:

    Sie bieten das Modul mit 434 MHz an. Ist es trotzdem möglich, problemlos mit Sendern, die 433 Mhz verwenden, zu kommunizieren oder muss hier noch zusätzlich etwas eingestellt werden ?

    Beste Grüße
    Christoph Held

    • Hallo Herr Held,

      es gibt eine Unzahl an verschiedenen Sendern, die sich durch Modulation, Baudrate, Frequenzhub, Protokoll u.a. unterscheiden, so dass die Frage pauschal nicht beantwortet werden kann. Sie können mit Kenntnis dieser Parameter selber die Ansteuerung für das RFM69 programmieren. Die Frequenz 433 MHz ist an sich kein Problem.

      Schöne Grüße
      S. Seegel

  5. Hallo,

    Kann ich das 868 Modul genau wie einen CUL-Stick der Firma Busware an meinem RPI betreiben um es für FHEM zu nutzen?
    Ich habe bereits eine 433 CUL mit Intertechno Schaltern im Einsatz und möchte nun zusätzlich Homematic Kompeneten verwenden.

    • Hallo Axel,

      hardwareseitig würde das gehen, es gibt aber noch keine Softwareunterstützung dafür. Man bräuchte z.B. ein Pythonskript, welches mit einer Socket die CUL Kommandos für das RFM69 umsetzt. Vielleicht finden sich ja (bei FHEM) ein paar Mitstreiter die das zusammen umsetzten können.

      Grüße
      Stefan Seegel

  6. Hallo,

    zur Info:

    die Software scheint das spi-bcm2708 Modul zu benötigen, das oftmals nicht mehr automatisch geladen wird. (Bei normal aktiviertem SPI mittels dtparam=spi=on wird spi-bcm2835 geladen, das 2708 ist nicht ladbar.)

    Deshalb in die config.txt:
    dtoverlay=spi-bcm2708-overlay

    Falls man z.B. in openElec die libs verwenden möchte ohne lange zu compilen:

    GPIO:
    http://www.barryhubbard.com/raspberry-pi/howto-raspberry-pi-install-rpi-gpio-openelec-rev-a-b-b/
    SPI:
    https://github.com/TIGAL/BBB-mikroBUS-Cape/raw/master/Examples/py-spidev/build/lib.linux-armv7l-2.7/spidev.so

    Und beides in den python Scripts laden wie im GPIO Artikel beschrieben…

  7. Hallo, ist schon absehbar, wann es das RaspyRFM-II mit 868 MHz wieder geben wird? Im Shop ist es momentan als „nicht verfügbar“ gekennzeichnet. Würde gern eins bestellen!

    Vielen Dank und beste Grüße,

    Peter

    • Hallo,
      es wird eine Pythonbibliothek mitgeliefert um das RFM69 ansprechen zu können. Zusätzlich gibt es Beispielcode, um Funkthermometer zu empfangen und um Intertechno Funksteckdosen steuern zu können.
      Schöne Grüße
      S. Seegel

Schreibe einen Kommentar