[gelöst] Funksignal einer billigen 433Mhz Funktürklingel auslesen

  • Smartapfel ist womöglich nicht ganz der richtige Ort für meine Fragen aber vielleicht könnt ihr mich in die richtige Richtung schubsen.


    Ich habe hier ZWEI Sets aus je einer Klingeltaste (ohne Batterie, Strom durch Tastendruck) und je zwei Empfängern für die Steckdose. Beide Sets haben die selbe Bauform nur eine andere Farbe (schwarz und weiß) und einen anderen Herstelleraufkleber, dürften aber aus der gleichen Fernost-Fabrik stammen.


    Mein erster Versuch die Signale der Taster abzufangen habe ich mit diesen billigen Funkmodulen ausprobiert, die man an die GPIO-Pins des Raspi hängt. Mit pilight habe ich dann auch manchmal ein Signal empfangen, aber nur, wenn der Taster direkt neben dem Modul betätigt wurde. Pilight erkennt das als "cleverwatts-switch". Da meine Seeschärfe zum Auflöten einer Antenne nicht reicht und damit wohl auch nur einige Meter drin sein sollen habe ich diesen Weg aufgegeben.


    Mein aktueller Versuch basiert auf einem rtl-sdr-Modul für USB (eigentlich DVB-T), mit dem schwarzen Taster erhalte ich als Resultat:

    wobei ID=0 und Button=0 eher unglaubwürdig sind. Den weißen Taster habe ich schon etwas länger an der Haustür kleben. Beim Drücken meldet obiger Befehl leider nichts. Ein zusätzliches -vvv ergibt hier aber ein ähnliches 76 Pulse umfassende Empfangsschema wie bei dem schwarzen Taster. Es werden jeweils meist gleichen Zeilen wiederholt nur die Zahlenwerte sind andere. Ich habe die Ausgaben mal auf mein Onedrive [1] gelegt. Die Ausgabe der von rtl_433 -S unknown erzeugten Funkprofile *.cu8 erspare ich euch, das führt hier zu weit.


    Nun habe ich gelesen, dass man für rtl_433 selbst ein Geräteschema anlegen kann... wenn mans kann. Ich habe dazu leider keine für mich verständliche Anleitung gefunden. Kann mich da jemand auf eine brauchbare Seite lotsen? Vorzugsweise Deutsch, gerne auch Englisch. Sprich, was mache ich mit den oben erwähnten cu8-Dateien?


    Was will ich eigentlich machen?:

    Die Haustüre gehört zum Wohnhaus eines ehemaligen Bauernhofs. Dieser Hof hat nun ein Hoftor, das wegen eines Hundes nun meistens geschlossen ist, wodurch außer Nachbarn und Freunde niemand bis zur Haustürklingel kommt, insbesondere die Paketboten nicht. Ich möchte daher den schwarzen Taster an den Briefkasten vor dem Hoftor kleben. Allerdings reichen die zwei Empfänger je Klingel ohnehin nicht aus. Daher würde ich gerne den Raspi bei Empfang des Signals einen Webhook aufrufen lassen um einen Text auf der Alexa zu sprechen und/oder eine Nachricht via Pushover ans iPhone zu senden.


    Das ganze muss nicht zwingend über Homebridge und Homekit laufen, wäre aber schön wenn auch das ginge. Zumindest gibts da wohl HB-Plugins.


    [1] Hier die zwei Dateien: https://1drv.ms/u/s!Al3iXqiPtrhVh-04XB2F1x75L6g36g?e=FukBon

  • Bist du festgefahren mit deinem 433mhz? Ich an deiner Stelle würd einen Taster (kannst bestimmt auch den von deiner Klingel nehmen) und einen Wemos mit Tasmota anschließen. Wenn der Taster gedrückt wird kannst über den Wemos/Tasmota direkt einen Webhook schicken und damit machen was du willst. Strom und Wlan müssen halt vorhanden sein.

  • Bananajoe86, an der Klingel gibt es keinen Stromanschluss in der Nähe.


    Mittlerweile habe ich die rtl_433.conf so gebastelt, dass tatsächlich nur noch meine beiden Klingeln erkannt werden und das zuverlässig.


    Aber wie richte ich nun eine Überwachung ein, damit beim Drücken der Klingel etwas ausgelöst wird? Ich fürchte ich muss hierzu noch etwas zusätzliches Installieren. rtl_433 kann als Ausgabeformat json und mqtt.


    Was wäre hier der einfachste Weg ohne mit Kanonen auf Spatzen schießen zu müssen.


    Und wie gesagt, Homebridge/Homekit ist nicht zwingend erforderlich, wäre aber nett. Wenn bei Betätigen einer Klingel ein Script auf dem Raspi gestartet wird, würde mir das schon reichen. Für jede Klingel ein anderes Script.

  • rtl_433 kann als Ausgabeformat json und mqtt.

    Ich hab null Plan rtf_433, aber von MQTT. Mit sudo apt-get install mosquitto kannst du auf dem Raspi einen MQTT-Server installieren, an den dann ein MQTT-Topic versendet wird. Mit homebridge-mqttthing kannst du das Topic auslesen und an dein iPhone geben.


    Das sind die Kanonen.

  • Super sschuste, Danke!

    Ich hab es jetzt geschafft, dass beim Klingeln die Meldungen zumindest im Log von Homebridge erscheinen. Allerdings bekomme ich keine Auslösung. Laut git erfordert der type doorbell noch einen weiteren Parameter switchValues, wobei ich das Format des Arrays nicht gefunden habe und in der Eingabemaske ist auch kein Feld dafür vorgesehen. Ich hab das hier fürs Forum mal in den JSON Auszug eingebaut. Auf der Homebridge ist das natürlich nicht drin.

    Code
    {
         "accessory": "mqttthing",
         "type": "doorbell",
         "name": "Hoftor Klingel",
         "logMqtt": true,
         "topics": {
             "getSwitch": "rtl_433/sensors/Hoftor_Klingel"
         },
         "switchValues": "<array of 3 switch values corresponding to single-press, double-press and long-press respectively (optional)>"
    }

    Ich vermute, dass es der Schluss der Logs {"1":0,"2":1,"L":2} sein könte, oder? Allerdings hat meine Klingel gar keine Unterscheidung zwischen 1x drücken, 2x drücken und Longpress

    Code
    [3.9.2021, 20:07:17] [Hoftor Klingel] Received MQTT: rtl_433/sensors/Hoftor_Klingel = {"time":"2021-09-03 20:07:16.748392","model":"Hoftor_Klingel","count":2,"num_rows":4,"len":25,"data":"1234567","battery_ok":"1","id":11,"motion":"true","mod":"ASK","freq":433.98934,"rssi":-0.123676,"snr":21.76746,"noise":-21.8911}
    [3.9.2021, 20:07:17] [Hoftor Klingel] Warning: switch received [{"time":"2021-09-03 20:07:16.748392","model":"Hoftor_Klingel","count":2,"num_rows":4,"len":25,"data":"1234567","battery_ok":"1","id":11,"motion":"true","mod":"ASK","freq":433.98934,"rssi":-0.123676,"snr":21.76746,"noise":-21.8911}] which is not in configured values {"1":0,"2":1,"L":2}
  • Ich vermute, dass es der Schluss der Logs {"1":0,"2":1,"L":2} sein könte, oder?

    Hier bin ich überfordert und muss dich allein basteln lassen. Wird das Log beim Klingeln erstellt? Offenbar will mqttthing nur ein Array, das vielleicht so aussieht:

    {

    "1":1,

    "2":0,

    "L":0

    }


    Aber ich weiß es beim besten Willen nicht und kann das auch nicht nachstellen.

  • OK, ich hab das jetzt anders gelöst. in rtl_433.conf mache ich die Übergabe an mqtt://localhost nicht mehr mit events=<topic> sondern mit devices=<topic>. Dadurch wird nicht ein komplettes JSON an topic gesendet sondern für jedes Feld wird ein Subtopic angelegt.


    In Mqttthing habe ich statt doorbell jetzt den Typ 'motion sensor' verwendet. Ist in sofern praktisch, dass ich dann nach 5000ms selbigen wieder zurücksetzen kann. Dadurch wird die Automation bei Mehrfachklinglern nur ein Mal ausgeführt.


    Falls interesse besteht, kann ich das im Oktober, wenn ich Urlaub habe, mal zusammenfassen und einen Beitrag einstellen.

  • ApplePrime

    Hat den Titel des Themas von „Funksignal einer billigen 433Mhz Funktürklingel auslesen“ zu „[gelöst] Funksignal einer billigen 433Mhz Funktürklingel auslesen“ geändert.
  • Falls interesse besteht, kann ich das im Oktober, wenn ich Urlaub habe, mal zusammenfassen und einen Beitrag einstellen.

    :thumbup: