Select your language

Presence Detection: Schritt 1 - WLAN

Eine erste schnelle Variante der Anwesenheitskontrolle ist über WLAN. Mein WLAN wird durch 2 Ubiquity Unifi APs bereitgestellt, welche über die Unifi-Controller Software verwaltet werden. Diese lässt sich sehr gut in Home-Assistant einbinden und der Status von Geräten ermitteln.

Einschalten des 'device trackers'

configuration.yaml

################################################################
## Device-Tracking Platforms
################################################################
# Discover some devices automatically
discovery:
  ignore:
    - igd #=Internet Gateway Device: to prevent discovery notification of upnp/igd values of FitzBox
  
unifi:
  controllers:
    - host: !secret unifi_host
      site: home
      ssid_filter:
        - !secret unifi_ssid_private
      dont_track_wired_clients: true

Damit wird eine neue Integration "UniFi-Controller: home" in Einstellungen > Integrationen erzeugt. Neue Geräte werden automatisch angezeigt, Entitäten angelegt und aktiviert. Dies wird verhindert über

  • Einstellungen für UniFi-Controller > Neu hinzugefügte Entitäten aktivieren: aus

Weitere Optionen der Integration:

  • Nachverfolgen von Netzwerkclients: an
  • Einbinden von kabelgebundenen Netzwerk-Clients: aus
  • Verfolgen von Netzwerkgeräten (Ubiquiti-Geräte): aus
  • Zeit in Sekunden vom letzten Gesehenen bis zur Entfernung: 300

Einrichten der neuen Geräte

2 neue Entitäten wurden in der Integration benannt:

  • device_tracker.iphone8_max_wifi
  • device_tracker.iphone8_ing_wifi

Als benutzerdefiniertes Icon:

packages/presence_detection.yaml

homeassistant:
  customize: 
    device_tracker.iphone8_max_wifi:
      icon: mdi:cellphone-wireless
    device_tracker.iphone8_ing_wifi:
      icon: mdi:cellphone-wireless

Gerätegruppe je Person

Ich möchte eine zentrale Stelle haben, an der für jede Person das Gerät (oder die Geräte) verwaltet werden, die für die Anwesenheitserkennung herangezogen werden sollen. Bei einem Wechsel der Telefone möchte ich nicht in unzähligen Automatisierungen ein spezifisches Gerät ändern müssen. Hierfür nutze ich Gruppen:

packages/presence_detection.yaml

group:
  # group.phone_* dient zum zentralen Setzen des aktuell zu prüfenden Devices pro Person.
  #   Werden mehrere Geräte angegeben, dann ist Gruppe 'on'='anwesend' wenn mindestens ein Gerät 'on' ist.
  phone_max:
    name: Phone Max
    control: hidden
    entities:
      - device_tracker.iphone8_max_wifi
  phone_ing:
    name: Phone Ing
    control: hidden
    entities:
      - device_tracker.iphone8_ing_wifi

Diese Gruppen werden dann "anwesend" (=home) gesetzt, wenn mindestens eine der angegebenen Entitäten "anwesend" (=home). Also insbesonders ist zu beachten, dass die Gruppe nur denn "abwesend" (=not_home) wird, wenn alle angegebenen Entitäten "abwesend" sind (falls mehrere Entitäten Mitglied der Gruppen sein sollten).

Fazit

Positiv:

  • Schnell zu implementieren
  • Nutzen vorhandener WLAN-Infrastruktur, keine Zusatzhardware
  • relativ schnelles Erkennen von 'home' (Einbuchen ins WLAN und Rückmeldung im device_tracker.* in ca 5-10sec)

Negativ:

  • lange Zeiten bis Geräte beim Verlassen der Wohnung aus dem WLAN entfernt werden (5-10min)
  • Keine Erkennung, wenn WLAN am Telefon ausgeschaltet ist.
  • Verlust der WLAN Verbindung, wenn iPhone in den Schlaf fällt und damit ungewünschtes Ändern des Status

Nächste Schritte: