433 MHz Außentemperatur Sensor mit Raspberry Pi auslesen

Kürzlich kam die Idee auf, dass es doch möglich sein muss, drahtlose Sensoren die auf 433 MHz senden die Daten direkt in Klartext auszulesen. Die Suche ergab dass es ein Programm gibt für den Raspberry Pi mit dem Namen “rtl_433”. Es muss ja nicht immer gleich eine Platine mit Sender und Empfänger sein, die dann noch zusammengebaut und programmiert werden muss, es muss einfacher gehen 🙂

Hardware Liste:

Die Installation erfolgt auf dem Raspberry Pi wie folgt:

sudo apt-get update
sudo apt-get upgrade
 
# Abhängigkeiten installieren
sudo apt-get install libtool libusb-1.0.0-dev librtlsdr-dev rtl-sdr cmake mosquitto-clients git
 
# rtl_433 Git Repository holen
git clone https://github.com/merbanan/rtl_433.git
 
# in das rtl_433 Verzeichnis wechseln
cd rtl_433/
# Erstelle ein build Verzeichnis
mkdir build
cd build/
# Compile starten
cmake ../
# Make
make
# Install
sudo make install


# Testen, Ausgeben der Programm Parameter
rtl_433 -h
# Ausgabe der Programm Parameter

Gestartet wird das Programm mit “rtl_433 -G 4” für alle Geräte.

Ausgabe der Daten aller Sensoren in der Umgebung
Ausgabe der Daten

So sehen dann die Daten aus, für Sensoren die in der näheren Umgebung erreichbar sind und senden. In einem Hochhausgebiet dürfte das ganze sehr interessant werden.

Es werden übrigens auch Autoreifen Sensoren und Fernbedienungen angezeigt.

Teilweise ist es schon richtig krass was da an unverschlüsselte Daten in der Luft einfach so abgreifbar sind.

Nun habe ich mir auf gut Glück einen Sensor bestellt https://amzn.to/2ItJYg6 (*) um auszuprobieren ob der Sensor vom RTL-433 gelesen und dekodiert werden kann. Ja es hat geklappt und der Sensor hat weniger als 6 Euro gekostet.

Ausgabe Sensordaten
Ausgabe Sensordaten

Die Daten werden im JSON Format angezeigt, die über den Parameter “rtl_433 -G 4 -F json” mitgegeben werden beim starten des Programm. Dass in der Ausgabe noch Luftfeuchtigkeit angezeigt wird ist falsch und kann ignoriert werden.

Die Ausgabe an einen MQTT Broker weitergeben, damit die Daten dann in Node-Red weiter verabeitet werden können.

# rtl_433 -F json -M utc | mosquitto_pub -h mqtt.unixweb.de -t home/rtl_433 -l

Nun können die Daten in Node-Red eingelesen werden um dort angezeigt zu werden.
In meinem Fall hab ich die “id 5” des Sensor übernommen wie im Trace angezeigt.
In Deinem Fall musst Du suchen welche ID Dein Sensor hat und diesen in den Flow eintragen bzw. ersetzen im Filter.

Gehe jetzt auf die Git-Seite und kopiere mit Copy / Paste die Datei Node.js in die Zwischenablage. Kopiere nun die Zwischenablage -> in Node-Red -> Importieren Zwischenablage -> Klicke auf Deploy.

 
Das Ergebnis sollte wie der nachfolgende Screenshot aussehen.
RTL 433 MHz Node-Red Flow
RTl 433 MHz Dashboard mit Node-Red
Testaufbau mit SDR-Stick
Der 433 MHz Sensor

Der Testaufbau mit einem einfachen USB-Dongle. Daneben ein Octopus IoT Board zur Referenzmessung der Temperatur. Die Abweichung des Temperatur Sensor beträgt ca. 0.5 bis 1 Grad ° C, was durchaus im Bereich der Toleranz liegt.

 

Der Aufruf des Dashboard geht üblicherweise mit folgender URL: http://raspberrypi:1880/ui

Wenn die ersten Werte ankommen sollte das so im Dashboard aussehen :

 

Dashboard RTL 433 MHz

Mit diesem Artikel will ich zeigen, dass es auch Leuten möglich ist ohne Löten und programmieren einen Temperatur Sensor aufzubauen und die Daten so anzeigen zu lassen damit man nicht immer auf das Display des Sensors schauen muss. Nun können Beispiele für Frostschutz und Hitzewarnungen programmiert werden. Der Sensor wird hoffentlich durch den Einsatz von Batterien 2AAA mehrere Monate oder 1 Jahr ohne Batteriewechsel funktionieren, wir werden es testen 🙂


Wenn ich daran denke was es für ein Aufwand ist mit einem Arduino so einen Sensor aufzubauen, ist diese Lösung wirklich smart und einfach. Bei Frage einfach Kommentar hier unter dem Artikel hinterlassen.

Viel Spaß beim basteln und probieren wünscht Joachim

Zusammen Großes erreichen Egal ob einmalige Spende oder monatliche Mitgliedschaft, eure Unterstützung ist der Motor hinter meiner Leidenschaft. Jeder Beitrag fließt direkt in die Verbesserung der Qualität meiner Beiträge und die Vielfalt der behandelten Themen. Ich bin unglaublich dankbar für jede Form der Unterstützung, die ihr wählt. Besuche einfach meine Ko-fi-Seite unter https://ko-fi.com/joachimh.

Joachim

Aus Leidenschaft für Technik. Aktuelle Themen sind Datensicherheit, Software für Datenschutz, Mobile Geräte, Smartphone Sicherheit und Anwendungen, Raspberry Pi Geek.

Alle Beiträge ansehen von Joachim →

81 Gedanken zu “433 MHz Außentemperatur Sensor mit Raspberry Pi auslesen

    1. Hallo Thomas

      Dein Artikel war auf jeden Fall eine Inspiration das Thema mal anzuschauen und zu probieren.
      Danke dafür 🙂

      Grüße Joachim
      PS: Ja DSGVO ist in aller Munde und ich muss es nochmal ändern

  1. Hallo Joachim,
    tolles Projekt. Nur bei der Installation habe ich bei Zeile 16 eine Fehlermeldung erhalten (Kommando nicht gefunden). Was mach ich falsch?

    1. Hallo Hans-Dieter

      da hab ich doch tatsächlich noch etwas vergessen zu installieren bzw. zu dokumentieren.
      Danke für den Hinweis.

      Mach mal folgendes :
      sudo apt install cmake

      Dann sollte die Zeile 16 nun auch funktionieren.

      Beste Grüße , Joachim

  2. Moin Joachim,

    ich bekomme beim Weiterleiten an den MQTT-Broker eine Fehlermeldung:

    Connection Refused: not authorised.

    Was muß ich noch ändern ?

    Gruß Heiner

    1. Hallo Heiner

      dann stimmt irgendwas mit der Zusammenstellung des Kommando in der Shell nicht.
      Probier mal “mosquitto_pub -h mqtt.unixweb.de -p 1883 -t home/rtl -m 5” ob das geht.
      Wenn das geht muss auch alles andere funktionieren, bitte 1:1 übernehmen.

      Grüße , Joachim

  3. Habe den Fehler gefunden. Ich hatte den Server bereits auf localhost geändert, aber in dem Moment keinen MQTT Broker hochgefahren. Jetzt funktioniert alles 😉

    DAnke für Deine Hilfe.

    Gruß Heiner

  4. Ich habe alles gründlich nach deiner Anleitung gemacht, ich bekomme jedoch folgendes Fehler:

    trying device 0: Realtek, RTL2838UHIDIR, SN: 00000001
    Detached kernel driver
    Found Rafael Micro R820T tuner
    Using device 0: Generic RTL2832U OEM
    Exact sample rate is: 250000.000414 Hz
    [R82XX] PLL not locked!
    Sample rate set to 250000.
    Bit detection level set to 0 (Auto).
    Tuner gain set to Auto.
    Reading samples in async mode…
    Tuned to 433.920MHz.
    Unknown modulation 11 in protocol!
    pulse_FSK_detect(): Maximum number of pulses reached!
    Unknown modulation 11 in protocol!
    Unknown modulation 11 in protocol!
    Unknown modulation 11 in protocol!
    pulse_FSK_detect(): Maximum number of pulses reached!
    Unknown modulation 11 in protocol!
    pulse_FSK_detect(): Maximum number of pulses reached!
    Energy Count 3000:
    bitbuffer:: Number of rows: 1
    [00] {579} fe e0 3f e3 80 00 ff ff c0 1f 80 00 ff ff e0 00 f8 07 01 c0 7f df ff f0 00 1f fe 00 fd 87 ff ff ff df 00 83 80 01 ff cc 0f 0f ff ff ff fc 00 3f ff f1 e1 ff 84 00 78 07 ff fe 18 1f ff ff 00 3f fd 00 e0 3c 07 f0 20 00 00
    Energy Count 3000:
    bitbuffer:: Number of rows: 1
    [00] {574} ff ff 80 01 f8 70 03 f0 3f fe 3f fe 00 03 ff ff f0 3f ff 10 ff ff ff f8 03 fc ff f8 3f fe 1f fc 38 00 3d ff fe ff ff c0 03 83 ff ff f0 24 0f ff e7 00 7f 80 fc 10 3f e0 04 37 f8 05 03 ff 00 ff a7 ff e7 e7 ff fc 00 00
    Unknown modulation 11 in protocol!
    Unknown modulation 11 in protocol!
    Energy Count 3000:
    bitbuffer:: Number of rows: 1
    [00] {555} ff e3 f0 07 00 3f ff ff 83 ff f3 ff f9 c7 78 7f f7 fe 7e ff c0 01 83 ff 01 8c 08 3c 00 0f ff ff 80 07 ff ff fc 7e 00 0f ff ff e0 7f e0 03 ff fc 03 fe e1 ff f8 ff fc 00 3f fc 20 1c ff 80 03 e0 01 f0 ff e0 00 00
    Unknown modulation 11 in protocol!
    Unknown modulation 11 in protocol!
    Unknown modulation 11 in protocol!
    Signal caught, exiting!
    Reattached kernel driver

    Ich kann irgendwie damit nichts anfangen, die Befehle wurden alle ohne Fehler ausgeführt.

    Dankeschön…

  5. Es scheint ja recht zahlreiche USB <= DVB-T Empfänger zu geben, teilweise runter bis zu einem Preis von 7 EUR. Gibt es dazu Erfahrungen, wie gut der Empfang auch mit diesen Dingern klappt?

  6. Hallo,
    kurz eine Frage. Benötige ich zum Empfang des DVB-T Empfänger…..?

    Bekomme aktuell folgende Meldung:
    pi@raspberrypi:~/rtl_433/build $ rtl_433 -G
    rtl_433 version 18.12-55-gfe024a2 branch master at 201812282347
    Trying conf file at “rtl_433.conf”…
    Trying conf file at “/home/pi/.rtl_433/rtl_433.conf”…
    Trying conf file at “/usr/local/etc/rtl_433/rtl_433.conf”…
    Trying conf file at “/etc/rtl_433/rtl_433.conf”…
    Registered 114 out of 120 device decoding protocols [ 1-4 6-8 10-26 29-64 67-120 ]
    rtl_433: warning: 104 “Wireless M-Bus, Mode C&T, 100kbps (-f 868950000 -s 120000 0)” does not support CSV output
    rtl_433: warning: 105 “Wireless M-Bus, Mode S, 32.768kbps (-f 868300000 -s 10000 00)” does not support CSV output
    rtl_433: warning: 106 “Wireless M-Bus, Mode R, 4.8kbps (-f 868330000)” does not support CSV output
    rtl_433: warning: 107 “Wireless M-Bus, Mode F, 2.4kbps” does not support CSV out put
    No supported devices found.

    Danke und Grüße
    Detlef

      1. Hallo Joachim,

        zuerst mal noch Gesundheit und alles Gute für 2019!
        Vielen Dank für Deine tolle Anleitung, ich hoffe damit meinem Ziel, 8 Funkthermometer auf einem Display anzuzeigen, näher zu kommen.
        Leider bekomme ich genau die gleiche Fehlermeldung wie Detlef.
        Der Befehl lsusb ergibt bei mir folgendes Ergebnis:
        ~$ lsusb
        Bus 001 Device 004: ID 0424:7800 Standard Microsystems Corp.
        Bus 001 Device 003: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
        Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
        Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

        Ich habe einen NooElec NESDR Mini USB RTL-SDR Stick.

        Ich bin für jeden Tipp dankbar!

        Viele Grüße
        Hans-Dieter

        1. Nachtrag:
          An drei USB Eingängen funktioniert der Stick, nur an der Buchse unten direkt neben dem Netzwerkstecker funktioniert der Stick nicht, das war die erste Buchse die ich probiert hatte…
          Jetzt empfängt der Stick auch die Daten.

          Vielen Dank und Gruß
          Hans-Dieter

          1. @Hans-Dieter Machuta

            Danke für den Hinweis, ich hatte plötzlich dasselbe Problem. Ich habe den Lüfter gewechselt am PI4 und seitdem war mein Stick tot. Ich hatte mir beim Abbau nicht gemerkt wo der dran war.

      2. Hallo Joachim,
        ich habe exat die gleiche Meldung wie Detlef,.
        “lsusb” sagt folgendes:
        pi@raspberrypi:~ $ lsusb
        Bus 001 Device 014: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T
        Bus 001 Device 018: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
        Bus 001 Device 019: ID 0dc6:3412 Precision Squared Technology Corp.
        Bus 001 Device 017: ID 05e3:0606 Genesys Logic, Inc. USB 2.0 Hub / D-Link DUB-H4 USB 2.0 Hub
        Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
        Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
        Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

        Also DVBT stick wird erkannt.
        Was kann mein Problem sein?

        Vielen Dank und schöne Grüße

      3. Hallo Joachim,
        ich bekomme exakt die selbe Meldung wie Detlef,
        “lsusb” sagt folgendes:
        pi@raspberrypi:~ $ lsusb
        Bus 001 Device 014: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T
        Bus 001 Device 018: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
        Bus 001 Device 019: ID 0dc6:3412 Precision Squared Technology Corp.
        Bus 001 Device 017: ID 05e3:0606 Genesys Logic, Inc. USB 2.0 Hub / D-Link DUB-H4 USB 2.0 Hub
        Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
        Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
        Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

        DVBT Stick wird also erkannt.
        kann es was mit RTL2838 DVB-T zu tun haben?
        Freue mich über jede Hilfe.
        Vielen Dank und schöne Grüße

    1. Hallo Lutz

      fast alle und der oben angezeigte USB-Stick kann schon 868 MHz.
      Sollte also kein Problem sein irgend einen USB-Stick zu nehmen, die können alle diesen Frequenzbereich.

      Grüße , Joachim

  7. Hallo Joachim,

    ich habe es erstmal unter windows versucht und jetzt verzweifle ich. Es hat erstmal nicht vollständig funktioniert und nun doch aber ganz unverständlich.
    Also meine Konfiguration : RTL SDR Receiver (JaniLab) wird mit 64bit Version unter Win7 von rtl_433 als RTL2832V OEM erkannt und findet nach dem Start mit rtl_433.exe -G auch einige Wettersensoren aber leider nicht die von meiner Mebus433 TE923 ( Typ TS33C Temp/Hum ) – Hideki 203HB TS13 war innen zu lesen. Aus Neugier hab ich dann , weil ich im Spektrum unter 867,5Mhz Signale sah, rtl_433.exe -f 867.5e6 -G aufgerufen und meine Sensoren waren erstaunlicher Weise da ebenso wie in meiner Mebus. Was ist da los? Was ist denn nun richtig 433 oder 867 ? Oberwellen?
    Sie werden bei 867 als HIDEKI TS04 erkannt.

  8. Hallo bei mir wird leider nur folgendes angezeigt:
    pi@raspberrypi:~ rtl_433 -G
    rtl_433 version 18.12-71-gb8578dc branch master at 201901231237
    Trying conf file at „rtl_433.conf“…
    Trying conf file at „/home/pi/.rtl_433/rtl_433.conf“…
    Trying conf file at „/usr/local/etc/rtl_433/rtl_433.conf“…
    Trying conf file at „/etc/rtl_433/rtl_433.conf“…
    Registered 114 out of 120 device decoding protocols [ 1-4 6-8 10-26 29-64 67-120 ]
    rtl_433: warning: 104 „Wireless M-Bus, Mode C&T, 100kbps (-f 868950000 -s 120000 0)“ does not support CSV output
    rtl_433: warning: 105 „Wireless M-Bus, Mode S, 32.768kbps (-f 868300000 -s 10000 00)“ does not support CSV output
    rtl_433: warning: 106 „Wireless M-Bus, Mode R, 4.8kbps (-f 868330000)“ does not support CSV output
    rtl_433: warning: 107 „Wireless M-Bus, Mode F, 2.4kbps“ does not support CSV out put

    Kann mir da jemand sagen, was dies bedeutet? Warum empfange ich keine Daten?

    Mit lsusb sehe ich das der DVBT Stick erkannt wurde.

    Jemand eine Idee?
    Vielen Dank für eure Hilfe.
    MfG Patrick

  9. Sorry, wollte nicht zig mal die gleiche Frage stellen.
    Meine Fragen wurden nie übernommen, und habe diese deshalb wiederholt eingestellt.
    Dabei war nur der Bestätigungslink der Anmeldung meinerseits nicht korrekt ausgeführt worden.
    Entschuldigt vielmals.

  10. Hallo
    Ich habe Markilux SonnenMarkise die mir Somfy RS-F1-A-433 Fernbedienung gesteuert wird ,
    iste es möglich das mit raspberry und iobroker zu steuern .
    Lg.Rufin

  11. Hallo,

    dieses Projekt finde ich seh interessant. Würdest du evtl noch weiter darauf eingehen wie ich die empfangenen Daten via Node-Red in einem ioBroker-VIS anzeigen kann? ich würde die Daten der Temperatursensoren gerne in meine vorhandene VIS einbinden.

    1. Hallo Fireee

      nein kann ich nicht da ich ioBroker nicht kenne.
      Vielleicht wird Dir bei Schimmer Media Forum geholfen, da sind viele ioBroker User.

      Grüße , Joachim

  12. Hallo,

    sehr interessantes Projekt – danke für deine Mühe und die sehr gute Anleitung.
    Beim Start mit sudo rtl_433 -G -F json bleibt das Programm jedoch immer an derselben Stelle stehen ohne Ausgabe von Daten:
    Detached kernel driver
    Found Rafael Micro R820T tuner
    Exact sample rate is: 250000.000414 Hz
    [R82XX] PLL not locked!
    Sample rate set to 250000 S/s.
    Tuner gain set to Auto.
    Tuned to 433.920MHz.
    Hast Du hierzu vielleicht eine Idee ??
    Gruß
    Frank

  13. Hallo Joachim,
    es geht jetzt – ich war wohl zu ungeduldig …
    Danke für Deine schnelle Antwort.
    Eine Frage habe ich aber noch:
    Läßt sich über die Parameter ein Frequenzbereich angeben, der gescannt werden soll, wenn ich nicht die genaue Frequenz der Geräte kenne?? Also z.B. 868,00 – 868,50.
    Gruß
    Frank

    1. Hallo Frank

      nein , mit rtl_433 kannst Du nicht scannen.
      Aber was geht ist einfach die Bandbreite vergrößern. Dh. du erweiterst einfach den hörbaren Frequenzbereich auf 2 MHz zb. mit :
      [-t ] apply a list of keyword=value settings for SoapySDR devices
      e.g. -t “antenna=A,bandwidth=2.0M,rfnotch_ctrl=false”
      Ob das Ergebnis zu einem Erfolg führt kann ich Dir aber nicht sagen da ich es nicht getestet hat.

      Grüße , Joachim

  14. Servus,
    genau nach dieser Methode habe ich schon lange gesucht.
    Jedoch hätte ich als Laie noch einige Fragen:
    – kann ich auch ein ASUS thinker Board verwenden oder muss es unbedingt ein PI sein?
    – kann man auch mehrere Sensoren dann auslesen? Alle Räume inklusive Aussentemperatur?
    – kann man die Temperatur-Anzeige anpassen? Würde gerne alle Sensoren auf einen Bildschirm anzeigen lassen – dann dazu noch Uhrzeit, Datum usw… Eventuell dann noch Höchst- und Tiefstwerte der Temperatur, Luftfeuchtigkeit…..

    Gruß
    Michi

    1. Hallo Michael

      wenn du dir die Sourcen holst dann kannst Du das ohne Probleme auch auf einem Tinker Board kompilieren und wird dort dann auch laufen. USB-Anschluß hast Du ja, damit sollte es funktionieren. Und ja Du kannst mehrere Sensoren einbinden, jeder hat eine ID und die hinterlegst dann für die jeweiligen Räume.
      Klar die Anzeigen kannst Du erweitern wie Du möchtest. Mit NodeRed gibt es da ziemlich viel Frei- und Spielraum kreativ zu werden. Wünsche Dir viel Erfolg.

      Beste Grüße Joachim

  15. Hallo,
    danke für das Tutorial.
    Ich habe zwei Fragen: Wo genau muss ich nodered die ID des Thermometer abändern?
    und muss ich auf der Shell diesen Befehl in einem eingeben um die Daten zu transportieren oder sind das zwei Befehle die hintereinander eingegeben werden:
    rtl_433 -F json -M utc | mosquitto_pub -h mqtt.unixweb.de -t home/rtl_433 -l

    Danke schon mal vorab
    Gruss
    Tim

    1. Hallo Tim

      die ID musst Du erst mal auslesen mit “rtl_433 -M utc” , diese dann merken und dann in NodeRed eintragen.
      Die ID trägst Du dann in dem “Filter” ein. Dort können auch mehrere ID’s hinterlegt werden.
      https://git.unixweb.net/jhummel/rtl-433/src/branch/master/node.js
      Dann den Ausgang entsprechend verbinden Ausgang1/Ausgang2 usw. mit einem “Debug” Node, damit erst mal sehen kannst
      ob da überhaupt etwas ankommt und ob es richtig ankommt.
      Dann den Befehl in einer Zeile eingeben, ist ein Befehl und nennt sich Kommando Pipes.
      Dh. Du übergibst die Ausgabe des ersten Befehl an den zweiten Befehl.
      “rtl_433 -F json -M utc | mosquitto_pub -h mqtt.unixweb.de -t home/rtl_433 -l” in einer Zeile eingeben.
      NodeRed starten und auf den Debug Tab gehen und dort die Ausgabe kontrollieren.

      Weiterhin viel Erfolg und viel Spaß, Joachim

  16. Hallo Joachim,

    eine Frage habe ich noch, was muss ich tun, damit das Piepes direkt beim booten des Raspberry gestartet wird. Bekomme es irgendwie nicht hin.

    Danke
    Tim

  17. Hallo zusammen,
    Installation hat ois super geklappt, kann auch sehr viele Sensoren in der Umgebung sehen. Jedoch schaffe ich es nicht die Daten im Dashboard anzuzeigen. Kann mir hier jemand bitte weiterhelfen? Ich bin ETZ nicht der IT Spezialist.

    Vielen Dank bereits im Voraus für die Hilfe.

  18. Hallo zusammen,
    woran kann es liegen, wenn man zwar den paramater “humidity” also Luftfeuchtigkeit sieht, jedoch diesen nicht abfragen kann?

    Gruß
    Michi

  19. Guten Morgen,

    nach einigen Stunden steigt der Stick mit folgender Meldung aus:
    – Async read stalled, exiting!

    Kann mir jemand sagen woran das liegt?

    Gruß
    Michi

    1. Hallo Robert

      wie oben schon beschrieben sende die Daten einen MQTT-Broker mit diesem Befehl :
      rtl_433 -F json -M utc | mosquitto_pub -h mqtt.unixweb.de -t home/rtl_433 -l

      Dann holst die oben gesendete Daten in RaspberryMatic mit Node-Red wieder rein mit diesem Flow: https://git.unixweb.net/jhummel/rtl-433/
      Ist wirklich sehr einfach und funktioniert problemlos und Topic solltest für Deine Bedürfnisse noch anpassen.

      Viel Erfolg und Spaß beim basteln .

      Grüße Joachim

  20. Moin,

    interessantes Projekt; habe ich mir auch auferlegt.
    Eine Frage: Welche Reichweite hat denn der DVB-T-Stick? Ich frage, da ich vor habe, in mehreren Räumen (über mehrere Etagen) + Außen die Temperatur (und ggf. Feuchtigkeit) zu messen.
    Schafft das ein Pi oder einer pro Etage?

    Zweites: Wenn ich das richtig verstehe, liest der DVB-T Stick auf der Frequenz alles aus, was da kommt. Wenn er also die Daten von verschiedenen Temp-Sensoren auslesen kann, senden die alle in einem einheitlichen Protokoll. Gilt das auch noch für komplexere Sensoren, die auch Luftfeuchtigkeit und Feuchtigkeit senden?

    1. Hallo Karsten

      über die Reichweite kann ich Dir keine Auskunft geben, da ich Deine Gebäude Struktur nicht kenne.
      Probier einfach mit einem Sensor zu testen und dann im Haus überall mal hinlegen und schauen ob die Daten noch empfangen werden.

      Zu 2.) Nein die sind nicht alle in einen einheitlichen Protokoll. Es werden nur die unterstützt die die Software auch kennt. Alle anderen können nicht ausgelesen werden. Du musst es ausprobieren wenn Du andere Sensoren als den im Artikel erwähnten nutzen möchtest. Dazu gebe ich keine Garantie und keine Gewährleistung dass es funktioniert. Eventuell ist dies auch der falsche Ansatz und solltest auf eine andere Technologie setzen die eine viel größere Reichweite hat und Sensoren selbst bauen.

      Viel Erfolg und Grüße , Joachim

  21. Hallo Herr Lutz,
    bin seit etwa 4 Wochen Neuling auf dem Raspi 4 und dem neuesten Rasbian-Betriebssystem.
    Deshalb war die Herausforderung umso größer, ihre Anwendung zum Auslesen der Sensoren meiner 20 Jahre alten Wetterstation umzusetzen. Danke für die Veröffentlichung dieser tollen Anwendung.
    Nachdem ich die Linux-Befehle und Node-Red so einigermaßen verstanden habe, ist mir eine für meine Verhältnisse sehr gute Wetterstation mit drei Sensoren für Temperatur und Luftfeuchtigkeit gelungen.
    Nun habe ich mir zur Aufgabe gemacht, die Kommando-Pipe für mosquitto_pub automatisch beim Booten auszuführen. Das habe ich nach langer Recherche mittels systemd, einem kleinen Skript und einem Service-File im Ordner /etc/systemd/system erledigt. Der Service wird auch gestartet, siehe:
    pi@Raspberrypi-Grisu:~ $ sudo systemctl status rtl_to_mosq.service
    ● rtl_to_mosq.service – Start rtl_433 stream to Mosquitto
    Loaded: loaded (/etc/systemd/system/rtl_to_mosq.service; enabled; vendor preset: enable
    Active: inactive (dead) since Sat 2019-12-28 14:21:30 CET; 29s ago
    Process: 503 ExecStart=/home/pi/rtl_to_mosq.sh (code=exited, status=0/SUCCESS)
    Main PID: 503 (code=exited, status=0/SUCCESS)

    Dez 28 14:21:29 Raspberrypi-Grisu systemd[1]: Starting Start rtl_433 stream to Mosquitto..
    Dez 28 14:21:30 Raspberrypi-Grisu systemd[1]: rtl_to_mosq.service: Succeeded.
    Dez 28 14:21:30 Raspberrypi-Grisu systemd[1]: Started Start rtl_433 stream to Mosquitto.
    l
    Leider muss das ganze nochmal über das Terminal gestartet werden, um Werte in Node-Red zu erhalten, hier der manuelle Start:
    pi@Raspberrypi-Grisu:~ $ sh rtl_to_mosq.sh
    pi@Raspberrypi-Grisu:~ $ rtl_433 version 19.08-113-g2b6d5fd branch master at 201912162234 inputs file rtl_tcp RTL-SDR
    Use -h for usage help and see https://triq.org/ for documentation.
    Trying conf file at “rtl_433.conf”…
    Trying conf file at “/home/pi/.config/rtl_433/rtl_433.conf”…
    Trying conf file at “/usr/local/etc/rtl_433/rtl_433.conf”…
    Trying conf file at “/etc/rtl_433/rtl_433.conf”…

    Consider using “-M newmodel” to transition to new model keys. This will become the default someday.
    A table of changes and discussion is at https://github.com/merbanan/rtl_433/pull/986.

    Registered 112 out of 141 device decoding protocols [ 1-4 8 11-12 15-17 19-21 23 25-26 29-36 38-60 63 67-71 73-100 102-104 108-116 119 121 124-128 131-141 ]
    Detached kernel driver
    Found Rafael Micro R820T tuner
    Exact sample rate is: 250000.000414 Hz
    [R82XX] PLL not locked!
    Sample rate set to 250000 S/s.
    Tuner gain set to Auto.
    Tuned to 433.920MHz.
    Allocating 15 zero-copy buffers
    pulse_FSK_detect(): Maximum number of pulses reached!
    pulse_FSK_detect(): Maximum number of pulses reached!
    pulse_FSK_detect(): Maximum number of pulses reached!
    pulse_FSK_detect(): Maximum number of pulses reached!
    pulse_FSK_detect(): Maximum number of pulses reached!

    Danach kann das Terminal auch geschlossen werden und der Datenstrom funktioniert trotzdem weiterhin.

    Hier noch mein Skript: /home/pi/rtl_to_mosq.sh

    #!/bin/sh
    /usr/local/bin/rtl_433 -F json -M utc+1 | /usr/bin/mosquitto_pub -h mqtt.unixweb.de -t home/rtl_433 -l &

    und hier mein Service-file: /etc/systemd/system/rtl_to_mosq.service

    [Unit]
    Description=Start rtl_433 stream to Mosquitto
    After=network.target

    [Service]
    Type=oneshot
    ExecStart=/home/pi/rtl_to_mosq.sh

    [Install]
    WantedBy=multi-user.target

    Vielleicht können Sie mir einen Rat geben, was hier nicht ganz richtig läuft.

    Viele Grüsse und vielen Dank
    Christoph

  22. Hallo!

    Vielen Dank für die tolle Anleitung.
    Ich hatte etwas Probleme mit dem Einlesen von stdin mit mosquitto und habe dabei herausgefunden,
    das RTL_433 selbst schon mqtt kann. z.B. “rtl_433 -G 4 -F mqtt:192.168.178.250”
    Das ganze wird dann schön nach empfangenen Devices und Daten in dementsprechende Topics verpackt.

  23. Hallo, wenn ich nur rtf_433 -G eingebe kommt immer diese Meldung genauso wenn ich rtl_433 -G -F json eingebe.

    root@loxberry:/opt/loxberry# rtl_433 -G
    rtl_433 version 20.02-37-gc47bef0 branch master at 202004232010 inputs file rtl_ tcp RTL-SDR
    Use -h for usage help and see https://triq.org/ for documentation.
    rtl_433: option requires an argument — ‘G’
    Trying conf file at “rtl_433.conf”…
    Trying conf file at “/root/.config/rtl_433/rtl_433.conf”…
    Trying conf file at “/usr/local/etc/rtl_433/rtl_433.conf”…
    Trying conf file at “/etc/rtl_433/rtl_433.conf”…
    rtl_433: option requires an argument — ‘G’

    Use -G for testing only. Enable with -G 4 if you really mean it.

    Gebe ich stattdessen rtl_433 -M- Ute ein findet er das Thermometer und es kommen weitere Daten rein. Warum klappt das nicht mit rtl_433 -G?

    root@loxberry:/opt/loxberry# rtl_433 -M utc
    rtl_433 version 20.02-37-gc47bef0 branch master at 202004232010 inputs file rtl_ tcp RTL-SDR
    Use -h for usage help and see https://triq.org/ for documentation.
    Trying conf file at “rtl_433.conf”…
    Trying conf file at “/root/.config/rtl_433/rtl_433.conf”…
    Trying conf file at “/usr/local/etc/rtl_433/rtl_433.conf”…
    Trying conf file at “/etc/rtl_433/rtl_433.conf”…
    Registered 123 out of 151 device decoding protocols [ 1-4 8 11-12 15-17 19-21 23 25-26 29-36 38-60 63 67-71 73-100 102-105 108-116 119 121 124-128 130-149 151 ]
    Detached kernel driver
    Found Rafael Micro R820T tuner
    Exact sample rate is: 250000.000414 Hz
    [R82XX] PLL not locked!
    Sample rate set to 250000 S/s.
    Tuner gain set to Auto.
    Tuned to 433.920MHz.
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
    time : 2020-04-25 07:57:33
    model : Ambientweather-F007TH House Code: 147
    Channel : 1 Battery : 1 Temperature: 58.1 F
    Humidity : 49 % Integrity : CRC
    time : 2020-04-25 07:59:19
    model : Ambientweather-F007TH House Code: 147
    Channel : 1 Battery : 1 Temperature: 58.1 F Humidity : 49 %
    Integrity : CRC
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
    time : 2020-04-25 08:00:12
    model : Ambientweather-F007TH House Code: 147
    Channel : 1 Battery : 1 Temperature: 58.1 F Humidity : 49 %
    Integrity : CRC
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
    time : 2020-04-25 08:01:05
    model : Ambientweather-F007TH House Code: 147
    Channel : 1 Battery : 1 Temperature: 58.1 F Humidity : 49 %
    Integrity : CRC

    Vielen Dank schon mal für die Hilfe.
    Was ich leider auch noch nicht geschafft habe, die Daten jetzt in Loxone einzubinden. Müsste ja über MQTT gehen.
    Viele Grüße
    Lars

    1. Hallo Lars

      Du musst auch mal die Fehlermeldung lesen :
      Use -G for testing only. Enable with -G 4 if you really mean it.

      Du musst “-G 4” aufrufen , da hat sich der Sourcecode inzwischen geändert.
      Habs in der Beschreibung auch geändert.

      Grüße Joachim

  24. Hallo Joachim,

    seit heute Morgen bekomme ich keine Temparaturen mehr angezeigt, nun habe ich festgestellt, das Nodered keine Verbindung mehr zum mqtt.unixweb.de aufbaut. Ist der Server down?
    Danke für Info
    Gruß
    Timo

    1. Hallo Timo

      ja ich musste den Server jetzt stoppen da es offensichtlich Spinner gibt die alle Sekunde einen riesigen Datenstrom an MQTT Nachrichten an mein Server schicken. Dafür ist MQTT nicht gedacht leider. Muss ihn ein paar Tage Offline nehmen, bis der Verdächtige gefunden wird.
      Update: 26.04.2020

      Verdächtiger wurde gefunden. Es die Technische Hochschule Wildau, wenn der Student sich doch mal bei mir melden möge. Danke.

      Grüße Joachim

  25. Hallo Joachim

    Danke für dein Tutorial. Ich habe es versucht nachzubauen, allerdings mit einem Raspberry pi 4 und einem HackRF One.

    Leider will der nicht erkannt werden von rtl_433. hättest du einen Rat dazu?

    Folgendes habe ich schon installiert:
    Soapy SDR
    Soapy SDR plugin for HackRF
    hackrf

    meine ausgaben:

    ————————————————————————————————
    pi@raspberrypi4-iot:~ $ rtl_433 -G 4
    rtl_433 version 20.02-50-g9700fee branch master at 202005142008 inputs file rtl_tcp RTL-SDR SoapySDR
    Use -h for usage help and see https://triq.org/ for documentation.
    Trying conf file at “rtl_433.conf”…
    Trying conf file at “/home/pi/.config/rtl_433/rtl_433.conf”…
    Trying conf file at “/usr/local/etc/rtl_433/rtl_433.conf”…
    Trying conf file at “/etc/rtl_433/rtl_433.conf”…

    Use -G for testing only. Enable protocols with -R if you really need them.

    Registered 146 out of 152 device decoding protocols [ 1-4 6-8 10-17 19-26 29-64 67-152 ]
    rtl_433: warning: 106 “Wireless M-Bus, Mode R, 4.8kbps (-f 868330000)” does not support CSV output
    rtl_433: warning: 107 “Wireless M-Bus, Mode F, 2.4kbps” does not support CSV output
    No supported devices found.

    ————————————————————————————————
    pi@raspberrypi4-iot:~ $ rtl_433 -G 4 -d driver=SoapySDR
    rtl_433 version 20.02-50-g9700fee branch master at 202005142008 inputs file rtl_tcp RTL-SDR SoapySDR
    Use -h for usage help and see https://triq.org/ for documentation.
    Trying conf file at “rtl_433.conf”…
    Trying conf file at “/home/pi/.config/rtl_433/rtl_433.conf”…
    Trying conf file at “/usr/local/etc/rtl_433/rtl_433.conf”…
    Trying conf file at “/etc/rtl_433/rtl_433.conf”…

    Use -G for testing only. Enable protocols with -R if you really need them.

    Registered 146 out of 152 device decoding protocols [ 1-4 6-8 10-17 19-26 29-64 67-152 ]
    rtl_433: warning: 106 “Wireless M-Bus, Mode R, 4.8kbps (-f 868330000)” does not support CSV output
    rtl_433: warning: 107 “Wireless M-Bus, Mode F, 2.4kbps” does not support CSV output
    pi@raspberrypi4-iot:~ $

    ————————————————————————————————
    pi@raspberrypi4-iot:~ $ SoapySDRUtil –find
    ######################################################
    ## Soapy SDR — the SDR abstraction library ##
    ######################################################

    Found device 0
    device = HackRF One
    driver = hackrf
    label = HackRF One #0 406464c82383314b
    part_id = a000cb3c0068475a
    serial = 0000000000000000406464c82383314b
    version = 2014.08.1

    ————————————————————————————————

    Ich bin gerade schier am verzweifeln.

    Liebe Grüsse aus der Schweiz
    Achim

    1. Hallo Achim

      ich bin mir nicht sicher ob ich mit dem HackRF One weiterhelfen kann, da ich dieses Gerät nicht habe.
      Kannst Du mit einem einfach USB-Stick es mal probieren?
      Eventuell kommst dann hier weiter.

      Grüße , Joachim

  26. Hallo Joachim,

    Ich bekomme in Zeile 8 die Meldung: Username for ‘https://github.com’:
    Wie kom Ich da weiter ?

    Schöne Grüße, Ben

  27. Hallo Joachim,

    Vielen Dank.
    Es war aber mein eigener Fehler, hatte “merbanen” anstatt “merbanan”
    Jetzt lauft Es. Freu !

  28. Moin lieber Joachim,
    herzlichen Dank und Kompliment !! Ich kann mich nicht erinnern, daß ein Projekt sich soooo schnell und reibungslos auf dem Raspi installieren lies. Wenn ich meine 70cm- Antenne anschließe, ist die Anzahl der Daten, auch in der Kleinstadt beeindrucken. Damit komme ich zum Problem.
    Ich würde gerne meine Station:
    2020-06-18 09:28:53,,,Prologue-TH,0,186,1,0,20.900,,9,,10,,,
    aus der Menge der Daten herausfiltern. Wie ich aus der Zeichenkette die interessanten Daten mittels Python herausbekomme weiß ich inzwischen. Ich brauche aber nur Prologue-TH und sonst nichts.
    Für sachdienliche Hinweise herzlichen Dank !!

  29. Hallo Joachim,
    danke für deine Mühe, ist echt toll die Software.
    Ich habe 2 Fragen:
    1. Das mit dem Userinterface bekomm ich nicht gebacken…. Natürlich habe ich die IP vom Rasperry genommen mit dem Port 1880…. aber da passiert bei mir nichts, die SW läuft…

    2. Ich bekomme folgenden Sensor (Reifendruck) eines ABARTH Spiders 124 (schönes Cabrio) …
    time : 2020-07-06 12:48:23
    model : inFactory-TH ID : 248
    Channel : 1 Battery OK: 1 Temperature: 67.00 F Humidity : 44 % Integrity : CRC
    Decoder “Abarth 124 Spider TPMS” gave invalid return value -6: notify maintainer
    pi@raspberrypi:~ $
    Danach beendet sich das Programm und ich sehe das prompt Zeichen.

    Passiert nur bei dem Drucksensor.

    Gruß Wolfgang

  30. Nach genau sowas habe ich gesucht. Danke für die tolle Anleitung!
    Ich musste mich erst in Node-Red etwas einarbeiten. An der UI bin ich verzweifelt. Ich konnte Node-Red zu keiner Ausgabe bewegen. Dann habe ich mir einen Ubuntu Container auf meiner QNAP aufgesetzt. Node-Red nach Anleitung auf deren Homepage installiert. RTL und MQTT laufen auf dem Raspi. Und siehe da, schon funktioniert es. Ich weiß nicht ob ich noch suchen will woran es liegt, den es soll noch eine Alarmierung eingerichtet werden wenn bestimmte Werte überschritten werden. Das Ganze soll eine Temperaturüberwachung für den Gefrierschrank im Keller werden.

  31. Mittlerweile habe ich mir noch eine Alarmierung via Telegram eingerichtet. Wird eine bestimmte Temperatur überschritten, schickt mir mein Telegram Bot eine Nachricht. Nun will ich noch mittles eines Befehls den ich an meinen Telegram Bot übergebe, die aktuelle Temperatur abfragen. Freien Text gibt mir Telegram nach Eingabe des Befehls aus. Allerdings scheitere ich mangels meiner Programmierkenntnisse daran, den Wert von msg.payload.temperature_C an den Telegram Sender zu übergeben.
    Kann mir jemand dabei weiterhelfen?

    Vielen Dank!

  32. Servus lieber Joachim,

    ich habe es wie beschrieben angewendet auf meinem Pi4 mit nur einem Problem:

    Ich kriege keine 433MHz Sensordaten angezeigt obwohl ich hier verschiedene vorliegen habe. Es wird mir rein gar nichts angezeigt. Die Frequenzen habe ich oft leicht geändert mit der Hoffnung, dass doch etwas entdeckt wird aber ohne ERfolg.

    Was kannst du mir raten, ich verzweifle allmählich.
    DANKE

  33. Moin,
    ich hätte da noch ein Problem. wie komme ich in die Frequenzen oberhalb 433 Mhz? Ab 800 schwirren meine Netatmo Module rum, die ich gerne erfassen möchte.
    so schaut das das derzeit aus.

    Found Rafael Micro R820T tuner
    Exact sample rate is: 250000.000414 Hz
    [R82XX] PLL not locked!
    Sample rate set to 250000 S/s.
    Tuner gain set to Auto.
    Tuned to 433.920MHz.

    Installiert ist alles auf einem PI, nach dieser Anleitung hier und er findet schon mal meine 433 MHz Sensoren, aber komischerweise mal in C und mal in F.

  34. Das mit den C & F konnte ich lösen mit rtl_433 -C si
    Aber wie scanne ich en Kompletten maximalen Bereich meines Stick? der geht von 27 Mhz -bis über 1000 MhZ?

    1. Hallo Frank

      nein das geht nicht, denn Du musst ja exakt auf der Frequenz -+ Bandbreite für die Kanäle hören.
      Wenn Du scannen würdest, kann die Software nicht den Sender dekodieren da er exakt im Sendebereich nichts hören würde.
      Du kannst Dir das ja mal in einer SDR-Console ansehen, dann hast Du ein Spektrum von 1 bis 2 MHz Breite wo Du die Sensoren
      alle sehen kannst.

      Grüße Joachim

  35. Es können schon mehrere Frequenzen empfangen werden, nur nicht zur selben Zeit. rtl_433 -f 433M -f 868M -H 60 wechselt aller Minute zwischen den 2 Frequenzbändern 433 MHz und 868 MHz. Man kann natürlich auch 2 (oder mehr) Frequenzen in der Schreibweise -f 433500000 -f 433920000 eingeben, um die genaue Frequenz des Temperatursenders einzustellen. Das ist aber kein scannen, sondern nur eine direkte Umschaltung zwischen verschiedenen Frequenzen.

  36. Hallo Joachim,
    ich habe das Paket nach deinem Howto compiliert und es läuft auch soweit alles. Nun gibt es ein neues Release 21.12. Kannst du mir einen Tip geben wie ich ein Update auf Release 21.12 druchführen kann? Einfach drüber compilieren?

    Danke und Gruß,
    Ole

  37. Hallo Joachim,
    Danke für das schöne Tutorial! Ich kann meine Daten in Node-RED einlesen, scheitere dann aber an dem Filter, ein Dashboard mit einfacher Textausgabe nach dem “to JSON” gibt folgenden Output:

    “{“time”:”2022-07-20 00:19:30″,”model”:”inFactory-TH”,”id”:125,”channel”:1,”battery_ok”:1,”temperature_C”:21.222,”humidity”:59,”mic”:”CRC”}

    Diese Daten passieren aber offenbar den Filter nicht, so dass nicht im Dashboard angezeigt bzw. in der Funktion davor weiterverarbeitet werden (habe beim 3. Eintrag im Filter-Node die ID von 5 auf 125 geändert).

    Was mache ich falsch?

    Vielen Dank
    Thomas

  38. Toller Blog, ich wusste nicht wie einfach es ist 433Mhz Sensoren auszulesen, Danke!
    Ich habe damit die Innentemperatur meine Kühlschranks im Wohnmobil an die Haus(Wohnmobil) Steuerung angeschlossen, ohne dafür wie beim alten ein Loch bohren zu müssen ;).
    Eine Frage bleibt, kann ich die Sensoren nach ID und Namen filtern sodass nicht alle nach MQTT geschrieben werden – ich finde in den vielen rtl_433 Optionen nicht dazu, übersehe ich etwas?

    Aktuell mache ich das so:
    #> rtl_433 -F “mqtt://192.168.220.10:1883,events=rtl_433” -C si

    Ich könnte MQTT über eine pipe schreiben in der Art
    #> rtl_433 -F json -C si | grep “id. : 8” | mosquitto_pub ….

    eine Option fände ich eleganter.

    Vielen Dank und Grüße Jörg

  39. soweit ich herausfinden konnte kann man nicht auf ‘id’ oder ‘model’ filtern jedoch mit der Option -R auf das Protokoll. Damit kann man es schon mal ganz gut einschränken.
    Grüße Jörg

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert