simbaja / gehome

Python SDK for GE smart appliances
MIT License
43 stars 30 forks source link

Add support for Accent Lights on Monogram Range #68

Open Nesteross opened 5 months ago

Nesteross commented 5 months ago

Been running this code in attempt to add, or provide enough info for someone else to add, support for Accent Lights for GE Monogram Range ZDP486NDT1SS.

ON/OFF of the accent lights is controlled by a dedicated button on the front of the range.

The properties of the lights are controlled only by the SmartHQ app. There are 3 brightness settings. There are also two "modes": one in which a white light of one of 5 color temperatures (cool to warm) is selected, or a custom color mode where any RGB color can be selected. The SmartHQ app does not appear to be able to actually turn the turn the lights on or off as described in the above about the physical button.

I got to the point where I figured out ERD 0x5024 is the accent light properties. I'm not exactly sure how to correctly parse the string or how it is encoded, but in raw form, I figured out from this example: 014221980033FF0000000000

"01" is custom color mode (vs. "00" for color temp mode) "42" appears to be medium brightness (vs. 21 for low and 64 for high) "219" appears to encode the "cool" color temp mode setting (vs. 1E7 for somewhat cool, 1B5 for neutral, 183 for somewhat warm, and 151 for warm) "800" is unknown and never changed "33FF00" is the current RGB color "00000000" is unknown and never changed

None of the ERD codes ever changed based on whether the accent lights were on or off.

I tried writing a raw string back to change the color and got back a message that The ERD is not writable, though the SmartHQ app somehow controls them.

Any thoughts on where to go from here? I do appreciate any help.

simbaja commented 5 months ago

Did you get something like "Attempt to encode unregistered ERD code"? If so, in order to have the ability to write, you'll need to do a few things:

  1. Create the ERD code in erd_codes.py
  2. Create the converter to decode/encode the value (I'd suggest looking at some like the OvenCookModeConverter for an idea of how you can do it)
  3. Add the mapping to erd_configuration.py

That should allow you to add the accent lights. Hopefully that helps.