[31_PlayBulbCandle.pm] Modul für MiPow PLAYBULB Candle Bluetooth Lampen

Begonnen von CoolTux, 20 Oktober 2016, 22:06:57

Vorheriges Thema - Nächstes Thema

herrmannj

so, auch eben nochmal getested (bin wie gesagt auf der Suche nach einem systematischen Angang. Und sieht jut aus :) )

eingabe
[CON][AC:E6:4B:07:AD:7E][LE]> characteristics
[CON][AC:E6:4B:07:AD:7E][LE]>
handle: 0x0002, char properties: 0x0a, char value handle: 0x0003, uuid: 00002a00-0000-1000-8000-00805f9b34fb
handle: 0x0004, char properties: 0x02, char value handle: 0x0005, uuid: 00002a01-0000-1000-8000-00805f9b34fb
handle: 0x0006, char properties: 0x02, char value handle: 0x0007, uuid: 00002a04-0000-1000-8000-00805f9b34fb
handle: 0x000a, char properties: 0x10, char value handle: 0x000b, uuid: 00002a37-0000-1000-8000-00805f9b34fb
handle: 0x000d, char properties: 0x02, char value handle: 0x000e, uuid: 0000fff8-0000-1000-8000-00805f9b34fb
handle: 0x000f, char properties: 0x0a, char value handle: 0x0010, uuid: 0000fff9-0000-1000-8000-00805f9b34fb
handle: 0x0011, char properties: 0x06, char value handle: 0x0012, uuid: 0000fffa-0000-1000-8000-00805f9b34fb
handle: 0x0013, char properties: 0x06, char value handle: 0x0014, uuid: 0000fffb-0000-1000-8000-00805f9b34fb
handle: 0x0015, char properties: 0x06, char value handle: 0x0016, uuid: 0000fffc-0000-1000-8000-00805f9b34fb
handle: 0x0017, char properties: 0x0a, char value handle: 0x0018, uuid: 0000fffd-0000-1000-8000-00805f9b34fb
handle: 0x0019, char properties: 0x0a, char value handle: 0x001a, uuid: 0000fffe-0000-1000-8000-00805f9b34fb
handle: 0x001b, char properties: 0x0a, char value handle: 0x001c, uuid: 0000ffff-0000-1000-8000-00805f9b34fb
handle: 0x001e, char properties: 0x12, char value handle: 0x001f, uuid: 00002a19-0000-1000-8000-00805f9b34fb
handle: 0x0022, char properties: 0x02, char value handle: 0x0023, uuid: 00002a25-0000-1000-8000-00805f9b34fb
handle: 0x0024, char properties: 0x02, char value handle: 0x0025, uuid: 00002a27-0000-1000-8000-00805f9b34fb
handle: 0x0026, char properties: 0x02, char value handle: 0x0027, uuid: 00002a26-0000-1000-8000-00805f9b34fb
handle: 0x0028, char properties: 0x02, char value handle: 0x0029, uuid: 00002a28-0000-1000-8000-00805f9b34fb
handle: 0x002a, char properties: 0x02, char value handle: 0x002b, uuid: 00002a29-0000-1000-8000-00805f9b34fb
handle: 0x002c, char properties: 0x02, char value handle: 0x002d, uuid: 00002a50-0000-1000-8000-00805f9b34fb


Hinten bei den UUID wieder nur die Ziffern 4-8 beachten. Diese Werte dann hier https://www.bluetooth.com/specifications/gatt/characteristics nachschlagen.

Damit lässt sich ein großer Teil der allgemeinen Werte auslesen. Name, Benutzerdefinierter Name (Balkon ;)), Firmware, Hersteller usw.
Die UUID für Battery ist (lt verlinkt) 0x2a19. Also handle 0x01f. Die Bedeutung der Propertys habe ich auch irgendwo gesehen, erinnere mich aber nicht mehr wo (zu viel gelesen). Aber so gehts, selbst bei total fremden Geräten.

Die UUIDs mit FF.. sind nicht mehr standardisiert sondern Hersteller eigen. Die Anzahl der handles die bleiben ist ja schon überschaubar. Wenn man dann eine idee hat wie die Daten in etwa aussehen (rgb hier bei uns) dann ist das zusammen mit char propertys fast ein Selbstgänger.

Bin ganz zufrieden mit den Ergebnissen  8) 8) 8)

vg
joerg

CoolTux

Danke Jörg für Deine Arbeit. Habe da noch was gefunden

https://github.com/Phhere/Playbulb/blob/master/protocols/color.md


Basierend darauf stelle ich mal folgende Behauptung auf was Firmware an geht

gatttool -b AC:E6:4B:07:93:DD --char-read -a 0x27
Characteristic value/descriptor: 42 54 4c 33 30 30 5f 76 35
Firmware Version. Hier in meinem Fall v5

Characteristic value/descriptor: 42 54 4c 33 30 30 5f 76 36
hier in einem anderen Fall sollte es v6 sein. Kann das bitte mal jemand mit v6 Versionen prüfen
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Habe mal schnell diese Seite verwendet und meine erhaltenen Hex Telegramme da ein gegeben. Und siehe da.

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Ma_Bo

Bei mir kommt folgendes:

gatttool -b 8B:39:4B:0D:AC:E6 --char-read -a 0x27
Characteristic value/descriptor: 02 28 00 27 2a
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

herrmannj

ja wart mal Ma_Bo

zuerst bitte das

characteristics
dann die UUID 2a26 suchen
dann den dazugehörigen char value handle abfragen

(und den output von characteristics bitte auch gleich posten ;) )

Danke vg
joerg

CoolTux

Mist ich bin davon ausgegangen das die handle immer gleich sind, zu mindest für sowas wie die Firmware oder so.
Das verwirft meinen ganzen Code  :'(
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

herrmannj

Zitat von: CoolTux am 31 Oktober 2016, 21:41:48
Danke Jörg für Deine Arbeit. Habe da noch was gefunden

https://github.com/Phhere/Playbulb/blob/master/protocols/color.md


Basierend darauf stelle ich mal folgende Behauptung auf was Firmware an geht

gatttool -b AC:E6:4B:07:93:DD --char-read -a 0x27
Characteristic value/descriptor: 42 54 4c 33 30 30 5f 76 35
Firmware Version. Hier in meinem Fall v5

Characteristic value/descriptor: 42 54 4c 33 30 30 5f 76 36
hier in einem anderen Fall sollte es v6 sein. Kann das bitte mal jemand mit v6 Versionen prüfen

ja das is cool. Ein allgemein gültiger, automatischer workflow wäre demnach
- zuerst characteristic, dann aus den UUID den Teil filtern, dann gegen die Liste der bekannten Service prüfen. Perfekt für autocreate. Und anhand der service sieht man parallel was das Ding kann.

btw, meine play bulbs können 0x2a37 :) , bissel muss man wohl aufpassen

herrmannj

Zitat von: CoolTux am 31 Oktober 2016, 22:11:01
Mist ich bin davon ausgegangen das die handle immer gleich sind, zu mindest für sowas wie die Firmware oder so.
Das verwirft meinen ganzen Code  :'(

Yepp, das war mein learning gestern. UUID->Handle. Jetzt müsste man noch die propertys richtig verstehen ...

CoolTux

Zitat von: herrmannj am 31 Oktober 2016, 22:13:46
btw, meine play bulbs können 0x2a37 :) , bissel muss man wohl aufpassen

Interessant. Muß wohl der Impulseffect sein, lach.
Gott ist das ein Aufwand, uuid Filtern, Handle raussuchen um dann den Type und die Funktionen fest zu stellen. Aber wenn das erstmal geht ist das der Hammer. Werden aber wohl nicht drum rum kommen eine eigene Hash Datenquelle dafür in den Code ein zu bauen.

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

fxstc

meine Güte.
Kaum war man mal was Essen geht hier die Post ab  ;D

Mein Output von Charateristics
characteristics
handle: 0x0002, char properties: 0x0a, char value handle: 0x0003, uuid: 00002a00-0000-1000-8000-00805f9b34fb
handle: 0x0004, char properties: 0x02, char value handle: 0x0005, uuid: 00002a01-0000-1000-8000-00805f9b34fb
handle: 0x0006, char properties: 0x02, char value handle: 0x0007, uuid: 00002a04-0000-1000-8000-00805f9b34fb
handle: 0x0009, char properties: 0x22, char value handle: 0x000a, uuid: 00002a05-0000-1000-8000-00805f9b34fb
handle: 0x000d, char properties: 0x10, char value handle: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb
handle: 0x0010, char properties: 0x02, char value handle: 0x0011, uuid: 0000fff8-0000-1000-8000-00805f9b34fb
handle: 0x0012, char properties: 0x0a, char value handle: 0x0013, uuid: 0000fff9-0000-1000-8000-00805f9b34fb
handle: 0x0014, char properties: 0x06, char value handle: 0x0015, uuid: 0000fffa-0000-1000-8000-00805f9b34fb
handle: 0x0016, char properties: 0x06, char value handle: 0x0017, uuid: 0000fffb-0000-1000-8000-00805f9b34fb
handle: 0x0018, char properties: 0x06, char value handle: 0x0019, uuid: 0000fffc-0000-1000-8000-00805f9b34fb
handle: 0x001a, char properties: 0x0a, char value handle: 0x001b, uuid: 0000fffd-0000-1000-8000-00805f9b34fb
handle: 0x001c, char properties: 0x0a, char value handle: 0x001d, uuid: 0000fffe-0000-1000-8000-00805f9b34fb
handle: 0x001e, char properties: 0x0a, char value handle: 0x001f, uuid: 0000ffff-0000-1000-8000-00805f9b34fb
handle: 0x0021, char properties: 0x12, char value handle: 0x0022, uuid: 00002a19-0000-1000-8000-00805f9b34fb
handle: 0x0025, char properties: 0x02, char value handle: 0x0026, uuid: 00002a25-0000-1000-8000-00805f9b34fb
handle: 0x0027, char properties: 0x02, char value handle: 0x0028, uuid: 00002a27-0000-1000-8000-00805f9b34fb
handle: 0x0029, char properties: 0x02, char value handle: 0x002a, uuid: 00002a26-0000-1000-8000-00805f9b34fb
handle: 0x002b, char properties: 0x02, char value handle: 0x002c, uuid: 00002a28-0000-1000-8000-00805f9b34fb
handle: 0x002d, char properties: 0x02, char value handle: 0x002e, uuid: 00002a29-0000-1000-8000-00805f9b34fb
handle: 0x002f, char properties: 0x02, char value handle: 0x0030, uuid: 00002a50-0000-1000-8000-00805f9b34fb
handle: 0x0032, char properties: 0x0a, char value handle: 0x0033, uuid: 00001013-d102-11e1-9b23-00025b00a5a5
handle: 0x0034, char properties: 0x08, char value handle: 0x0035, uuid: 00001018-d102-11e1-9b23-00025b00a5a5
handle: 0x0036, char properties: 0x12, char value handle: 0x0037, uuid: 00001014-d102-11e1-9b23-00025b00a5a5
handle: 0x0039, char properties: 0x02, char value handle: 0x003a, uuid: 00001011-d102-11e1-9b23-00025b00a5a5


Abfrage von handle bei uuid 00002a26
char-read-hnd 29
Characteristic value/descriptor: 02 2a 00 26 2a


und hier noch das:
gatttool -b AE:D5:4B:10:AC:E6 --char-read -a 0x27
Characteristic value/descriptor: 02 28 00 27 2a


Ma_Bo

Characteristics:

fhem@NUC:~$ gatttool -b 8B:39:4B:0D:AC:E6 --characteristics
handle = 0x0002, char properties = 0x0a, char value handle = 0x0003, uuid = 00002a00-0000-1000-8000-00805f9b34fb
handle = 0x0004, char properties = 0x02, char value handle = 0x0005, uuid = 00002a01-0000-1000-8000-00805f9b34fb
handle = 0x0006, char properties = 0x02, char value handle = 0x0007, uuid = 00002a04-0000-1000-8000-00805f9b34fb
handle = 0x0009, char properties = 0x22, char value handle = 0x000a, uuid = 00002a05-0000-1000-8000-00805f9b34fb
handle = 0x000d, char properties = 0x10, char value handle = 0x000e, uuid = 00002a37-0000-1000-8000-00805f9b34fb
handle = 0x0010, char properties = 0x02, char value handle = 0x0011, uuid = 0000fff8-0000-1000-8000-00805f9b34fb
handle = 0x0012, char properties = 0x0a, char value handle = 0x0013, uuid = 0000fff9-0000-1000-8000-00805f9b34fb
handle = 0x0014, char properties = 0x06, char value handle = 0x0015, uuid = 0000fffa-0000-1000-8000-00805f9b34fb
handle = 0x0016, char properties = 0x06, char value handle = 0x0017, uuid = 0000fffb-0000-1000-8000-00805f9b34fb
handle = 0x0018, char properties = 0x06, char value handle = 0x0019, uuid = 0000fffc-0000-1000-8000-00805f9b34fb
handle = 0x001a, char properties = 0x0a, char value handle = 0x001b, uuid = 0000fffd-0000-1000-8000-00805f9b34fb
handle = 0x001c, char properties = 0x0a, char value handle = 0x001d, uuid = 0000fffe-0000-1000-8000-00805f9b34fb
handle = 0x001e, char properties = 0x0a, char value handle = 0x001f, uuid = 0000ffff-0000-1000-8000-00805f9b34fb
handle = 0x0021, char properties = 0x12, char value handle = 0x0022, uuid = 00002a19-0000-1000-8000-00805f9b34fb
handle = 0x0025, char properties = 0x02, char value handle = 0x0026, uuid = 00002a25-0000-1000-8000-00805f9b34fb
handle = 0x0027, char properties = 0x02, char value handle = 0x0028, uuid = 00002a27-0000-1000-8000-00805f9b34fb
handle = 0x0029, char properties = 0x02, char value handle = 0x002a, uuid = 00002a26-0000-1000-8000-00805f9b34fb
handle = 0x002b, char properties = 0x02, char value handle = 0x002c, uuid = 00002a28-0000-1000-8000-00805f9b34fb
handle = 0x002d, char properties = 0x02, char value handle = 0x002e, uuid = 00002a29-0000-1000-8000-00805f9b34fb
handle = 0x002f, char properties = 0x02, char value handle = 0x0030, uuid = 00002a50-0000-1000-8000-00805f9b34fb
handle = 0x0032, char properties = 0x0a, char value handle = 0x0033, uuid = 00001013-d102-11e1-9b23-00025b00a5a5
handle = 0x0034, char properties = 0x08, char value handle = 0x0035, uuid = 00001018-d102-11e1-9b23-00025b00a5a5
handle = 0x0036, char properties = 0x12, char value handle = 0x0037, uuid = 00001014-d102-11e1-9b23-00025b00a5a5
handle = 0x0039, char properties = 0x02, char value handle = 0x003a, uuid = 00001011-d102-11e1-9b23-00025b00a5a5


gatttool -b 8B:39:4B:0D:AC:E6 --char-read -a 0x29
Characteristic value/descriptor: 02 2a 00 26 2a


gatttool -b 8B:39:4B:0D:AC:E6 --char-read -a 0x27
Characteristic value/descriptor: 02 28 00 27 2a
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

herrmannj

yepp. Seh ich auch im io device.

Hab im übrigen auch raus bekommen wie man ständig an die advertise inkl RSSI kommt auch wenn ein gatttool connected. Damit ist für presence und ibeacons alles klar. Zum testen hab ich mir Gigaset gtags bestellt. Die liest er sauber. ibeacons müsste ich genauso sehen, da fehlt aber noch der Beweis.  .... und der ibeacon ...  :) :)

herrmannj

Zitat von: fxstc am 31 Oktober 2016, 22:21:27
meine Güte.
Kaum war man mal was Essen geht hier die Post ab  ;D

Mein Output von Charateristics
characteristics
handle: 0x0002, char properties: 0x0a, char value handle: 0x0003, uuid: 00002a00-0000-1000-8000-00805f9b34fb
handle: 0x0004, char properties: 0x02, char value handle: 0x0005, uuid: 00002a01-0000-1000-8000-00805f9b34fb
handle: 0x0006, char properties: 0x02, char value handle: 0x0007, uuid: 00002a04-0000-1000-8000-00805f9b34fb
handle: 0x0009, char properties: 0x22, char value handle: 0x000a, uuid: 00002a05-0000-1000-8000-00805f9b34fb
handle: 0x000d, char properties: 0x10, char value handle: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb
handle: 0x0010, char properties: 0x02, char value handle: 0x0011, uuid: 0000fff8-0000-1000-8000-00805f9b34fb
handle: 0x0012, char properties: 0x0a, char value handle: 0x0013, uuid: 0000fff9-0000-1000-8000-00805f9b34fb
handle: 0x0014, char properties: 0x06, char value handle: 0x0015, uuid: 0000fffa-0000-1000-8000-00805f9b34fb
handle: 0x0016, char properties: 0x06, char value handle: 0x0017, uuid: 0000fffb-0000-1000-8000-00805f9b34fb
handle: 0x0018, char properties: 0x06, char value handle: 0x0019, uuid: 0000fffc-0000-1000-8000-00805f9b34fb
handle: 0x001a, char properties: 0x0a, char value handle: 0x001b, uuid: 0000fffd-0000-1000-8000-00805f9b34fb
handle: 0x001c, char properties: 0x0a, char value handle: 0x001d, uuid: 0000fffe-0000-1000-8000-00805f9b34fb
handle: 0x001e, char properties: 0x0a, char value handle: 0x001f, uuid: 0000ffff-0000-1000-8000-00805f9b34fb
handle: 0x0021, char properties: 0x12, char value handle: 0x0022, uuid: 00002a19-0000-1000-8000-00805f9b34fb
handle: 0x0025, char properties: 0x02, char value handle: 0x0026, uuid: 00002a25-0000-1000-8000-00805f9b34fb
handle: 0x0027, char properties: 0x02, char value handle: 0x0028, uuid: 00002a27-0000-1000-8000-00805f9b34fb
handle: 0x0029, char properties: 0x02, char value handle: 0x002a, uuid: 00002a26-0000-1000-8000-00805f9b34fb
handle: 0x002b, char properties: 0x02, char value handle: 0x002c, uuid: 00002a28-0000-1000-8000-00805f9b34fb
handle: 0x002d, char properties: 0x02, char value handle: 0x002e, uuid: 00002a29-0000-1000-8000-00805f9b34fb
handle: 0x002f, char properties: 0x02, char value handle: 0x0030, uuid: 00002a50-0000-1000-8000-00805f9b34fb
handle: 0x0032, char properties: 0x0a, char value handle: 0x0033, uuid: 00001013-d102-11e1-9b23-00025b00a5a5
handle: 0x0034, char properties: 0x08, char value handle: 0x0035, uuid: 00001018-d102-11e1-9b23-00025b00a5a5
handle: 0x0036, char properties: 0x12, char value handle: 0x0037, uuid: 00001014-d102-11e1-9b23-00025b00a5a5
handle: 0x0039, char properties: 0x02, char value handle: 0x003a, uuid: 00001011-d102-11e1-9b23-00025b00a5a5


Abfrage von handle bei uuid 00002a26
char-read-hnd 29
Characteristic value/descriptor: 02 2a 00 26 2a


und hier noch das:
gatttool -b AE:D5:4B:10:AC:E6 --char-read -a 0x27
Characteristic value/descriptor: 02 28 00 27 2a


ne, Du musst 2a abfragen. 29 beschreibt wie der Inhalt formatiert ist

fxstc

Sorry
char-read-hnd 2a
Characteristic value/descriptor: 42 54 4c 33 30 30 5f 76 36

Ma_Bo

Bei mir identisch

gatttool -b 8B:39:4B:0D:AC:E6 --char-read -a 0x2a
Characteristic value/descriptor: 42 54 4c 33 30 30 5f 76 36
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.