Anwesenheitserkennung mit iPhone und Geofency
Diese Beschreibung funktioniert nur mit iOS-Geräten. Für Android ist noch keine zuverlässige & sichere Lösung bekannt.
Mit der iPhone App Geofency kann die Anwesenheit in einem überwachten Bereich an Loxone übermittelt werden. Außerdem können in Verbindung mit iBeacons Bereiche bis ca.5m Genauigkeit überwacht und beim Eintreten in den Bereich Schaltvorgänge ausgelöst werden. So lässt sich relativ einfach eine automatische Anwesenheitserkennung einrichten um z.B. die Alarmanlage automatisch zu aktivieren bzw. deaktivieren.
Und so gehts
Geofency aus dem AppStore installieren
Mit dem Button + einen neuen Überwachungsbereich hinzufügen
In der Geofency App --> Webhook --> Event URL Einstellung --> Mitteilung bei Eintritt entsprechende URL eintragen: http://IP:Port/dev/sps/io/Home/Ein eintragen
In der Geofency App --> Webhook --> Event URL Einstellung --> Mitteilung bei Austritt entsprechende URL eintragen: http://IP:Port/dev/sps/io/Home/AUS eintragen
In der Geofency App --> Webhook --> Authentifizierung --> Benutzername und Kennwort des Miniserver eintragen
In der LoxConfig einen virtuellen Befehl mit dem Namen Home anlegen siehe Webservice
In Verbindung mit VPN onDemand am iPhone funktioniert die Anwesenheitserkennung besonders zuverlässig.
Aus Sicherheitsgründen sollte man Geofency nur in Verbindung mit VPN on-demand einsetzen. Es wird davon abgeraten ein direktes Port-Forwarding zum Miniserver zu verwenden.
Es können auch Analoge Werte übertragen werden.
Dazu den virtuellen Eingang in der LoxConfig als Analogeingang verwenden.
und z.B. beim verlassen des Arbeitsortes die Heizung auf einen bestimmten Wert einstellen.
Dazu unter URL http://IP:Port/dev/sps/io/Home/21 eintragen.
HM10 oder CC41-A als iBeacon verwenden:
Wem das Geo-Locate zu ungenau ist (wie mir) und die ueblichen iBeacons zu teuer sind, kann auch einen HM10 oder CC41-A von Texas Instruments als iBeacon verwenden. Dafuer muss man allerdings diese Geraete erst in den iBeacon-Modus versetzen.
Das kann man wie folgt realisieren.
1) Verbindung zum HM10 oder CC41-A aufbauen:
Eine Verbindung zu dem Modul kann man entweder ueber ein FTDI-Kabel und/oder FTDI-USB-Platine oder ueber einen Arduino herstellen. Ich habe es mit einem Arduino Nano (Clone) gemacht. Bitte bei Verwendung eines anderen Arduino darauf achten, evtl. einen Level-Shifter zwischen Arduino und Modul zu haengen, da das Modul mit TTL 3,3V laufen soll.
Beim Arduino Nano kann man das Modul ohne Level-shifter betreiben. Bei mir ging es sowohl am 5V-Pin, wie auch am 3,3V-Pin.
2) Bei Verwendung eines Arduinos muss erst noch ein Sketch auf selbigen geladen werden, um Befehle an das Modul senden zu koennen:
Hierfuer die Arduino-IDE starten und eine Verbindung zum Arduino herstellen.
folgenden Sketch in die IDE kopieren und auf den Arduino laden:
// In diesem Beispiel verwenden wir die
// Pins 10, 11 als seriellen Software-Port
#include <SoftwareSerial.h>
#define softRX 10 // hier kann auch anderer Pin verwendet werden
#define softTX 11 // hier kann auch anderer Pin verwendet werden
SoftwareSerial softSerial(softRX, softTX);
char c;
void setup() {
Serial.begin(9600); // Serieller Monitor
softSerial.begin(9600); // Verbindung zu HM-10 oder CC41-A
Serial.println("AT-Kommando-Modus => ");
}
void loop() {
// Meldungen vom HM-10 oder CC41-A lesen und
// am seriellen Monitor ausgeben
while (softSerial.available()) {
c = softSerial.read();
Serial.print(c);
}
// AT-Kommandos vom seriellen Monitor
// lesen und zum HM-10 oder CC41-A übermitteln
while (Serial.available()) {
c = Serial.read();
Serial.print(c);
softSerial.print(c);
}
}
3) Befehle an das Modul senden:
Hierzu einen seriellen Monitor oeffnen (ich habe den von der Arduino-IDE genommen - rechts oben in der Ecke) und die Baudrate (9600) und das Linehandling (bei HM10 'kein Zeilenende', beim CC41-A auf 'sowohl NL als auch CR') anpassen
Anschliessend kann man den Befehl AT+HELP an den Arduino oder den FTDI-Adapter schicken, und erhaelt eine Uebersicht ueber (mehr oder weniger) saemtliche Befehle, die man an das Modul schicken kann. Mit einigen Befehlen kann man bestimmte Parameter aendern.
Mit den folgenden 8 Befehlen macht man das Modul zu einem iBeacon (Kommentare nicht mitschreiben!).
AT+RENEW #setzt das Modul auf Werkseinstellungen zurueck
AT+RESET #startet das Modul neu
AT+MARJ0x1234 #vergibt eine Hex-codierte Major-Nummer - in diesem Fall 4660 (dezimal)
AT+MINO0xFA01 #vergibt eine Hex-codierte Minor-Nummer - in diesem Fall 64001 (dezimal)
AT+ADVI5 #stellt das Beacon-Interval 5ms (dies ist ein hidden command beim CC41-A)
AT+NAMEYOURNAME #aendert den Namen des Moduls auf YOURNAME
AT+IBEA1 #aktiviert den iBeacon-Mode
AT+RESET #startet das Modul neu
4) Jetzt wird das Modul von iBeacon-Apps, wie z.B. LOCATE gefunden, die UUID und MAJOR und MINOR angezeigt. Diese Werte braucht man fuer GEOFENCY.
5) Die GEOFENCY-Konfiguration kann wie oben beschrieben gestartet werden. In GEOFENCY dann noch die UUID, MAJOR und MINOR eintragen und dann unter WEBHOOK den entsprechenden http-Request einstellen.