Möchtest du auch am Morgen nach dem Aufstehen mit deinem Lieblingssong und mit dem Geruch eines frischen Kaffees empfangen werden? – Dieser Blogbeitrag beschreibt, wie ich dieses Vorhaben mit Roomtracking in die Realität umgesetzt habe.
Wie kann man die Anwesenheit von Personen in einem Raum tracken?
Eine Variante wäre mittels Kameras und Gesichtserkennung. Diese Variante ist aber sehr Rechenintensiv und würde das Budget dieses Projekts sprengen. Zudem ist diese Variante für viele ein zu grosser Eingriff in die Privatsphäre. Eine deutlich günstigere Möglichkeit ist das Tracken über ein Gerät, welches wir ständig auf uns tragen, das Smartphone. Neben dem Smartphone gibt es auch viele Bluetooth Tags, die für eine Lokalisierung verwendet werden können. Sobald mehrere solcher Empfänger im Gebäude verbaut sind, kann der Raum erkannt werden, in welchem das Gerät sich befindet. Mittels der auf jedem Smartphone vorhandenen Bluetooth Schnittstelle kann basierend auf der Verbindungsstärke der nächste Empfänger bestimmt werden.
Was braucht es dafür?
Damit eine genaue und zuverlässige Position in einem Gebäude bestimmt werden kann, braucht es in jedem Raum ein Bluetooth fähiges Gerät. Ich habe mich hier aufgrund der geringen Kosten und des kleinen Formfaktors für den Raspberry Pi Zero entschieden. Um eine möglichst genaue und effiziente Lokalisierung zu ermöglichen, habe ich Bluetooth-Low-Energy (BLE) verwendet. Mit BLE hat dieses Vorhaben keinen Einfluss auf die Batterie des Smartphones und die Lokalisierung funktioniert sehr zuverlässig und schnell.
Room-Assistant
Auf allen Raspberry Pis läuft eine Software namens Room-Assistant. Damit die Software weiss, welche Geräte sie beobachten soll, müssen die entsprechenden IDs der Geräte in der Software hinterlegt werden. „Leider“ wechselt bei IPhones diese ID regelmässig, um genau ein solches Tracking des Gerätes durch Drittpersonen zu verhindern. Dieses Datenschutz-Feature kann mit entsprechenden Workarounds umgangen werden. Der Raspberry Pi scannt ca. jede Sekunde die Umgebung und bestimmt aufgrund der Verbindungsstärke die Distanz zu den hinterlegten Geräten. Die Distanz wird via MQTT an einen zentralen Server übertragen.
Als zentralen Server fungiert bei mir ein Raspberry Pi 4, auf welchem die Home Automationssoftware «Home Assistant» läuft. Hier werden die empfangenen Daten des Room-Assistants in einer Datenbank gespeichert. Die zweite Funktion des Home Assistants ist es zu bestimmen, welcher Empfänger dem Smartphone am nächsten ist und daraus abgeleitet in welchem Raum sich welche Person gerade aufhält.
Verwendungszweck
Um die Daten zu visualisieren, verwende ich den Grundriss meiner Wohnung. Sofern sich eine Person, oder ihr Smartphone, in einem überwachten Raum befindet, wird dies auf dem Grundriss entsprechend gekennzeichnet.
Neben der reinen Visualisierung können die Informationen genutzt werden, um personalisierte Aktionen auszulösen. Wenn beispielsweise meine Partnerin am Morgen aufsteht, startet automatisch ihre persönliche Morgenroutine. Dabei wird die Kaffeemaschine und ihre Lieblingsradiostation eingeschaltet.
Fazit
Die Einrichtung ist sehr einfach. Nach einigen Stunden rumspielen mit den Parametern des Room-Assistants funktioniert die Lokalisierung mittlerweile zuverlässig und Raumwechsel werden schnell erkannt. Nebenst dem Ermöglichen von Automationen, hat diese Erweiterung mir schon einige Male geholfen, das in der Wohnung «verlegte» Smartphone zu finden. Für den Use-Case „Asset Tracking“ könnte diese Methode in Schulen oder Büros interssant sein, um das Equipment im Gebäude günstig und vor allem automatisch zu lokalisieren.