Enable segment addressing for Bluetooth MODE_1501 [Enhancement]
Working with a Govee H61F6 Strip Light Pro 2, 10 m, I have deduced some of how to control the color of individual segments, including segments 17-20.
It appears that the bytes between the color-temperature bytes and the last two or three can be zero. The last three bytes work as a bitmap for which segment to enable. Sending
33 05 15 01 ff ff ff 0b b8 00 00 00 ff ff 0f
will set all 20 segments to the 3000°K setting. Of those three bytes, the first corresponds to the first 8 segments, the second to segments 9-16, and the third to 17-20. The low-order bit is the first segment in the group, the high-order bit is the eight. I can't confirm behavior for segments 21-24 as I do not have those segments.
I don't know how you might incorporate this in the API, so I didn't pursue crafting patches.
Some of my notes from testing:
10 segments (5 m) of H61F6 connected at this point
send 33 05 15 01 ff ff ff 0b b8 00 00 00 ff 74 -- sets CCT on first 8
send 33 05 15 01 ff ff ff 0b b8 ff ff 00 ff ff -- sets CCT on first 10 (only 5 m connected)
send 33 05 15 01 ff ff ff 0b b8 00 00 00 ff ff -- also sets first 10
send 33 05 15 01 ff ff ff 0b b8 00 00 00 00 00 -- didn't change any in first 10
send 33 05 15 01 ff ff ff 0b b8 00 00 00 00 01 -- changed second to last (9th) segment
send 33 05 15 01 ff ff ff 0b b8 00 00 00 00 02 -- changed 10th segment
send 33 05 15 01 ff ff ff 0b b8 00 00 00 01 00 -- changed 1st segment
send 33 05 15 01 ff ff ff 0b b8 00 00 00 02 00 -- changed second segment
send 33 05 15 01 ff ff ff 0b b8 00 00 00 0f 00 -- changes first four segments
send 33 05 15 01 ff ff ff 0b b8 00 00 00 0f f0 -- also changes first four segments
send 33 05 15 01 ff ff ff 0b b8 00 00 00 1f 00 -- changes first five segments
send 33 05 15 01 ff ff ff 0b b8 00 00 00 fe 00 -- changes 2-8
send 33 05 15 01 ff ff ff 0b b8 00 00 00 fe 03 -- changes 2-10
Connected second 5m, 4 segments not responding
send 33 05 15 01 ff ff ff 0b b8 00 00 00 ff ff -- confirmed 16 segments change
send 33 05 15 01 ff ff ff 0b b8 00 00 0f ff ff -- still only 16 change
send 33 05 15 01 ff ff ff 0b b8 00 00 ff ff ff -- still only 16 change
send 33 05 15 01 ff ff ff 0b b8 ff ff ff ff ff -- only 16 change
send 33 05 15 01 ff ff ff 0b b8 00 00 00 ff ff ff -- all 20 changed
send 33 05 15 01 ff ff ff 0b b8 00 00 00 ff ff 0f -- all 20 changed
send 33 05 15 01 ff ff ff 0b b8 00 00 00 ff ff 01 -- 16 + next changed
send 33 05 15 02 ff ff ff 0b b8 00 00 ff ff ff -- no change -- suggested to me that 02 wasn't the key to bank switch.
Thanks for sharing! Unfortunately, I'm not very active in this repo at all.
I did want to note that https://github.com/egold555/Govee-Reverse-Engineering/issues is probably a really good place to share this sort of information though!