+ Antworten
Ergebnis 1 bis 9 von 9
  1. #1
    Registriert seit
    Jan 2019
    Beiträge
    17

    Standard Anwesenheitserkennung mittels Gigaset G-Tag

    Hallo zusammen,
    ich bin mit unten zitierter Anleitung von User traxanos gestartet, um eine Anwesenheitserkennung mittels Bluetooth zu realisieren.

    Zitat Zitat von traxanos Beitrag anzeigen
    Hallo Zusammen,

    ich bin neu hier und teste gerade Symcon mit einer CCU2.
    Ein Ziel ist es die Anwesenheit per BT zu erkennen. Leider hab ich nichts hierzu gefunden, was vor allem auf meinem RPi (Linux) läuft.
    Somit habe ich schnell mal selber etwas gebaut und möchte es euch nicht vorenthalten.

    Zuerst muss auf dem Linuxsystem der Bluetoothsupport eingerichtet werden. Dazu muss ein Paket installiert werden:

    Code:
    apt-get install bluez
    Dann habe ich 3 Boolean-Variablen angelegt. (2x für 2 Handies und einen als Zusammenfassung ob überhaupt jemand da ist)

    Dann habe ich noch ein kleines Script gebaut, welches bei mit im 1 Minuten-Talk läuft:

    PHP-Code:
    <?

    $group 
    10001 /*[Status\Anwesenheit\Bewohner]*/;
    $check = array();
    $check['00:00:00:00:00:00'] = 10002 /*[Status\Anwesenheit\Marco]*/;
    $check['00:00:00:00:00:00'] = 10003 /*[Status\Anwesenheit\Sarah]*/;

    // will check
    $group_check false;
    foreach(
    $check as $mac => $id) {
      
    $search shell_exec("hcitool name $mac");
      
    SetValueBoolean($id$search != '');
      if(
    $search != ''$group_check true;
    }
    SetValueBoolean($group$group_check);

    ?>
    In diesem Script, müsst Ihr natürlich noch eure Variable und Macadressen der Handies hinterlegen.

    Ich hoffe dem ein oder anderen hilft es.


    Dies funktioniert sehr gut, wenn man als Bluetooth Device ein Mobiltelefon verwendet. Mit dem iPhone funktioniert es immer nur dann, wenn man Bluetooth aktiv einschaltet. Im Ruhemodus klappt es leider nicht. Die Idee ist nun einen Gigaset G-Tag zu verwenden, damit die Sache klappt. Da es sich um ein Low Energy (LE) Device handelt, habe ich folgende Zeile im PHP Skript ersetzt:

    PHP-Code:
    $search shell_exec("hcitool name $mac"); 
    durch

    PHP-Code:
    $search shell_exec("hcitool lescan $mac"); 
    Das klappt leider nicht wie gehofft, da hcitool lescan in einer Dauerschleife läuft. Einen vergleichbaren Zusatz wie "name" scheint es für lescan nicht zu geben.

    Hat jemand eine Idee, wie man das lösen kann? Eventuell kann man den Scan dazu bewegen, dass er nur 1 Mal scannt und dann so lange wartet, bis das Skrip wieder angestossen wird?

    Akutell sieht mein Skript folgendermassen aus:

    PHP-Code:
    <?
    $group 
    47806 /*[Status\Anwesenheit\Bewohner]*/;
    $check = array();
    $check['7C:2F:80:B2:36:B3'] = 49381 /*[Status\Anwesenheit\Marina]*/;
    $check['7C:2F:80:C4:6A:8D'] = 58632 /*[Status\Anwesenheit\Uwe]*/;

    // will check
    $group_check false;
    foreach(
    $check as $mac => $id) {
    $search shell_exec("hcitool lescan $mac");

      
    SetValueBoolean($id$search != '');
      if(
    $search != ''$group_check true;
    }
    SetValueBoolean($group$group_check);

    ?>

    Wenn es funktioniert, würde ich das Skript einfach jede Minute 1 Mal laufen lassen. Zum Beispiel über die Timerfunktion.

  2. #2
    Registriert seit
    Dec 2011
    Ort
    am Ende des Internets
    Beiträge
    330

  3. #3
    Registriert seit
    Jan 2019
    Beiträge
    17

    Hatte beide Vorschläge schon mal gesehen, aber mich aufgrund der Komplexität nicht daran gewagt. Hatte gehofft, dass die von mir angestrebte Variante durch eine leichte Änderung / Ergänzung funktionieren kann. Falscher Ansatz?

  4. #4
    Registriert seit
    Dec 2011
    Ort
    am Ende des Internets
    Beiträge
    330

    Wenn es funktioniert, würde ich das Skript einfach jede Minute 1 Mal laufen lassen. Zum Beispiel über die Timerfunktion.
    Ich verstehe Deine Intention nicht!
    Ein Anwesenheitserkennung führt doch zu irgendeiner Aktion die doch möglichst schnell ausgeführt werden soll.

    Bei mir läuft der beschriebene Parallelmodus auf 7 Raspis, die im ganzen Haus und in der Garage verteilt sind. Neben anderen Aufgaben (wie Temperatur messen, Relais schalten) liefern sie dem Hauscomputer die Ereignisse über Erscheinen und Verschwinden von Gigaset G-Tags, die am Schlüsselbund hängen oder im Auto liegen.
    Weil das WLAN weit reicht, friert sich jetzt auch ein Raspi Zero abgelegt im Garten-Geräteschrank den Prozessor ab
    Es läuft also auch auf so einem Computer-Zwerg mit IPS, Aussetzer gibt es nur bei schlechter WLAN-Anbindung.

    Schnelle Aktionen bei Anwesenheitserkennung sind: Garage öffnen, Licht einschalten.
    Langsame sind: Garage schliessen, Licht ausschalten, Heizung hochdrehen usw.

    Nebenbei lassen sich Rätsel lösen, wie "wo hab ich denn wieder meinen Autoschlüssel verlegt?" (Standardantwort: "liegen immer noch in der Garage").

    Wenn Dir das zu "komplex" erscheint, kannst Du ja auch den "Stottermodus" verwenden und immer ganz kurz laufen lassen, erscheint mir aber veraltet; als ich den noch im Einsatz hatte, gab es immer wieder Wartezeiten vor dem Garagentor.

    Dies funktioniert sehr gut, wenn man als Bluetooth Device ein Mobiltelefon verwendet. Mit dem iPhone funktioniert es immer nur dann, wenn man Bluetooth aktiv einschaltet.
    Bei Gelegenheit kannst Du mir ja noch erklären, wie man ein iPhone so zum Senden bringt, dass man die Signale mit dem "hcitool lescan"-Tool empfangen kann. Mir ist das leider noch nie geglückt.

    Viele Grüsse
    Harald

  5. #5
    Registriert seit
    Jan 2019
    Beiträge
    17

    Hallo Harald,
    vielen Dank für Deine ausführliche Antwort. Das gibt mir auf jeden Fall weitere Denkanstöße in Richtung Automatisierung. Die Intention für meine Anwesenheitserkennung ist das aktive Steuern einer Licht Simulation im Haus. Typischer Fall einer Anwesenheitssimulation. Dazu ist es nicht notwendig, dass "sofort" eine Reaktion von Komponenten des KNX Systems erfolgt, sondern es soll lediglich sicher gestellt werden, dass zuverlässig mittels Tags erkannt wird, wann die Lichtsimulation aktiviert werden kann. Logik: Sind beide "Tags" "ausser Haus" läuft die Simulation los. Sobald einer der "Tags" zu Hause ist, stoppt die Lichtsimulation.
    Mittlerweile habe ich eine Lösung umgesetzt, die User traxanos erstellt hat. Siehe: https://github.com/traxanos/SymconBT...efehlsreferenz

    Damit klappt die Erkennung beider "Tags" zuverlässig. Es braucht allerdings für jeden "Tag" eine eigene Instanz. Nun muss ich nur noch ein Skript erstellen, das mir den Boolean Wert der "Tags" ausliest und dann die Simulation aktiviert. Für einen "Tag" habe ich das folgendermassen realisiert:

    PHP-Code:
    <?

    $Request 
    GetValue(57770);
    echo 
    $Request;

    if (
    $Request == false) {
      echo 
    "Anwesenheitssimulation soll aktiviert werden";
      
    SetValue(31850true);
    } else {
      echo 
    "Anwesenheitssimulation soll nicht aktiviert werden";
      
    SetValue(31850false);
    }
    echo 
    " - done";

    ?>
    Jetzt muss ich "nur" noch den zweiten "Tag" da mit reinbasteln......Mal sehen, wie ich das mache.

    Was die Sichtbarkeit des iPhones mittels hciscan anbelangt darfst Du nicht den Zusatz "lescan" verwenden, sondern einfach nur hcitool scan. Beim iPhone musst Du in die Einstellungen gehen und dann Bluetooth auswählen,

    Sieht dann auf dem Raspi so aus:

    Name:  hcitool scan.png
Hits: 258
Größe:  3.0 KB


    Viele Grüße, Uwe

  6. #6
    Registriert seit
    Jan 2019
    Beiträge
    17

    Läuft jetzt wie gewünscht.

    Die Erkennung der Bluetooth Tags mach ich über folgendes Modul:
    https://github.com/traxanos/SymconBTP

    Zusätzlich habe ich folgendes Skript, das über die Timerfunktion 1 mal pro Minute läuft, unter der Bedingung, dass es zwischen 16.00 Uhr und 23:10 ist und die Helligkeit unter 500 Lux geht:


    PHP-Code:
    <?

    $Request1 
    GetValue(57770);
    $Request2 GetValue(40123);
    echo 
    $Request1;
    echo 
    $Request2;

    if (
    $Request1 == false and $Request2 == false) {
      echo 
    "Anwesenheitssimulation soll aktiviert werden";
      
    AS_SetSimulation(21128true);


    else {
      echo 
    "Anwesenheitssimulation soll nicht aktiviert werden";
      
    AS_SetSimulation(21128false);
    }
    echo 
    " - done";

    ?>
    Die eigentlich Simulation habe ich mit folgendem Modul abgebildet:

    https://github.com/symcon/SymconMisc...eitsSimulation

  7. #7
    Registriert seit
    Sep 2010
    Beiträge
    489

    Hat das jemand auf einem Raspberry Zero zuverlässig zum laufen gebracht?bei mir stürzt er immer wieder ab.

    Habe die aktuelle Linux und IPS Version am laufen. Linux ohne Desktop und mit minimalen Grafikspeicher.


    Auf dem Raspberry 4 läuft es ganz gut. Ist aber fast weng übertrieben nur für die Erkennung.

    Gesendet von meinem VOG-L29 mit Tapatalk
    Homematic, Homematic IP, FS20, IPS868 AKM EKM, 1-Wire, USB Sound, Sonos, IPSLibrary, Amazon Echo, XIAOMI Robosauger, WROX Mähroboter, IPS View, SynologyNAS, Surface als IPS Server

  8. #8
    Registriert seit
    Sep 2010
    Beiträge
    489

    OK auch auf dem Rasp 4 ist nach einiger Zeit Schluss.
    Es wird dann nichts mehr erkannt.

    wenn ich über PuTTY sudo hcitool lescan starte dann steht
    Set Scan Parameters failed: Input / output error

    Wie habt ihr das gelöst?



    Gesendet von meinem VOG-L29 mit Tapatalk
    Homematic, Homematic IP, FS20, IPS868 AKM EKM, 1-Wire, USB Sound, Sonos, IPSLibrary, Amazon Echo, XIAOMI Robosauger, WROX Mähroboter, IPS View, SynologyNAS, Surface als IPS Server

  9. #9
    Registriert seit
    Jan 2012
    Beiträge
    110

    Hallo Tommy,
    hatte auch Probleme mit dem hängen von lescan.
    Seitdem ich lescan anders verwende funktionierts ohne hänger.
    Beschreibung im Beitrag: Raspi Problem mit bluetooth-Modul

    Grüße
    Stefan

Ähnliche Themen

  1. Iphone Anwesenheitserkennung
    Von Flobo im Forum Skripte, PHP, SQL
    Antworten: 24
    Letzter Beitrag: 13.03.16, 10:42
  2. Anwesenheitserkennung einmal anders
    Von wango im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 14
    Letzter Beitrag: 10.10.11, 19:54
  3. Fritzbox Anwesenheitserkennung via DECT
    Von BerndJ im Forum Audio & Video, TK-Anlagen, ISDN
    Antworten: 0
    Letzter Beitrag: 06.02.11, 23:49
  4. Siemens Gigaset
    Von Softsphere im Forum Haustechnik
    Antworten: 10
    Letzter Beitrag: 30.04.06, 15:15