ha_gehome
ha_gehome copied to clipboard
Feature Request: Haier Dishwasher
Hello,
I recently purchased a Haier dishwasher and loaded up the integration. In the app I am unable to set a cycle and turn on the machine. The integration only shows information like wash cycles. Is it possible to add the functionality to turn on the machine?
My Dishwasher is model : HDW15F21
Thank you!
If you'd like to send some debug information (using the gehomesdk repo), I might be able to figure it out, but no guarantees that I can identify the right command.
hello,
Ok I figured out the SDK :)
I initiated a wash from my phone, then canceled it and this was the output.
2023-09-11 12:18:29,379 DEBUG < TEXT '{"item":{"applianceId":"D828C9F3F6C3","erd":"0x...rId":"507b1comnhndr7g"}' [197 bytes] 2023-09-11 12:18:29,379 DEBUG raw cycle state value: ErdCycleStateRaw.PREWASH 2023-09-11 12:18:29,379 DEBUG Setting ErdCode.DISHWASHER_CYCLE_STATE to ErdCycleState.PRE_WASH 2023-09-11 12:18:29,379 DEBUG raw cycle state value: ErdCycleStateRaw.PREWASH 2023-09-11 12:18:29,379 DEBUG received event: appliance_state_change, processing callbacks... 2023-09-11 12:18:29,379 DEBUG processing callback: <bound method GeBaseClient._maybe_trigger_appliance_init_event of <gehomesdk.clients.websocket_client.GeWebsocketClient object at 0x000002076F24DE10>> 2023-09-11 12:18:29,380 DEBUG processing callback: <function log_state_change at 0x000002076F21E520> 2023-09-11 12:18:29,380 DEBUG received event: appliance_update_received, processing callbacks... 2023-09-11 12:18:29,380 DEBUG Appliance state change detected in GeAppliance(D828C9F3F6C3) (ErdApplianceType.DISH_WASHER). Updated keys: ErdCode.DISHWASHER_CYCLE_STATE 2023-09-11 12:18:35,669 DEBUG < TEXT '{"item":{"applianceId":"D828C9F3F6C3","erd":"0x...rId":"507b1comnhndr7g"}' [201 bytes] 2023-09-11 12:18:35,669 DEBUG Setting ErdCode.DISHWASHER_USER_SETTING to ErdUserSetting(mute=<UserSetting.DISABLE: 0>, demo_mode=<UserSetting.ENABLE: 1>, lock_control=<UserSetting.DISABLE: 0>, sabbath=<UserSetting.DISABLE: 0>, cycle_mode=<UserCycleSetting.THIRTY_MIN: 4>, presoak=<UserSetting.DISABLE: 0>, bottle_jet=<UserSetting.DISABLE: 0>, wash_temp=<UserWashTempSetting.NORMAL: 0>, rinse_aid=<UserSetting.DISABLE: 0>, dry_option=<UserDryOptionSetting.POWER_DRY: 1>, wash_zone=<UserWashZoneSetting.UPPER: 2>, delay_hours=0, raw_value='600488') 2023-09-11 12:18:35,669 DEBUG received event: appliance_state_change, processing callbacks... 2023-09-11 12:18:35,669 DEBUG processing callback: <bound method GeBaseClient._maybe_trigger_appliance_init_event of <gehomesdk.clients.websocket_client.GeWebsocketClient object at 0x000002076F24DE10>> 2023-09-11 12:18:35,669 DEBUG processing callback: <function log_state_change at 0x000002076F21E520> 2023-09-11 12:18:35,669 DEBUG received event: appliance_update_received, processing callbacks... 2023-09-11 12:18:35,669 DEBUG Appliance state change detected in GeAppliance(D828C9F3F6C3) (ErdApplianceType.DISH_WASHER). Updated keys: ErdCode.DISHWASHER_USER_SETTING 2023-09-11 12:18:38,045 DEBUG % sending keepalive ping 2023-09-11 12:18:38,045 DEBUG > PING 66 56 ab a5 [binary, 4 bytes] 2023-09-11 12:18:38,190 DEBUG < PONG 66 56 ab a5 [binary, 4 bytes] 2023-09-11 12:18:38,190 DEBUG % received keepalive pong 2023-09-11 12:18:45,266 DEBUG < TEXT '{"item":{"applianceId":"D828C9F3F6C3","erd":"0x...rId":"507b1comnhndr7g"}' [201 bytes] 2023-09-11 12:18:45,266 DEBUG Setting ErdCode.DISHWASHER_USER_SETTING to ErdUserSetting(mute=<UserSetting.DISABLE: 0>, demo_mode=<UserSetting.ENABLE: 1>, lock_control=<UserSetting.DISABLE: 0>, sabbath=<UserSetting.DISABLE: 0>, cycle_mode=<UserCycleSetting.THIRTY_MIN: 4>, presoak=<UserSetting.DISABLE: 0>, bottle_jet=<UserSetting.DISABLE: 0>, wash_temp=<UserWashTempSetting.NORMAL: 0>, rinse_aid=<UserSetting.DISABLE: 0>, dry_option=<UserDryOptionSetting.OFF: 0>, wash_zone=<UserWashZoneSetting.UPPER: 2>, delay_hours=0, raw_value='600088') 2023-09-11 12:18:45,267 DEBUG received event: appliance_state_change, processing callbacks... 2023-09-11 12:18:45,267 DEBUG processing callback: <bound method GeBaseClient._maybe_trigger_appliance_init_event of <gehomesdk.clients.websocket_client.GeWebsocketClient object at 0x000002076F24DE10>> 2023-09-11 12:18:45,267 DEBUG processing callback: <function log_state_change at 0x000002076F21E520> 2023-09-11 12:18:45,267 DEBUG received event: appliance_update_received, processing callbacks... 2023-09-11 12:18:45,267 DEBUG Appliance state change detected in GeAppliance(D828C9F3F6C3) (ErdApplianceType.DISH_WASHER). Updated keys: ErdCode.DISHWASHER_USER_SETTING 2023-09-11 12:18:45,344 DEBUG < TEXT '{"item":{"applianceId":"D828C9F3F6C3","erd":"0x...rId":"507b1comnhndr7g"}' [197 bytes] 2023-09-11 12:18:45,344 DEBUG raw cycle state value: ErdCycleStateRaw.NO_CHANGE 2023-09-11 12:18:45,344 DEBUG Setting ErdCode.DISHWASHER_CYCLE_STATE to ErdCycleState.NA 2023-09-11 12:18:45,344 DEBUG raw cycle state value: ErdCycleStateRaw.NO_CHANGE 2023-09-11 12:18:45,344 DEBUG received event: appliance_state_change, processing callbacks... 2023-09-11 12:18:45,344 DEBUG processing callback: <bound method GeBaseClient._maybe_trigger_appliance_init_event of <gehomesdk.clients.websocket_client.GeWebsocketClient object at 0x000002076F24DE10>> 2023-09-11 12:18:45,344 DEBUG processing callback: <function log_state_change at 0x000002076F21E520> 2023-09-11 12:18:45,345 DEBUG received event: appliance_update_received, processing callbacks... 2023-09-11 12:18:45,345 DEBUG Appliance state change detected in GeAppliance(D828C9F3F6C3) (ErdApplianceType.DISH_WASHER). Updated keys: ErdCode.DISHWASHER_CYCLE_STATE 2023-09-11 12:18:46,283 DEBUG Sending keepalive ping 2023-09-11 12:18:46,283 DEBUG > TEXT '{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}' [68 bytes] 2023-09-11 12:18:46,445 DEBUG < TEXT '{"kind":"websocket#pong","id":"keepalive-ping"}' [47 bytes]
+1 for this
I just submitted a similar enhancement for my cafe dishwasher...happy to help any way I can to get this functionality working!
Might be in the user settings as it looks like the value changed but I don't see a specific code in there... hopefully someone else can spot it and we can get it added.
Are there instructions on how to pull the debug logs? Is it as simple as operating the dishwasher while I have gather_data.py running?
I have a new Haier dishwasher and would love to be able to control it via HA
@simbaja this is my user setting section on an "auto" cycle
Setting ErdCode.DISHWASHER_USER_SETTING to ErdUserSetting(mute=<UserSetting.DISABLE: 0>, demo_mode=<UserSetting.ENABLE: 1>, lock_control=<UserSetting.DISABLE: 0>, sabbath=<UserSetting.DISABLE: 0>, cycle_mode=<UserCycleSetting.AUTO: 0>, presoak=<UserSetting.DISABLE: 0>, bottle_jet=<UserSetting.DISABLE: 0>, wash_temp=<UserWashTempSetting.NORMAL: 0>, rinse_aid=<UserSetting.DISABLE: 0>, dry_option=<UserDryOptionSetting.POWER_DRY: 1>, wash_zone=<UserWashZoneSetting.UPPER: 2>, delay_hours=0, raw_value='600480')
It does appear the rest of the attributes align to options within the app - let me know if I can provide any further information, I would love to be able to start a cycle from HA 😄