simbaja / ha_gehome

GE Home Appliances (SmartHQ) for Home Assistant
MIT License
343 stars 80 forks source link

GE Washer tank levels incorrect #126

Open rlippmann opened 2 years ago

rlippmann commented 2 years ago

Hi,

The tank level for my GE Washer ranges from 600,000% to 4,000,000 + %, so I think another unit of measurement is being used.

Also, I have 2 tanks, detergent and fabric softener.

rlippmann commented 2 years ago

gehome_appliance_data dump (hopefully this will help):

2022-11-17 01:40:16,346 DEBUG Getting OAuth2 token 2022-11-17 01:40:16,348 DEBUG Client changed state: GeClientState.INITIALIZING to GeClientState.AUTHORIZING_OAUTH 2022-11-17 01:40:18,314 DEBUG Getting WS credentials 2022-11-17 01:40:18,314 DEBUG Client changed state: GeClientState.AUTHORIZING_OAUTH to GeClientState.AUTHORIZING_CLIENT 2022-11-17 01:40:18,482 INFO Starting GE Appliances client 2022-11-17 01:40:18,505 DEBUG Client changed state: GeClientState.AUTHORIZING_CLIENT to GeClientState.CONNECTING 2022-11-17 01:40:18,543 DEBUG = connection is CONNECTING 2022-11-17 01:40:18,574 DEBUG > GET /?access_token=ue1cpdgaj7hg3k9ntm0dmvshcvifjbw1 HTTP/1.1 2022-11-17 01:40:18,574 DEBUG > Host: ws-us-east-1.brillion.geappliances.com 2022-11-17 01:40:18,575 DEBUG > Upgrade: websocket 2022-11-17 01:40:18,575 DEBUG > Connection: Upgrade 2022-11-17 01:40:18,575 DEBUG > Sec-WebSocket-Key: q5ygMkSZw5TG/19ex905Og== 2022-11-17 01:40:18,575 DEBUG > Sec-WebSocket-Version: 13 2022-11-17 01:40:18,575 DEBUG > User-Agent: Python/3.10 websockets/10.4 2022-11-17 01:40:18,752 DEBUG < HTTP/1.1 101 Switching Protocols 2022-11-17 01:40:18,752 DEBUG < Date: Thu, 17 Nov 2022 06:40:18 GMT 2022-11-17 01:40:18,753 DEBUG < Connection: upgrade 2022-11-17 01:40:18,753 DEBUG < upgrade: websocket 2022-11-17 01:40:18,753 DEBUG < sec-websocket-accept: 9ZbUYp+2rno0WIomEq38wCnEeMY= 2022-11-17 01:40:18,753 DEBUG = connection is OPEN 2022-11-17 01:40:18,753 DEBUG > TEXT '{"kind": "websocket#subscribe", "action": "subs...["/appliance//erd/"]}' [91 bytes] 2022-11-17 01:40:18,754 DEBUG > TEXT '{"kind": "websocket#api", "action": "api", "hos...id": "List-appliances"}' [150 bytes] 2022-11-17 01:40:18,754 DEBUG Client changed state: GeClientState.CONNECTING to GeClientState.CONNECTED 2022-11-17 01:40:18,804 DEBUG < TEXT '{"kind":"websocket#connect","success":true}' [43 bytes] 2022-11-17 01:40:18,825 DEBUG < TEXT '{"kind":"websocket#subscribe","success":true}' [45 bytes] 2022-11-17 01:40:18,970 DEBUG < TEXT '{"kind":"websocket#api","id":"List-appliances",...","online":"ONLINE"}]}}' [535 bytes] 2022-11-17 01:40:18,971 DEBUG D828C9123732 marked available 2022-11-17 01:40:18,971 DEBUG Adding appliance D828C9123732 2022-11-17 01:40:18,971 DEBUG Requesting update for client D828C9123732 2022-11-17 01:40:18,971 DEBUG > TEXT '{"kind": "websocket#api", "action": "api", "hos... "D828C9123732-allErd"}' [171 bytes] 2022-11-17 01:40:18,971 DEBUG Registering update callback for GeAppliance(D828C9123732) (Unknown Type) 2022-11-17 01:40:18,972 DEBUG Requesting features for client D828C9123732 2022-11-17 01:40:18,972 DEBUG > TEXT '{"kind": "websocket#api", "action": "api", "hos...d": "Request-features"}' [172 bytes] 2022-11-17 01:40:18,972 DEBUG D828C9060A43 marked available 2022-11-17 01:40:18,972 DEBUG Adding appliance D828C9060A43 2022-11-17 01:40:18,972 DEBUG Requesting update for client D828C9060A43 2022-11-17 01:40:18,972 DEBUG > TEXT '{"kind": "websocket#api", "action": "api", "hos... "D828C9060A43-allErd"}' [171 bytes] 2022-11-17 01:40:18,972 DEBUG Registering update callback for GeAppliance(D828C9060A43) (Unknown Type) 2022-11-17 01:40:18,973 DEBUG Requesting features for client D828C9060A43 2022-11-17 01:40:18,973 DEBUG > TEXT '{"kind": "websocket#api", "action": "api", "hos...d": "Request-features"}' [172 bytes] 2022-11-17 01:40:19,098 DEBUG < TEXT '{"kind":"websocket#api","id":"Request-features"...123732","features":[]}}' [299 bytes] 2022-11-17 01:40:19,098 DEBUG Received features [] for D828C9123732 2022-11-17 01:40:19,154 DEBUG < TEXT '{"kind":"websocket#api","id":"D828C9123732-allE...1-15T15:31:11.579Z"}]}}' [1985 bytes] 2022-11-17 01:40:19,154 DEBUG < TEXT '{"resource":"/appliance//erd/","kind":"websoc...:true,"change":"ADDED"}' [97 bytes] 2022-11-17 01:40:19,154 DEBUG Setting ErdCode.MODEL_NUMBER to GTD86ESSJ1WS 2022-11-17 01:40:19,154 DEBUG Setting ErdCode.SERIAL_NUMBER to VG795091C 2022-11-17 01:40:19,154 DEBUG Setting ErdCode.APPLIANCE_TYPE to ErdApplianceType.DRYER 2022-11-17 01:40:19,155 DEBUG Setting ErdCode.WIFI_MODULE_SW_VERSION to 0.0.2.226 2022-11-17 01:40:19,155 DEBUG Setting ErdCode.WIFI_MODULE_SW_VERSION_AVAILABLE to 0.0.0.0 2022-11-17 01:40:19,155 DEBUG Setting ErdCode.ACM_UPDATING to False 2022-11-17 01:40:19,155 DEBUG Setting ErdCode.APPLIANCE_SW_VERSION to 1.0.3.22 2022-11-17 01:40:19,155 DEBUG Setting ErdCode.APPLIANCE_SW_VERSION_AVAILABLE to 1.0.3.22 2022-11-17 01:40:19,155 DEBUG Setting ErdCode.APPLIANCE_UPDATING to False 2022-11-17 01:40:19,155 DEBUG Setting ErdCode.LAUNDRY_MACHINE_STATE to Run 2022-11-17 01:40:19,155 DEBUG Setting ErdCode.LAUNDRY_SUB_CYCLE to ErdLaundrySubCycle.COOL_DOWN 2022-11-17 01:40:19,155 DEBUG Setting ErdCode.LAUNDRY_END_OF_CYCLE to False 2022-11-17 01:40:19,155 DEBUG Setting 0x2003 to b'\x03\x91' 2022-11-17 01:40:19,156 DEBUG Setting ErdCode.LAUNDRY_TIME_REMAINING to 0:07:00 2022-11-17 01:40:19,156 DEBUG Setting ErdCode.LAUNDRY_CYCLE to ErdLaundryCycle.AIR_FLUFF 2022-11-17 01:40:19,156 DEBUG Setting ErdCode.LAUNDRY_DELAY_TIME_REMAINING to 0:00:00 2022-11-17 01:40:19,156 DEBUG Setting ErdCode.LAUNDRY_DOOR to ErdLaundryDoorStatus.CLOSED 2022-11-17 01:40:19,156 DEBUG Setting ErdCode.LAUNDRY_DRYER_TEMPERATURE_OPTION to --- 2022-11-17 01:40:19,156 DEBUG Setting ErdCode.LAUNDRY_DRYER_DRYNESS_LEVEL to --- 2022-11-17 01:40:19,156 DEBUG Setting ErdCode.LAUNDRY_DRYER_TUMBLE_STATUS to ErdTumbleStatus.DISABLE 2022-11-17 01:40:19,156 DEBUG Setting ErdCode.LAUNDRY_DRYER_LEVEL_SENSOR_DISABLED to True 2022-11-17 01:40:19,156 DEBUG Setting ErdCode.LAUNDRY_UNKNOWN201D to b'\x00' 2022-11-17 01:40:19,156 DEBUG Setting ErdCode.LAUNDRY_DRYER_SHEET_USAGE_CONFIGURATION to ErdSheetUsageConfiguration(extra_large_load_size=0, large_load_size=0, medium_load_size=0, small_load_size=0, timed_dryer_sheets_load_size=0, raw_value='0000000000') 2022-11-17 01:40:19,156 DEBUG Setting ErdCode.LAUNDRY_DRYER_SHEET_INVENTORY to 0 2022-11-17 01:40:19,156 DEBUG Got initial appliance type for GeAppliance(D828C9123732) (ErdApplianceType.DRYER) 2022-11-17 01:40:19,156 DEBUG Appliance state change detected in GeAppliance(D828C9123732) (ErdApplianceType.DRYER). Updated keys: ErdCode.MODEL_NUMBER, ErdCode.SERIAL_NUMBER, ErdCode.APPLIANCE_TYPE, 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, ErdCode.LAUNDRY_MACHINE_STATE, ErdCode.LAUNDRY_SUB_CYCLE, ErdCode.LAUNDRY_END_OF_CYCLE, 0x2003, ErdCode.LAUNDRY_TIME_REMAINING, ErdCode.LAUNDRY_CYCLE, ErdCode.LAUNDRY_DELAY_TIME_REMAINING, ErdCode.LAUNDRY_DOOR, ErdCode.LAUNDRY_DRYER_TEMPERATURE_OPTION, ErdCode.LAUNDRY_DRYER_DRYNESS_LEVEL, ErdCode.LAUNDRY_DRYER_TUMBLE_STATUS, ErdCode.LAUNDRY_DRYER_LEVEL_SENSOR_DISABLED, ErdCode.LAUNDRY_UNKNOWN201D, ErdCode.LAUNDRY_DRYER_SHEET_USAGE_CONFIGURATION, ErdCode.LAUNDRY_DRYER_SHEET_INVENTORY 2022-11-17 01:40:19,157 DEBUG Appliance state change detected in GeAppliance(D828C9123732) (ErdApplianceType.DRYER) 2022-11-17 01:40:19,191 DEBUG < TEXT '{"kind":"websocket#api","id":"D828C9060A43-allE...1-16T20:41:41.755Z"}]}}' [2261 bytes] 2022-11-17 01:40:19,191 DEBUG Setting ErdCode.MODEL_NUMBER to GTW860SSJ1WS 2022-11-17 01:40:19,191 DEBUG Setting ErdCode.SERIAL_NUMBER to RG141445G 2022-11-17 01:40:19,192 DEBUG Setting ErdCode.APPLIANCE_TYPE to ErdApplianceType.WASHER 2022-11-17 01:40:19,192 DEBUG Setting ErdCode.WIFI_MODULE_SW_VERSION to 0.0.2.226 2022-11-17 01:40:19,192 DEBUG Setting ErdCode.WIFI_MODULE_SW_VERSION_AVAILABLE to 0.0.0.0 2022-11-17 01:40:19,192 DEBUG Setting ErdCode.ACM_UPDATING to False 2022-11-17 01:40:19,192 DEBUG Setting ErdCode.APPLIANCE_SW_VERSION to 1.0.2.12 2022-11-17 01:40:19,192 DEBUG Setting ErdCode.APPLIANCE_SW_VERSION_AVAILABLE to 1.0.2.12 2022-11-17 01:40:19,192 DEBUG Setting ErdCode.APPLIANCE_UPDATING to False 2022-11-17 01:40:19,192 DEBUG Setting ErdCode.LAUNDRY_MACHINE_STATE to Run 2022-11-17 01:40:19,193 DEBUG Setting ErdCode.LAUNDRY_SUB_CYCLE to ErdLaundrySubCycle.RINSE 2022-11-17 01:40:19,193 DEBUG Setting ErdCode.LAUNDRY_END_OF_CYCLE to False 2022-11-17 01:40:19,193 DEBUG Setting 0x2003 to b'\x03\xef' 2022-11-17 01:40:19,193 DEBUG Setting 0x2006 to b'\x00' 2022-11-17 01:40:19,193 DEBUG Setting ErdCode.LAUNDRY_TIME_REMAINING to 0:31:00 2022-11-17 01:40:19,193 DEBUG Setting ErdCode.LAUNDRY_WASHER_TANK_STATUS to 4915531 2022-11-17 01:40:19,193 DEBUG Setting ErdCode.LAUNDRY_WASHER_TANK_SELECTED to ErdTankSelected.INVALID 2022-11-17 01:40:19,193 DEBUG Setting ErdCode.LAUNDRY_CYCLE to ErdLaundryCycle.BULKY_ITEMS 2022-11-17 01:40:19,193 DEBUG Setting ErdCode.LAUNDRY_DELAY_TIME_REMAINING to 0:00:00 2022-11-17 01:40:19,193 DEBUG Setting ErdCode.LAUNDRY_DOOR to ErdLaundryDoorStatus.CLOSED 2022-11-17 01:40:19,193 DEBUG Setting ErdCode.LAUNDRY_WASHER_DOOR_LOCK to True 2022-11-17 01:40:19,193 DEBUG Setting ErdCode.LAUNDRY_WASHER_SOIL_LEVEL to ErdSoilLevel.EXTRA_HEAVY 2022-11-17 01:40:19,193 DEBUG Setting ErdCode.LAUNDRY_WASHER_WASHTEMP_LEVEL to Hot 2022-11-17 01:40:19,193 DEBUG Setting ErdCode.LAUNDRY_WASHER_SPINTIME_LEVEL to ErdSpinTimeLevel.LOW 2022-11-17 01:40:19,193 DEBUG Setting ErdCode.LAUNDRY_WASHER_RINSE_OPTION to ErdRinseOption.INVALID 2022-11-17 01:40:19,194 DEBUG Setting ErdCode.LAUNDRY_UNKNOWN201D to b'\x00' 2022-11-17 01:40:19,194 DEBUG Setting 0x2020 to b'\x03' 2022-11-17 01:40:19,194 DEBUG Setting 0x2021 to b'\x03\x0c\x82\x00\x00\x00\x00\x00\x00\x00' 2022-11-17 01:40:19,194 DEBUG Got initial appliance type for GeAppliance(D828C9060A43) (ErdApplianceType.WASHER) 2022-11-17 01:40:19,194 DEBUG Appliance state change detected in GeAppliance(D828C9060A43) (ErdApplianceType.WASHER). Updated keys: ErdCode.MODEL_NUMBER, ErdCode.SERIAL_NUMBER, ErdCode.APPLIANCE_TYPE, 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, ErdCode.LAUNDRY_MACHINE_STATE, ErdCode.LAUNDRY_SUB_CYCLE, ErdCode.LAUNDRY_END_OF_CYCLE, 0x2003, 0x2006, ErdCode.LAUNDRY_TIME_REMAINING, ErdCode.LAUNDRY_WASHER_TANK_STATUS, ErdCode.LAUNDRY_WASHER_TANK_SELECTED, ErdCode.LAUNDRY_CYCLE, ErdCode.LAUNDRY_DELAY_TIME_REMAINING, ErdCode.LAUNDRY_DOOR, ErdCode.LAUNDRY_WASHER_DOOR_LOCK, ErdCode.LAUNDRY_WASHER_SOIL_LEVEL, ErdCode.LAUNDRY_WASHER_WASHTEMP_LEVEL, ErdCode.LAUNDRY_WASHER_SPINTIME_LEVEL, ErdCode.LAUNDRY_WASHER_RINSE_OPTION, ErdCode.LAUNDRY_UNKNOWN201D, 0x2020, 0x2021 2022-11-17 01:40:19,194 DEBUG Appliance state change detected in GeAppliance(D828C9060A43) (ErdApplianceType.WASHER) 2022-11-17 01:40:19,216 DEBUG < TEXT '{"kind":"websocket#api","id":"Request-features"...060A43","features":[]}}' [299 bytes] 2022-11-17 01:40:19,217 DEBUG Received features [] for D828C9060A43 2022-11-17 01:40:24,779 DEBUG < TEXT '{"item":{"applianceId":"D828C9123732","erd":"0x...rId":"5p7es035yenypfv"}' [199 bytes] 2022-11-17 01:40:24,779 DEBUG Setting ErdCode.LAUNDRY_TIME_REMAINING to 0:06:00 2022-11-17 01:40:24,779 DEBUG Appliance state change detected in GeAppliance(D828C9123732) (ErdApplianceType.DRYER). Updated keys: ErdCode.LAUNDRY_TIME_REMAINING 2022-11-17 01:40:38,761 DEBUG % sending keepalive ping 2022-11-17 01:40:38,761 DEBUG > PING 90 17 6f e9 [binary, 4 bytes] 2022-11-17 01:40:38,772 DEBUG < PONG 90 17 6f e9 [binary, 4 bytes] 2022-11-17 01:40:38,772 DEBUG % received keepalive pong 2022-11-17 01:40:48,755 DEBUG Sending keepalive ping 2022-11-17 01:40:48,756 DEBUG > TEXT '{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}' [68 bytes] 2022-11-17 01:40:48,784 DEBUG < TEXT '{"kind":"websocket#pong","id":"keepalive-ping"}' [47 bytes] ^CTraceback (most recent call last):

simbaja commented 1 year ago

@warrenrees, any chance you can look into this one? Is it possible there are multiple UOMs for these?

simbaja commented 1 year ago

I'm guessing it's really a multi value issue, but if someone else has the equipment and can debug, I think that's the best way to get this one solved.

rlippmann commented 1 year ago

Can you point me to some other part of the code base where multi values are used?

I could search the source myself, but since you probably know it better you can point me to entities which already use multi values.

rlippmann commented 1 year ago

And how do you get the ERD codes? A couple appear unknown in the output I sent above.

rlippmann commented 1 year ago

I have the equipment and am willing to help, but I don't know what exactly you mean by multi values....

rlippmann commented 1 year ago

So, i just looked at debug output again. For washer tank status i get 4915531. My current levels are 75% for both washer and dryer. 4915531 happens to work out to 00 4b 01 4b, so I'm thinking the format is (tank number, level) since 4b is 75 decimal.

Also, this seems wrong:

Setting 0x2003 to b'\x04p'

since p isn't hex.

This is also incorrect:

Setting ErdCode.LAUNDRY_WASHER_TANK_SELECTED to ErdTankSelected.INVALID

because I have the detergent tank selected.

jamesarm97 commented 1 year ago

I have the new washer dryer combo and would also like to see the missing values for the Softener Tank (instead of just the detergent tank). I will read on how to get the debug needed and post here.