Dumme Klingel (etwas) smarter gemacht mit NodeMCU/ESP8266

  • Zunächst mal zu unseren gegebenen Umständen. Wir wohnen in einem Haus aus den 1960ern, das vor ca. 6 Jahren von meinem Schwiegervater gekauft und kernsaniert wurde. Da wir nicht im Geld schwimmen und SmartHome für mich damals noch kein Thema war, wurde hier eine kostengünstige Klingelanlage eines chinesischen Herstellers verbaut. Außen verfügt diese sogar über eine Kamera und man kann innen auf einem kleinen Monitor sehen, wer an der Tür geklingelt hat. So weit, so gut.


    Bereits im letzten Jahr wollte ich unsere Klingelanlage nun smart machen. Auf die Videoübertragung konnte ich dabei getrost verzichten. Ich wollte lediglich eine Mitteilung bekommen, wenn jemand klingelt und über eine Automation eine bestimmte Lichtszene starten. Ich spiele leidenschaftlich gerne Gitarre. Meist natürlich, wenn sonst niemand im Haus ist und so habe ich schon des öfteren Paketboten oder sonstigen Besuch verpasst, da ich die Klingel einfach nicht gehört habe. Die System, die ich bei meiner Recherche entdeckt habe, waren entweder zu teuer oder mit unserer Klingelanlage nicht kompatibel. Ich musste meine Pakete also weiterhin bei den Nachbarn abholen, obwohl ich eigentlich zuhause war, und habe die Idee einer smarten Türklingel zunächst verworfen.


    Vor einiger Zeit kam mir dann ein Geistesblitz, als ich mal wieder mit der Arduino IDE und einem NodeMCU Amica herumgespielt habe. Diese kleinen Microcontroller haben einen GPIO-Pin (RST), mit welchem sie sich zurücksetzen lassen, wenn an diesem Spannung anliegt. Das sollte sich doch irgendwie nutzen lassen! Schnell baute ich unsere Klingel auseinander, schickte meine Frau nach draußen und überprüfte mit dem Multimeter, welcher Pin an unserer Klingelanlage beim betätigen selbiger einen Impuls schickt. Nach ein paar Versuchen war der entsprechende Pin gefunden. Wie es der Zufall so wollte, konnte ich den NodeMCU Amica sogar mit der Spannung der Klingelanlage versorgen. Ich steckte also die entsprechenden Kabel und musste das ganze jetzt nur noch irgendwie über Homebridge greifbar machen.


    Mir fiel auf, dass ich dazu nichtmal ein neues Plugin benötige, sonder das homebridge-people Plugin nutzen kann. Dazu schrieb ich folgenden Sketch und lud ihn auf den Microcontroller:



    Wann immer es also nun an der Tür klingelt, wird der NodeMCU aus seinem Dornröschenschlaf erwacht, verbindet sich für 5 Sekunden mit dem WLAN und legt sich dann wieder aufs Ohr. In der config.json hab ich für homebridge-people folgende Zeilen ergänzt:


    Code
    1. {
    2. "name": "Klingel",
    3. "target": "192.168.IPvom.NodeMCU",
    4. "threshold": 2,
    5. "pingInterval": 2000,
    6. "ignoreReEnterExitSeconds": 0
    7. }

    Alle 2 Sekunden wird der NodeMCU angepingt. Wenn er erreichbar ist, wird der entsprechende Sensor ausgelöst und meine Szene für die Türklingel gestartet. Zusätzlich bekomme ich noch eine Mitteilung auf meine Apple Watch.


    Das ganze läuft jetzt schon seit vier Wochen sehr zuverlässig und ich kann endlich Gitarre spielen, ohne Angst haben zu müssen, die Lieferung meines neuesten Spielzeugs zu verpassen. :P


    Hier noch ein paar Bilder:


    IMG_6623.JPG IMG_6624.JPG IMG_6627.JPG