FHEM Forum

FHEM - Hardware => Einplatinencomputer => Thema gestartet von: Preacher666 am 09 April 2013, 07:35:06

Titel: Raspberry Pi - RFM12b
Beitrag von: Preacher666 am 09 April 2013, 07:35:06
Hallo,
als absoluter Neuling hier erstmal ein "Hallo" :)

Wie schon im Titel ersichtlich habe ich grad die Frage, ob es möglich ist, ein RFM12b Funkmodul direkt mittels der GPIOs an den Pi anzuschliessen (müsste mittels SPI möglich sein) und dieses dann
durch FHEM zu nutzen ?

Soweit ich bisher sehen kann, kann man es sehr wohl am Pi anschliessen und partiell ansprechen aber wie könnte ich das Ganze dann für FHEM erreichbar machen ? Gibt es da eine Möglichkeit bzw. eine praktische Umsetzung ?

Ziel des Ganzen wäre eine drahtlose Anbindung der MAX-Fensterkontakte...einfachste Möglichkeit wäre derzeit das CSM-Modul über UART an den Pi anzuschliessen und dann FHEM zu installieren. Aber da ich grad ein RFM12b-Modul da habe, vorab die Frage ob das nicht auch direkt ginge ? So wie ich das sehe, müsste dann der Pi anstatt eines Mikrokontrollers die Übersetzung der Daten des RFMs übernehmen ?

Vielen Dank im Voraus
Alexander
Titel: Aw: Raspberry Pi - RFM12b
Beitrag von: m.o.d am 05 Mai 2013, 18:35:35
Hallo,
Sag, hast du was in der Richtung erreicht?
 Ich würde gerne mit der gleichen Konstellation fs20 steuern!
Mfg
Titel: Aw: Raspberry Pi - RFM12b
Beitrag von: schlauby am 31 Juli 2013, 10:46:42
Hallo zusammen,

ich hab jetzt das RFM12b mit 868Mhz an meinen Raspi R2 angeschlossen.
Leider kann ich keine Daten empfangen.

Ich hab die folgende Anleitung verwendet:

http://www.susa.net/wordpress/2012/08/raspberry-pi-reading-wh1081-weather-sensors-using-an-rfm01-and-rfm12b/ (//www.susa.net/wordpress/2012/08/raspberry-pi-reading-wh1081-weather-sensors-using-an-rfm01-and-rfm12b/)

und hier die Änderungen für den Raspi Revision 2
http://tickett.wordpress.com/tag/rfm12b/ (//tickett.wordpress.com/tag/rfm12b/)

Der Code kompiliert bei mir und kann ihn auch starten. Initialisierung geht auch. Leider empfange ich keine Daten von meinem 868 Mhz noname Außen-Temperatur-Sensor.

Hat jemand sonst noch eine Anleitung oder ein paar Tipps?
Titel: Aw: Raspberry Pi - RFM12b
Beitrag von: herrmannj am 31 Juli 2013, 11:23:36
Hi,

Ohne die verlinkten Artikel gelesen zu haben: das rfm12b ist ein fm Empfänger, alle am (aka ook) Kommunikation geht an dem Modul vorbei. Das gilt für fast alle noname Sensoren. Es gibt zwar Modifikationen um das rssi Signal abzugreifen, bedeutet aber smd Bauteile zu tauschen und zusätzliche Signalleitungen.

Zum fs20 senden kann man das Modul per Software Hack nehmen, im Kern muss der Trx per spi mit dem richtigen Timing ein und ausgeschaltet werden. Ist ebenfalls nicht trivial.

Vg
Jörg
Titel: Aw: Raspberry Pi - RFM12b
Beitrag von: schlauby am 31 Juli 2013, 11:33:21
hi,

super, Dank für die schnelle Antwort.
Im 433 Mhz bereich habe ich es schon geschafft, meine noname Funksteckdose zu schalten. Da gab es aber auch wieder viele Anleitungen und über eine Schleife, hab ich alle Code-Möglichkeiten ausprobiert, bis der Schalter anging :-)

Da ist dann der 868 Mhz Funkbereich etwas komplexer. Werde mir mal ein FS20 Modul kaufen. Würde ich dann da wenigstens irgendetwas empfangen?

Gruß schlauby
Titel: Aw: Raspberry Pi - RFM12b
Beitrag von: schlauby am 01 August 2013, 10:10:15
Hab inzwischen herausgefunden, das der RFM12b auf "OOK" umkonfiguriert werden kann. FIFO muss dabei deaktiviert werden.

static void rf12_init_OOK ()
{
    rf12_control(0x8027); // 8027    868 Mhz;disabel tx register; disable RX
                          //         fifo buffer; xtal cap 12pf, same as xmitter
    rf12_control(0x82c0); // 82C0    enable receiver; enable basebandblock
    rf12_control(0xA68a); // A68A    868.2500 MHz
    rf12_control(0xc691); // C691    c691 datarate 2395 kbps 0xc647 = 4.8kbps
    rf12_control(0x9489); // 9489    VDI; FAST;200khz;GAIn -6db; DRSSI 97dbm
    rf12_control(0xC220); // C220    datafiltercommand; ** not documented cmd
    rf12_control(0xCA00); // CA00    FiFo and resetmode cmd; FIFO fill disabeld
    rf12_control(0xC473); // C473    AFC run only once; enable AFC; enable
                          //         frequency offset register; +3 -4
    rf12_control(0xCC67); // CC67    pll settings command
    rf12_control(0xB800); // TX register write command not used
    rf12_control(0xC800); // disable low dutycycle
    rf12_control(0xC040); // 1.66MHz,2.2V not used see 82c0  
}

Funktionieren tut es leider noch nicht. Finde auch keine richtige Spezifikation für meinen Funk-Thermostat.
Steht leider nur 868 Mhz drauf.
Gibt es für ein FS20 Thermostat eine Spezi? Hab da leider auch nichts gefunden. Nur die normalen FS20 Bedienungsanleitung, da steht auch nichts über die genaue Frequence, AM, FM, OOK,...
Titel: Aw: Raspberry Pi - RFM12b
Beitrag von: betateilchen am 01 August 2013, 10:19:06
Zitat von: schlauby schrieb am Do, 01 August 2013 10:10Gibt es für ein FS20 Thermostat eine Spezi? Hab da leider auch nichts gefunden. Nur die normalen FS20 Bedienungsanleitung, da steht auch nichts über die genaue Frequence, AM, FM, OOK,...

naja, nicht explizit für einen Thermostaten, aber einige Grundlagen gibts hier:

http://fhz4linux.info/tiki-index.php?page=FS20%20Protocol
Titel: Aw: Raspberry Pi - RFM12b
Beitrag von: schlauby am 02 August 2013, 07:51:23
Bin wieder etwas weiter gekommen...

Hab im Internet nach der richtigen Konfig für das Funkmodul gesucht und bin auf folgenden Link gestoßen:

http://tools.jeelabs.org/rfm12b.html (//tools.jeelabs.org/rfm12b.html)

Hier kann ich alles einstellen, was das Modul machen soll. Ich hab den "RX FIFO Buffer" deaktiviert und den angezeigten Hex-Code in meinem Code angepasst. Und siehe da, ich kann etwas empfangen :-)
Die Idee mit der Modulation war also richtig!!! Vielen Dank hierfür nochmal.

Jetzt geht es mir der Analyse der empfangenen Daten weiter...
Ich werde dann wieder berichten :-)
Titel: Aw: Raspberry Pi - RFM12b
Beitrag von: locutus am 02 August 2013, 22:54:08
Hallo,
schau mal bitte hier rein:
http://jeelabs.net/projects/cafe/wiki/Receiving_OOKASK_with_a_modified_RFM12B (//jeelabs.net/projects/cafe/wiki/Receiving_OOKASK_with_a_modified_RFM12B)

Die JeeLib RF12 Bibliothek für den Arduino kann nicht nur FS20 senden sondern auch FS20, S300 und EM10 empfangen/dekodieren.
https://github.com/jcw/jeelib (//github.com/jcw/jeelib)

Eine mit JeeLib kompatible Bibliothek für den Raspberry Pi findest du hier:
https://github.com/gkaindl/rfm12b-linux (//github.com/gkaindl/rfm12b-linux)

Aus eigener Erfahrung mit dem RFM12B und dem Arduino kann ich dir nur empfehlen den C_arssi Kondensator auszutauschen. Ich verwende einen 220pF SMD Kondensator und empfange damit FS20, S300TH und ein weiteres mir nicht bekanntes Gerät.
Titel: Aw: Raspberry Pi - RFM12b
Beitrag von: schlauby am 05 August 2013, 10:48:48
Vielen Dank für die Links.
Leider lösst es nicht so ganz mein Problem.

Ich kann jetzt bereits die Daten, die von meinem Funk-Thermostat geschickt werden, auslesen. Leider kenn ich den Gerätecode nicht, um die Stelle zu finden, an dem die Temperatur steht.
Hab auch schon versucht nach der Temperatur zu suchen um eventuell den Gerätecode davor zu erkennen. Leider ohne Erfolg :-(

Was mich auch wundert, dass nicht immer die gleiche Anzahl an Bytes geschickt werden. Diese variiert stark.

Auf dieser Seite
http://www.susa.net/wordpress/2012/08/raspberry-pi-reading-wh1081-weather-sensors-using-an-rfm01-and-rfm12b/ (//www.susa.net/wordpress/2012/08/raspberry-pi-reading-wh1081-weather-sensors-using-an-rfm01-and-rfm12b/)
Werden die Daten für die Wetterstation WH1081 erklärt (hab ich leider nicht). Bei der Temperatur werden immer 400 abgezogen, um die Temperatur zu erhalten.
Dies verstehe ich nicht...
Titel: Aw: Raspberry Pi - RFM12b
Beitrag von: schlauby am 09 August 2013, 10:27:37
Hab wieder mehr Infos gefunden...

Ich benutzte das TX 29-IT Temperatur-Außenfühler. Folgende Werte habe ich rausgefunden:

    Mittenfrequenz 868,3 MHz
    Modulation: FSK
    Frequenzhub: +/- 90 kHz
    Datenrate: 17.241 kbit/s

Wo ich die Daten einstelle weis ich, aber wie kann ich die Modulation auf FSK stellen? Mein Code steht auf OOK.
Titel: Aw: Raspberry Pi - RFM12b
Beitrag von: schlauby am 14 August 2013, 14:37:11
Hallo @ll,

ich kann einfach nicht aufgeben ;-)

Leider find ich im Internet nix, wie man den RFM12B mit dem Raspberry in FSK betreibt.

Hab von der Hochschule Coburg (http://www.hs-coburg.de/20775.3 (//www.hs-coburg.de/20775.3)) einen Artikel gefunden, wie zwei Raspberrys über RFM12B Daten austauschen. Der Anschluss hier ist aber anders, als in den oben genannten Artikeln.
Kann es sein dass ich für FSK Modulation den RFM12B anders anschließen muss?


 * RFM12b --- Raspberry Pi (version B):
 * GND              ---     GND               (Pin 25)
 * VDD              ---     3.3V              (Pin 17)
 * FSK/DAA/nFFS     ---     über 10k auf 3.3V (Pin 1)
 * SDO              ---     MISO              (Pin 21)
 * SDI              ---     MOSI              (Pin 19)
 * nIRQ             ---     GPIO 22           (Pin 15)
 * nSEL             ---     CS1               (Pin 26)

Ich hoffe ihr könnt mir weiter helfen :-)
(Die Hochschule Coburg hat leider nur den Code veröffentlicht)
Titel: Aw: Raspberry Pi - RFM12b
Beitrag von: betateilchen am 14 August 2013, 17:44:50
Das RFM12B macht doch von Haus aus (nur) FSK?

Titel: Aw: Raspberry Pi - RFM12b
Beitrag von: schlauby am 15 August 2013, 13:20:25
ja, stimmt schon. Der RFM12B ist ein FM Empfänger. Es gibt aber eine undokummentierte Funktion, bei der man auf AM umschalten kann.
Die ganzen Anleitungen im Netz verwenden das Modul als AM Empfänger,
daher weiß ich leider nicht, wie ich die "Standard-FM-Funktion" verwenden kann.
Titel: Aw: Raspberry Pi - RFM12b
Beitrag von: betateilchen am 15 August 2013, 13:31:10
Zitat von: schlauby schrieb am Do, 15 August 2013 13:20Der RFM12B ist ein FM Empfänger.

Nein. RFM12B ist ein Transceiver, also bestehend aus einem Empfangs- UND einem Sendeteil.

Zitat von: schlaubyLeider find ich im Internet nix, wie man den RFM12B mit dem Raspberry in FSK betreibt.
Zitat von: schlaubyDie ganzen Anleitungen im Netz verwenden das Modul als AM Empfänger,
Zitat von: schlaubydaher weiß ich leider nicht, wie ich die "Standard-FM-Funktion" verwenden kann.

Was willst Du eigentlich wirklich? AM? FM? FSK? Irgendwie werde ich aus Deinen Fragen nicht schlau - in jeder kommt eine andere Modulationsart ins Spiel.

Hast Du schonmal ins Datenblatt geschaut?
Titel: Aw: Raspberry Pi - RFM12b
Beitrag von: schlauby am 15 August 2013, 13:35:51
Ich möchte einen TX 29-IT Temperatur-Außenfühler über den RFM12B empfangen.

Folgender Link hat mir die Daten geliefert:
http://www.seegel-systeme.de/index.php?page=funkthermometer-tx-29-it (//www.seegel-systeme.de/index.php?page=funkthermometer-tx-29-it)

Mittenfrequenz 868,3 MHz
Modulation: FSK
Frequenzhub: +/- 90 kHz
Datenrate: 17.241 kbit/s

-> aus diesem Grund benötigen ich die Modulation FSK :-) und wenn ich es richtig interpretiere FM ist.
Titel: Aw: Raspberry Pi - RFM12b
Beitrag von: schlauby am 15 August 2013, 13:43:04
ok, sorry bring da was durcheinander, FSK hat nix mit FM  zu tun :-(

hab leider kein genaues Datenblatt, nur den Link oben. Ist ja auch in billig Sensor...
Titel: Aw: Raspberry Pi - RFM12b
Beitrag von: betateilchen am 15 August 2013, 14:14:24
Zitat von: schlauby schrieb am Do, 15 August 2013 13:43hab leider kein genaues Datenblatt, nur den Link oben.

Ich hatte Dir in meinem letzten Beitrag oben den Link zum Datenblatt mitgeschickt...

http://www.hoperf.com/upload/rf/rfm12b.pdf
Titel: Antw:Raspberry Pi - RFM12b
Beitrag von: timoschober am 28 Oktober 2013, 20:05:54
Hallo zusammen,
ich hab inzwischen aufgegeben. Theoretisch soll es möglich sein den RFM12B mit FS20 zu koppeln, aber der Empfang ist nicht so gut, weil der Funkempfänger nicht dafür ausgelegt ist.

Jetzt hab ich bei Busware einen Chip gefunden, der dass kann:
http://busware.de/tiki-index.php?page=CSM
Titel: Antw:Raspberry Pi - RFM12b
Beitrag von: PeMue am 28 Oktober 2013, 20:20:56
Hallo Schlauby,

warum nimmst Du nicht eines der beiden LCD Erweiterungen für den Raspberry Pi?
http://forum.fhem.de/index.php/topic,12854.0.html (http://forum.fhem.de/index.php/topic,12854.0.html) bzw. das
http://forum.fhem.de/index.php/topic,14156.0.html (http://forum.fhem.de/index.php/topic,14156.0.html)Beim ersten ist das CSM als Modul mit drauf, beim zweiten ist der CC1101 mit im Layout integriert.

Gruß PeMue
Titel: Antw:Raspberry Pi - RFM12b
Beitrag von: timoschober am 17 März 2014, 15:18:36
Hallo PeMue,

danke für deinen Tip. Das wäre natürlich eine Lösung, ich möchte aber gerne selbst etwas basteln, daher suche ich weiter an einer Lösung :-)
Hab inzwischen auch ein fertiges Modul gefunden, dass genau das abbildet, was ich suche (RFM12 an Raspi zu Funkthermostat)

http://www.seegel-systeme.de/index.php?page=funksensoren-am-raspberry-pi

An die Sourcen komme ich leider nicht dran :-( ohne etwas zu kaufen.
Also werde ich mich jetzt intensiver mit den Funkprotokol beschäftigen - ich weis zumindest jetzt, dass es funktionieren sollte :-)

Gruß schlauby
Titel: Antw:Raspberry Pi - RFM12b
Beitrag von: timoschober am 17 Juni 2014, 11:05:54
Hallo zusammen,

ich will jetzt mal meinen Beitrag zum Abschluss bringen  ;D

Hab mir bei Seegel-Systeme (http://shop.seegel-systeme.de/Module/Raspberry-RFM.html) das RFM12B mit Platinen gekauft. Dazu gab es eine Pearl Bibliothek. Nach langem Testen habe ich es leider nicht zum Laufen bekommen, bzw ich habe nichts empfangen. Dann habe ich den Raspi neu aufgesetzt und siehe da es lief (plankes Debian). Sobald aber wieder FHEM lief (Debian und FHEM, sonst nix), ging es nicht mehr. Dann habe ich FHEM wieder gestoppt und es lief. Muss aber dazu sagen, dass ich trotzdem max ein Paket pro Minute empfangen habe, obwohl alle 4 Sekunden etwas kommen sollte.

-> Also demnach unbrauchbar mit FHEM (werde mal das Testen mit einem C-Programm, dass schneller ist.

Hab mir jetzt einen Arduino geholt, den per USB an den Raspberry gehängt. Bespielt habe ich es mit dem Lacross-Sketch.

Jetzt empfange ich alle 4 Sekunden ein Paket  ;D

Gruß schlauby