Anwesenheitserkennung im Fibaro Home Center per MotherSense Cookie

Mother Sense stuert die Anwesenheitskontrolle im Fibaro Smart Home
Geschrieben von crissxcross
[vc_row full_width="" parallax="" parallax_image="" seperator_indeed_locker="Indeed Social Locker" lk_sl="" lk_t="" lk_la="horizontal" lk_dc="true" lk_dfn="true" lk_lt="2" lk_etl="0" lk_tl="30" lk_nru="0" lk_rl="0" lk_lra="30" lk_lrt="days" lk_io="" lk_lp="50" lk_dm="0" lk_thm="0" lk_tuo="0" lk_dt=" "][vc_column width="1/1" css=".vc_custom_1442767910088{background-color: #f4f4f4 !important;}"][vc_row_inner][vc_column_inner width="1/4" css=".vc_custom_1442917949199{padding-top: 10px !important;padding-bottom: 5px !important;padding-left: 10px !important;}"][vc_single_image image="16142" border_color="grey" img_link_large="" img_link_target="_self" style="vc_box_circle_2" alignment="center" img_size="60x60"][/vc_column_inner][vc_column_inner el_class="" width="3/4"][vc_column_text]

New: Read this article in english

This article is now available in english on siio.com.[/vc_column_text][/vc_column_inner][/vc_row_inner][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]Vor kurzem habe ich euch hier Mother Sense vorgestellt. So verbindest du Mother Sense mit deiner Fibaro und nutzt die Cookies an deinem Schlüsselbund als Anwesenheitssteuerung.

In diesem Tutorial soll es darum gehen, eine zuverlässige Anwesenheitsvariable im Fibaro System zu erhalten, um darüber Szenen zu steuern. So kannst du alle Lichter automatisch ausschalten, oder den Staubsauger losputzen lassen sobald du weg bist. Das Ganze wollen wir über das Sensorsystem Mother Sense und die Cookies realisieren. Warum nicht über die Fibaro App? Ich persönlich finde die Geofunktion der Fibaro App nicht brauchbar, da der iPhone Akku so schon kein Überlebenswunder ist und bei aktivierter GPS Funktion in der Fibaro App der Handy Akku schneller leer ist als man gucken kann. Ich hatte ja hier auf siio.de schon mal die Anwesenheitsprüfung via Ping beschrieben. Geht - aber ich bin der Überzeugung mit den Cookies von Mother geht’s besser.

Mother Sense hatte ich dir vor kurzem hier auf siio ausführlich inkl. Video[icons icon="icon-youtube" color="#dd3333" size="15"] vorgestellt, das Sensorsystem für Fitness, Gesundheit & Sicherheit. Dabei ist Mother (die Matroschka ähnliche Figur) der Hub, welcher per LAN Kabel mit deinem Router verbunden wird und so mit deinem Mother Sense Online Account kommuniziert. Über das 868Mhz Band kommuniziert Mother mit Ihren Cookies. Das sind die Sensoren welche Temperatur und Bewegung messen können. Sollten diese mal keine Verbindung zu Mother haben, so speichern Sie ihre Daten bis zu 10 Tagen. Also perfekte Sensoren für Daheim und unterwegs.

Mother Sense - und Cookies

Mother Sense - und Cookies

Auf Mother selbst konntest du verschiedene Apps installieren und die Cookies den Apps zuordnen. So konnte ein Cookie, befestigt an meiner Kaffeemaschine, anhand der Erschütterung messen wie viel Kaffee ich am Tag getrunken habe, ein anderer an meinem Schlüsselbund befestigt hat meine Schritte gezählt. Da ein Cookie auch mehreren Apps zugewiesen werden konnte habe ich den Cookie an meinem Schlüsselbund auch der "Anwesenheits" App zugewiesen.

.. und hier wird es spannend. Wie in meinem Mother Sense Artikel im Fazit erwähnt ist es ein tolles Spielzeug, aber es ist eine reine Sensorik. In diesem Artikel will ich dir zeigen, wie schnell du Mother Sense per API mit deiner Fibaro (oder jedem anderen Smart Home System) verbindest und so die Sensorwerte von Mother für dein Smart Home zu nutzen.

Erstelle so zum Beispiel eine An- und Abwesenheitserkennung und schalte zuhause alles automatisch aus, sobald du das Haus verlässt.

So geht’s:

1. Mother Sense API Key registrieren

Zunächst benötigen wir einen API Access Token. Das ist quasi dein Schlüssel um nachher per API Schnittstelle, auf deine Mother Sense Daten zuzugreifen. Dieser Zugang ist unabhängig von deinem Mother Sense Online Account Passwort. Solltest du dieses mal ändern, funktioniert unser Script, welches ich dir nachher zeige weiterhin.

Gehe zunächst auf dei Webseite. https://sen.se/developers[icons icon="icon-link" color="#1e73be" size="13"] und klicke dort auf "Become a developer". Fülle das folgende Formular aus, am besten nutzt du bei eMail Adresse die gleiche Mailadresse auf welche auch dein bestehender Mother Sense Account läuft. Als "Usage" gibt Personal an, Programming language ist "LUA". Als Grund habe ich schlichtweg angegeben, das ich Mother Sense mit einem Smart Home System verbinden möchte.

Innerhalb 1-2 Tagen sollte dein Developer Account freigeschalten werden. Danach konnte ich mich in meinen Mother Sense Online Account einloggen und im Menü oben auf den Punkt "Developers" navigieren. Anstelle des Menüpunktes "Become a developer" findest du nun den Menüpunkt "API Key".  Nach einem Klick auf den Menüpunkt siehst du schon deinen API Token. Eine schier unglaublich lange Kombination aus Zahlen und Buchstaben.

Mother Sense API Access Token

Mother Sense API Access Token

2.Mother App "Presence" für Anwesenheit installieren

Natürlich brauchen wir nun noch mindestens einen Cookie, welcher Mother flüstert ob du Zuhause bist, oder nicht. Diesen Cookie kannst du dir an dein Schüsselbund hängen, deine Tasche packen, einen Turnschuh kleben, oder was auch immer. Hauptsache das Ding ist aus dem Haus, wenn du auch weg bist.

Mother Sense - Schlüsselbund

Mother Sense - Schlüsselbund

Logge dich dazu in deinem Mother Sense Online Account ein. Gehe im Fuß der Seite auf "MORE" - Add Apps & Devices. Hier wählst du die App: Presence aus. In der Installationsroutine gib an, wessen Anwesenheit getrackt werden soll. Wenn du mit deiner Freundin zusammen wohnst, wäre es blöd wenn das Licht zuhause ausgeht und die Heizung runter fährt wenn du weg gehst, Sie aber noch zuhause ist ;-) ... obwohl .. :-D

Falls du deine Freundin noch nicht als "Person" in Mother angelegt hast, dann mache dies fix über den Menüpunkt: My Account > My Family

Zurück zur Installation der App "Presence". Nun wähle im Drop Down unter den jeweiligen Personen die zugehörigen Cookies aus. Also die Cookies welche ab sofort der persönliche Begleiter sind und die Anwesenheit / Abwesenheit melden werden. Im letzten Schritt kannst du noch auswählen ob du informiert werden möchtest per eMail / Push ect. wenn einer der Personen nach Hause kommt. Praktisch wenn du auf Arbeit sitzt und per Push benachrichtigt werden möchtest sobald der Junior aus der Schule angekommen ist.

Fertig. next Step.

[carousel arrows="display" buttons="display"] [panel title="Mother Sense" description="App Presence"]
Mother Sense - Anwesenheit App

Mother Sense - Anwesenheit App

[/panel] [panel title="Mother Sense" description="App Presence"]
Mother Sense - Anwesenheit App

Mother Sense - Anwesenheit App

[/panel] [panel title="Mother Sense" description="App Presence"]
Mother Sense - Anwesenheit App

Mother Sense - Anwesenheit App

[/panel] [/carousel]

3. Fibaro HC2 Variable erstellen

Wir werden in Schritt 5 per LUA Szene alle 30 Sekunden die API um den Zustand unseres Cookie befragen, welcher der App "Presence" zugeteilt ist, also der App auf Mother, welche erkennt ob der Cookie Zuhause ist oder nicht. Den Status wollen wir dann in eine globale Variable schreiben, um diese später weiteren Szenen verwenden zu können.

Um eine Variabel in im Fibaro Home Center anzulegen, gehe auf die Weboberfläche deiner Fibaro, dann unter Steuerungen > Variablen Steuerungen. Klicke hier auf Hinzufügen und lege eine neue Variable an. Den Namen kannst du nach Belieben wählen. Ich habe in diesem Beispiel die Variable "Cookie_Chris" benannt.

Wenn du in Schritt 2 mehrere User verwendest, dann musst du hier entsprechend weitere Variablen anlegen.

Fibaro HC2 Variablen anlegen

Fibaro HC2 Variablen anlegen

4. Cookie ID aus XML herausfinden

Mit Mother erhältst du 4 Cookies. Damit wir nachher per API den richtigen "Cookie" befragen, benötigen wir die UID. Das ist eine eindeutige ID, welche jeder Cookie, jede App und jedes Smartphone mit der Mother App in deinem Online Account erhält.

Gehe dazu auf: https://apis.sen.se/v2/

[carousel arrows="display" buttons="display"] [panel title="Mother Sense API"]
Mother Sense - an Web API anmelden

Mother Sense - an Web API anmelden

[/panel] [panel title="Mother Sense API"]
Mother Sense - an Web API anmelden

Mother Sense - an Web API anmelden

[/panel] [/carousel]

Hier wirst du nach Benutzernamen und Passwort gefragt. Hier benötigst du den Benutzernamen (nicht deine eMail) deines Mother Online Accounts und das Passwort deines Online Accounts. Den Benutzernamen findest du auch unter https://sen.se/profile[icons icon="icon-link" color="#1e73be" size="13"] (Menüpunkt My Account).

Nachdem du nun die API aufgerufen und dich angemeldet hast, siehst du 5 weitere Feeds. Darunter den Feed Users (https://apis.sen.se/v2/user[icons icon="icon-link" color="#1e73be" size="13"]") Wähle diesen aus. Hier sind alle Geräte wie der Mother Hub, deine Smartphones mit der Mother App und alle Cookies aufgelistet.

Suche dir nun den / die Cookies heraus, welche du in der "Presence" App (unter Schritt 2) vergeben hast. in meinem Beispiel war dies der Cookie "Brisk Ahead" und "adored blackberry". Klicke bei dem entsprechenden Cookie auf Link hinter "url:".  Hier siehst du nun alle "Apps" welche du auf Mother installiert hast. Das jeweilige Feld "used" gibt mit dem Wert "true" oder "false" an ob dieser Cookie darin verwendet wird. Suche nach der App "Presence". Bei used sollte "true" stehen. Wichtig ist uns nun der Wert hinter ""uid": Diese kryptische Abfolge an Zahlen und Buchstaben benötigen wir im nächsten Schritt.

Klicke nun auf den Link bei "url" in dem Block mit dem label "Presence". Danach auf den Link bei "eventsURL". Hier kannst du schon mal prüfen, was die Fibaro Szene nachher lesen wird. Steht im Body Present , bist du Zuhause, wenn nicht sollte dort Absent stehen. Wir brauchen noch den Wert der bei "Profile" steht. In meinem Beispiel ist das "WalkStandard".
[carousel arrows="display" buttons="display"] [panel title="Mother Sense API"]

Mother Sense - Web API

Mother Sense - Web API

[/panel] [panel title="Mother Sense API"]
Mother Sense - Web API

Mother Sense - Web API

[/panel] [panel title="Mother Sense API"]
Mother Sense - Web API

Mother Sense - Web API

[/panel] [panel title="Mother Sense API"]
Mother Sense - Web API

Mother Sense - Web API

[/panel] [/carousel] So das war der schwierigste Teil, nun ist es nur noch Copy & Paste ;-)

5. LUA Szene befüllt Anwesenheits Variable

LUA Szene

LUA Szene

Zunächst hier mal das fertige LUA Script, welches du im Fibaro HC2 in eine LUA Szene kopierst. Im Anschluss erkläre ich dir ein paar die wichtigsten Zeilen davon.

Folgende Zeilen musst du anpassen:

Beginnen wir in Zeile 26.

mother-presense-zeile26

Hier trägst du als "CookiePresense" die UI deines Cookies ein, welchen wir in Schritt 4 herausgefunden haben.

Aus dieser UID wird im folgenden die URL für den API Aufruf zusammen gebaut. Ist der Status des Aufrufes =200, ist alles okay und weiter geht’s. Dann schaut das Script in die XML Antwortdatei und springt in den Block "Objects" und sucht nach dem Profile. Auch dieses haben wir in Schritt 4 herausgefunden. Ändere dies entsprechend, passend für dich in Zeile 37 ab. In meinem Beispiel ist das Profil "WalkStandard".

mother-presense-zeile37

Danach ließt er den Status von "presence" aus. Ist dieser Present, so beschreibt er in Zeile 46 die Globale Variable (welche du in Schritt 3 angelegt hast) mit 1 für Anwesend. Falls der Wert Absent ist wird in Zeile 48 die Variable mit 0 für Abwesend beschrieben. Hier musst du nun den Namen deiner in Schritt 3 angelegten Globalen Variable eintragen:

mother-presense-zeile47

Zum Schluss definieren wir noch den Access Token unter den "Options". Trage für die Autorisierung in Zeile 56 deinen Access Token ein, welchen du dir in Schritt 1 erstellt hast.

mother-presense-zeile56

Speichern, fertig. Die API wird nun alle 30 Sekunden abgefragt und deine Globale Variable (welche du in allen Szenen verwenden kannst) wird entsprechend mit 1 oder 0 für Anwesend oder Abwesend beschrieben.

Für weitere Cookies, die zur Anwesenheitsprüfung weiterer Familienmitglieder genutzt werden, lege einfach eine weitere Globale Variable an, sowie eine neue LUA Szene mit dem Script und passe auch da die UID des Cookie, sowie das Standardprofil an.

Die Cookies melden sich im Intervall von ca 15 Minuten an der Mother. Heißt wenn du das Haus verlässt oder auch nach Hause kommst, wechselt der Status nicht sofort sobald du die Tür öffnest auf "Anwesend" (1) .

Beispiele für Szenen

Ich verwende die Szene nun, um das Licht und alle elektrischen Geräte wie Kaffeemaschine, Wasserkocher, TV, HiFi Receiver, Subwoofer... per Zwischenstecker / Steckdose abzuschalten.

Außerdem startet mein Staubsauger Roboter und beginnt zu putzen. Randnotiz: Dafür frage ich noch weitere Variablen ab, zum Beispiel ob es Tag ist (Tageszeit Variable per Szene setzen), denn Roomba muss nicht loslegen wenn ich Abends nochmal weggehe. Ausserdem prüfe ich ob der Akku mind. 50% geladen ist - das bekomme ich über die RooWifi API raus (Roomba putzt jetzt im Smart Home). Zusätzlich habe ich mir eine Globale Variable angelegt: "Roomba_schon_geputzt", welche ich mit der Szene beim starten von Roomba auf 1 setze. Mit einer weiteren Szene resette ich diese in der Nacht im 0:01 Uhr wieder auf 0. So verhindere ich das der Staubsauger mehrfach am Tag losfährt, falls ich öfter das Haus verlasse.

Roomba putzt beim Verlassen des Hauses

Roomba putzt beim Verlassen des Hauses

 

... und was stellst du so mit der Anwesenheit-Variable an? bzw: /// Was würdest du mit der Anwesenheit-Variable anstellen? - berichte doch unten in den Kommentaren!

[/vc_column_text][/vc_column][/vc_row]

Diesen Blogpost hat geschrieben ...

crissxcross

Chris, Gründer und Blogger von siio.
Gelernter IT-Systemelektroniker, seit vielen Jahren beruflich als Produktmanager im Smart Home unterwegs. Technikverliebter Familienvater, Apple Fan. Nach einigen Jahren Stadtleben wieder froh auf dem Land zu sein.

18 Kommentare

Gib deinen Senf dazu!

Cookie Consent mit Real Cookie Banner