Anwesenheitserkennung Bluetooth PebbleBee

Begonnen von tomster, 06 November 2014, 10:01:16

Vorheriges Thema - Nächstes Thema

micky0867

Es ärgert mich immer wieder, dass das Melden eines wieder-aufgetauchten Tags so lange dauert (die Alarmanlage springt immer wieder an).
Deshalb habe ich die Software umgebaut, so dass die Meldung innerhalb von ca. 2 Sekunden nach Auftauchen des Tags auch an FHEM geht.
Außerdem ist jetzt der Watchdog aktiviert, wodurch ein Reboot erfolgt, falls sich der bleTask aufhängen sollte (ein einfacher Restart des bleTask scheint nicht zu funktionieren).

https://github.com/micky0867/BLEScanner/tree/fastdetection

Micky

DerBodo

Sehr cool... gleich mal ausprobiert.

Nach 15 Minuten (musste erstmal die Serial Baudrate suchen - da diese anders ist als beim anderen BLE Scanner Sketch) noch kein "falscher" Status zurückgemeldet.

Ich werde das ganze weiter beobachten.

Pitcher90

Gibt es zur Zeit einen Trick die Ausfälle zu minimieren?
Bei mir läuft der ESP32 ein paar Stunden ohne Probleme und ist dann irgendwann unerreichbar.
Hab auch schon Micky's neusten Sketch drauf.

LG,
Stefan

micky0867

Lass' ihn doch mal mit dem seriellen Monitor laufen, vllt. zeigt sich da was.

Micky

Gesendet von meinem ONEPLUS A3003 mit Tapatalk


Pitcher90

#1114
Ich habe es mal durchlaufen lassen.


Free heap: 23020
Task bleTask state: 2 free stack: 1044
Task wifiTask state: 2 free stack: 976
Task clientTask_192.168.1.200:46624 state: 2 free stack: 200
Tags for faster detection:
  >cf:1a:18:58:f3:64
Uptime: 2822
Tags found (MAC, Timestamp, Name, RSSIs):
  88:0f:10:88:06:26; 1493; ; >-82,-83,-82,-77,-84,<
  cf:1a:18:58:f3:64; 1496; ; >-82,-90,-85,-82,-81,<
  41:18:54:4a:a7:c2; 1441; ; >-68,-69,-75,-78,-80,<
  75:4b:74:d5:f2:44; 1493; ; >-74,-61,-62,-63,-72,<
  78:28:60:12:76:b7; 1493; ; >-95,-84,-85,-83,-89,<
  43:12:ba:1f:ff:fc; 1497; ; >-83,-91,-83,-88,-83,<
  46:36:ce:c2:97:6c; 1328; ; >-79,<
  4e:7a:20:19:02:cb; 1500; ; >-86,-90,-82,-78,-87,<
  67:c5:f4:ad:1a:30; 1445; ; >-70,<
  47:6f:9b:46:00:ce; 1497; ; >-82,-72,-73,-73,-73,<
Reconnects: 0
Uptime: 2822
Task watchdog got triggered. The following tasks did not reset the watchdog in time:
- bleTask (CPU 0)
Tasks currently running:
CPU 0: wifi
CPU 1: IDLE
Aborting.
abort() was called at PC 0x4014cff4 on core 0

Backtrace: 0x40094f20:0x3ffc05b0 0x40095123:0x3ffc05d0 0x4014cff4:0x3ffc05f0 0x40081741:0x3ffc0610 0x4008a933:0x00000000

Rebooting...
⸮⸮C 
H⸮JRH ⸮!⸮!⸮


Er rebootet auch erfolgreich, aber kommuniziert nicht mehr mit FHEM weil der gesuchte Tag aus dem Speicher gelöscht ist. Erst wenn man manuell ein statusRequest anstößt, kommuniziert er wieder.

micky0867

Hi,

eine Uptime von 2822 Sekunden ist nicht gerade berauschend.
Wobei das letzte Tag um 1500 Sekunden erkannt wurde...also hing der ESP wohl seit dem.
Bei mir dauert es normalerweise mehrere Wochen, bis sich was aufhängt.
Die spannende Frage ist, woher das Problem rührt. Ist es ein bestimmtes Tag, bei dem das passiert?
Du hast auffällig viele Tags in deiner Umgebung, vllt. macht es auch die Anzahl?
Ich werde mal eine Version bauen, wo jedes erkannte Tag sofort geloggt wird, damit man vllt. erkennt, ob es daher kommt.

Du hast Recht, FHEM müsste den ESP erstmal triggern, bevor die Erkennung wieder funktioniert.
Also wäre es doch besser, wenn man den bleTask abschiessen und neu starten könnte.

Micky



Pitcher90

#1116
Sorry, die 1500 Sekunden kommen daher, dass ich nachträglich noch die Tagliste hinzugefügt hatte. Hatte erst nur den Absturz und dachte mir dann die Liste wäre vielleicht auch interessant.  :-X
Also ich frage momentan eigentlich nur mein Mi-Band2 ab.
Die anderen Adressen die Erkannt werden, sind wohl die 2 Raspberry Pis und noch ein Mi Band1. zum Rest kann ich nichts sagen.

Eine andere Möglichkeit das Kommunikationsproblem zu lösen, wäre wenn man den Tag und den FHEM Server schon im Sketch speichert. Ist natürlich keine besonders schöne Lösung.

LG

Edit: Mir ist jetzt noch ein Problem aufgefallen. Scheinbar gibt bei der Fastdetection Funktion einen Fehler.

Uptime: 5402
Scanning ...
Sending >absence;rssi=unreachable;daemon=BLEScanner V0.2< to 192.168.1.200:34804 for tag cf:1a:18:58:f3:64, Reason: periodic report
Scanning ...
Scanning ...
Scanning ...
Scanning ...
Scanning ...
Sending >present;device_name=;rssi=-82;daemon=BLEScanner V0.2< to 192.168.1.200:34804 for tag cf:1a:18:58:f3:64, Reason: fastdetection
Sending >present;device_name=;rssi=-82;daemon=BLEScanner V0.2< to 192.168.1.200:34804 for tag cf:1a:18:58:f3:64, Reason: fastdetection
Sending >present;device_name=;rssi=-82;daemon=BLEScanner V0.2< to 192.168.1.200:34804 for tag cf:1a:18:58:f3:64, Reason: fastdetection
Sending >present;device_name=;rssi=-82;daemon=BLEScanner V0.2< to 192.168.1.200:34804 for tag cf:1a:18:58:f3:64, Reason: fastdetection
Free heap: 23520
Task bleTask state: 2 free stack: 1044
Task wifiTask state: 2 free stack: 976
Task clientTask_192.168.1.200:34804 state: 2 free stack: 200
Tags for faster detection:
  >cf:1a:18:58:f3:64
Uptime: 5462
Tags found (MAC, Timestamp, Name, RSSIs):
  88:0f:10:88:06:26; 5458; ; >-78,-74,-75,-79,-73,<
  cf:1a:18:58:f3:64; 5458; ; >-82,<
  61:df:00:3a:2a:05; 5457; ; >-88,-79,-89,-80,-87,<
  43:e8:dd:52:a4:cb; 5449; ; >-88,-85,-92,-86,-85,<
  48:89:e9:1b:7a:e2; 5457; ; >-84,-84,-73,-68,-85,<
  72:08:75:24:f3:e9; 5457; GoogleWohnzimmer; >-70,-70,-81,-70,-73,<
  53:8b:27:14:ba:d1; 5457; ; >-84,-87,-87,-88,-88,<

Reconnects: 0
Uptime: 5462
Sending >present;device_name=;rssi=-82;daemon=BLEScanner V0.2< to 192.168.1.200:34804 for tag cf:1a:18:58:f3:64, Reason: fastdetection
Sending >present;device_name=;rssi=-82;daemon=BLEScanner V0.2< to 192.168.1.200:34804 for tag cf:1a:18:58:f3:64, Reason: fastdetection
Scanning ...
Sending >present;device_name=;rssi=-82;daemon=BLEScanner V0.2< to 192.168.1.200:34804 for tag cf:1a:18:58:f3:64, Reason: fastdetection
Sending >present;device_name=;rssi=-82;daemon=BLEScanner V0.2< to 192.168.1.200:34804 for tag cf:1a:18:58:f3:64, Reason: fastdetection
Sending >present;device_name=;rssi=-82;daemon=BLEScanner V0.2< to 192.168.1.200:34804 for tag cf:1a:18:58:f3:64, Reason: fastdetection
Sending >present;device_name=;rssi=-83;daemon=BLEScanner V0.2< to 192.168.1.200:34804 for tag cf:1a:18:58:f3:64, Reason: fastdetection
Sending >present;device_name=;rssi=-83;daemon=BLEScanner V0.2< to 192.168.1.200:34804 for tag cf:1a:18:58:f3:64, Reason: fastdetection
Sending >present;device_name=;rssi=-83;daemon=BLEScanner V0.2< to 192.168.1.200:34804 for tag cf:1a:18:58:f3:64, Reason: fastdetection
Sending >present;device_name=;rssi=-83;daemon=BLEScanner V0.2< to 192.168.1.200:34804 for tag cf:1a:18:58:f3:64, Reason: fastdetection
Sending >present;device_name=;rssi=-83;daemon=BLEScanner V0.2< to 192.168.1.200:34804 for tag cf:1a:18:58:f3:64, Reason: fastdetection
Scanning ...
Sending >present;device_name=;rssi=-83;daemon=BLEScanner V0.2< to 192.168.1.200:34804 for tag cf:1a:18:58:f3:64, Reason: fastdetection
Sending >present;device_name=;rssi=-83;daemon=BLEScanner V0.2< to 192.168.1.200:34804 for tag cf:1a:18:58:f3:64, Reason: fastdetection
Sending >present;device_name=;rssi=-83;daemon=BLEScanner V0.2< to 192.168.1.200:34804 for tag cf:1a:18:58:f3:64, Reason: fastdetection
Sending >present;device_name=;rssi=-83;daemon=BLEScanner V0.2< to 192.168.1.200:34804 for tag cf:1a:18:58:f3:64, Reason: fastdetection
Sending >present;device_name=;rssi=-83;daemon=BLEScanner V0.2< to 192.168.1.200:34804 for tag cf:1a:18:58:f3:64, Reason: fastdetection
Sending >present;device_name=;rssi=-83;daemon=BLEScanner V0.2< to 192.168.1.200:34804 for tag cf:1a:18:58:f3:64, Reason: fastdetection
Sending >present;device_name=;rssi=-83;daemon=BLEScanner V0.2< to 192.168.1.200:34804 for tag cf:1a:18:58:f3:64, Reason: fastdetection
Sending >present;device_name=;rssi=-83;daemon=BLEScanner V0.2< to 192.168.1.200:34804 for tag cf:1a:18:58:f3:64, Reason: fastdetection
Sending >present;device_name=;rssi=-83;daemon=BLEScanner V0.2< to 192.168.1.200:34804 for tag cf:1a:18:58:f3:64, Reason: fastdetection
Scanning ...

Und das geht jetzt immer so weiter. Er sendet alle 1-2 Sekunden.

micky0867

Hallo,

ich hatte mal wieder ein wenig Zeit, an der SW zu arbeiten.

Ein selbst gebauter Watchdog sollte jetzt den BLE-Task restarten, bevor das gesamte Modul durch den offiziellen Watchdog rebootet werden kann.
Da mein System höchstens alle 6 Wochen in einen solchen Zustand kommt, wäre ich an euren Erfahrungen interessiert.

Die neue Version ist im Branch watchdog:
https://github.com/micky0867/BLEScanner/tree/watchdog

Micky

@Pitcher90:
Bei mir wird der BLE-Tag von FHEM gepollt, sobald Fastdetection zuschlägt.
Dadurch wird der Timer bzw. das Fastdetection wieder zurückgesetzt.
K.A., warum sich das bei dir anders verhält.
Hast du das direkt oder über collectord angebunden?

Du könntest testweise den Code so ändern:
den Teil

      } else if(cmac.length() > 0 && fastdetection[cmac] == 1) {
        printTags(client, cmac, timeout, "fastdetection");
        lastreport = uptimesec;
        delay(1000);
}

um die Zeile "fastdetection[cmac] = 0;" erweitern
      } else if(cmac.length() > 0 && fastdetection[cmac] == 1) {
        printTags(client, cmac, timeout, "fastdetection");
        lastreport = uptimesec;
        delay(1000);
        fastdetection[cmac] = 0;
}


errazzor

Hi zusammen,

einer meiner G-Tags ist nun ziemlich genau nach 2 Jahren defekt. Er sendet einfach nichts mehr bzw. wird von hcitool lescan nicht mehr gefunden.
Der andere G-Tag hingegen schon. Die Batterie habe ich natürlich gewechselt.

Hat jemand eine ähnliche Erfahrung mit der Haltbarkeit gemacht oder habe ich einfach Pech gehabt?

Als Nachfolger gibt es wohl die "Keeper"...sind diese Empfehlenswert oder gibt es mittlerweile etwas ganz anderes (besseres) ? Am liebsten wäre mir ja etwas mit BT5 aber da gibt es wohl noch nichts.

micky0867

Das passiert m. W. auch, wenn das Tag mit einem Handy o. ä. gepaired ist.
Suche das Tag doch mal mit einem Handy über die BT-Suche.

Micky


Gesendet von meinem ONEPLUS A3003 mit Tapatalk


errazzor

Zitat von: micky0867 am 13 September 2018, 09:56:15
Das passiert m. W. auch, wenn das Tag mit einem Handy o. ä. gepaired ist.
Suche das Tag doch mal mit einem Handy über die BT-Suche.

Ich weiss, aber der GTag ist nicht gepaired. Er war wie gesagt seit 2 Jahren in Betrieb ohne Änderung.
Per Smartphone mit BT-LE Scanner oder auch per hcitool lescan wird er auch nicht mehr gefunden.

Mit einem Multimeter kann ich lediglich messen, dass auf der Platine Spannung anliegt an verschiedenen Punkten, aber mehr auch nicht. Er sendet einfach nicht mehr.

errazzor

Ok anscheinend bin ich der einzige bisher mit einem defekten G-Tag. Die Garantie war genau 1 Monat abgelaufen, Siemens gibt darauf auch keine Kulanz (habe freundlich per Mail angefragt).

Habe jetzt ein neuen Gigaset Keeper hier liegen und ich wollte kurz beschreiben, wie man diesen aktivieren muss (unterscheidet sich nämlich zu den alten G-tags):

Der Keeper MUSS einmalig mit der "Keeper-App" gekoppelt werden. Andernfalls geht er nach 2 Minuten immer wieder in Standby bzw. aus und sendet nichts mehr. Wenn er in der Keeper-App gefunden und gekoppelt wurde, MUSS man ihn wieder entfernen - ansonsten wird er von FHEM bzw. lepresenced auch nicht mehr dauerhaft gefunden.

Also nochmal in Kurzform:

- App auf Smartphone installieren ("Keeper App")
- Registrieren (leider zwingend erforderlich, Spam-Emailadresse verwenden)
- Button am Keeper 5 Sekunden gedrückt halten (LED blinkt rot) und den Keeper mit der App koppeln / einrichten
- LED am Keeper hört auf zu blinken
- Kurz testen ob der Keeper funktioniert (Handysuchfunktion / Keepersuchfunktion ausführen)
- Keeper aus der App wieder löschen (wichtig)
- Jetzt sendet der Keeper dauerhaft und wird von lepresenced bzw. auch von jedem beliebigem BT-LE Scanner gefunden

Mal sehen, ob dieser nun länger als 2 Jahre durchhält.

Übrigens funktioniert das Batterieskript auch mit dem Keeper (es dauerte allerdings 3 Checks bis es ging, keine Ahnung warum. Bei den ersten beiden Versuchen wurde kein Batteriewert zurückgegeben).

Was noch intressant wäre ob es irgendeine Möglichkeit gibt, den Piepser im Keeper durch FHEM auszulösen.... :-) ... mag sich da mal jemand dransetzen?

micky0867

...du bist bis jetzt der einzige, der solch ein Device zum Testen besitzt....

Btw: wenn du das Gtag bei Am... gekauft hast, könnte die Kulanz besser sein.

Gesendet von meinem ONEPLUS A3003 mit Tapatalk


errazzor

Zitat von: micky0867 am 14 September 2018, 19:46:40
...du bist bis jetzt der einzige, der solch ein Device zum Testen besitzt....

Btw: wenn du das Gtag bei Am... gekauft hast, könnte die Kulanz besser sein.

Gesendet von meinem ONEPLUS A3003 mit Tapatalk

Hm das glaube ich nicht, habe hier schon mehrere Posts von Leuten gelesen, welche den Keeper haben.
Aber vielleicht alles keine Programmierer, das mag sein.


mark79

Mit den GTags bin ich bis her sehr zufrieden, die sind auch gut verarbeitet. Habe die günstig bei Ebay erworben für 7€ das Stück.
Wovon ich abrate sind die billig China BT Tags. Davon hatte ich 3-4 verschiedene und beim Hauptteil war die Batterie ruck zu leer, innerhalb 1-2 Monate. Einer der länger hielt, ging später kaputt, er hat nichts mehr gesendet.

Desweiteren würde ich mir auch kein TAG mehr holen mit Taster. Wenn der Schlüsselbund in der Tasche ist, löst dieser schon mal aus und bei diesen China Tags hieß das dann shutdown.
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten