RaspyRFM, aufgesteckt und im Gehäuse

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 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, …)
  • Funkthermometer (z.B. TX29-IT, TX35-IT, TX62-IT)
  • Funkenergiekostenmessgeräte (z.B. EMT7110)

Eigenschaften

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

Installation

Auf dem Raspberry müssen das aktuelle GPIO Modul und das SPI Modul installiert sein, und die SPI Schnittstelle muss aktiviert sein:

Software

Es gibt eine in Python geschriebene Klasse, mit der das Modul sehr einfach parametriert werden kann (Frequenz, Baudrate, Bandbreite, Frequenzhub, Modulationsart, …). Hier ist ein Initialisierungsbeispiel:

from rfm69 import Rfm69
import rfm69

rfm = Rfm69()

rfm.SetParams(
  Freq = 868.300, #MHz center frequency
  Datarate = 9.579, #kbit/s baudrate
  ModulationType = rfm69.FSK, #modulation
  SyncPattern = [0x2d, 0xd4], #syncword
  Bandwidth = 200, #kHz bandwidth
  LnaGain = 0x80,
  Preamble = 2 #Preamblelength in bytes
)

LaCrosse Funktemperatursensoren

Für die LaCross-Sensoren (TX29, TX35, etc.) gibt es außerdem eine Dekoderklasse welche die Daten aus dem Funktelegram gewinnt. Der Code um alle in Reichweite befindlichen Sensoren anzuzeigen sieht so aus:

data[]

while 1:
  data = rfm.ReceivePacket(7)
  obj = rawsensor.CreateSensor(data)
  print(str(obj))

Intertechno Funksteckdosen

Für Funksteckdosen auf Intertechnobasis gibt es ebenfalls ein Pythonskript, welches einfach wie folgt aufgerufen wird:

sudo intertechno.py 000000000FFF

Logilight Funksteckdosen

Funktioniert bereits, Doku kommt bald

Modul im Shop

RaspyRFM

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

    • 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

  1. 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 Peter,

      eine neue Charge Leiterplatten ist schon, bestellt so dass es den RaspyRFM 868 in einigen Wochen wieder geben wird.

      Schöne Grüße
      Stefan Seegel

  2. Frage:
    Gibt es fuer das RaspyRFM-II Modul den Beispiel-Code auch in c (c++)
    MfG
    und den besten Wünschen fuer 2016
    L. Weiss

Hinterlasse einen Kommentar