Closed atflack closed 7 months ago
Thanks for the offer of assistance. Can you go to the sdk repository, run the application to get the raw data, then post here?
Of course! Let me know if you need anything else. I have a window AC and the dehumidifier on my GE account, seeing output from both here. The window AC is offline for the season.
2022-10-11 18:35:09,375 DEBUG Using selector: SelectSelector 2022-10-11 18:35:09,376 DEBUG Getting OAuth2 token 2022-10-11 18:35:09,407 DEBUG Client changed state: GeClientState.INITIALIZING to GeClientState.AUTHORIZING_OAUTH 2022-10-11 18:35:11,943 DEBUG Getting WS credentials 2022-10-11 18:35:11,944 DEBUG Client changed state: GeClientState.AUTHORIZING_OAUTH to GeClientState.AUTHORIZING_CLIENT 2022-10-11 18:35:12,460 INFO Starting GE Appliances client 2022-10-11 18:35:12,494 DEBUG Client changed state: GeClientState.AUTHORIZING_CLIENT to GeClientState.CONNECTING 2022-10-11 18:35:12,579 DEBUG = connection is CONNECTING 2022-10-11 18:35:12,849 DEBUG > GET /?access_token=ue1cpisskqs7ux17dhbb28rku9s9hk8a HTTP/1.1 2022-10-11 18:35:12,850 DEBUG > Host: ws-us-east-1.brillion.geappliances.com 2022-10-11 18:35:12,851 DEBUG > Upgrade: websocket 2022-10-11 18:35:12,852 DEBUG > Connection: Upgrade 2022-10-11 18:35:12,853 DEBUG > Sec-WebSocket-Key: OhRGKGnPl6ErRS4o1B4y4A== 2022-10-11 18:35:12,853 DEBUG > Sec-WebSocket-Version: 13 2022-10-11 18:35:12,853 DEBUG > User-Agent: Python/3.10 websockets/10.3 2022-10-11 18:35:13,033 DEBUG < HTTP/1.1 101 Switching Protocols 2022-10-11 18:35:13,033 DEBUG < Date: Tue, 11 Oct 2022 22:35:14 GMT 2022-10-11 18:35:13,035 DEBUG < Connection: upgrade 2022-10-11 18:35:13,035 DEBUG < upgrade: websocket 2022-10-11 18:35:13,036 DEBUG < sec-websocket-accept: x2gSNgPQk977fBcPLLReSjYNo6Y= 2022-10-11 18:35:13,036 DEBUG = connection is OPEN 2022-10-11 18:35:13,037 DEBUG > TEXT '{"kind": "websocket#subscribe", "action": "subs...["/appliance//erd/"]}' [91 bytes] 2022-10-11 18:35:13,038 DEBUG > TEXT '{"kind": "websocket#api", "action": "api", "hos...id": "List-appliances"}' [150 bytes] 2022-10-11 18:35:13,038 DEBUG Client changed state: GeClientState.CONNECTING to GeClientState.CONNECTED 2022-10-11 18:35:13,150 DEBUG < TEXT '{"kind":"websocket#subscribe","success":true}' [45 bytes] 2022-10-11 18:35:13,213 DEBUG < TEXT '{"kind":"websocket#connect","success":true}' [43 bytes] 2022-10-11 18:35:13,231 DEBUG < TEXT '{"kind":"websocket#api","id":"List-appliances",...9-20T22:21:20.948Z"}]}}' [628 bytes] 2022-10-11 18:35:13,231 DEBUG D828C9BEEFB2 marked available 2022-10-11 18:35:13,232 DEBUG Adding appliance D828C9BEEFB2 2022-10-11 18:35:13,232 DEBUG Requesting update for client D828C9BEEFB2 2022-10-11 18:35:13,233 DEBUG > TEXT '{"kind": "websocket#api", "action": "api", "hos... "D828C9BEEFB2-allErd"}' [171 bytes] 2022-10-11 18:35:13,233 DEBUG Registering update callback for GeAppliance(D828C9BEEFB2) (Unknown Type) 2022-10-11 18:35:13,234 DEBUG Requesting features for client D828C9BEEFB2 2022-10-11 18:35:13,234 DEBUG > TEXT '{"kind": "websocket#api", "action": "api", "hos...d": "Request-features"}' [172 bytes] 2022-10-11 18:35:13,236 DEBUG Adding appliance D828C992D90E 2022-10-11 18:35:13,237 DEBUG Requesting update for client D828C992D90E 2022-10-11 18:35:13,238 DEBUG > TEXT '{"kind": "websocket#api", "action": "api", "hos... "D828C992D90E-allErd"}' [171 bytes] 2022-10-11 18:35:13,239 DEBUG Registering update callback for GeAppliance(D828C992D90E) (Unknown Type) 2022-10-11 18:35:13,239 DEBUG Requesting features for client D828C992D90E 2022-10-11 18:35:13,240 DEBUG > TEXT '{"kind": "websocket#api", "action": "api", "hos...d": "Request-features"}' [172 bytes] 2022-10-11 18:35:13,453 DEBUG < TEXT '{"kind":"websocket#api","id":"Request-features"...IER_V1_NONSTOP_MODE"]}}' [358 bytes] 2022-10-11 18:35:13,454 DEBUG Received features ['DEHUMIDIFIER_V1_FOUNDATION', 'DEHUMIDIFIER_V1_NONSTOP_MODE'] for D828C9BEEFB2 2022-10-11 18:35:13,505 DEBUG < TEXT '{"kind":"websocket#api","id":"D828C992D90E-allE...9-20T18:09:41.126Z"}]}}' [1473 bytes] 2022-10-11 18:35:13,506 DEBUG Setting ErdCode.MODEL_NUMBER to PHC06LY 2022-10-11 18:35:13,507 DEBUG Setting ErdCode.SERIAL_NUMBER to 2022-10-11 18:35:13,508 DEBUG Setting ErdCode.TEMPERATURE_UNIT to ErdMeasurementUnits.IMPERIAL 2022-10-11 18:35:13,510 DEBUG Setting ErdCode.APPLIANCE_TYPE to ErdApplianceType.AIR_CONDITIONER 2022-10-11 18:35:13,510 DEBUG Setting ErdCode.WIFI_MODULE_SW_VERSION to 0.0.7.102 2022-10-11 18:35:13,511 DEBUG Setting ErdCode.WIFI_MODULE_SW_VERSION_AVAILABLE to 0.0.0.0 2022-10-11 18:35:13,511 DEBUG Setting ErdCode.ACM_UPDATING to False 2022-10-11 18:35:13,512 DEBUG Setting ErdCode.AC_TARGET_TEMPERATURE to 68 2022-10-11 18:35:13,513 DEBUG Setting ErdCode.AC_FAN_SETTING to ErdAcFanSetting.HIGH 2022-10-11 18:35:13,513 DEBUG Setting ErdCode.AC_OPERATION_MODE to ErdAcOperationMode.FAN_ONLY 2022-10-11 18:35:13,514 DEBUG Setting ErdCode.AC_AMBIENT_TEMPERATURE to 73 2022-10-11 18:35:13,514 DEBUG Setting ErdCode.AC_FILTER_STATUS to ErdAcFilterStatus.OK 2022-10-11 18:35:13,515 DEBUG Setting ErdCode.AC_POWER_STATUS to ErdOnOff.OFF 2022-10-11 18:35:13,515 DEBUG Setting ErdCode.AC_UNKNOWN7A12 to b'\x00\x01~w' 2022-10-11 18:35:13,516 DEBUG Setting ErdCode.WAC_DEMAND_RESPONSE_POWER to 0.0 2022-10-11 18:35:13,516 DEBUG Setting ErdCode.WAC_DEMAND_RESPONSE_STATE to ErdWacDemandResponseState.NOT_IN_DEMAND_RESPONSE 2022-10-11 18:35:13,517 DEBUG Got initial appliance type for GeAppliance(D828C992D90E) (ErdApplianceType.AIR_CONDITIONER) 2022-10-11 18:35:13,520 DEBUG Appliance state change detected in GeAppliance(D828C992D90E) (ErdApplianceType.AIR_CONDITIONER). Updated keys: ErdCode.MODEL_NUMBER, ErdCode.SERIAL_NUMBER, ErdCode.TEMPERATURE_UNIT, ErdCode.APPLIANCE_TYPE, ErdCode.WIFI_MODULE_SW_VERSION, ErdCode.WIFI_MODULE_SW_VERSION_AVAILABLE, ErdCode.ACM_UPDATING, ErdCode.AC_TARGET_TEMPERATURE, ErdCode.AC_FAN_SETTING, ErdCode.AC_OPERATION_MODE, ErdCode.AC_AMBIENT_TEMPERATURE, ErdCode.AC_FILTER_STATUS, ErdCode.AC_POWER_STATUS, ErdCode.AC_UNKNOWN7A12, ErdCode.WAC_DEMAND_RESPONSE_POWER, ErdCode.WAC_DEMAND_RESPONSE_STATE 2022-10-11 18:35:13,521 DEBUG Appliance state change detected in GeAppliance(D828C992D90E) (ErdApplianceType.AIR_CONDITIONER) 2022-10-11 18:35:13,577 DEBUG < TEXT '{"resource":"/appliance//erd/","kind":"websoc...:true,"change":"ADDED"}' [97 bytes] 2022-10-11 18:35:13,630 DEBUG < TEXT '{"kind":"websocket#api","id":"D828C9BEEFB2-allE...0-11T22:18:42.534Z"}]}}' [1887 bytes] 2022-10-11 18:35:13,631 DEBUG Setting ErdCode.MODEL_NUMBER to AWHR50LB 2022-10-11 18:35:13,632 DEBUG Setting ErdCode.SERIAL_NUMBER to 2022-10-11 18:35:13,633 DEBUG Setting ErdCode.APPLIANCE_TYPE to ErdApplianceType.DEHUMIDIFIER 2022-10-11 18:35:13,633 DEBUG Setting ErdCode.UNIT_TYPE to ErdUnitType.UNKNOWN 2022-10-11 18:35:13,634 DEBUG Setting ErdCode.WIFI_MODULE_UPDATING to True 2022-10-11 18:35:13,634 DEBUG Setting ErdCode.WIFI_MODULE_SW_VERSION to 0.1.11.50 2022-10-11 18:35:13,635 DEBUG Setting ErdCode.WIFI_MODULE_SW_VERSION_AVAILABLE to 0.0.0.0 2022-10-11 18:35:13,635 DEBUG Setting ErdCode.ACM_UPDATING to False 2022-10-11 18:35:13,636 DEBUG Setting ErdCode.APPLIANCE_SW_VERSION to 0.0.0.0 2022-10-11 18:35:13,636 DEBUG Setting ErdCode.APPLIANCE_SW_VERSION_AVAILABLE to 0.0.0.0 2022-10-11 18:35:13,637 DEBUG Setting ErdCode.APPLIANCE_UPDATING to False 2022-10-11 18:35:13,637 DEBUG Setting 0x7832 to b'\x00\x00\x00\x00\x00\x00' 2022-10-11 18:35:13,638 DEBUG Setting 0x7833 to b'\x00' 2022-10-11 18:35:13,638 DEBUG Setting 0x7834 to b'\x00' 2022-10-11 18:35:13,639 DEBUG Setting ErdCode.AC_FAN_SETTING to ErdAcFanSetting.DEFAULT 2022-10-11 18:35:13,639 DEBUG Setting ErdCode.AC_POWER_STATUS to ErdOnOff.ON 2022-10-11 18:35:13,640 DEBUG Setting ErdCode.AC_UNKNOWN7A12 to b'\x00\x00\x01\xc7' 2022-10-11 18:35:13,640 DEBUG Setting 0x7B01 to b'\x01(' 2022-10-11 18:35:13,641 DEBUG Setting 0x7B02 to b'(' 2022-10-11 18:35:13,644 DEBUG Setting 0x7B03 to b'#P' 2022-10-11 18:35:13,644 DEBUG Setting 0x7B0B to b'\x1e' 2022-10-11 18:35:13,645 DEBUG Setting ErdCode.WAC_DEMAND_RESPONSE_POWER to 0.505 2022-10-11 18:35:13,645 DEBUG Got initial appliance type for GeAppliance(D828C9BEEFB2) (ErdApplianceType.DEHUMIDIFIER) 2022-10-11 18:35:13,646 DEBUG Appliance state change detected in GeAppliance(D828C9BEEFB2) (ErdApplianceType.DEHUMIDIFIER). Updated keys: ErdCode.MODEL_NUMBER, ErdCode.SERIAL_NUMBER, ErdCode.APPLIANCE_TYPE, ErdCode.UNIT_TYPE, ErdCode.WIFI_MODULE_UPDATING, ErdCode.WIFI_MODULE_SW_VERSION, ErdCode.WIFI_MODULE_SW_VERSION_AVAILABLE, ErdCode.ACM_UPDATING, ErdCode.APPLIANCE_SW_VERSION, ErdCode.APPLIANCE_SW_VERSION_AVAILABLE, ErdCode.APPLIANCE_UPDATING, 0x7832, 0x7833, 0x7834, ErdCode.AC_FAN_SETTING, ErdCode.AC_POWER_STATUS, ErdCode.AC_UNKNOWN7A12, 0x7B01, 0x7B02, 0x7B03, 0x7B0B, ErdCode.WAC_DEMAND_RESPONSE_POWER 2022-10-11 18:35:13,647 DEBUG Appliance state change detected in GeAppliance(D828C9BEEFB2) (ErdApplianceType.DEHUMIDIFIER) 2022-10-11 18:35:13,657 DEBUG < TEXT '{"kind":"websocket#api","id":"Request-features"...92D90E","features":[]}}' [299 bytes] 2022-10-11 18:35:13,658 DEBUG Received features [] for D828C992D90E
Smart dehumidifier from GE. Linked to app, willing to provide any assistance/logs I can.
Can you provide the model number for this Dehumidifier? I've been looking for a smart one for a while that works with HA - now that yall are working on this, I'm going to get this one!
It's the AWHR50LB. Very happy with its performance overall!
Awesome, thanks!
Thanks,
Kale Sligh
From: atflack @.> Sent: Tuesday, October 11, 2022 5:46:34 PM To: simbaja/ha_gehome @.> Cc: kksligh @.>; Comment @.> Subject: Re: [simbaja/ha_gehome] GE Dehumidifier; Willing to assist (Issue #114)
It's the AWHR50LB. Very happy with its performance overall!
— Reply to this email directly, view it on GitHubhttps://github.com/simbaja/ha_gehome/issues/114#issuecomment-1275365496, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AT3AQU4Q3MVQ6OR5723HH4TWCXU4VANCNFSM6AAAAAAQ7BDMP4. You are receiving this because you commented.Message ID: @.***>
So, the only one that I'm pretty sure on is 0x7B02 = target humidity. 0x7833 and 0x7834 are probably the filter/bucket statuses, but I can't tell which is which. Can you basically change settings and watch it using that application to see what corresponds to what? Also, let the bucket fill up and change status so we can differentiate those. Is there a list of fan settings? Looks like it's reusing the AC fan setting, so I might have to modify the logic there to show the right fan options.
Hopefully this helps. When I get the filter alert, I will send that over as well (supposed to flag after running for 250 hours).
0x7B01 was changing periodically during this testing, I believe that corresponds to the Current Humidity reading. The seem to use the same ‘X’ values from the Target Humidity chart (ex. Setting 0x7B01 to b'\x01-' showed a Current Humidity reading of 45%).
Target Humidity
App Value
Script Data
Nonstop
Setting 0x7833 to b'\x01'
Setting 0x7834 to b'\x01'
35%
Setting 0x7833 to b'\x00' (shows anytime value switches from Nonstop)
Setting 0x7834 to b'\x00' (show anytime value switches from Nonstop)
Setting 0x7B02 to b'#'
40%
Setting 0x7B02 to b'('
45%
Setting 0x7B02 to b'-'
50%
Setting 0x7B02 to b'2'
55%
Setting 0x7B02 to b'7'
60%
Setting 0x7B02 to b'<'
65%
Setting 0x7B02 to b'A'
70%
Setting 0x7B02 to b'F'
75%
Setting 0x7B02 to b'K'
80%
Setting 0x7B02 to b'P'
Fan
App Value
Script Data
Low
Setting ErdCode.AC_FAN_SETTING to ErdAcFanSetting.LOW
Medium
Setting ErdCode.AC_FAN_SETTING to ErdAcFanSetting.MED
High
Setting ErdCode.AC_FAN_SETTING to ErdAcFanSetting.HIGH
Smart Dry
Setting ErdCode.AC_FAN_SETTING to ErdAcFanSetting.DEFAULT
Bucket
App Value
Script Data
Empty Bucket
Setting 0x7832 to b'\x01\x00\x00\x00\x00\x00'
OK
Setting 0x7832 to b'\x00\x00\x00\x00\x00\x00'
Appliance Status
App Value
Script Data
Off
Setting ErdCode.AC_POWER_STATUS to ErdOnOff.OFF
On
Setting ErdCode.AC_POWER_STATUS to ErdOnOff.ON
From: simbaja @.> Sent: Sunday, October 16, 2022 10:30 AM To: simbaja/ha_gehome @.> Cc: atflack @.>; Author @.> Subject: Re: [simbaja/ha_gehome] GE Dehumidifier; Willing to assist (Issue #114)
So, the only one that I'm pretty sure on is 0x7B02 = target humidity. 0x7833 and 0x7834 are probably the filter/bucket statuses, but I can't tell which is which. Can you basically change settings and watch it using that application to see what corresponds to what? Also, let the bucket fill up and change status so we can differentiate those. Is there a list of fan settings? Looks like it's reusing the AC fan setting, so I might have to modify the logic there to show the right fan options.
— Reply to this email directly, view it on GitHub https://github.com/simbaja/ha_gehome/issues/114#issuecomment-1279981340 , or unsubscribe https://github.com/notifications/unsubscribe-auth/ASZ4JD3V52YRALSC24DCYOTWDQGP3ANCNFSM6AAAAAAQ7BDMP4 . You are receiving this because you authored the thread. https://github.com/notifications/beacon/ASZ4JD5B32OE242OBCRIE53WDQGP3A5CNFSM6AAAAAAQ7BDMP6WGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSMJL3RY.gif Message ID: @. @.> >
I've got one of these now as well. Any help I can provide, please let me know.
It looks like key 0x7832 is used for overall "maintenance tasks", since it appears to be used for both the bucket and filter alerts. The Clean Filter alert finally flagged as Setting 0x7832 to b'\x02\x00\x00\x00\x00\x00' Once reset, it went back to Setting 0x7832 to b'\x00\x00\x00\x00\x00\x00'. I didn't think to fake a bucket fill while the filter light was on, but will do so next time to confirm that value setting. (unless @kksligh can beat me to it!).
I'm traveling a bit over the next few weeks but if you haven't knocked it out by then - I'll definitely do some debuggin when I get back.
Thanks,
Kale Sligh
From: atflack @.> Sent: Wednesday, November 2, 2022 5:21:14 PM To: simbaja/ha_gehome @.> Cc: kksligh @.>; Mention @.> Subject: Re: [simbaja/ha_gehome] GE Dehumidifier; Willing to assist (Issue #114)
It looks like key 0x7832 is used for overall "maintenance tasks", since it appears to be used for both the bucket and filter alerts. The Clean Filter alert finally flagged as Setting 0x7832 to b'\x02\x00\x00\x00\x00\x00' Once reset, it went back to Setting 0x7832 to b'\x00\x00\x00\x00\x00\x00'. I didn't think to fake a bucket fill while the filter light was on, but will do so next time to confirm that value setting. (unless @kkslighhttps://github.com/kksligh can beat me to it!).
— Reply to this email directly, view it on GitHubhttps://github.com/simbaja/ha_gehome/issues/114#issuecomment-1301288888, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AT3AQU5Y4FEPVG7KVNZ3H53WGLLMVANCNFSM6AAAAAAQ7BDMP4. You are receiving this because you were mentioned.Message ID: @.***>
Finally had my filter light turn back on so I simulated a bucket fill. Final maintenance task Setting 0x7832 to b'\x03\x00\x00\x00\x00\x00' is used to indicate both Empty Bucket and Clean Filter.
Latest version of SDK code in github has these updates now (I think). Let me know if we need any additional sensors, if not, I'll code up the home assistant entity in the next release.
Couple questions; apologize if I'm just not reading the code correctly. Been a long time. 1 - In gehomesdk/erd/converters/dehumidifier/erd_dehumidifier_maintenance_converter.py, I didn't see 0x03 converting to Empty Bucket and Clean Filter, unless that's handled by the >>1. 2 - I couldn't find any reference to 0x7833/0x7834 being Non-Stop mode. This is an option under the Target Humidity menu in the app.
Thanks!
Yes, the 0x03 is handled via bit shifting. This is a case where there are multiple boolean values in a single integer (they do that throughout), so it should map it to the individual tuple properties properly. If you run the program (as described in the readme), hopefully this will show up for you.
I didn't know which one to set for non-stop mode, so didn't do that. Also, are there other options there besides non-stop mode?
Thanks for the explanation, makes sense. I can't force the Clean Filter alarm to verify unfortunately.
There's two user-configurable controls available, aside from On/Off. Target Humidity has Nonstop and values (35 through 80 in increments of 5). Fan has Low, Medium, High, and Smart Dry.
I believe you've captured all of the read-only controls listed from what I've seen.
Thanks!
Is this to a point that it can be used in home assistant? I tried 0.6.7 and no devices were found. I have the same model dehumidifier. Happy to help as well.
It appears that this setting Setting 0x7B03 to b'#P'
corresponds to the minimum and maximum humidity levels supported by the unit. The first byte as integer is 80 an the second byte as integer is 35 which is the selectable range of my dehumidifier.
I believe it's probably as close as it'll get, I've just added the range to the SDK (though I probably should have reversed the min/max), I can try to work on getting more of it into HA
Ok, try the pre-release and let me know if the dehumidifier appears. Hopefully I got it close.
Edit: Crap, I forgot to add the new platform so the dehumidifier entity won't show up yet. I'll try to get that in tonight.
Ok, platform should be in 0.6.8-dev1, hopefully it all shows up for you all
Yes it does show up in home assistant. The power slider, fan sensor, current humidity, and target humidity all appear to be working correctly as well. However, neither maintenance mode shows up correctly. Running the gehomesdk websocket example also is printing out the humidity min/max backwards. I put up a pull request in the other repo to fix both of these issues.
Are you planning on creating a humidifier entity that inherits the home assistant HumidiferEntity
for more controls?
Edit: I could attempt to create the humidifier entity class to help out but I know it wouldn't be fully correct as my knowledge of the codebase is minimal. However, if nothing else, it could be a starting point for you. Just let me know :)
That humidifier entity should be in the code, so something must have gone wrong. Can you check the logs and see what it's saying?
For the min/max, I presumed it needed to be in ascending order to work correctly with that new entity (that's the only place I exposed it), so I intentionally reversed them so it reads 30-80%
Reloaded the integration to get this:
2023-08-01 18:34:01.989 DEBUG (MainThread) [custom_components.ge_home.update_coordinator] Updating
2023-08-01 18:34:11.098 DEBUG (MainThread) [custom_components.ge_home.number] Found 2 appliance APIs
2023-08-01 18:34:11.098 DEBUG (MainThread) [custom_components.ge_home.number] Found 0 unregisterd numbers
2023-08-01 18:34:11.098 DEBUG (MainThread) [custom_components.ge_home.humidifier] Found 2 appliance APIs
2023-08-01 18:34:11.098 DEBUG (MainThread) [custom_components.ge_home.humidifier] Found 1 unregistered humidifiers
2023-08-01 18:34:11.098 DEBUG (MainThread) [custom_components.ge_home.binary_sensor] Found 2 appliance APIs
2023-08-01 18:34:11.098 DEBUG (MainThread) [custom_components.ge_home.binary_sensor] Found 1 unregistered binary sensors
2023-08-01 18:34:11.098 DEBUG (MainThread) [custom_components.ge_home.sensor] Found 2 appliance APIs
2023-08-01 18:34:11.098 DEBUG (MainThread) [custom_components.ge_home.sensor] Found 11 unregistered sensors
2023-08-01 18:34:11.098 DEBUG (MainThread) [custom_components.ge_home.switch] Found 2 appliance APIs
2023-08-01 18:34:11.098 DEBUG (MainThread) [custom_components.ge_home.switch] Found 2 unregistered switches
2023-08-01 18:34:11.099 DEBUG (MainThread) [custom_components.ge_home.water_heater] Found 2 appliance APIs
2023-08-01 18:34:11.102 DEBUG (MainThread) [custom_components.ge_home.water_heater] Found 0 unregistered water heaters
2023-08-01 18:34:11.102 DEBUG (MainThread) [custom_components.ge_home.select] Found 2 appliance APIs
2023-08-01 18:34:11.102 DEBUG (MainThread) [custom_components.ge_home.select] Found 0 unregistered selects
2023-08-01 18:34:11.102 DEBUG (MainThread) [custom_components.ge_home.climate] Found 2 appliance APIs
2023-08-01 18:34:11.103 DEBUG (MainThread) [custom_components.ge_home.climate] Found 1 unregistered climate entities
2023-08-01 18:34:11.103 DEBUG (MainThread) [custom_components.ge_home.light] Found 2 appliance APIs
2023-08-01 18:34:11.103 DEBUG (MainThread) [custom_components.ge_home.light] Found 0 unregistered lights
2023-08-01 18:34:11.103 DEBUG (MainThread) [custom_components.ge_home.button] Found 2 appliance APIs
2023-08-01 18:34:11.103 DEBUG (MainThread) [custom_components.ge_home.button] Found 0 unregistered buttons
2023-08-01 18:34:11.103 DEBUG (MainThread) [custom_components.ge_home.number] Found 2 appliance APIs
2023-08-01 18:34:11.103 DEBUG (MainThread) [custom_components.ge_home.number] Found 0 unregisterd numbers
2023-08-01 18:34:11.103 DEBUG (MainThread) [custom_components.ge_home.humidifier] Found 2 appliance APIs
2023-08-01 18:34:11.104 DEBUG (MainThread) [custom_components.ge_home.humidifier] Found 1 unregistered humidifiers
2023-08-01 18:34:11.104 DEBUG (MainThread) [custom_components.ge_home.binary_sensor] Found 2 appliance APIs
2023-08-01 18:34:11.104 DEBUG (MainThread) [custom_components.ge_home.binary_sensor] Found 1 unregistered binary sensors
2023-08-01 18:34:11.104 DEBUG (MainThread) [custom_components.ge_home.sensor] Found 2 appliance APIs
2023-08-01 18:34:11.104 DEBUG (MainThread) [custom_components.ge_home.sensor] Found 11 unregistered sensors
2023-08-01 18:34:11.104 DEBUG (MainThread) [custom_components.ge_home.switch] Found 2 appliance APIs
2023-08-01 18:34:11.104 DEBUG (MainThread) [custom_components.ge_home.switch] Found 2 unregistered switches
2023-08-01 18:34:11.104 DEBUG (MainThread) [custom_components.ge_home.water_heater] Found 2 appliance APIs
2023-08-01 18:34:11.105 DEBUG (MainThread) [custom_components.ge_home.water_heater] Found 0 unregistered water heaters
2023-08-01 18:34:11.105 DEBUG (MainThread) [custom_components.ge_home.select] Found 2 appliance APIs
2023-08-01 18:34:11.105 DEBUG (MainThread) [custom_components.ge_home.select] Found 0 unregistered selects
2023-08-01 18:34:11.105 DEBUG (MainThread) [custom_components.ge_home.climate] Found 2 appliance APIs
2023-08-01 18:34:11.105 DEBUG (MainThread) [custom_components.ge_home.climate] Found 1 unregistered climate entities
2023-08-01 18:34:11.105 DEBUG (MainThread) [custom_components.ge_home.light] Found 2 appliance APIs
2023-08-01 18:34:11.105 DEBUG (MainThread) [custom_components.ge_home.light] Found 0 unregistered lights
2023-08-01 18:34:11.105 DEBUG (MainThread) [custom_components.ge_home.button] Found 2 appliance APIs
2023-08-01 18:34:11.106 DEBUG (MainThread) [custom_components.ge_home.button] Found 0 unregistered buttons
2023-08-01 18:34:11.106 DEBUG (MainThread) [custom_components.ge_home.number] Found 2 appliance APIs
2023-08-01 18:34:11.106 DEBUG (MainThread) [custom_components.ge_home.number] Found 0 unregisterd numbers
2023-08-01 18:34:11.106 DEBUG (MainThread) [custom_components.ge_home.humidifier] Found 2 appliance APIs
2023-08-01 18:34:11.106 DEBUG (MainThread) [custom_components.ge_home.humidifier] Found 1 unregistered humidifiers
2023-08-01 18:34:11.106 DEBUG (MainThread) [custom_components.ge_home.update_coordinator] Requesting updates for D828C992D90E
2023-08-01 18:34:11.112 ERROR (MainThread) [homeassistant.components.sensor] Platform ge_home does not generate unique IDs. ID ge_home_D828C9BEEFB2_ac_fan_setting already exists - ignoring sensor.d828c9beefb2_ac_fan_setting
2023-08-01 18:34:11.117 ERROR (MainThread) [homeassistant.components.sensor] Platform ge_home does not generate unique IDs. ID ge_home_D828C9BEEFB2_dhum_current_humidity already exists - ignoring sensor.d828c9beefb2_dhum_current_humidity
2023-08-01 18:34:11.120 ERROR (MainThread) [homeassistant.components.sensor] Platform ge_home does not generate unique IDs. ID ge_home_D828C9BEEFB2_dhum_target_humidity already exists - ignoring sensor.d828c9beefb2_dhum_target_humidity
2023-08-01 18:34:11.123 ERROR (MainThread) [homeassistant.components.sensor] Platform ge_home does not generate unique IDs. ID ge_home_D828C9BEEFB2_dhum_maintenance_empty_bucket already exists - ignoring sensor.d828c9beefb2_dhum_maintenance_empty_bucket
2023-08-01 18:34:11.123 ERROR (MainThread) [homeassistant.components.sensor] Platform ge_home does not generate unique IDs. ID ge_home_D828C9BEEFB2_dhum_maintenance_clean_filter already exists - ignoring sensor.d828c9beefb2_dhum_maintenance_clean_filter
2023-08-01 18:34:11.127 ERROR (MainThread) [homeassistant.components.switch] Platform ge_home does not generate unique IDs. ID ge_home_D828C9BEEFB2_ac_power_status already exists - ignoring switch.d828c9beefb2_ac_power_status
2023-08-01 18:34:11.128 ERROR (MainThread) [homeassistant.components.sensor] Platform ge_home does not generate unique IDs. ID ge_home_D828C9BEEFB2_ac_fan_setting already exists - ignoring sensor.d828c9beefb2_ac_fan_setting
2023-08-01 18:34:11.129 ERROR (MainThread) [homeassistant.components.sensor] Platform ge_home does not generate unique IDs. ID ge_home_D828C9BEEFB2_dhum_current_humidity already exists - ignoring sensor.d828c9beefb2_dhum_current_humidity
2023-08-01 18:34:11.129 ERROR (MainThread) [homeassistant.components.sensor] Platform ge_home does not generate unique IDs. ID ge_home_D828C9BEEFB2_dhum_target_humidity already exists - ignoring sensor.d828c9beefb2_dhum_target_humidity
2023-08-01 18:34:11.129 ERROR (MainThread) [homeassistant.components.sensor] Platform ge_home does not generate unique IDs. ID ge_home_D828C9BEEFB2_dhum_maintenance_empty_bucket already exists - ignoring sensor.d828c9beefb2_dhum_maintenance_empty_bucket
2023-08-01 18:34:11.129 ERROR (MainThread) [homeassistant.components.sensor] Platform ge_home does not generate unique IDs. ID ge_home_D828C9BEEFB2_dhum_maintenance_clean_filter already exists - ignoring sensor.d828c9beefb2_dhum_maintenance_clean_filter
2023-08-01 18:34:11.130 ERROR (MainThread) [homeassistant.components.switch] Platform ge_home does not generate unique IDs. ID ge_home_D828C9BEEFB2_ac_power_status already exists - ignoring switch.d828c9beefb2_ac_power_status
2023-08-01 18:34:11.131 ERROR (MainThread) [homeassistant.components.sensor] Platform ge_home does not generate unique IDs. ID ge_home_D828C9BEEFB2_ac_fan_setting already exists - ignoring sensor.d828c9beefb2_ac_fan_setting
2023-08-01 18:34:11.131 ERROR (MainThread) [homeassistant.components.sensor] Platform ge_home does not generate unique IDs. ID ge_home_D828C9BEEFB2_dhum_current_humidity already exists - ignoring sensor.d828c9beefb2_dhum_current_humidity
2023-08-01 18:34:11.132 ERROR (MainThread) [homeassistant.components.sensor] Platform ge_home does not generate unique IDs. ID ge_home_D828C9BEEFB2_dhum_target_humidity already exists - ignoring sensor.d828c9beefb2_dhum_target_humidity
2023-08-01 18:34:11.132 ERROR (MainThread) [homeassistant.components.sensor] Platform ge_home does not generate unique IDs. ID ge_home_D828C9BEEFB2_dhum_maintenance_empty_bucket already exists - ignoring sensor.d828c9beefb2_dhum_maintenance_empty_bucket
2023-08-01 18:34:11.132 ERROR (MainThread) [homeassistant.components.sensor] Platform ge_home does not generate unique IDs. ID ge_home_D828C9BEEFB2_dhum_maintenance_clean_filter already exists - ignoring sensor.d828c9beefb2_dhum_maintenance_clean_filter
2023-08-01 18:34:11.133 ERROR (MainThread) [homeassistant.components.switch] Platform ge_home does not generate unique IDs. ID ge_home_D828C9BEEFB2_ac_power_status already exists - ignoring switch.d828c9beefb2_ac_power_status
2023-08-01 18:34:11.134 ERROR (MainThread) [homeassistant.components.humidifier] Error adding entities for domain humidifier with platform ge_home
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 504, in async_add_entities
await asyncio.gather(tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 709, in _async_add_entity
original_device_class=entity.device_class,
^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/ge_home/entities/common/ge_humidifier.py", line 72, in device_class
return self.device_class
^^^^^^^^^^^^^^^^^
File "/config/custom_components/ge_home/entities/common/ge_humidifier.py", line 72, in device_class
return self.device_class
^^^^^^^^^^^^^^^^^
File "/config/custom_components/ge_home/entities/common/ge_humidifier.py", line 72, in device_class
return self.device_class
^^^^^^^^^^^^^^^^^
[Previous line repeated 984 more times]
RecursionError: maximum recursion depth exceeded
2023-08-01 18:34:11.171 ERROR (MainThread) [homeassistant.components.humidifier] Error adding entities for domain humidifier with platform ge_home
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 504, in async_add_entities
await asyncio.gather(tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 561, in _async_add_entity
entity.add_to_platform_start(
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 974, in add_to_platform_start
raise HomeAssistantError(
homeassistant.exceptions.HomeAssistantError: Entity None cannot be added a second time to an entity platform
2023-08-01 18:34:11.172 ERROR (MainThread) [homeassistant.components.humidifier] Error adding entities for domain humidifier with platform ge_home
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 504, in async_add_entities
await asyncio.gather(tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 561, in _async_add_entity
entity.add_to_platform_start(
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 974, in add_to_platform_start
raise HomeAssistantError(
homeassistant.exceptions.HomeAssistantError: Entity None cannot be added a second time to an entity platform
2023-08-01 18:34:11.173 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 504, in async_add_entities
await asyncio.gather(tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 709, in _async_add_entity
original_device_class=entity.device_class,
^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/ge_home/entities/common/ge_humidifier.py", line 72, in device_class
return self.device_class
^^^^^^^^^^^^^^^^^
File "/config/custom_components/ge_home/entities/common/ge_humidifier.py", line 72, in device_class
return self.device_class
^^^^^^^^^^^^^^^^^
File "/config/custom_components/ge_home/entities/common/ge_humidifier.py", line 72, in device_class
return self.device_class
^^^^^^^^^^^^^^^^^
[Previous line repeated 984 more times]
RecursionError: maximum recursion depth exceeded
2023-08-01 18:34:11.209 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 504, in async_add_entities
await asyncio.gather(tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 561, in _async_add_entity
entity.add_to_platform_start(
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 974, in add_to_platform_start
raise HomeAssistantError(
homeassistant.exceptions.HomeAssistantError: Entity None cannot be added a second time to an entity platform
2023-08-01 18:34:11.210 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 504, in async_add_entities
await asyncio.gather(tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 561, in _async_add_entity
entity.add_to_platform_start(
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 974, in add_to_platform_start
raise HomeAssistantError(
homeassistant.exceptions.HomeAssistantError: Entity None cannot be added a second time to an entity platform
2023-08-01 18:34:24.200 DEBUG (MainThread) [custom_components.ge_home.update_coordinator] Got roster update
2023-08-01 18:34:24.991 DEBUG (MainThread) [custom_components.ge_home.update_coordinator] Updating
try the newest, fixed a few typos
Definitely getting there!
The Dehumidifer entity shows up now, got two issues that stick out though.
1 - the Target Humidity doesn't seems to be stuck at the current setting. I'm unable to adjust using the slider bar. 2 - I'm unable to change the fan mode. It results in the error _Failed to call service humidifier/setmode. connection lost
Screenshot of the entity showing the stuck slider bar and log below.
AttributeError: 'GeDehumidifier' object has no attribute 'erd_code'
2023-08-01 20:44:25.408 DEBUG (MainThread) [custom_components.ge_home.entities.dehumidifier.dehumidifier] Setting mode from Smart Dry to Low
2023-08-01 20:44:25.408 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140466860610128] 'GeDehumidifier' object has no attribute 'erd_code'
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 205, in handle_call_service
await hass.services.async_call(
File "/usr/src/homeassistant/homeassistant/core.py", line 1965, in async_call
response_data = await coro
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 2005, in _execute_service
return await cast(
^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 235, in handle_service
return await service.entity_service_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 848, in entity_service_call
response_data = task.result() # pop exception if have
^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1192, in async_request_call
return await coro
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 892, in _handle_entity_call
result = await task
^^^^^^^^^^
File "/config/custom_components/ge_home/entities/dehumidifier/dehumidifier.py", line 74, in async_set_mode
await self.appliance.async_set_erd_value(self.erd_code, new_state)
^^^^^^^^^^^^^
AttributeError: 'GeDehumidifier' object has no attribute 'erd_code'
2023-08-01 20:44:27.568 DEBUG (MainThread) [custom_components.ge_home.update_coordinator] Updating
Found the mode issue (I copy/pasted and didn't adjust right). For the slider, can you check what the min/max are from the developer tools? Can you try to use developer tools to set the target as well? Suspect I have to implement @jhndrx's updates to the library to make it all work right...
I haven't checked out the developer tools but i was able to grab the slider and try to move it. It never moved but the value on the popup showed up. All the way to the far right was 35 as seen in the attached picture. And when I tried to move left, the slider didn't move but the number went up to 80. So it does appear to be backwards.
Ok, the changes to the SDK are incorporated, let me know if things work a bit better now.
The fan mode controls are working. I was able to swap between all of them just fine.
However, setting the target humidity isn't doing anything. I don't see any errors in the home assistant logs either. I'll have more free time after work to dig deeper.
Another potential consideration, I can only set humidity levels in increments of 5 at my dehumidifier so I'm not exactly sure what it will do if i try to set it to something else like 52. However, I don't know if it's possible to tell home assistant that or if that's how all GE dehumidifiers function. If we can't tell home assistant that, maybe some round to nearest increment of 5 code could be put in place in the code.
I bet that it was the int length - try the latest and see if it works now. It's picky on how many bytes you send it when setting values.
SUCCESS!
However, It would not accept any values that were not increments of 5. I could live with that if its not a generic enough to implement in your libraries.
If you do implement here's a quick rounding to 5 formula:
newVal = round( oldVal / 5 ) * 5
This is excellent, thanks very much for all your work on it!
One other small thing I came across besides the increment of 5 part, any way to update the ac_fan_setting translation from Default to Smart Dry to match setting? The Low, Med, and High all show up properly.
try the newest version and let me know if it resolves your issues
I think this is exactly where it needs to be. I can't find anything else that needs tweaking. Everything is toggling/reporting as I'd expect it to. Thanks again!
Agreed. Thanks!
Smart dehumidifier from GE. Linked to app, willing to provide any assistance/logs I can.