Zum Inhalt springen

Präsenz / Anwesenheitserkennung Smart Mirror – Geofence

Eigentlich wollte ich die Anwesenheitserkennung meines Smart Mirrors über einen Bluetooth Ping regeln, was sich aber leider aufgrund von Problemen mit dem Bluetooth Stack bluez als nicht machbar herausgestellt hat. Ich habe hier darüber geschreiben.

Das schöne am l2ping wäre die sehr einfache Implementierung gewesen und man wäre nicht auf das Smartphone als Partnergerät angewiesen gewesen. Auch Geräte wie z.B. Wearables hätte man einbinden können.

Geofence

Mit Apps wie z.B. Geofency (iPhone) oder EgiGeoZone (Android) kann man einen virtuellen Zaun um den eigenen Wohnort ziehen und bei dessen Betreten und Verlassen Events triggern.

Ich habe meine App Geofency so eingerichtet, dass mein Smartphone beim Betreten des Grundstücks eine URL mit Parametern auf meinem Smart Mirror aufruft und dort ein Flag setzt, das für meine Anwesenheit steht.

Damit der Smart Mirror nicht nur auf meine Anwesenheit sondern auch auf die meiner Freundin reagiert, ist der HDMI Port nur dann aus, wenn wir beide nicht anwesend sind.
Auf dem Smart Mirror läuft ein Webserver mit einem .php Script, das die Befehle unserer Geofence Apps entgegennimmt und verarbeitet. Es werden die Befehle unterteilt in die Zugehörigkeit von „Silvan“ und „Sabine“ sowie „Ist anwesend – 1“ und „Ist abwesend – 0“.

Die beiden Werte werden in zwei Textdateien festgehalten auf die im weiteren Schritt ein Code Snippet zugreift, das den Innhalt auswertet und den HDMI Port abschaltet, sobald beide Werte auf „Ist abwesend – 0“ stehen.

Geofency arbeitet mit POST und EgiGeoZone mit GET. Deshalb muss ich beide Varianten auswerten.

In dem Code Snippet sind noch Log- und Diagnosefunktionen auskommentiert, die bei der Einrichtung helfen und euch z.B. die ID zeigen mit der sich das iPhone meldet.

Zu beachten ist, dass die Logfiles auf dem Apache die entsprechenden Zugriffsrechte besitzen und der Gruppe www-data gehören.

Bildschirmfoto 2016-03-21 um 00.00.10

geofence.php


onoff.sh

Das Script „onoff.sh“ wird entweder mit den Parametern „1“ (on) und „0“ (off) aufgerufen und steuert den HDMI Port.

#!/bin/bash
if [ $1 == "0" ]
 then
 vcgencmd display_power 0
 else
 vcgencmd display_power 1
fi

Gefällt dir der Beitrag?

Schreibe dich in den Newsletter ein und bekomme in unregelmäßigen Abständen zusammenfassende Newsletter mit den neuesten Beiträgen. Ich halte es minimalistisch. Versprochen.

5 Kommentare

  1. Michael

    Das ist eine sehr sehr geile Idee den Monitor abzuschalten wenn man nicht da ist. Vielleicht kann mir jemand weiterhelfen. Ich habe soweit alles fertig eingerichtet und auch wenn ich nicht da bin wird in der Log Datei eine 0 für Abwesenheit geschrieben jedoch wird der Befehl nicht an den Monitor weitergegeben das er ausgeht. Wäre total nett wenn sich jemand zu dem Thema bei mir melden könnte.

  2. Frank Kalberg

    Hallo,
    sehr schöne Sache. Die Idee ist toll. Ich versuche die Präsenzerkennung in mein Smarthome System ein zu binden. Leider hate ich ein Format Problem mit deinem PHP Script. Könntest du mir bitte das Script zukommen lassen. Vielen Dank für deine Hilfe.
    schöne Grüße
    Frank

  3. Genscher

    Noch besser ist doch einen Bewegungssensor im Flur, damit das Display nur angeht, wenn man sich gerade im Raum befindet. Mit KNX / Homematic / Loxone hat man die Präsenzsensorten ja sowieso überall installiert.

Schreibe einen Kommentar zu Michael Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*