-
-
Save shinyquagsire23/f7907fdf6b470200702e75a30135caf3 to your computer and use it in GitHub Desktop.
DeviceInfo(softwareRevision, isOn, | |
SceneLightState(color, powerOnBehavior, deviceInfo | |
Light(id, | |
Capabilities(dimmable, customState | |
PowerOnBehavior(option | |
hueplay, huebloom, hueiris, huelightstrip, huego, plug, bollard, wallspot, groundspot, flexiblelamp, wallshade, walllantern | |
[ea:44:13:bd:db:59] Service [b8843add-0000-4aa1-8794-c3f462030bda] Unknown, ble_firmware_update? | |
[ea:44:13:bd:db:59] Characteristic [b8843add-0004-4aa1-8794-c3f462030bda] | |
[ea:44:13:bd:db:59] Characteristic [b8843add-0003-4aa1-8794-c3f462030bda] | |
[ea:44:13:bd:db:59] Characteristic [b8843add-0002-4aa1-8794-c3f462030bda] | |
[ea:44:13:bd:db:59] Characteristic [b8843add-0001-4aa1-8794-c3f462030bda] | |
[ea:44:13:bd:db:59] Service [932c32bd-0000-47a2-835a-a8d455b859dd] light_control - startupConfiguration, combinedControl | |
[ea:44:13:bd:db:59] Characteristic [932c32bd-0001-47a2-835a-a8d455b859dd] unk, 00 01 03 01 02 99 00 02 02 F4 01 03 02 01 00 | |
[ea:44:13:bd:db:59] Characteristic [932c32bd-0002-47a2-835a-a8d455b859dd] Light state, 01/00 | |
[ea:44:13:bd:db:59] Characteristic [932c32bd-0003-47a2-835a-a8d455b859dd] Brightness | |
[ea:44:13:bd:db:59] Characteristic [932c32bd-0004-47a2-835a-a8d455b859dd] unk, E9 00 | |
[ea:44:13:bd:db:59] Characteristic [932c32bd-0005-47a2-835a-a8d455b859dd] Color | |
[ea:44:13:bd:db:59] Characteristic [932c32bd-0006-47a2-835a-a8d455b859dd] unk, write-only | |
[ea:44:13:bd:db:59] Characteristic [932c32bd-0007-47a2-835a-a8d455b859dd] everything, includes color and brightness combined_light_control_port | |
[ea:44:13:bd:db:59] Characteristic [932c32bd-1005-47a2-835a-a8d455b859dd] Also everything, but last four bytes FF FF FF FF - default powerloss state? combined_light_control_port_factory? | |
[ea:44:13:bd:db:59] Service [0000fe0f-0000-1000-8000-00805f9b34fb] device_configuration_service_info - ProximityPairingSetup somewhere | |
[ea:44:13:bd:db:59] Characteristic [97fe6561-0001-4f62-86e9-b71ee2da3d22] zigbee address, 64 e2 7a 08 01 88 17 00 | |
[ea:44:13:bd:db:59] Characteristic [97fe6561-0003-4f62-86e9-b71ee2da3d22] userDefinedDeviceName, "Lamp" | |
[ea:44:13:bd:db:59] Characteristic [97fe6561-0004-4f62-86e9-b71ee2da3d22] | |
[ea:44:13:bd:db:59] Characteristic [97fe6561-0008-4f62-86e9-b71ee2da3d22] | |
[ea:44:13:bd:db:59] Characteristic [97fe6561-a001-4f62-86e9-b71ee2da3d22] write-only | |
[ea:44:13:bd:db:59] Characteristic [97fe6561-2004-4f62-86e9-b71ee2da3d22] write-only | |
[ea:44:13:bd:db:59] Characteristic [97fe6561-2002-4f62-86e9-b71ee2da3d22] write-only | |
[ea:44:13:bd:db:59] Characteristic [97fe6561-2001-4f62-86e9-b71ee2da3d22] unk, 0A | |
[ea:44:13:bd:db:59] Service [0000180a-0000-1000-8000-00805f9b34fb] | |
[ea:44:13:bd:db:59] Characteristic [00002a28-0000-1000-8000-00805f9b34fb] fw version | |
[ea:44:13:bd:db:59] Characteristic [00002a24-0000-1000-8000-00805f9b34fb] model | |
[ea:44:13:bd:db:59] Characteristic [00002a29-0000-1000-8000-00805f9b34fb] manufacturer | |
[ea:44:13:bd:db:59] Service [00001801-0000-1000-8000-00805f9b34fb] | |
[ea:44:13:bd:db:59] Characteristic [00002a05-0000-1000-8000-00805f9b34fb] Service changed |
At least for my bulb, writing 0x00, 0x01, 0x02 to 932c32bd-0006-47a2-835a-a8d455b859dd change the flashing mode, used by the timer feature.
0004 means color temp. It is 0xTT01 - where larger T is warmer, however 0xTT00 means ignore the temp.
0007, and 1005 are type+length+value sequences.
For example 0x010101 can be written to either and means 0x01 (change light state) 0x01 (1 byte) 0x01 (turn light on).
0x0302fe01 means 0x03 (change color-temp) 0x02 (2-bytes) 0xfe (max warmth) 0x01 (enable warmth)
0x0201aa means 0x02 (change brightness) 0x01 (1-byte) 0xaa (new brightness)
You can concatenate these commands without duplicates.
0x0101010302f401 means turn the bulb on, and set the temperature to 0xf4 (enabled).
0x040400010001 means set the color to 0x0001 X 0x0001Y I believe.
In the case of 1005, you can set the color to an otherwise unattainable value: 0xffffffff - this is the sigil value that indicates to use the temperature value instead of the color.
0x0101010201fe0302f4000404ffffffff means, on power up: turn the light on, set the brightness to fe (max) set the color temperature to f4 but disable it (cool), set the color to ffffffff which is the sigil that means to use temperature instead of color.
I don't know what it means, but 0x00 is accepted with any length. 0x0001ab, 0x0002abab, 0x0003ababab, etc. I've no idea what this does.
More commands:
0x05 doesn't seem to do anything, but 0x06 seems to be an animation thing? 0x08 might be a timing param.
0x060101 -> Cold flicker
0x060102 -> Warm flicker
0x060103 -> Cycle through different colors
0x0601030801ff -> Fast party mode
0x060103080101 -> Slow party mode
@evan-brass Man the timing is insane, I am currently trying to reverse engineer it and I was about to contribute to this gist for the flashing on 0006 ! Thank you a lot for what you provided !
I didn't figure out much more besides how to put the bulb into demo mode and possibly how to trigger a factory reset. In particular I couldn't figure out how to use the timer / clock / alarm / wake up features.
https://github.com/evan-brass/huecontrol
@evan-brass did you do any progress in how to trigger a factory reset? I am currently writing a script to try to do this but all the services and characteristics are hard to understand since philips haven't released any documentation. Only doing this because i cant physically reset my bulb (don't have a bridge or a dimmer, just use it as a bt bulb), its probably still "bonded" with my last phone that i dont have anymore and now i cant connect to it through the hue app on a new phone so trying to reset it with a python script.
@nattzp I think writing 0x01 to 97fe6561-0004-4f62-86e9-b71ee2da3d22 might be a factory reset, but it is only accessible after being paired. I imagine that there must be another way to factory reset the bulb, but I don't know. Sorry.
Have you done any progress in understaning the HUE BLE protocol)