Lokale Präsenzerkennung mit Bluetooth für Apple Watch, iPhone und iPad

Begonnen von DigiH, 17 Januar 2024, 22:35:51

Vorheriges Thema - Nächstes Thema

DigiH

Die Mi Bands senden alle 550 ms einen BLE Advertising Braodcast aus, der von verschieden BLE Scan Lösungen wie Theengs Gateway, OpenMQTTGateay, ESPresence, Tasmota, ble-monitor ... und wie sie alle heißen, empfangen/gescannt werden kann, um diese empfangenen Daten entweder du decodieren mit Schrittanzahl und Aktivitätspuls, oder nur um die Präzens des Garätes anzuzeigen.

All diese BLE Scan Lösungen, auch ESPresence und Tasmota, arbeiten mit einem timeout, da es bei den Grundlage von BLE Scans logischerweise auch nicht anders geht.

Eine Möglichkeit auf dem Mi Band etwas zu installieren, um nur alle 10 Sekunden etwas zu senden gibt es nicht.

Eine andere Möglichkeit um von einem ESP32 etwas nur alle 10 Sekunden zu senden geht zwar, aber das ändert nichts an den BLE Braodcasts welches ein Mi Band so oder so alle 550 ms raus schickt, oder an der Tatsache welche Daten es raus schickt, außer beim Mi Band der Unterschied zwischen einem passiven Scan oder aktivem Scan, wo beim letzteren die Empfangsstation einen kleinen aktiven Kick ans Mi Band schickt um vollständigere Daten beim nächsten Broadcast zu erhalten.

Dies ist aber auch schon seit dem Model Mi Band 7 unterbunden worden, und wir wohl in weiteren neueren Versionen auch so sein, bis hin zu auch wechselnden Bluetooth MAC Adressen, der Privatsphäre wegen.

DasQ

Aha


Dann ist customfirmware nur ein hirngespinnst.

Ich hatte es ja vorhin schon mal gesagt, für mich ist die Diskussion hiermit beendet.

Viel Erfolg mit deim Vorhaben.
Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

DigiH

@Jamo - ich habe mal nach dem Mittagessen ne schnelle, grobe Unterstützung gemacht, obwohl ich gleich schon sagen muss, die presence Eigenschaft wäre wohl als true/false boolean besser als mit "present"/"absent" Strings, aber nur nur ne Kleinigkeit.

Zum testen kannst du mal die fhemtest Branch auschecken, builden und pip installieren, und uns wissen lassen, ob die MQTT Nachrichten so einfacher in FHEM zu integrieren ist.

https://gateway.theengs.io/install/install.html#advanced-users-build-and-install

Also Settings wird im Moment noch

"discovery": 1,
...
"FHEM_presence": 1,

benötigt



Jamo

Hallo DigiH,
gerne, aber ich scheitere am git clone:
fhem@inuc:~/theengs$ git clone https://github.com/theengs/fhemtest.git
Cloning into 'fhemtest'...
Username for 'https://github.com':
und
fhem@inuc:~/theengs$ git clone https://github.com/theengs/gateway/tree/fhemtest.git
Cloning into 'fhemtest'...
fatal: repository 'https://github.com/theengs/gateway/tree/fhemtest.git/' not found
fhem@inuc:~/theengs$
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

DigiH

Hallo Jamo,

gerne, aber ich scheitere am git clone
https://github.com/theengs/fhemtest.git

Kein Problem, fhemtest.git gibt es nicht, fhemtest ist nur eine Branch von gateway.git.

Versuche es mal so
git clone https://github.com/theengs/gateway.gitDann rein in die Directory
cd gateway/und die relevante fhemtest Branch auschecken mit
git checkout fhemtestDann hast du die gewünschte Branch und kannst sie mit
pip install .builden und installieren.

Zurück in Home Verzeichnis mit
cd ~/und die Test Version starten, nachdem du die Argumente
"discovery": 1,
...
"FHEM_presence": 1,
angepasst hast.


Ich hoffe du hattest die vorherige Release Version auch mit pip installiert, oder es kommt vielleicht noch eine pip Hürde auf dich zu.


Jamo

Hi DigiH,
sieht gut aus, wie man sich das vorstellt! Danke! Allerdings wirft er bei mir jetzt auch immer die distance mit aus:
Absent:
READINGS:
     2024-01-19 09:06:46   IODev           IOMQTT
     2024-01-22 08:48:24   brand           Apple
     2024-01-22 08:55:25   distance        3.3940094477016304
     2024-01-22 08:50:43   id              11:22:33:44:55:66
     2024-01-22 08:50:43   lastSeen        2024-01-22 08:48:24
     2024-01-22 08:48:24   model           Apple Watch
     2024-01-22 08:48:24   model_id        APPLEWATCH
     2024-01-22 08:50:43   presence        absent
     2024-01-22 08:48:24   rssi            -68
     2024-01-22 08:48:24   type            BODY
     2024-01-22 08:50:43   unlocked        false

und present false

READINGS:
     2024-01-19 09:06:46   IODev           IOMQTT
     2024-01-22 08:55:25   brand           Apple
     2024-01-22 08:55:25   distance        2.0094476303970144
     2024-01-22 08:55:25   id              11:22:33:44:55:66
     2024-01-22 08:55:25   lastSeen        2024-01-22 08:55:25
     2024-01-22 08:55:25   model           Apple Watch
     2024-01-22 08:55:25   model_id        APPLEWATCH
     2024-01-22 08:54:59   presence        present
     2024-01-22 08:55:25   rssi            -65
     2024-01-22 08:55:25   type            BODY
     2024-01-22 08:55:25   unlocked        false

und present true
READINGS:
     2024-01-19 09:06:46   IODev           IOMQTT
     2024-01-22 08:57:21   brand           Apple
     2024-01-22 08:57:21   distance        1.6029664746240697
     2024-01-22 08:57:21   id              11:22:33:44:55:66
     2024-01-22 08:57:21   lastSeen        2024-01-22 08:57:21
     2024-01-22 08:57:21   model           Apple Watch
     2024-01-22 08:57:21   model_id        APPLEWATCH
     2024-01-22 08:54:59   presence        present
     2024-01-22 08:57:21   rssi            -63
     2024-01-22 08:57:21   type            BODY
     2024-01-22 08:57:21   unlocked        true

{
    "FHEM_presence": 1,
    "adapter": "hci1",
    "bindkeys": {},
    "ble": 1,
    "ble_scan_time": 3,
    "ble_time_between_scans": 20,
    "discovery": 1,
    "discovery_device_name": "TheengsGateway",
    "discovery_filter": [
        "IBEACON"
    ],
    "discovery_topic": "homeassistant",
    "enable_tls": 0,
    "enable_websocket": 0,
    "hass_discovery": 1,
    "host": "168.99.0.32",
    "identities": {
        "11:22:33:44:55:66": "asdf",
        "11:22:33:44:55:66": "jklö"
    },
    "log_level": "INFO",
    "lwt_topic": "home/TheengsGateway/LWT",
    "pass": "lskdfhlsifhslifh",
    "port": 1883,
    "presence": 1,
    "presence_topic": "home/TheengsGateway/presence",
    "publish_advdata": 0,
    "publish_all": 1,
    "publish_topic": "home/TheengsGateway/BTtoMQTT",
    "scanning_mode": "active",
    "subscribe_topic": "home/+/BTtoMQTT/undecoded",
    "time_format": 0,
    "time_sync": [],
    "tracker_timeout": 120,
    "user": "fhem"
}
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

DigiH

Hi Jamo,

Zitatsieht gut aus, wie man sich das vorstellt! Danke!

Freut mich, obwohl dann für eine Release noch an ein paar Kleinigkeiten gefeilt werden muss ;)
Dank dir für die unkomplizierte und zivilisierte Mitarbeit!

ZitatAllerdings wirft er bei mir jetzt auch immer die distance mit aus:

"presence": 0,
dann ist die distance auch weg.

"FHEM_presence": 1,
macht jetzt alles, ohne eine distance.

Jamo

Hallo DigiH,
ich wollte das TheengsGateway auf einem weiteren Raspberry PI installieren.
Der fhemtest Branch existiert aber nicht mehr, und im normalen Branch ist die FHEM Funktionalität noch nicht drin.
Kannst Du den Branch nochmal zur Verfügung stellen, bzw wann würde ein neues Release mit der FHEM_presence funktionalität kommen?

PS: das unlocked funktioniert bei mir nur für die Apple Watch, nicht aber für das iPhone. Ist das bekannt oder nur bei mir so?

PSS: Hat sich erledigt, ich habe mir den fhem Branch auf den weiteren Raspberry PI kopiert und nochmal kompiliert.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack