Wenn man die Türklingeln nicht hört ;) Die Zweite

Da es mich störte das meine Türklingelschaltung nicht immer zu 100% funktionierte musste was anderes her. Das Problem lag an der Reichweite der NRF24L01+ 2.4GHz Transceiver.
Wenn ich alle Türen geschlossen hatte (im Winter zb der Fall) ging das Signal nicht immer durch die Wände. Ich hätte ein Repeater bauen können doch dann hätte ich eine weitere Spannungsquelle immer wieder prüfen / laden müssen.

Ich bin dann auf den ESP8266 aufmerksam geworden. Nach etwas Recherche habe ich auch das SODIAL(R)Lua ESP8266 ESP-12E WIFI Development Board gefunden welches für 5€ zu bekommen ist. Also nicht weiter drüber nachgedacht und erstmal 3 Stück bestellt.

Viele nutzen die Arduino IDE um Code auf den ESP8266 zu bringen. Alles gut und schön instaliert ist das fix (gibt genug Anleitungen im WorldWideWeb). Die ersten Test um den ESP8266  dazu zubringen sich mit meinem Wlan zu verbinden waren nicht so schön.

Es stellte sich raus das ich tierische Probleme mit der Arduino IDE hatte und sehr sporadisch nur der ESP8266  im Wlan auftauchte.

Nach vielen hin und her habe ich dann einfach die LUA Funktion genutzt und ein wenig herrumgespielt. Da stellte sich herraus das die Wlan integration deutlich besser war und mein Entschluss stand fest. Die paar Codezeilen werde ich auch in LUA hinbekommen.

Jetzt stand ich aber vor weiteren Problemen. „Wie löse ich das ganze?“ *grübbel*

  • eine Variable in Fhem setzen und Fhem macht dann alles weitere
  • ein Service auf einen Port lauschen lassen und ShellScripte ausführen lassen
  • Ein Ton abspielen wäre auch ganz cool falls das Handy mal wieder irgendwo rumliegt wo ich es nicht höre

Okay. Meine Lösung

  • es muss ein Lautsprecher an den CubieTruck der soll ein Ton abspielen
  • er soll eine Pushovernachricht an mein Handy senden
  • es soll Fhem unabhänig laufen und gut erweiterbar sein

Ich suchte also eine sehr kleinen leichten webserver der auf einem Event eine Aktion auslösen soll. Nach ein paar Stunden fand ich dann trigger.py ein Python Script was auf einen beliebigen Port lauschen kann und ein Webserver emuliert. Dieses Script kann dann einfach ein Befehl starten wenn der Key stimmt. Da bei mir auf dem CubieTruck Debian läuft und somit auch systemd habe ich einfach ein kleinen Service erstelllt der das Pythonscript startet.

Kurz noch ein Script geschrieben was mehere Scripte ausführen kann.

Dann ein Script welches eine mp3 abspielt.

Und die Pushover Nachricht absenden.

Token und User müssen natürlich angepasst werden.

Nun kann mittels URL Aufruf von

Die kommplette Benachrichtung ausgelöst werden + ich kann es sehr leicht erweitern / abändern. Da bei mir zusätzlich auf der Fritzbox auch Fhem läuft und dem Fhem auf dem CubieTruck sagt ob mein Handy im Wlan ist oder nicht habe ich mein Pushover Script soweit bearbeitet das nur Nachrichten gesendet werden wenn ich auch zu Hause bin.

Jetzt hatte ich nur noch eine Box an den CubieTruck zu hängen das ich auch den Ton höre. JAY-tech Mini Bass Cube (geniales Teil) besorgt da der Würfel direkt von USB mit Strom versorgt wird und zusätzlich auch ein Klinkeneingang im USB Kabel mit integriert ist. So ist die Box dauerhaft mit Strom versorgt.

Nachdem auf dem CubieTruck alles vorbereitet war und soweit funktionierte musste ich mich weiter um den ESP8266 kümmern.

Ich stellte fest das der Analogeingang leider nur maximal 1V verkraftet. Klar ein Spannungsteiler wäre schnell mit 2 Widerständen gebaut aber ich entschied mich lieber ein digitalen Port zu nutzen da der wie die Versorgungsspannung auch 3,3V fest ist. Da das Soundmodul eh mit 3,3V arbeitet musste ich nur die Kabel anschliessen.

Dann ging es ans Lua Scripten. Ich werde die Scriptfiles hier posten aber sie nicht erklären.

 

Das schöne an der Lua Umgebung ist das man mehere Dateien anlegen kann und so den Code recht aufgeräumt hat. Desweiteren kann man ihn onthefly abändern. Das Code aufspielen mit der Arduino IDE dauert im Vergleich recht lange.

Dann habe ich als Spannungsquelle eine Powerbank die eh nur Rumlag verwendet. Diese hat genug Kapazität um 4 Tage zu laufen.  Da das ganze System eh nur am Tage genutzt wird wenn jemand zu Hause ist und ein Paket zb erwartet, hällt die Powerbank sehr lange durch.