Anwesenheitserkennung Bluetooth PebbleBee

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

Vorheriges Thema - Nächstes Thema

Steffen

Zitat von: Markus Bloch am 08 November 2014, 12:38:09
Habt ihr denn mit einem hcitool Befehl einen solchen Tag bereits anzeigen können auf der Shell?
Gruß
Markus

Hallo!

Meinst du das:

hcitool lescan
D0:FF:50:7A:24:08 (unknown)
D0:FF:50:7A:24:08 Kensington Eureka 2408


Mfg Steffen

gero

Bei BLE gibt es das klassische Paging nicht. Die einfachste  Möglichkeit ist mittels hcitool lescan eine Weile zu lauschen, ob der Tag in der Nähe ist. Achtung: für hcitool lescan sind normalerweise root-Rechte notwendig. BLE wird von bluez zwar seit der Version 4.99 (evtl. schon etwas früher) unterstützt, aber der Support war nicht wirklich ausgereift. Erst die aktuellen bluez Versionen unterstützen BLE vollständig.
Falls ein Tag sich mit ständig ändernder Bluetoothadresse meldet, so nutzt er das BLE-Feature Random Device Address. D.h. man braucht einen Key, um den Tag wirklich zuordnen zu können.
Odroid C1 - CULV3-868, JeeLink
16 x TX 29 DTH
MAX!: 15x Heizkörperthermostat+, 2x Wandthermostat, 14x Fenserkontakt, 1x Ecotaster
FS20 S4A, FS20IRF, BSB-Heizungssteuerung über Atmega2560
Z-Wave: ZME_UZB1, Fibaro Wall Plug + Motion Sensor

gero

Zitat von: Mitch am 08 November 2014, 12:18:50
Aber BT4LE ist ja der aktuelle Standard
Die aktuelle Bluetooth Spezifikation liegt in der Version 4.1 vor. Bluetooth Low Energy ist eine vollständig eigenständige Funktionalität, die weder Nachfolge noch Erweiterung zum klassischen Bluetooth ist, das auch weiterhin in der Spec vorhanden ist. Die  Möglichkeiten von BLE sind sehr eingeschränkt. Aber durch die weitreichenden Änderungen gegenüber dem klassischen Bluetooth sind Geräte mit einer extrem geringen  Stromaufnahme möglich geworden.
Odroid C1 - CULV3-868, JeeLink
16 x TX 29 DTH
MAX!: 15x Heizkörperthermostat+, 2x Wandthermostat, 14x Fenserkontakt, 1x Ecotaster
FS20 S4A, FS20IRF, BSB-Heizungssteuerung über Atmega2560
Z-Wave: ZME_UZB1, Fibaro Wall Plug + Motion Sensor

gero

Für das PRESENCE Modul ist es wahrscheinlich das einfachste ein Script im Hintergrund zu starten, das eine Liste der gerade sichtbaren BLE Geräte in einer Datei führt. Dann kann im Modul selbst der hcitool name Befehl durch ein einfaches grep ersetzt werden. Aber es gibt vielleicht bessere Möglichkeiten.
Odroid C1 - CULV3-868, JeeLink
16 x TX 29 DTH
MAX!: 15x Heizkörperthermostat+, 2x Wandthermostat, 14x Fenserkontakt, 1x Ecotaster
FS20 S4A, FS20IRF, BSB-Heizungssteuerung über Atmega2560
Z-Wave: ZME_UZB1, Fibaro Wall Plug + Motion Sensor

Steffen

#34
Hallo!

So richtig verstehe ich das jetzt noch nicht, nur das Ble ein etwas anderer standart ist aber könnte man das nun in das Presence-Modul einfügen oder geht das nicht?
Warum kann ich es ganz normal mit fast jeder Android-Bluetooth-Funktion(S3,S5,HTC) koppeln ohne zusatz app und nicht mit linux(debian)
Mein Bluetooth-Tag ändert den namen glaube ich nicht, wird immer die gleiche mac-adresse angezeigt so wie der gleiche Name.
Der Bluetooth-Tag liegt ja jetzt hier rum und würde mich sehr freuen ihn mit Presence nutzen zu können. ;)

Mfg Steffen

gero

Zitat von: Steffen am 09 November 2014, 17:35:43
So richtig verstehe ich das jetzt noch nicht, nur das Ble ein etwas anderer standart ist aber könnte man das nun in das Presence-Modul einfügen oder geht das nicht?
Ja, man kann BLE im Presence-Modul einfügen, allerdings kann man nicht mehr den Befehl "hcitool name" verwenden. D.h. es ist eine Änderung im Presence-Modul notwendig.

Zitat von: Steffen am 09 November 2014, 17:35:43
Warum kann ich es ganz normal mit fast jeder Android-Bluetooth-Funktion(S3,S5,HTC) koppeln ohne zusatz app und nicht mit linux(debian)
Bei Android ist der BLE Support seit Version 4.3 offiziell enthalten. Es gab einige Hersteller, die schon vorher einen eigenen BLE -Support hatten.
Auch unter Linux (Debian) ist der BLE Support, wie schon geschrieben, ab einer Stack Version > 4.9X vom bluez verfügbar. Also sieh erstmal zu, dass du deinen Tag unter Linux erkannt bekommst (als root hcitool lescan ausführen). Ansonsten hat das Presence-Modul auch keine Chance.
Ein Pairing ist für das Presence-Modul nicht notwendig. Hier geht es nur darum die Advertisement Pakete zu empfangen. Und solange keine BLE Security Features verwendet werden, wie z.B. "Random Device Address" funktioniert das sehr einfach mittels "hcitool lescan". Wie oft ein Tag ein Advertisement Paket aussendet, ist vom Tag abhängig und kann bei einigen auch konfiguriert werden. Die Grenzen liegen zwischen 20ms und 10s. Die Tags, die ich kenne, melden sich aber mindestens einmal pro Sekunde. Daher sollte man hcitool lescan eine Zeit lang laufen lassen.

Die konkrete Umsetzung für das Presence-Modul wird Markus schon hinbekommen.

Gruß,
Gero
Odroid C1 - CULV3-868, JeeLink
16 x TX 29 DTH
MAX!: 15x Heizkörperthermostat+, 2x Wandthermostat, 14x Fenserkontakt, 1x Ecotaster
FS20 S4A, FS20IRF, BSB-Heizungssteuerung über Atmega2560
Z-Wave: ZME_UZB1, Fibaro Wall Plug + Motion Sensor

Mitch

Das hört sich ja alles chonmal vielversprechend an.

Mein Pebblebee's sind nun in LA und fliegen von dort wohl nach FFM, also sind sie denke ich nächste Woche bei mir (wenn der Zoll nicht zickt).
Über die Tile's habe ich noch keine Info.

Hab gestern mal zum Spass
Zitathcitool lescan
ausgeführt. Es werden mir zick Geräte ohne Name angezeigt. Sind wohl unsere Handys und Tablet und meine Pebble.
Muss halt dann die richtige Adresse der Tags rausfinden.
FHEM im Proxmox Container

Mitch

So, meine PebbleBee's sind heute gekommen.

Hab gleich den ersten aktiviert und ans Handy angebunden. Funktioniert prima.

Dann habe ich mal hcitool scan ausgeführt, der sieht nichts.
Danach hcitool lescan, der findet den Tag sofort, hat auch immer die gleiche Adresse.

Also Device mit PRESENCE Modul angelegt. Leider zeigt dieses immer "absent"  >:(
FHEM im Proxmox Container

Steffen

Hallo!

Ja das gleiche ist mir auch so, hier mal ein beispiel:

root@cubieez:~# hcitool scan
Scanning ...
        BC:D1:D3:6B:7D:78       Liescha
        E4:E0:C5:BE:08:52       DTVBluetooth



root@cubieez:~# hcitool lescan
LE Scan ...
D0:FF:50:7A:24:08 (unknown)
D0:FF:50:7A:24:08 Kensington Eureka 2408
root@cubieez:~#


hatte viel gelesen das man mit Linux und BLE sich sogar mit der Device verbinden kann und zb. die Config auslesen oder Befehle senden kann.
Aber wie man das für unsere Zwecke benutzen könnte konnte ich leider nicht raus lesen!

Mfg Steffen

Mitch

#39
Hier steht es ganz gut beschrieben: http://joost.damad.be/2013/08/experiments-with-bluetooth-low-energy.html

Leider kann ich mich nicht auf die Tags verbinden.

Im Prinzip muss Markus "nur" das Modul insoweit ändern, dass es einen LESCAN ausführt  ;D
FHEM im Proxmox Container

DerBodo

Hi Mitch,

wie lange war die Lieferzeit von deinen PebbleBees ?
Weiviele hattest du bestellt ?(wg. Zoll)

Gruß

Bodo

Mitch

Lieferzeit eine Woche, keine Zollprobleme, kam direkt zu mir.
FHEM im Proxmox Container

lukasbastelpeter

So, meine Bienchen sind auch heute angekommen.

Ich habe nur noch keinen Bluetooth 4.0-USB Stick, funktioniert das auch mit nem 1.0-2.0er?

Per Handy siehen die Teile brauchbar aus.

Muss in dem Modul nur der Befehl geändert werden, oder sieht auch die Antwort vom System dann anders aus?
# Raspberry Pi
# Homematic, Z-Wave
# HUE, Tradfri
# Harmony
# ESP8266  Basteleien per MQTT

Mitch

Du brauchst zwingend einen 4er BT Stick, der auch LE unterstützt.

Was genau im PRESENCE Modul geändert werden muss, kann ich nicht sagen.
Vermutlich die Art des Scan (lescan statt scan)
FHEM im Proxmox Container

DerBodo

Wie Markus schon vorher gezeigt hatte wird derzeit ein "hcitool name [BT Adresse]" abgesetzt.

Sinnig wäre hier aus meiner Sicht dem Presencemodul eine neue Option für BT4 LE Devices zu spendieren.
Hier könnte man dann eben den hcitool lescan  laufen. Dieser zeigt allerdings wohl alle Devices in der näheren Umgebung an, hier müsste die Ausgabe dann noch entsprechend gefiltert werden so das eben nur 1 Result zurückkommt (ggf. über ein grep BT Adresse).

Soweit mein laienhaftes Verständnis....

@ Mitch, meldet sich der Pebble immer mit der gleichen BT Adresse ? Oder ändert sich diese ständig ?