Funkklingel auslesen

  • Hallo,


    ich habe eine mumbi m-TG102 Funk Türklingel, die auf 433MHz sendet und empfängt. Nun würde ich gerne mithilfe des Pis ein Script ausführen, sobald geklingelt wird. Ich kann die eben geschriebenen Scripts nicht mehr pasten, weil sich der Pi (bzw. die SD Karte) gerade verabschiedet hat. Ungefähr so bin ich aber vorgegangen:


    * Pilight installiert
    * 433utils installiert (mit WiringPi Bibliothek)
    * XD-RF-5V Modul angeschlossen
    * XD-RF-5V Modul nach extrem schlechter Performance weggeworfen und gegen anderes Modul (dessen Bezeichnung ich leider nicht mehr heraus bekomme; auf dem Modul steht "LA-0501-01 FR4", was aber keine weiterführenden Infos mit sich bringt)


    sudo ./RFSniffer (im zugehörigen Verzeichnis) liest absolut nichts aus bzw. erzeugt im Terminal keine Ausgabe.


    sudo pilight-receive hingegen schon. Der Sender meiner Türklingel kann deutlich an der uuid identifiziert werden.


    Also Verzeichnis /home/pi/ding/ erstellt, dort existieren folgende Dateien
    * trigger.sh
    * read-log.sh
    * pilight-receive.log
    * dingdong.py


    Die Dateien hatten ungefähr folgenden Inhalt (wie gesagt, SD ist futsch und da ich mitten bei der Arbeit war, hatte ich von den Files leider noch kein Backup erstellt)
    * trigger.sh

    Bash
    #!/bin/bash
    
    
    while true
    do
    sudo pilight-receive > /home/pi/ding/pilight-receive.log
    sleep 3
    echo "." > /home/pi/ding/pilight-receive.log
    done


    Hiermit wollte ich bezwecken, dass die pilight-receive.log Datei regelmäßig entleert wird; getriggert wird nämlich, wenn die bestimmte uuid in der Datei enthalten ist, und würde ich die Datei nicht regelmäßig leeren, würde das nicht funktionieren.


    * pilight-receive.log
    entweder ".", oder die von sudo pilight-receive erzeuge Ausgabe


    * read-log.sh


    (else echo "nein." könnte theoretisch vollständig weggelassen werden. Zu Testzwecken war mir diese kurze Bash Datei aber ausreichend)


    * dingdong.py
    Schickt mithilfe von cURL eine definierte Nachricht plus Zeitstempel an eine festgelegte URL. Dadurch werden meine Freundin und ich per Telegram Bot benachrichtigt, sobald es klingelt (Alternative wäre Pushover, da Telegram aber auf all unseren Geräten installiert ist, war mir diese Lösung lieber)


    PROBLEM
    Scheinbar ist das wiederholte Aufrufen von pilight-receive durch die while Schleife nicht ideal. Irgendwann bekam ich nur eine komische Fehlermeldung, dass keine Daten empfangen werden konnten. Hier muss eine andere Lösung gefunden werden. Vielleicht ist der Zeitabstand zu gering, sodass pilight-receive einfach zu häufig aufgerufen wird und dadurch crasht. Vielleicht liegt der Fehler auch ganz woanders, der Pi hat sich ja nach dem Reboot leider nicht mehr per ssh erreichen lassen.


    Wie würdet Ihr weiter vorgehen? Danke im Voraus für Eure Hilfe ::)


  • Hallo,


    Nun würde ich gerne mithilfe des Pis ein Script ausführen, sobald geklingelt wird.
    ...
    sudo pilight-receive hingegen schon. Der Sender meiner Türklingel kann deutlich an der uuid identifiziert werden.


    Hallo raspberry314,


    so wie ich das verstanden habe, zeigt pilight-receive die empfangenen Daten des pilight daemons im json-Format an. Warum nimmst du nicht das laufende pilight und lässt die aktion über eine rule auslösen? (ich hab ganz ähnliches mit pimatic gemacht, beim überfliegen im pilight wiki sieht das so aus, als würde das ähnlich gehen.)


    Gruß, STF

  • Hallo STF,


    danke, ich habe direkt mal pimatic installiert. Ist für mich als Anfänger erst einmal etwas verwirrend, sollte sich mit der Zeit aber klären.


    Wie kann ich denn das laufende pilight bzw. den pilight-daemon abgreifen und einfach auslesen? Zwar werde ich versuchen, jetzt mit pimatic weiter zu machen, aber grundsätzlich wüsste ich diesen Lösungsansatz ohne pimatic auch gerne ^â

  • Komischerweise läuft das über pimatic nicht. Ich dachte erst, dass es evtl. an falscher Verkabelung o.Ä. liegt, aber...


    pilight-receive und pilight-send funktionieren; Anschluss jeweils an #17 und #18 bzw. wiringPi 0 und 1.


    So in pimatic eingestellt (gpio statt usb), unter Messages/Debug auf Eingangssignal gewartet: nichts.


  • danke, ich habe direkt mal pimatic installiert. Ist für mich als Anfänger erst einmal etwas verwirrend, sollte sich mit der Zeit aber klären.
    ...
    Wie kann ich denn das laufende pilight bzw. den pilight-daemon abgreifen und einfach auslesen? Zwar werde ich versuchen, jetzt mit pimatic weiter zu machen, aber grundsätzlich wüsste ich diesen Lösungsansatz ohne pimatic auch gerne


    Hallo raspberry314,


    so, wie ich das gesehen habe, gibt es bei Pilight und pimatic so ziemlich gleiche Funktionen.
    Und eine davon ist, auf Ereignisse zu reagieren und dabei eine Regel (rule) auszuführen. Und das könnte z.B. sein, beim Empfang eines bestimmten Funkcodes irgendetwas zu tun (irgendwas schalten/ein Skript aufrufen usw.)...So meinte ich das. An irgendwelche interenen Abfragen brauchst Du gar nicht ran.


    Gruß, STF


  • Komischerweise läuft das über pimatic nicht. Ich dachte erst, dass es evtl. an falscher Verkabelung o.Ä. liegt, aber...


    pilight-receive und pilight-send funktionieren; Anschluss jeweils an #17 und #18 bzw. wiringPi 0 und 1.


    Öhhhm, ich weiß jetzt aus dem Stand überhaupt nicht, ob sich beides gleichzeitig laufend "verträgt" oder gar in die Quere kommt?!?


    Quote


    So in pimatic eingestellt (gpio statt usb), unter Messages/Debug auf Eingangssignal gewartet: nichts.


    Direkt im Plugin hast Du das auch aktiviert und pimatic neu gestartet?


    Gruß, STF


  • It's not a bug, it's a feature. Mach mal das, was dort geantwortet wurde, und keine Sorge, das ist immer so. Manchmal liegt das daran, dass tatsächlich Fernbedienungen mehere Codes senden, mehrheitlich aber daran, dass sie sich ähnlich verhalten und anscheinend erkannt werden, aber dann doch nur einer funktioniert. Das muss so.


    Gruß, STF