simbaja / ha_gehome

GE Home Appliances (SmartHQ) for Home Assistant
MIT License
322 stars 75 forks source link

Support cooktop for new monogram oven #159

Open leonine0 opened 1 year ago

leonine0 commented 1 year ago

Hello, I've noticed that cooktop for newer Monogram oven is not supported, while there is a support in the app.

First, the oven supports new features: DEBUG (MainThread) [gehomesdk.clients.websocket_client] Received features ['COMMON_V1_CONTROL_LOCK', 'COMMON_V1_SABBATH', 'COMMON_V1_SOUND_LEVEL', 'COOKING_V1_ACCENT_LIGHTING', 'COOKING_V1_EXTENDED_COOKTOP_FOUNDATION', 'COOKING_V1_MENU_TREE', 'COOKING_V1_UPPER_OVEN_FOUNDATION', 'COOKING_V1_UPPER_OVEN_KITCHEN_TIMER', 'COOKING_V2_CLOCK_DISPLAY', 'COOKING_V2_UPPER_CAVITY_REMOTE_PRECISION_COOK'] for D828C98D4021

Notice, COOKING_V1_EXTENDED_COOKTOP_FOUNDATION.

Then, I found the following log message when a burner is turned on/off:

2023-05-05 21:39:39.703 DEBUG (MainThread) [gehomesdk.ge_appliance] Setting 0x5522 to B'\x01\x01\xff \x01A\xff \x01\x01\xff \x01\x01\xff \x01\x01\xff \x01\x01\xff \x01\x00\xff \x00\x00\xff \x00\x00\x00\x00\x00\x00\x00\x00'

(I did the indentation).

The format seem to be the following. Each burner state is encoded in 2 bytes followed by xFF, 3 bytes total. The state contains 3x6 bytes corresponding to 6 burners, followed by 8 of bytes with value 0.

Burner state is \x01\x01 when a burner is off, and it is when the burner is on. The order of burners is the same as in the older cooktop code: Left Front Left Rear Center Front Center Rear Right Front Right Rear

I'd appreciate supporting this, as I'd like to alert on burner being on for a long time.

simbaja commented 1 year ago

I think that I have this in the latest Github version, will publish to pypi in a bit if needed. Let me know if it works, then we can build into HA component

leonine0 commented 1 year ago

Thank you for checking. I am running v0.6.7 and do not have this support. Also, did not find this support in the source code.

simbaja commented 1 year ago

Apologies, I thought you were using the sdk itself. Can you try using that? simbaja/gehome repository.

wardwolfram commented 1 year ago

Hello Team, I installed the latest repository this past week (0.6.7) and did not have the burner support for my Monogram 4 burner gas range. I have not used SDK's before (I do not believe), but am willing to help where I can. Thank for working on this.

simbaja commented 1 year ago

It's not in the Home Assistant integration yet, you'll need to follow the instructions in the readme in the SDK repository. While running the application there, you will need to turn the burners on and off and confirm that it registers the activity. If it doesn't, I will adjust.

wardwolfram commented 1 year ago

It sounds like I need to install with 'pip install gehomesdk'. Is this done in the core CLI of HA? Also, is there an easy way for me to do what you ask?... as I have not worked in the Core or messed with Python code like shown in the installation example. Thanks.

simbaja commented 1 year ago

You'll need to have a working instance of python somewhere, it doesn't have to be on your home assistant instance, it can be a laptop or anything else you're using. pip is the python package manager that allows you to install packages distributed online. Once you have python and pip installed, run that command, then follow the rest of the readme to get logs.

wardwolfram commented 1 year ago

Thanks! I’ll give this a try… hopefully soon.

From: simbaja @.> Sent: Saturday, June 17, 2023 10:39 AM To: simbaja/ha_gehome @.> Cc: wardwolfram @.>; Comment @.> Subject: Re: [simbaja/ha_gehome] Support cooktop for new monogram oven (Issue #159)

You'll need to have a working instance of python somewhere, it doesn't have to be on your home assistant instance, it can be a laptop or anything else you're using. pip is the python package manager that allows you to install packages distributed online. Once you have python and pip installed, run that command, then follow the rest of the readme to get logs.

— Reply to this email directly, view it on GitHub https://github.com/simbaja/ha_gehome/issues/159#issuecomment-1595790037 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AHHUSTEYDZAMU4KVMWEUFFTXLXFQNANCNFSM6AAAAAAX4E7BHA . You are receiving this because you commented. https://github.com/notifications/beacon/AHHUSTG5ZGPAXQMCL4OOYZDXLXFQNA5CNFSM6AAAAAAX4E7BHCWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTS7DXJNK.gif Message ID: @. @.> >

simbaja commented 1 year ago

Any updates on testing this?

wardwolfram commented 1 year ago

Hello Simbaja, I have been out of town for work and will be for the beginning of next week. I hope to get some time in the next week or two.

wardwolfram commented 1 year ago

Hello Simbaha, This is process is new to me so let me know if you need more info. The environment I have is:

  1. ZGP304NTSS range
  2. It has 'Chef Connect' to the GE ventilation. This means, that when a burner is turned on, the range will communicate with the vent lights via BT to turn the vent lights on if needed.

Actions taken during log collection:

  1. started the logs using gehome-appliance-date -u xxxx -p xxxx -r US
  2. turned on the vent light (may reduce variables in the logs?... not sure... the vent lights were turned on before starting logs).
  3. turned on a burner for 2 seconds
  4. turned off the burner.
  5. Copied everything in the logs on the screen
  6. Saved the logs in the files attached here. RightBack Burner logs.txt RightFront Burner logs.txt leftBack Burner logs.txt leftFront Burner logs.txt
simbaja commented 1 year ago

weird, it's saying that there's no raw value in the log. I also don't see the changes happening. Maybe start the program, then wait a little bit (maybe 10 seconds), then flip things on/off in right back, right front, left back, left front order (maybe about 5 seconds each in case it takes a bit to register?

I have to travel for work, but will try to pick this up when I get back.

wardwolfram commented 1 year ago

Here are the logs I copied when I waited, 10-15 seconds for logs to settle down before I turned on the burners for 5 seconds, then waited for 5 or so seconds before turning on another. I followed the right back, right front, left back, left front order. RB_RF_LB_LF.txt

wardwolfram commented 1 year ago

Note,... when I enable or disable the burner, the log that pops up less than a second after the burner actions is: 2023-06-25 15:20:29,158 DEBUG < TEXT '{"item":{"applianceId":"D828C9EB76A0","erd":"0x...rId":"e3ez3op0jvxoaw7"}' [259 bytes]

Again, this log pops up very close to the time when a burner is turned on or off.

leonine0 commented 1 year ago

Hello, I gave it a try.

Here are the logs for turn on/off the center front:

2023-06-25 20:35:09,961 DEBUG % sending keepalive ping 2023-06-25 20:35:09,962 DEBUG > PING b4 65 df d1 [binary, 4 bytes] 2023-06-25 20:35:10,064 DEBUG < PONG b4 65 df d1 [binary, 4 bytes] 2023-06-25 20:35:10,064 DEBUG % received keepalive pong 2023-06-25 20:35:14,313 DEBUG < TEXT '{"item":{"applianceId":"D828C98D4021","erd":"0x...rId":"ru4sj65tygus1bj"}' [259 bytes] 2023-06-25 20:35:14,315 DEBUG Setting 0x5522 to b'\x01\x01\xff\x01\x01\xff\x01A\xff\x01\x01\xff\x01\x01\xff\x01\x01\xff\x01\x00\xff\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00' 2023-06-25 20:35:14,315 DEBUG received event: appliance_state_change, processing callbacks... 2023-06-25 20:35:14,315 DEBUG processing callback: <bound method GeBaseClient._maybe_trigger_appliance_init_event of <gehomesdk.clients.websocket_client.GeWebsocketClient object at 0x107fc2cb0>> 2023-06-25 20:35:14,315 DEBUG processing callback: <function log_state_change at 0x107fd2a70> 2023-06-25 20:35:14,315 DEBUG received event: appliance_update_received, processing callbacks... 2023-06-25 20:35:14,316 DEBUG Appliance state change detected in GeAppliance(D828C98D4021) (ErdApplianceType.OVEN). Updated keys: 0x5522 2023-06-25 20:35:19,960 DEBUG Sending keepalive ping 2023-06-25 20:35:19,961 DEBUG > TEXT '{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}' [68 bytes] 2023-06-25 20:35:20,031 DEBUG < TEXT '{"kind":"websocket#pong","id":"keepalive-ping"}' [47 bytes] 2023-06-25 20:35:20,273 DEBUG < TEXT '{"item":{"applianceId":"D828C98D4021","erd":"0x...rId":"ru4sj65tygus1bj"}' [259 bytes] 2023-06-25 20:35:20,274 DEBUG Setting 0x5522 to b'\x00\x01\xff\x01\x01\xff\x01\x01\xff\x01\x01\xff\x01\x01\xff\x01\x01\xff\x01\x00\xff\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00' 2023-06-25 20:35:20,275 DEBUG received event: appliance_state_change, processing callbacks... 2023-06-25 20:35:20,275 DEBUG processing callback: <bound method GeBaseClient._maybe_trigger_appliance_init_event of <gehomesdk.clients.websocket_client.GeWebsocketClient object at 0x107fc2cb0>> 2023-06-25 20:35:20,275 DEBUG processing callback: <function log_state_change at 0x107fd2a70> 2023-06-25 20:35:20,275 DEBUG received event: appliance_update_received, processing callbacks... 2023-06-25 20:35:20,275 DEBUG Appliance state change detected in GeAppliance(D828C98D4021) (ErdApplianceType.OVEN). Updated keys: 0x5522

wardwolfram commented 1 year ago

Hello Simbaja, is their anything else that we can provide to help?

leonine0 commented 1 year ago

Happy to help as well

simbaja commented 1 year ago

Apologies, I'm traveling a lot more for work these days, so hard to get home and work on this.

@leonine0 , based on the above, it seems like you might be using an older version of the SDK? Can you update it and re-try? @wardwolfram, I've added some additional debugging in 0.5.15, it hopefully should give us a little more info on why it's not working

wardwolfram commented 1 year ago

Thanks for the update smbaja, if I do not get to it this week I'll should get this back to you this weekend. Thanks for your help.

wardwolfram commented 1 year ago

Hello smbaja, I updated the python code and believe I have captured the tuning on & off actions for the 4 burners. Let me know if you have any questions.

LeftBack2.txt RightFront2.txt RightBack2.txt LeftFront2.txt

leonine0 commented 1 year ago

Tried again with the new code. I've tried to turn on and off three burners. oven.txt

wardwolfram commented 11 months ago

Hello Simbaja,

Thank you for working on the GE SmartHQ stuff. Do you have any ideas when we can provide to assist in the gas range burner status?

From: simbaja @.> Sent: Sunday, July 30, 2023 3:31 PM To: simbaja/ha_gehome @.> Cc: wardwolfram @.>; Mention @.> Subject: Re: [simbaja/ha_gehome] Support cooktop for new monogram oven (Issue #159)

Apologies, I'm traveling a lot more for work these days, so hard to get home and work on this.

@leonine0 https://github.com/leonine0 , based on the above, it seems like you might be using an older version of the SDK? Can you update it and re-try? @wardwolfram https://github.com/wardwolfram , I've added some additional debugging in 0.5.15, it hopefully should give us a little more info on why it's not working

— Reply to this email directly, view it on GitHub https://github.com/simbaja/ha_gehome/issues/159#issuecomment-1657260875 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AHHUSTEMYNHHLPPRL6Q6SCTXS3ABNANCNFSM6AAAAAAX4E7BHA . You are receiving this because you were mentioned. https://github.com/notifications/beacon/AHHUSTGX5A7MKGTDIY4P2XTXS3ABNA5CNFSM6AAAAAAX4E7BHCWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTTCY7FUW.gif Message ID: @. @.> >

leonine0 commented 11 months ago

Hi, here is a diff of what seems to be working for me, running as a standalone library. I am not sure how to try this on Home Assistant running Raspberri pi.

19,24c19,24
<             burners["leftFront"] = Burner(self._convert_to_legacy(vals[1]), 0)
<             burners["leftRear"] = Burner(self._convert_to_legacy(vals[4]), 0)
<             burners["centerFront"] = Burner(self._convert_to_legacy(vals[7]), 0)
<             burners["centerRear"] = Burner(self._convert_to_legacy(vals[10]), 0)
<             burners["rightFront"] = Burner(self._convert_to_legacy(vals[13]), 0)
<             burners["rightRear"] = Burner(self._convert_to_legacy(vals[16]), 0)
---
>             burners["leftFront"] = Burner(self._convert_to_legacy(vals[0]), 0)
>             burners["leftRear"] = Burner(self._convert_to_legacy(vals[3]), 0)
>             burners["centerFront"] = Burner(self._convert_to_legacy(vals[6]), 0)
>             burners["centerRear"] = Burner(self._convert_to_legacy(vals[9]), 0)
>             burners["rightFront"] = Burner(self._convert_to_legacy(vals[12]), 0)
>             burners["rightRear"] = Burner(self._convert_to_legacy(vals[15]), 0)
27c27
<             if(any(x.on for x in burners.values())):
---
>             if(any(x.on for x in burners)):
leonine0 commented 10 months ago

Submitted pull request: https://github.com/simbaja/gehome/pull/60

simbaja commented 9 months ago

Can you all try 0.6.9-dev6 and let me know if the cooktop shows up?

thelazzycoder commented 8 months ago

Can you all try 0.6.9-dev6 and let me know if the cooktop shows up?

currently trying out 0.6.9-dev6 and the cooktop status did not change for me.

what logs can i provide to help?

leonine0 commented 8 months ago

Any instructions on how to test the dev version?

On Tue, Jan 2, 2024, 3:19 PM thelazzycoder @.***> wrote:

Can you all try 0.6.9-dev6 and let me know if the cooktop shows up?

currently trying out 0.6.9-dev6 and the cooktop status did not change for me.

what logs can i provide to help?

— Reply to this email directly, view it on GitHub https://github.com/simbaja/ha_gehome/issues/159#issuecomment-1874677060, or unsubscribe https://github.com/notifications/unsubscribe-auth/A64RCHP7N4XEOAEVVYO3GOTYMSIX5AVCNFSM6AAAAAAX4E7BHCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZUGY3TOMBWGA . You are receiving this because you were mentioned.Message ID: @.***>

wardwolfram commented 6 months ago

The latest update added the top burner sensors to the Monogram range. Thank you for your hard work! Will integrate in HA this morning! Thanks again!