Ich hab mich nochmal damit beschäftigt. Ist etwas frickelig und ich muss noch mehr forschen.
Prinzipiell habe ich einen extra PI genommen und den find Server installiert. Der ist in go geschrieben, man muss also das go Framework installieren. Danach find runterladen und ein build machen.
Wenn es dann läuft, braucht man den Android client (iPhone gibt es nicht, weil iOS keinen Zugriff auf die Daten zulässt mit denen man den Fingerprint berechnet). Danach an verschiedenen Orten die Learn Funktion starten. Dann werden die Fingerprints des WLAN Netzes berechnet und in der Datenbank abgelegt. (Hier muss ich noch ein bisschen forschen)
Ist das fertig kann man Track benutzen und das System findet raus, wo man gerade ist. In der Pi Console kann man das dann gut verfolgen.
Nächster Schritt: Mosquitto (MQTT) auf dem Pi installieren und mit dem ioBroker MQTT Server verbinden.
Und Magic… Auf dem ioBroker erscheint ein neues Object
mqtt.0.curvedchinchilla.location.User1
curvedchinchilla ist dabei eine Gruppe von Usern, für uns nicht weiter von Belang. Kann man umbenennen.
Das Object hat dann einen Value:
{"location":"küche","time":1475829407918418641,
"bayes" {"essplatz":-0.7071067811865478,"küche":0.7071067811865474},
"svm":{}}
Bedeutet wohl in diesem Fall:
User1 ist in der Küche,
Angelernt sind essplatz und küche
Ich nehme an, dass die Werte hinter den Locations (bayes) die Wahrscheinlichkeit angeben, mit der ich an der Location bin. Dazu habe ich aber noch keine Details gefunden.
Nun geht's ans testen: Wenn User1 ins Wohnzimmer kommt mach mal das Licht an
Hier die Site des Entwicklers.
https://doc.internalpositioning.com/
Nachtrag: Ich nehme an, dass das ganze umso genauer ist, je mehr WLAN Router in der Nähe sind. Ich habe eine FB 7490, einen Fritz Repeater und noch einen anderen Access Point. Außerdem strahlen einige Nachbarn. Alles SSIDs werden für die Fingerprint Berechnung benutzt. Wer also in einem einsamen Gehöft wohnt und nur einen WLAN router hat, wird vielleicht wenig Spass an dem System haben.