NEWS
UNSOLVED BLE Abwesenheitserkennung
-
@radierer sorry für OT, aber wie hast du die Abwesenheitserkennung programmtechnisch umgesetzt (per Blockly)? Kannst du das mal bitte zeigen?
-
@steimi Aktuell habe ich die Anwesenheitserkennung gar nicht umgesetzt. Weder per BLE noch per radar2. Ich bekomme irgendwie das interne Bluetooth des NUC nicht stabil ans laufen. Also scheint mein Problem nicht an dem BLE-Adapter zu liegen. Ich werd mir jetzt einen externen BT-Dongle besorgen und probiers dann damit weiter.
Aber ganz allgemein: ich habe einfach alle 20 sek. den letzten Zeitstempel der rssi-Werte mit der aktuellen Zeit verglichen. Wenn die Differenz einen bestimmten Wert (zB 2 min.) übersteigt, wird auf abwesend gestellt. Sind die rssi-Werte aktuell - also unter den 2 min - ist jemand anwesend. Das Blockly-Skript dazu habe ich leider schon wieder gelöscht, daher kann ich hier nix zeigen. Ich hoffe, das hilft dir. -
Nach stundenlangen rumprobieren und diversen Neustarts habe ich wohl zumindest für mich ein Weg gefunden, wie ich die Scans bzw Aktualisierungen aktuell halten kann. Ich hatte sowohl mit dem BLE-Adapter wie auch mit Radar2 das Problem, dass in unregelmäßigen Abständen nicht mehr nach BT-Geräten gescannt wird bzw. meine GTags plötzlich keine Werte mehr lieferten, obwohl diese unverändert in Reichweite waren.
Was mir auffiel war, dass auch über Konsole plötzlich zB der Befehl "hcitool lescan" nicht mehr ausführbar war. Der Befehl "hciconfig" gab aber dennoch ein "up and running" zurück?! Ein "hciconfig hci0 down" gefolgt von "hciconfig hci0 up" brachte Abhilfe und ließ einen lescan wieder zu. Ich hab daher in ioBroker ein kleines Skript gebaut, in dem alle 20 sek. hci0 aus und wieder angestellt wird (down/up). Das sieht für den BLE-Adapter bis jetzt erfolgversprechend aus.
Aber falls noch jemand eine Idee hat, wieso dieses Verhalten auftritt, gerne hier melden. Ich denke es hängt mit dem passthrough der BT-Hardware in Proxmox zusammen?!
@steimi Da du nach dem Blockly gefragt hast, hier mal ein Screenshot:
"Zeit BLE" ist eine Variable, in der die Zeitdifferenz geschrieben wird zwischen aktueller Zeit und Zeit der letzten Aktualisierung des rssi-Wertes. Die Zeitdifferenz kannste dann ja nach belieben für An-/Abwesenheit auswerten. Hier mal als Beispiel für GTag mehr als 2 min nicht erreichbar:
-
@radierer Danke. Kannst du bitte noch das Skript für den Restart der HCIx posten?
-
@steimi
Klar, kein Problem. Geht aber sicher auch eleganter ..
-
@radierer said in ble-Adapter stürzt plötzlich ab:
@steimi
Klar, kein Problem. Geht aber sicher auch eleganter ..Ja, z.B. indem man "hciconfig hci0 reset" verwendet
Aber ich habe das Problem auch mit einem Raspberry Pi, also komplett andere Hardware. Da scheint etwas grundlegender im Argen zu sein...
-
@radierer Wenn du das Häkchen bei "mit Ergebnissen" setzt und in dem Callback davon den nächsten Befehl ausführst, kannst du auch sicher sein, dass der 1. Befehl durch ist, bevor zu den 2. startest. Alle Lösungen mit Pi-mal-Daumen-Timeout gehen irgendwann kaputt, wenn es mal hängt.
-
Mod-Edit: Ich hab euch einen eigenen Beitrag erstellt und hierher nach "Blockly" verschoben.
-
Vielen Dank für die Tips .. habs mal angepasst.
@Holzlenkrad Ja, keine Ahnung. Da es bei mir sowohl beim BLE- als auch beim Radar2-Adapter erst nach Umzug auf den NUC auftrat, hab ich das immer darauf bezogen?! Ich bin aber aktuell froh, dass ich es wieder stabil zum laufen bekommen habe. Seit ner knappen Woche läuft meine Anwesenheitserkennung auf jeden Fall wieder zuverlässig.