Der Heimassi (10)

Nachdem sich der aus dem Powerline-Disaster entstandene Blutdruck wieder normalisiert hat, kommen wir zur Mosquitto-Server. MQTT ist ein offenes Protokoll, das sehr gut für M2M geeignet ist. Auch bei hohen Latenzen können Telemetriedaten vernünftig übertragen werden.

Der Mosquitto ist relativ einfach aufzusetzen. Hier ist ein vernünftiges Howto. Worauf zu achten ist, ist die Verwendung von Logins und die Absicherung via TLS. Es ist ratsam, hierfür die Zertifikate von Letsencrypt zu verwenden. Ist alles aufgesetzt, lässt sich die Funktion prüfen, indem man einfach mal alle Topics abonniert:

mosquitto_sub -u <user> -P <secret> -t "#"

Mit Hilfe von mosquitto_pub lässt sich eine Meldung publizieren. Man gibt in einer zweiten shell ein:

mosquitto_pub -h 127.0.0.1 -p 8883 -u <user> -P <secret> -t home/garage/sonoff_kanal1 -m ein

mosquitto_sub sollte nun ein einfaches „ein“ in einer neuen Zeile ausgeben. Damit wissen wir, dass der Server wie gewünscht funktioniert. Jetzt muss er noch mit Standortdaten gefüttert werden, damit HA bestimmen kann, wer sich wo befindet.

Hierzu verwende ich Owntracks. Die App ist sowohl für Android als auch für IOS erhältlich und open source – was bei personenbezogenen Daten wie Standorten ein wichtiges Merkmal ist.

Die Einrichtung verläuft relativ einfach. Unter „Einstellungen“ erstellt man eine „MQTT Privat“ Verbindung, verwendet das im Server hinterlegte Login und aktiviert TLS. Erfahrungsgemäß sind in der Standortbestimmung Verzögerungen von ein paar Minuten möglich. Das lässt sich per Einstellung in Owntracks tweaken – aber da wir jetzt keine sehr schnelle Reaktion brauchen und auch die Batterie des Telefons schonen wollen, bleiben wir da sehr zurückhaltend.

Jetzt bringen wir HA noch bei, diese Daten zu verwenden. Zum Einen müssen wir HA den Mosquitto bekannt machen:

mqtt:
  broker: 127.0.0.1
  port: 8883
  username: <user>
  password: <secret>

Zum Anderen muss HA wissen, wie er mit den Daten umzugehen hat:

device_tracker:
  - platform: owntracks
    mqtt_topic: "owntracks/#"
    max_gps_accuracy: 200
    waypoints: True

Um nun festzustellen, ob sich jemand vom Haus entfernt, verwendet man Zoning. Praktischerweise hat HA die Heimzone schon fertig eingerichtet. Die ist aber in der Grundkonfiguration schon recht groß und schließt in meinem Fall den Supermarkt mit ein – den man aufgrund von Großeinkäufen von SWMBO auch öfters mal mit dem Auto besucht. Das ist unpraktisch, weil dieser Punkt schon als „nicht daheim“ registriert werden soll. Also macht man die Zone manuell etwas kleiner.

zone:
  - name: work
    latitude: <lat>
    longitude: <lon>
    radius: 150
    icon: mdi:worker
  - name: Home
    latitude: <lat>
    longitude: <lon>
    radius: 150
    icon: mdi:account-multiple

Wird die Heimzone manuell konfiguriert, überschreibt sie die automatisch angelegte. Jetzt haben wir eine Standortplattform, auf deren Basis Bewegungen als Trigger oder Conditions verwendet werden können.

Im nächsten Kapitel schauen wir uns die Sonoff-Relais an. Sie brauchen eine alternative Software, die mqtt spricht.

 

 

 

 

Der Heimassi (9)

Nach langer Zeit mal wieder ein kleines Projekt: Es kommt bei uns immer mal wieder vor, dass vergessen wird, das Garagentor zu schließen. Das führt direkt auf einen öffentlichen Weg, der kaum einsehbar ist. Ohne Mitbürgern jetzt etwas unterstellen zu wollen lädt so eine Situation ja geradezu ein, sich in der Garage nach Brauchbarem umzusehen. Die Lösung ist aus verschiedenen Gründen nicht ganz einfach.

Bestandsaufnahme: Die Garage ist ca. 20 Meter vom Haus entfernt. Stromversorgung ist da, Netzwerk leider nicht. Auf dem Weg befindet sich keine Möglichkeit, einen aktiven Repeater zu installieren. Damit scheidet Zigbee schon mal aus. Was haben wir noch? Wifi! Wird auch nix – selbst im Freien neben der Garage ist der Empfang erfahrungsgemäß eher mau. Dann bleibt nur noch Erdkabel oder Powerline – aus naheliegenden Gründen wird Letzterem der Vorzug gegeben.

Was wollen wir erreichen? Steht das Garagentor offen und entfernt sich der Fahrer, soll er eine Erinnerung aufs Mobiltelefon bekommen. Dann soll er in der Lage sein, das Tor aus der Ferne zu schließen. Über eine Kamera in der Garage kann vorher geprüft werden, dass das Tor sicher geschlossen werden kann und durch nichts blockiert ist.

Wie stellen wir fest, dass sich der Fahrer entfernt? Dazu müssen wir uns mit Zonen beschäftigen. Für die Standortbestimmung soll natürlich keine Cloudlösung verwendet werden. Die Wahl ist auf Owntracks im Zusammenspiel mit Mosquitto (mqtt-Server) gefallen.

Der vorhandene Garagentorantrieb kann zusätzlich zur üblicherweise verwendeten Fernbedienung auch über einen potentialfreien Kontakt gesteuert werden – also muss ein Relais her.

Einkaufsliste: Powerline-Adapter, Kamera, Türkontakt, Relais.

Mangels Erfahrung habe ich mir einfach die FRITZ!-Adapter geholt. Mit den Wifi-Repeatern von AVM habe ich schon recht gute Erfahrungen gemacht, darum gehe ich davon aus, hier auch keinen Schrott zu bekommen. Das Set bestehend aus 540E und 510E geht für ca. 70€ über die Theke.

Als Kamera kommt eine günstige Foscam C1 für ca. 50€ zum Einsatz. 720p reichen aus, um zu sehen ob jemand im Torbereich steht.

Ich hatte noch einen Xiaomi Türkontakt auf Halde, für den muss ich dann eben noch ein zusätzliches Zigbee-GW installieren. Kostenpunkt Türkontakt: 8€ – für das Gateway sind dann nochmal 30€ fällig.

Zum Schalten brauchen wir jetzt noch ein Relais. Leider gibt es solche nicht gerade wie Sand am Meer. Eine längere Recherche ergab, dass die Sonoff-Geräte zwar gut und günstig sind, aber out-of-the-box nicht von HA unterstützt werden. Es gibt aber zum Glück Menschen mit Plan, die da richtig gute Arbeit geleistet haben. Es gibt für diese Geräte eine alternative Software, die sich über einen mqtt-Server ansprechen lässt. Da wir diesen ja ohnehin für die Standortbestimmung brauchen, trifft sich das gut.

Im nächsten Kapitel wird der Mosquitto-Server aufgesetzt, abgesichert und getestet, die Mobiltelefone mit Owntracks bespielt und die Standortbestimmung in HA eingerichtet.