simbaja / ha_gehome Goto Github PK
View Code? Open in Web Editor NEWThis project forked from ajmarks/ha_components
GE Home Appliances (SmartHQ) for Home Assistant
License: MIT License
This project forked from ajmarks/ha_components
GE Home Appliances (SmartHQ) for Home Assistant
License: MIT License
Model = GXWH70M
https://www.geapplianceparts.com/store/parts/spec/GXWH70M
I have this installed in my house, and I have it added to my SmartHQ app. If you could integrate that into this custom component, that would be amazing. Thanks!
Good afternoon. I've tried to setup this using HACS various times today. Unfortunately, I receive the following error:
This error originated from a custom integration.
Logger: homeassistant.config_entries
Source: custom_components/ge_home/update_coordinator.py:174
Integration: GE Home (documentation)
First occurred: 3:51:19 PM (1 occurrences)
Last logged: 3:51:19 PMError setting up entry GE Home (XXXXXXXXXXXXXXXX) for ge_home
Traceback (most recent call last):
File "/config/custom_components/ge_home/update_coordinator.py", line 172, in async_setup
await self.initialization_future
asyncio.exceptions.CancelledErrorDuring handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/config/custom_components/ge_home/update_coordinator.py", line 172, in async_setup
await self.initialization_future
File "/usr/local/lib/python3.9/site-packages/async_timeout/init.py", line 45, in exit
self._do_exit(exc_type)
File "/usr/local/lib/python3.9/site-packages/async_timeout/init.py", line 92, in _do_exit
raise asyncio.TimeoutError
asyncio.exceptions.TimeoutErrorDuring handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 293, in async_setup
result = await component.async_setup_entry(hass, self) # type: ignore
File "/config/custom_components/ge_home/init.py", line 26, in async_setup_entry
if not await coordinator.async_setup():
File "/config/custom_components/ge_home/update_coordinator.py", line 174, in async_setup
raise HaCannotConnect("Initialization timed out")
custom_components.ge_home.exceptions.HaCannotConnect: Initialization timed out
Other items from HACS repos are working fine.
The VM is running Home Assistant OS 6.2, core-2021.8.6, and supervisor-2021.06.8.
HACS is 1.13.2, 20210620205902
On line 94:
GeErdPropertySensor(self, ErdCode.HOT_WATER_STATUS, "time_remaining", icon_override="mdi:timer-outline"),
Should actually be:
GeErdPropertySensor(self, ErdCode.HOT_WATER_STATUS, "time_until_ready", icon_override="mdi:timer-outline"),
This matches the attribute in the SDK. The Hot Water timer fails to create an entity without this in place.
I've added the fix to my PR, which also adds support for HACS to the component -- which eases testing considerably.
Logger: homeassistant.components.water_heater
Source: custom_components/ge_home/entities/oven/ge_oven.py:174
Integration: Water Heater (documentation, issues)
First occurred: 9:27:15 PM (2 occurrences)
Last logged: 9:27:15 PM
Error adding entities for domain water_heater with platform ge_home
Error while setting up ge_home platform for water_heater
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 382, in async_add_entities
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 587, in _async_add_entity
await entity.add_to_platform_finish()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 711, in add_to_platform_finish
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 464, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 500, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/water_heater/init.py", line 203, in state_attributes
self.current_temperature,
File "/config/custom_components/ge_home/entities/oven/ge_oven.py", line 83, in current_temperature
return self.get_erd_value("RAW_TEMPERATURE")
File "/config/custom_components/ge_home/entities/oven/ge_oven.py", line 174, in get_erd_value
return self.appliance.get_erd_value(erd_code)
File "/usr/local/lib/python3.9/site-packages/gehomesdk/ge_appliance.py", line 136, in get_erd_value
return self._property_cache[erd_code]
KeyError: <ErdCode.UPPER_OVEN_RAW_TEMPERATURE: '0x510d'>
hi, first of it all the integration is amazing!
i managed to integrate by GE ac unit.
when i select the entities card in lovelace however it shows me Farenheit with the C unit
or when i select the entity
when i pick the Lovelace thermostat card, the units are shown in Celsius which is correct.
i checked if anywhere i had settings to select/convert the units, but not success.
After a successful install in HACS the integration doesn't show when I search for it
I've got my oven added to HASS.io, but it's not generating a QR code to add it in HomeKit. I haven't been able to locate instructions on doing this and haven't had luck getting it done on my own. Is this expected, or does anyone have a way to add this to HomeKit?
Hi @simbaja,
I'm getting the following error when attempting to execute an Operation against my Advantium microwave oven. This occurs when attempting any operation type:
File "/config/custom_components/ge_home/entities/advantium/ge_advantium.py", line 185, in async_set_operation_mode
elif self.current_cook_setting.cook_action == CookAction.PAUSE:
AttributeError: 'bytes' object has no attribute 'cook_action'
����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
A bit more of the stack trace if helpful:
2021-08-20 16:57:28 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140500039487744] 'bytes' object has no attribute 'cook_action'
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 185, in handle_call_service
await hass.services.async_call(
File "/usr/src/homeassistant/homeassistant/core.py", line 1491, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1526, in _execute_service
await handler.job.target(service_call)
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 213, in handle_service
await self.hass.helpers.service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 658, in entity_service_call
future.result() # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 811, in async_request_call
await coro
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 695, in _handle_entity_call
await result
File "/config/custom_components/ge_home/entities/advantium/ge_advantium.py", line 185, in async_set_operation_mode
elif self.current_cook_setting.cook_action == CookAction.PAUSE:
AttributeError: 'bytes' object has no attribute 'cook_action'
My GE Dryer is not getting created as an entity / device in HA.
Ran gehome/websocket_client.py and it definitely picks it up:
2021-08-03 14:13:22,778 DEBUG Using selector: SelectSelector
2021-08-03 14:13:22,783 DEBUG Getting OAuth2 token
2021-08-03 14:13:22,797 DEBUG Client changed state: GeClientState.INITIALIZING to GeClientState.AUTHORIZING_OAUTH
2021-08-03 14:13:24,081 DEBUG Getting WS credentials
2021-08-03 14:13:24,082 DEBUG Client changed state: GeClientState.AUTHORIZING_OAUTH to GeClientState.AUTHORIZING_CLIENT
2021-08-03 14:13:24,188 INFO Starting GE Appliances client
2021-08-03 14:13:24,240 DEBUG Client changed state: GeClientState.AUTHORIZING_CLIENT to GeClientState.CONNECTING
2021-08-03 14:13:24,281 DEBUG client - state = CONNECTING
2021-08-03 14:13:24,343 DEBUG client - event = connection_made(<asyncio.sslproto._SSLProtocolTransport object at 0x00000226CCAB6880>)
2021-08-03 14:13:24,344 DEBUG client > GET /?access_token=REDACTED HTTP/1.1
2021-08-03 14:13:24,344 DEBUG client > Headers([('Host', 'ws-us-east-1.brillion.geappliances.com'), ('Upgrade', 'websocket'), ('Connection', 'Upgrade'), ('Sec-WebSocket-Key', 'Ef07jWSu18sJEpaaYHiwyg=='), ('Sec-WebSocket-Version', '13'), ('Sec-WebSocket-Extensions', 'permessage-deflate; client_max_window_bits'), ('User-Agent', 'Python/3.9 websockets/9.1')])
2021-08-03 14:13:24,585 DEBUG client - event = data_received(<212 bytes>)
2021-08-03 14:13:24,586 DEBUG client < HTTP/1.1 101 Switching Protocols
2021-08-03 14:13:24,587 DEBUG client < Headers([('Date', 'Tue, 03 Aug 2021 19:13:24 GMT'), ('Connection', 'upgrade'), ('upgrade', 'websocket'), ('sec-websocket-accept', 'eg/YVwJaulb2SzT+oFNJhAH+8WU='), ('sec-websocket-extensions', 'permessage-deflate')])
2021-08-03 14:13:24,587 DEBUG client - state = OPEN
2021-08-03 14:13:24,588 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#subscribe", "action": "subscribe", "resources": ["/appliance/*/erd/*"]}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:13:24,589 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance", "id": "List-appliances"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:13:24,589 DEBUG Client changed state: GeClientState.CONNECTING to GeClientState.CONNECTED
2021-08-03 14:13:24,692 DEBUG client - event = data_received(<49 bytes>)
2021-08-03 14:13:24,692 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#subscribe","success":true}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:13:24,825 DEBUG client - event = data_received(<298 bytes>)
2021-08-03 14:13:24,825 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"List-appliances","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance"},"success":true,"code":200,"body":{"kind":"appliance#applianceList","userId":"a7o71pz52pf8cxi","items":[{"applianceId":"D828C95D21C9","type":"Clothes Dryer","brand":"Unknown","jid":"d828c95d21c9_a7o71pz52pf8cxi","nickname":"Dryer","online":"ONLINE","onlineTime":"2021-08-02T04:40:08.000Z"},{"applianceId":"D828C954A9AE","type":"Clothes Washer","brand":"Unknown","jid":"d828c954a9ae_a7o71pz52pf8cxi","nickname":"Washer","online":"ONLINE","onlineTime":"2021-08-02T02:46:12.000Z"}]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:13:24,827 DEBUG D828C95D21C9 marked available
2021-08-03 14:13:24,827 DEBUG Adding appliance D828C95D21C9
2021-08-03 14:13:24,828 DEBUG Requesting update for client D828C95D21C9
2021-08-03 14:13:24,828 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance/D828C95D21C9/erd", "id": "D828C95D21C9-allErd"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:13:24,829 DEBUG Requesting features for client D828C95D21C9
2021-08-03 14:13:24,829 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance/D828C95D21C9/feature", "id": "Request-features"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:13:24,830 DEBUG D828C954A9AE marked available
2021-08-03 14:13:24,831 DEBUG Adding appliance D828C954A9AE
2021-08-03 14:13:24,831 DEBUG Requesting update for client D828C954A9AE
2021-08-03 14:13:24,831 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance/D828C954A9AE/erd", "id": "D828C954A9AE-allErd"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:13:24,832 DEBUG Requesting features for client D828C954A9AE
2021-08-03 14:13:24,832 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance/D828C954A9AE/feature", "id": "Request-features"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:13:24,832 DEBUG Registering update callback for GeAppliance(D828C95D21C9) (Unknown Type)
2021-08-03 14:13:24,833 DEBUG Registering update callback for GeAppliance(D828C954A9AE) (Unknown Type)
2021-08-03 14:13:24,973 DEBUG client - event = data_received(<79 bytes>)
2021-08-03 14:13:24,973 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"Request-features","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C95D21C9/feature"},"success":true,"code":200,"body":{"kind":"appliance#applianceFeature","userId":"a7o71pz52pf8cxi","applianceId":"D828C95D21C9","features":["CLOTHES_DRYER_V1_EXTENDED_TUMBLE"]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:13:24,974 DEBUG Received features ['CLOTHES_DRYER_V1_EXTENDED_TUMBLE'] for D828C95D21C9
2021-08-03 14:13:24,980 DEBUG client - event = data_received(<32 bytes>)
2021-08-03 14:13:24,980 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"Request-features","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C954A9AE/feature"},"success":true,"code":200,"body":{"kind":"appliance#applianceFeature","userId":"a7o71pz52pf8cxi","applianceId":"D828C954A9AE","features":["CLOTHES_WASHER_V1_WASHER_LINK"]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:13:24,981 DEBUG Received features ['CLOTHES_WASHER_V1_WASHER_LINK'] for D828C954A9AE
2021-08-03 14:13:25,033 DEBUG client - event = data_received(<341 bytes>)
2021-08-03 14:13:25,033 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"D828C954A9AE-allErd","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C954A9AE/erd"},"success":true,"code":200,"body":{"kind":"appliance#erdList","userId":"a7o71pz52pf8cxi","applianceId":"D828C954A9AE","items":[{"erd":"0x0001","value":"0C47465735353053534E30575700000000000000000000000000000000000000","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x0002","value":"0953523337313831304E00000000000000000000000000000000000000000000","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x0008","value":"02","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x0035","value":"00000002","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x0099","value":"00","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x0100","value":"00000B27","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x0101","value":"00000000","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x0102","value":"00","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x0103","value":"0100026A","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x0104","value":"00000000","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x0105","value":"00","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x2000","value":"00","time":"2021-08-02T21:18:47.456Z"},{"erd":"0x2001","value":"00","time":"2021-08-02T21:18:27.971Z"},{"erd":"0x2002","value":"00","time":"2021-08-02T21:18:47.456Z"},{"erd":"0x2007","value":"0CCF","time":"2021-08-02T21:18:30.083Z"},{"erd":"0x200A","value":"1C","time":"2021-08-02T20:18:34.278Z"},{"erd":"0x2010","value":"0000","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x2012","value":"01","time":"2021-08-03T12:30:20.323Z"},{"erd":"0x2013","value":"00","time":"2021-08-02T21:18:41.406Z"},{"erd":"0x2015","value":"02","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x2016","value":"14","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x2017","value":"02","time":"2021-08-02T20:18:35.397Z"},{"erd":"0x2018","value":"00","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x201D","value":"00","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x2038","value":"FFFF","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x2039","value":"00","time":"2021-08-02T21:18:47.456Z"},{"erd":"0x2040","value":"FF","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x2054","value":"00","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x2055","value":"00","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x205B","value":"00","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x2060","value":"00","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x2061","value":"00","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x2069","value":"000000E103000300","time":"2021-08-02T21:18:27.971Z"}]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:13:25,035 DEBUG Setting ErdCode.MODEL_NUMBER to GFW550SSN0WW
2021-08-03 14:13:25,035 DEBUG Setting ErdCode.SERIAL_NUMBER to SR371810N
2021-08-03 14:13:25,035 DEBUG Setting ErdCode.APPLIANCE_TYPE to ErdApplianceType.WASHER
2021-08-03 14:13:25,036 DEBUG Setting ErdCode.UNIT_TYPE to ErdUnitType.TYPE_120V_MONOGRAM
2021-08-03 14:13:25,036 DEBUG Setting ErdCode.UNKNOWN_0099 to b'\x00'
2021-08-03 14:13:25,036 DEBUG Setting ErdCode.WIFI_MODULE_SW_VERSION to 0.0.11.39
2021-08-03 14:13:25,036 DEBUG Setting ErdCode.WIFI_MODULE_SW_VERSION_AVAILABLE to 0.0.0.0
2021-08-03 14:13:25,037 DEBUG Setting ErdCode.ACM_UPDATING to False
2021-08-03 14:13:25,037 DEBUG Setting ErdCode.APPLIANCE_SW_VERSION to 1.0.2.106
2021-08-03 14:13:25,037 DEBUG Setting ErdCode.APPLIANCE_SW_VERSION_AVAILABLE to 0.0.0.0
2021-08-03 14:13:25,037 DEBUG Setting ErdCode.APPLIANCE_UPDATING to False
2021-08-03 14:13:25,038 DEBUG Setting ErdCode.LAUNDRY_MACHINE_STATE to Off
2021-08-03 14:13:25,038 DEBUG Setting ErdCode.LAUNDRY_SUB_CYCLE to ErdLaundrySubCycle.CYCLE_NONE
2021-08-03 14:13:25,038 DEBUG Setting ErdCode.LAUNDRY_END_OF_CYCLE to False
2021-08-03 14:13:25,038 DEBUG Setting ErdCode.LAUNDRY_TIME_REMAINING to 0:54:39
2021-08-03 14:13:25,039 DEBUG Setting ErdCode.LAUNDRY_CYCLE to ErdLaundryCycle.NORMAL2
2021-08-03 14:13:25,039 DEBUG Setting ErdCode.LAUNDRY_DELAY_TIME_REMAINING to 0:00:00
2021-08-03 14:13:25,039 DEBUG Setting ErdCode.LAUNDRY_DOOR to ErdLaundryDoorStatus.CLOSED
2021-08-03 14:13:25,039 DEBUG Setting ErdCode.LAUNDRY_WASHER_DOOR_LOCK to False
2021-08-03 14:13:25,040 DEBUG Setting ErdCode.LAUNDRY_WASHER_SOIL_LEVEL to ErdSoilLevel.NORMAL
2021-08-03 14:13:25,040 DEBUG Setting ErdCode.LAUNDRY_WASHER_WASHTEMP_LEVEL to Warm
2021-08-03 14:13:25,040 DEBUG Setting ErdCode.LAUNDRY_WASHER_SPINTIME_LEVEL to ErdSpinTimeLevel.MEDIUM
2021-08-03 14:13:25,041 DEBUG Setting ErdCode.LAUNDRY_WASHER_RINSE_OPTION to ErdRinseOption.INVALID
2021-08-03 14:13:25,041 DEBUG Setting ErdCode.LAUNDRY_UNKNOWN201D to b'\x00'
2021-08-03 14:13:25,041 DEBUG Got timespan value of 65535. Treating as None.
2021-08-03 14:13:25,041 DEBUG Setting ErdCode.LAUNDRY_REMOTE_STATUS to False
2021-08-03 14:13:25,042 DEBUG Setting ErdCode.LAUNDRY_REMOTE_POWER_CONTROL to 255
2021-08-03 14:13:25,042 DEBUG Setting ErdCode.LAUNDRY_WASHER_UNKNOWN2054 to b'\x00'
2021-08-03 14:13:25,042 DEBUG Setting ErdCode.LAUNDRY_WASHER_TIMESAVER to False
2021-08-03 14:13:25,042 DEBUG Setting ErdCode.LAUNDRY_WASHER_PREWASH to False
2021-08-03 14:13:25,043 DEBUG Setting ErdCode.LAUNDRY_WASHER_UNKNOWN2060 to b'\x00'
2021-08-03 14:13:25,043 DEBUG Setting ErdCode.LAUNDRY_WASHER_TUMBLECARE to False
2021-08-03 14:13:25,043 DEBUG Setting ErdCode.LAUNDRY_WASHER_UNKNOWN2069 to b'\x00\x00\x00\xe1\x03\x00\x03\x00'
2021-08-03 14:13:25,044 DEBUG Got initial appliance type for GeAppliance(D828C954A9AE) (ErdApplianceType.WASHER)
2021-08-03 14:13:25,044 DEBUG Appliance state change detected in GeAppliance(D828C954A9AE) (ErdApplianceType.WASHER). Updated keys: ErdCode.MODEL_NUMBER, ErdCode.SERIAL_NUMBER, ErdCode.APPLIANCE_TYPE, ErdCode.UNIT_TYPE, ErdCode.UNKNOWN_0099, 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, ErdCode.LAUNDRY_TIME_REMAINING, 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, ErdCode.LAUNDRY_REMOTE_STATUS, ErdCode.LAUNDRY_REMOTE_POWER_CONTROL, ErdCode.LAUNDRY_WASHER_UNKNOWN2054, ErdCode.LAUNDRY_WASHER_TIMESAVER, ErdCode.LAUNDRY_WASHER_PREWASH, ErdCode.LAUNDRY_WASHER_UNKNOWN2060, ErdCode.LAUNDRY_WASHER_TUMBLECARE, ErdCode.LAUNDRY_WASHER_UNKNOWN2069
2021-08-03 14:13:25,044 DEBUG client - event = data_received(<276 bytes>)
2021-08-03 14:13:25,047 DEBUG Appliance state change detected in GeAppliance(D828C954A9AE) (ErdApplianceType.WASHER)
2021-08-03 14:13:25,048 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"D828C95D21C9-allErd","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C95D21C9/erd"},"success":true,"code":200,"body":{"kind":"appliance#erdList","userId":"a7o71pz52pf8cxi","applianceId":"D828C95D21C9","items":[{"erd":"0x0001","value":"0C47464435354553534E30575700000000000000000000000000000000000000","time":"2021-08-02T04:42:14.053Z"},{"erd":"0x0002","value":"0944533130303838304700000000000000000000000000000000000000000000","time":"2021-08-02T04:42:14.053Z"},{"erd":"0x0008","value":"01","time":"2021-08-02T04:42:14.053Z"},{"erd":"0x0035","value":"00000001","time":"2021-08-02T04:42:10.579Z"},{"erd":"0x0099","value":"00","time":"2021-08-02T04:42:15.118Z"},{"erd":"0x0100","value":"00000B27","time":"2021-08-02T04:42:12.968Z"},{"erd":"0x0101","value":"00000000","time":"2021-08-02T04:42:12.968Z"},{"erd":"0x0102","value":"00","time":"2021-08-02T04:42:14.053Z"},{"erd":"0x0103","value":"01000352","time":"2021-08-02T04:42:14.053Z"},{"erd":"0x0104","value":"00000000","time":"2021-08-02T04:42:14.053Z"},{"erd":"0x0105","value":"00","time":"2021-08-02T04:42:14.053Z"},{"erd":"0x2000","value":"00","time":"2021-08-02T22:42:16.157Z"},{"erd":"0x2001","value":"00","time":"2021-08-02T22:35:41.908Z"},{"erd":"0x2002","value":"00","time":"2021-08-02T22:37:45.724Z"},{"erd":"0x2007","value":"0DE5","time":"2021-08-02T22:35:42.858Z"},{"erd":"0x200A","value":"80","time":"2021-08-02T21:20:16.609Z"},{"erd":"0x2010","value":"0000","time":"2021-08-02T04:42:10.579Z"},{"erd":"0x2012","value":"01","time":"2021-08-02T21:20:25.890Z"},{"erd":"0x201C","value":"00","time":"2021-08-02T04:42:10.579Z"},{"erd":"0x201D","value":"00","time":"2021-08-02T04:42:10.579Z"},{"erd":"0x2022","value":"0000000000","time":"2021-08-02T04:42:10.579Z"},{"erd":"0x2023","value":"0000","time":"2021-08-02T04:42:10.579Z"},{"erd":"0x2038","value":"FFFF","time":"2021-08-02T04:42:10.579Z"},{"erd":"0x2039","value":"00","time":"2021-08-02T22:37:45.724Z"},{"erd":"0x2040","value":"FF","time":"2021-08-02T04:42:10.579Z"},{"erd":"0x2041","value":"FF","time":"2021-08-02T04:42:10.579Z"},{"erd":"0x204D","value":"04","time":"2021-08-02T21:20:21.611Z"},{"erd":"0x2050","value":"03","time":"2021-08-02T21:20:16.609Z"},{"erd":"0x2051","value":"FF","time":"2021-08-02T04:42:10.579Z"},{"erd":"0x2052","value":"0000","time":"2021-08-02T21:20:16.609Z"},{"erd":"0x2053","value":"00","time":"2021-08-02T04:42:10.579Z"},{"erd":"0x206F","value":"00","time":"2021-08-02T04:42:10.579Z"}]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:13:25,048 DEBUG client - event = data_received(<19 bytes>)
2021-08-03 14:13:25,048 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#connect","success":true}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:13:25,049 DEBUG Setting ErdCode.MODEL_NUMBER to GFD55ESSN0WW
2021-08-03 14:13:25,049 DEBUG Setting ErdCode.SERIAL_NUMBER to DS100880G
2021-08-03 14:13:25,049 DEBUG Setting ErdCode.APPLIANCE_TYPE to ErdApplianceType.DRYER
2021-08-03 14:13:25,049 DEBUG Setting ErdCode.UNIT_TYPE to ErdUnitType.TYPE_120V_CAFE
2021-08-03 14:13:25,050 DEBUG Setting ErdCode.UNKNOWN_0099 to b'\x00'
2021-08-03 14:13:25,050 DEBUG Setting ErdCode.WIFI_MODULE_SW_VERSION to 0.0.11.39
2021-08-03 14:13:25,050 DEBUG Setting ErdCode.WIFI_MODULE_SW_VERSION_AVAILABLE to 0.0.0.0
2021-08-03 14:13:25,051 DEBUG Setting ErdCode.ACM_UPDATING to False
2021-08-03 14:13:25,051 DEBUG Setting ErdCode.APPLIANCE_SW_VERSION to 1.0.3.82
2021-08-03 14:13:25,051 DEBUG Setting ErdCode.APPLIANCE_SW_VERSION_AVAILABLE to 0.0.0.0
2021-08-03 14:13:25,051 DEBUG Setting ErdCode.APPLIANCE_UPDATING to False
2021-08-03 14:13:25,052 DEBUG Setting ErdCode.LAUNDRY_MACHINE_STATE to Off
2021-08-03 14:13:25,052 DEBUG Setting ErdCode.LAUNDRY_SUB_CYCLE to ErdLaundrySubCycle.CYCLE_NONE
2021-08-03 14:13:25,052 DEBUG Setting ErdCode.LAUNDRY_END_OF_CYCLE to False
2021-08-03 14:13:25,053 DEBUG Setting ErdCode.LAUNDRY_TIME_REMAINING to 0:59:17
2021-08-03 14:13:25,053 DEBUG Setting ErdCode.LAUNDRY_CYCLE to ErdLaundryCycle.COTTONS
2021-08-03 14:13:25,053 DEBUG Setting ErdCode.LAUNDRY_DELAY_TIME_REMAINING to 0:00:00
2021-08-03 14:13:25,053 DEBUG Setting ErdCode.LAUNDRY_DOOR to ErdLaundryDoorStatus.CLOSED
2021-08-03 14:13:25,054 DEBUG Setting ErdCode.LAUNDRY_DRYER_LEVEL_SENSOR_DISABLED to False
2021-08-03 14:13:25,054 DEBUG Setting ErdCode.LAUNDRY_UNKNOWN201D to b'\x00'
2021-08-03 14:13:25,054 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')
2021-08-03 14:13:25,054 DEBUG Setting ErdCode.LAUNDRY_DRYER_SHEET_INVENTORY to 0
2021-08-03 14:13:25,055 DEBUG Got timespan value of 65535. Treating as None.
2021-08-03 14:13:25,055 DEBUG Setting ErdCode.LAUNDRY_REMOTE_STATUS to False
2021-08-03 14:13:25,055 DEBUG Setting ErdCode.LAUNDRY_REMOTE_POWER_CONTROL to 255
2021-08-03 14:13:25,055 DEBUG Setting ErdCode.LAUNDRY_UNKNOWN2041 to b'\xff'
2021-08-03 14:13:25,056 DEBUG Setting ErdCode.LAUNDRY_DRYER_DRYNESSNEW_LEVEL to More Dry
2021-08-03 14:13:25,056 DEBUG Setting ErdCode.LAUNDRY_DRYER_TEMPERATURENEW_OPTION to Low
2021-08-03 14:13:25,056 DEBUG Setting ErdCode.LAUNDRY_DRYER_UNKNOWN2051 to b'\xff'
2021-08-03 14:13:25,057 DEBUG Setting ErdCode.LAUNDRY_DRYER_ECODRY_STATUS to Enabled
2021-08-03 14:13:25,057 DEBUG Setting ErdCode.LAUNDRY_DRYER_TUMBLENEW_STATUS to ErdTumbleStatus.DISABLE
2021-08-03 14:13:25,057 DEBUG Setting ErdCode.LAUNDRY_DRYER_UNKNOWN206F to b'\x00'
2021-08-03 14:13:25,058 DEBUG Got initial appliance type for GeAppliance(D828C95D21C9) (ErdApplianceType.DRYER)
2021-08-03 14:13:25,058 DEBUG Appliance state change detected in GeAppliance(D828C95D21C9) (ErdApplianceType.DRYER). Updated keys: ErdCode.MODEL_NUMBER, ErdCode.SERIAL_NUMBER, ErdCode.APPLIANCE_TYPE, ErdCode.UNIT_TYPE, ErdCode.UNKNOWN_0099, 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, ErdCode.LAUNDRY_TIME_REMAINING, ErdCode.LAUNDRY_CYCLE, ErdCode.LAUNDRY_DELAY_TIME_REMAINING, ErdCode.LAUNDRY_DOOR, ErdCode.LAUNDRY_DRYER_LEVEL_SENSOR_DISABLED, ErdCode.LAUNDRY_UNKNOWN201D, ErdCode.LAUNDRY_DRYER_SHEET_USAGE_CONFIGURATION, ErdCode.LAUNDRY_DRYER_SHEET_INVENTORY, ErdCode.LAUNDRY_REMOTE_STATUS, ErdCode.LAUNDRY_REMOTE_POWER_CONTROL, ErdCode.LAUNDRY_UNKNOWN2041, ErdCode.LAUNDRY_DRYER_DRYNESSNEW_LEVEL, ErdCode.LAUNDRY_DRYER_TEMPERATURENEW_OPTION, ErdCode.LAUNDRY_DRYER_UNKNOWN2051, ErdCode.LAUNDRY_DRYER_ECODRY_STATUS, ErdCode.LAUNDRY_DRYER_TUMBLENEW_STATUS, ErdCode.LAUNDRY_DRYER_UNKNOWN206F
2021-08-03 14:13:25,058 DEBUG Appliance state change detected in GeAppliance(D828C95D21C9) (ErdApplianceType.DRYER)
2021-08-03 14:13:25,247 DEBUG client - event = data_received(<52 bytes>)
2021-08-03 14:13:25,247 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"resource":"/appliance/*/erd/*","kind":"websocket#subscription","success":true,"change":"ADDED"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:13:44,601 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\x86\xeb\xdb\x07', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:13:44,627 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 14:13:44,627 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\x86\xeb\xdb\x07', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:13:44,627 DEBUG client - received solicited pong: 86ebdb07
2021-08-03 14:13:54,603 DEBUG Sending keepalive ping
2021-08-03 14:13:54,604 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:13:54,646 DEBUG client - event = data_received(<28 bytes>)
2021-08-03 14:13:54,646 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:14:04,646 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'?\xa1F\x19', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:14:04,671 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 14:14:04,671 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'?\xa1F\x19', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:14:04,671 DEBUG client - received solicited pong: 3fa14619
2021-08-03 14:14:24,615 DEBUG Sending keepalive ping
2021-08-03 14:14:24,615 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:14:24,662 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 14:14:24,662 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:14:24,663 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'!\x7fX\xd4', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:14:24,688 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 14:14:24,688 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'!\x7fX\xd4', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:14:24,688 DEBUG client - received solicited pong: 217f58d4
2021-08-03 14:14:24,844 DEBUG Requesting update for GeAppliance(D828C95D21C9) (ErdApplianceType.DRYER)
2021-08-03 14:14:24,844 DEBUG Requesting update for client D828C95D21C9
2021-08-03 14:14:24,845 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance/D828C95D21C9/erd", "id": "D828C95D21C9-allErd"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:14:24,846 DEBUG Requesting update for GeAppliance(D828C954A9AE) (ErdApplianceType.WASHER)
2021-08-03 14:14:24,846 DEBUG Requesting update for client D828C954A9AE
2021-08-03 14:14:24,846 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance/D828C954A9AE/erd", "id": "D828C954A9AE-allErd"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:14:25,065 DEBUG client - event = data_received(<33 bytes>)
2021-08-03 14:14:25,065 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"D828C95D21C9-allErd","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C95D21C9/erd"},"success":true,"code":200,"body":{"kind":"appliance#erdList","userId":"a7o71pz52pf8cxi","applianceId":"D828C95D21C9","items":[{"erd":"0x0001","value":"0C47464435354553534E30575700000000000000000000000000000000000000","time":"2021-08-02T04:42:14.053Z"},{"erd":"0x0002","value":"0944533130303838304700000000000000000000000000000000000000000000","time":"2021-08-02T04:42:14.053Z"},{"erd":"0x0008","value":"01","time":"2021-08-02T04:42:14.053Z"},{"erd":"0x0035","value":"00000001","time":"2021-08-02T04:42:10.579Z"},{"erd":"0x0099","value":"00","time":"2021-08-02T04:42:15.118Z"},{"erd":"0x0100","value":"00000B27","time":"2021-08-02T04:42:12.968Z"},{"erd":"0x0101","value":"00000000","time":"2021-08-02T04:42:12.968Z"},{"erd":"0x0102","value":"00","time":"2021-08-02T04:42:14.053Z"},{"erd":"0x0103","value":"01000352","time":"2021-08-02T04:42:14.053Z"},{"erd":"0x0104","value":"00000000","time":"2021-08-02T04:42:14.053Z"},{"erd":"0x0105","value":"00","time":"2021-08-02T04:42:14.053Z"},{"erd":"0x2000","value":"00","time":"2021-08-02T22:42:16.157Z"},{"erd":"0x2001","value":"00","time":"2021-08-02T22:35:41.908Z"},{"erd":"0x2002","value":"00","time":"2021-08-02T22:37:45.724Z"},{"erd":"0x2007","value":"0DE5","time":"2021-08-02T22:35:42.858Z"},{"erd":"0x200A","value":"80","time":"2021-08-02T21:20:16.609Z"},{"erd":"0x2010","value":"0000","time":"2021-08-02T04:42:10.579Z"},{"erd":"0x2012","value":"01","time":"2021-08-02T21:20:25.890Z"},{"erd":"0x201C","value":"00","time":"2021-08-02T04:42:10.579Z"},{"erd":"0x201D","value":"00","time":"2021-08-02T04:42:10.579Z"},{"erd":"0x2022","value":"0000000000","time":"2021-08-02T04:42:10.579Z"},{"erd":"0x2023","value":"0000","time":"2021-08-02T04:42:10.579Z"},{"erd":"0x2038","value":"FFFF","time":"2021-08-02T04:42:10.579Z"},{"erd":"0x2039","value":"00","time":"2021-08-02T22:37:45.724Z"},{"erd":"0x2040","value":"FF","time":"2021-08-02T04:42:10.579Z"},{"erd":"0x2041","value":"FF","time":"2021-08-02T04:42:10.579Z"},{"erd":"0x204D","value":"04","time":"2021-08-02T21:20:21.611Z"},{"erd":"0x2050","value":"03","time":"2021-08-02T21:20:16.609Z"},{"erd":"0x2051","value":"FF","time":"2021-08-02T04:42:10.579Z"},{"erd":"0x2052","value":"0000","time":"2021-08-02T21:20:16.609Z"},{"erd":"0x2053","value":"00","time":"2021-08-02T04:42:10.579Z"},{"erd":"0x206F","value":"00","time":"2021-08-02T04:42:10.579Z"}]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 14:14:25,067 DEBUG Got timespan value of 65535. Treating as None.
2021-08-03 14:14:25,131 DEBUG client - event = data_received(<37 bytes>)
2021-08-03 14:14:25,131 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"D828C954A9AE-allErd","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C954A9AE/erd"},"success":true,"code":200,"body":{"kind":"appliance#erdList","userId":"a7o71pz52pf8cxi","applianceId":"D828C954A9AE","items":[{"erd":"0x0001","value":"0C47465735353053534E30575700000000000000000000000000000000000000","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x0002","value":"0953523337313831304E00000000000000000000000000000000000000000000","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x0008","value":"02","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x0035","value":"00000002","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x0099","value":"00","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x0100","value":"00000B27","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x0101","value":"00000000","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x0102","value":"00","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x0103","value":"0100026A","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x0104","value":"00000000","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x0105","value":"00","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x2000","value":"00","time":"2021-08-02T21:18:47.456Z"},{"erd":"0x2001","value":"00","time":"2021-08-02T21:18:27.971Z"},{"erd":"0x2002","value":"00","time":"2021-08-02T21:18:47.456Z"},{"erd":"0x2007","value":"0CCF","time":"2021-08-02T21:18:30.083Z"},{"erd":"0x200A","value":"1C","time":"2021-08-02T20:18:34.278Z"},{"erd":"0x2010","value":"0000","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x2012","value":"01","time":"2021-08-03T12:30:20.323Z"},{"erd":"0x2013","value":"00","time":"2021-08-02T21:18:41.406Z"},{"erd":"0x2015","value":"02","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x2016","value":"14","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x2017","value":"02","time":"2021-08-02T20:18:35.397Z"},{"erd":"0x2018","value":"00","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x201D","value":"00","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x2038","value":"FFFF","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x2039","value":"00","time":"2021-08-02T21:18:47.456Z"},{"erd":"0x2040","value":"FF","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x2054","value":"00","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x2055","value":"00","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x205B","value":"00","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x2060","value":"00","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x2061","value":"00","time":"2021-08-02T02:48:13.071Z"},{"erd":"0x2069","value":"000000E103000300","time":"2021-08-02T21:18:27.971Z"}]}}', rsv1=False, rsv2=False, rsv3=False)
Of Note:
2021-08-03 14:13:25,058 DEBUG Got initial appliance type for GeAppliance(D828C95D21C9) (ErdApplianceType.DRYER)
But I don't see anything specific in the hass core logs - just (seemingly) unrelated errors related to my Washing Machine (which does get discovered and shows up):
2021-08-03 14:22:30 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/config/custom_components/ge_home/update_coordinator.py", line 299, in on_device_initial_update
self.maybe_add_appliance_api(appliance)
File "/config/custom_components/ge_home/update_coordinator.py", line 128, in maybe_add_appliance_api
api.build_entities_list()
File "/config/custom_components/ge_home/devices/base.py", line 116, in build_entities_list
e for e in self.get_all_entities()
File "/config/custom_components/ge_home/devices/dryer.py", line 23, in get_all_entities
GeErdBinarySensor(self, ErdCode.LAUNDRY_END_OF_CYCLE, icon_override="mdi:tumble-dryer"),
TypeError: __init__() got an unexpected keyword argument 'icon_override'
2021-08-03 14:22:30 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/config/custom_components/ge_home/update_coordinator.py", line 266, in on_device_update
entity.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 412, in async_write_ha_state
raise RuntimeError(f"Attribute hass is None for {self}")
RuntimeError: Attribute hass is None for <Entity SR371810N Laundry Machine State: Off>
2021-08-03 14:22:31 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/config/custom_components/ge_home/update_coordinator.py", line 266, in on_device_update
entity.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 412, in async_write_ha_state
raise RuntimeError(f"Attribute hass is None for {self}")
RuntimeError: Attribute hass is None for <Entity SR371810N Laundry Machine State: Off>
Any idea where to start?
Hello,
Full disclaimer, I'm very new to HA. I attempted to install this integration on an older version of HA and was prompted to update if I wanted to use it. After updating, I started to get a never ending Loading Data screen on load of the Home Assistant UI.
I ended up pulling an older version of HA (2021.7.1) to resolve which didn't work. I then started disabling integrations. Once I disabled this one the UI loaded without issue.
Today, I tried re-enabling after pulling down and installing v0.4.3-dev3. After restarting and reloading the webpage, I get the same Loading Data issue. This is the error I'm getting in the logs:
2021-08-19 01:42:03 ERROR (MainThread) [homeassistant.components.http.view] Unable to serialize to JSON: Object of type CookMode is not JSON serializable
. I've got an Advantium oven.
Any idea what's going on?
HA Version: homeassistant/home-assistant:2021.7.1
ha_gehome version: v0.4.3-dev3
I see this in the log and it never populates with any devices. Sets up when entering credentials each time.
Logger: gehomesdk.clients.async_login_flows
Source: /usr/local/lib/python3.9/site-packages/gehomesdk/clients/async_login_flows.py:66
First occurred: 7:21:27 AM (1 occurrences)
Last logged: 7:21:27 AM
There was a problem getting the authorization code, response details: {'method': 'POST', 'cookies': <SimpleCookie: >, '_real_url': URL('https://accounts.brillion.geappliances.com/oauth2/g_authenticate'), '_url': URL('https://accounts.brillion.geappliances.com/oauth2/g_authenticate'), '_body': b'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<title> OAuth Login</title>\n\n\n\n\n\t\n\t\n\n\n\n\n\n<link\n\thref="/resources/scripts/css/bootstrap.min.css"\n\trel="stylesheet" />\n<link\n\thref="/resources/scripts/css/desktop.css"\n\trel="stylesheet" />\n\n\t<link href="https://fonts.googleapis.com/css?family=Poppins:400,500,600,700,900&display=swap"\n \trel="stylesheet">\n<script\n\tsrc="/resources/scripts/jquery-3.5.1.min.js"></script>\n\n\n\n\n\n\n\n\n \n
recaptcha_challenge_field
";\n\t\tcapData += ""\n\t\t\t\t+ $('#captchadiv').find('[name="recaptcha_challenge_field"]')\n\t\t\t\t\t\t.val() + "
";\n\t\tcapData += "recaptcha_response_field
";\n\t\tcapData += ""\n\t\t\t\t+ $('#captchadiv').find('[name="recaptcha_response_field"]')\n\t\t\t\t\t\t.val() + "
";\n\n\t\t$('#captchadiv2').html(capData);\n\t}\n\n\n</script>\n\n\n\t\n\n\n\n Copyright 2020 GE Appliances, a Haier company GE is trademark of General Electric Company.Manufactured under trademark license.\n
\n\r\n\t\t\t\tTerms | \r\n\t\t\t\t Privacy \t|\r\n\t\t\t\t California Privacy Notice |\r\n\t\t\t\t Do Not Sell My Info \t\t\t\r\n\t\t\t\r\n\t\t
\r\n\tAlso getting this
Logger: homeassistant.config_entries
Source: custom_components/ge_home/update_coordinator.py:174
Integration: GE Home (documentation)
First occurred: 7:22:18 AM (1 occurrences)
Last logged: 7:22:18 AM
Error setting up entry GE Home ([email protected]) for ge_home
Traceback (most recent call last):
File "/config/custom_components/ge_home/update_coordinator.py", line 172, in async_setup
await self.initialization_future
asyncio.exceptions.CancelledError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/config/custom_components/ge_home/update_coordinator.py", line 172, in async_setup
await self.initialization_future
File "/usr/local/lib/python3.9/site-packages/async_timeout/init.py", line 45, in exit
self._do_exit(exc_type)
File "/usr/local/lib/python3.9/site-packages/async_timeout/init.py", line 92, in _do_exit
raise asyncio.TimeoutError
asyncio.exceptions.TimeoutError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 293, in async_setup
result = await component.async_setup_entry(hass, self) # type: ignore
File "/config/custom_components/ge_home/init.py", line 26, in async_setup_entry
if not await coordinator.async_setup():
File "/config/custom_components/ge_home/update_coordinator.py", line 174, in async_setup
raise HaCannotConnect("Initialization timed out")
custom_components.ge_home.exceptions.HaCannotConnect: Initialization timed out
Originally posted by @joshewing02 in #29 (comment)
Recently started getting 'Invalid authentication' when attempting to login for the integration to be created in HA.
Looking at the latest SmartHQ android application (v1.0.0.101.17) there is a link for Non-European accounts to sign in which resolves this problem of getting the authorization code.
Any chance we can get the alternative region added to login and have a user selection for each method?
Logger: gehomesdk.clients.async_login_flows
Source: /usr/local/lib/python3.9/site-packages/gehomesdk/clients/async_login_flows.py:66
There was a problem getting the authorization code, response details: {'method': 'POST', 'cookies': <SimpleCookie: abgea_region='eu-west-1'>, '_real_url': URL('https://accounts.brillion.geappliances.com/oauth2/g_authenticate'), '_url': URL('https://accounts.brillion.geappliances.com/oauth2/g_authenticate'), '_body':..........etc.
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/gehomesdk/clients/async_login_flows.py", line 60, in async_get_authorization_code
code = await async_handle_ok_response(session, await resp.text())
File "/usr/local/lib/python3.9/site-packages/gehomesdk/clients/async_login_flows.py", line 95, in async_handle_ok_response
raise GeAuthFailedError(f"Authentication failed, reason: {reason}")
gehomesdk.exception.ge_auth_failed_error.GeAuthFailedError: Authentication failed, reason: Invalid credentials
Have been using it with Fisher Paykel Washing Machine WH1160F2.
Component has worked flawlessly until this recent update.
I'm tracking this one down, but it looks like they should just be "On" if the ice maker is enabled and "On" if any one of the doors to the refrigerator or freezer are open. Instead, the Door binary_sensor defaults to "Closed" continuously regardless of actions, and the Ice Maker control status always reports "Off".
I can see in the SDK where they're instrumented - both as a property. But they seem to not see events in the HA component.
The water_heater entity for the hot water dispenser on a GE refrigerator isn't created properly. It appears to be something incorrect in the device_state_attributes, resulting in:
Hopefully the error messages below are helpful.
2021-02-07 16:40:47 ERROR (MainThread) [homeassistant.components.water_heater] Error adding entities for domain water_heater with platform ge_kitchen
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 315, in async_add_entities
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 506, in _async_add_entity
await entity.add_to_platform_finish()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 531, in add_to_platform_finish
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 296, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 323, in _async_write_ha_state
attr.update(self.device_state_attributes or {})
File "/config/custom_components/ge_kitchen/entities/common/ge_water_heater.py", line 54, in device_state_attributes
return {**other_attrs}
TypeError: 'NoneType' object is not a mapping
2021-02-07 16:40:47 ERROR (MainThread) [homeassistant.components.water_heater] Error while setting up ge_kitchen platform for water_heater
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 206, in _async_setup_platform
await asyncio.gather(*pending)
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 315, in async_add_entities
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 506, in _async_add_entity
await entity.add_to_platform_finish()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 531, in add_to_platform_finish
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 296, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 323, in _async_write_ha_state
attr.update(self.device_state_attributes or {})
File "/config/custom_components/ge_kitchen/entities/common/ge_water_heater.py", line 54, in device_state_attributes
return {**other_attrs}
TypeError: 'NoneType' object is not a mapping
2021-02-07 16:41:17 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/config/custom_components/ge_kitchen/update_coordinator.py", line 251, in on_device_update
entity.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 296, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 323, in _async_write_ha_state
attr.update(self.device_state_attributes or {})
File "/config/custom_components/ge_kitchen/entities/common/ge_water_heater.py", line 54, in device_state_attributes
return {**other_attrs}
TypeError: 'NoneType' object is not a mapping
2021-02-07 16:41:47 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/config/custom_components/ge_kitchen/update_coordinator.py", line 251, in on_device_update
entity.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 296, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 323, in _async_write_ha_state
attr.update(self.device_state_attributes or {})
File "/config/custom_components/ge_kitchen/entities/common/ge_water_heater.py", line 54, in device_state_attributes
return {**other_attrs}
TypeError: 'NoneType' object is not a mapping
I'll continue to play with this (it looks like an object mismatch), but I need to learn the SDK first. :)
I have a brand new GE Monogram wall oven. The integration installs and works (mostly). It has several modes that aren't available in the integration. Specifically:
Warm
Proof
Broil
these are available in the oven menus but not in the integration.... any thoughts here? I use the warm mode most often but there's no way to access it via home assistant...
jeff
I'd like to see support for my Opal ice maker added to this integration. I am certainly willing to assist in any way possible!
Model #: XPIOX3
Type: Opal Nugget Ice Maker
Just a heads up here, I am getting this error as of 2021.10, relating to the Sabbath mode icon.
Icon mdi:judaism was renamed to mdi:star-david, please change your config, it will be removed in version 2021.12.
Currently integration may show incorrect temperature for a fridge like this:
Controls
ZG033204 Freezer
-4 °C
Currently: -3 °C
ZG033204 Fridge
38 °C
Currently: 37 °C
Fridge itself is set to use Celsius degrees. HA is set to use Metric system as well. It's obvious that temperature is in Fahrenheit degrees but it is attributed as it is in Celsius. It should either be converted into Celsius or attributed correctly.
fridge.py should be units aware as it contains this: "units = self.hass.config.units".
By changing units at the Configuration/General/Unit System to the Imperial, integration reports temperature this way:
ZG033204 Freezer
25 °F
Currently: 28 °F
ZG033204 Fridge
100 °F
Currently: 99 °F
As we see in both cases temperature is wrong. This makes me think that GE always reports temperature in Fahrenheit degrees and reports measurement units separately via API. In this case "ConvertableDrawerModeOptionsConverter(units)" should be used with care in a code as it may do things wrong.
I may provide a help to debug issue if needed.
I am running HA core on TrueNAS. When I try to load the integration, I keep getting the following error:
Logger: homeassistant.config_entries
Source: config_entries.py:711
First occurred: 9:43:29 PM (1 occurrences)
Last logged: 9:43:29 PM
Error occurred loading configuration flow for integration ge_home: No module named 'lxml'
Any advice on manually adding the lxml module?
I'm having an issue connecting my second oven.
I first installed the integration and both ovens shower up but one was unavailable. So I deleted the integration and tried again and now it only shows one oven and it says integration not loaded check logs.
This is the error code I get
2021-06-21 23:42:51 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/config/custom_components/ge_home/update_coordinator.py", line 285, in on_device_initial_update
self.maybe_add_appliance_api(appliance)
File "/config/custom_components/ge_home/update_coordinator.py", line 121, in maybe_add_appliance_api
api.build_entities_list()
File "/config/custom_components/ge_home/devices/base.py", line 112, in build_entities_list
e for e in self.get_all_entities()
File "/config/custom_components/ge_home/devices/oven.py", line 34, in get_all_entities
cooktop_config: ErdCooktopConfig = self.appliance.get_erd_value(ErdCode.COOKTOP_CONFIG)
File "/usr/local/lib/python3.8/site-packages/gehomesdk/ge_appliance.py", line 119, in get_erd_value
return self._property_cache[erd_code]
KeyError: <ErdCode.COOKTOP_CONFIG: '0x551c'>
The entity switches from "True" to "Unknown" when the dispenser is in use. Looking at the SDK, it seems that this is a [bool] type, so it should be created in HA as a binary-sensor instead.
I have a GE Induction Range that has a built in Oven that is compatible with SmartIQ. It definitely looks like one of the earlier devices that were put out with Smart capabilities.
Model: PHB920SJ3SS
Type: Oven
Firmware: 0.0.0.0
The following entities are populated properly (I have renamed the device/entities away from the serial number and to just "oven"):
sensor.oven_cook_mode
sensor.oven_cook_time_remaining
sensor.oven_kitchen_timer
binary_sensor.oven_remote_enabled
switch.oven_sabbath_mode
sensor.oven_user_temp_offset
The item that does not work properly is the following:
water_heater.oven
This is what shows up in the logs:
2021-09-01 00:22:30 ERROR (MainThread) [homeassistant.components.water_heater] Error adding entities for domain water_heater with platform ge_home
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 382, in async_add_entities
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 587, in _async_add_entity
await entity.add_to_platform_finish()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 711, in add_to_platform_finish
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 464, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 500, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/water_heater/init.py", line 203, in state_attributes
self.current_temperature,
File "/config/custom_components/ge_home/entities/oven/ge_oven.py", line 83, in current_temperature
return self.get_erd_value("RAW_TEMPERATURE")
File "/config/custom_components/ge_home/entities/oven/ge_oven.py", line 174, in get_erd_value
return self.appliance.get_erd_value(erd_code)
File "/usr/local/lib/python3.9/site-packages/gehomesdk/ge_appliance.py", line 136, in get_erd_value
return self._property_cache[erd_code]
KeyError: <ErdCode.UPPER_OVEN_RAW_TEMPERATURE: '0x510d'>
Shabbos mode is not working and I have this error in my logs
Logger: homeassistant
Source: helpers/entity.py:361
First occurred: 7:56:02 AM (3 occurrences)
Last logged: 8:01:32 AM
Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/config/custom_components/ge_home/update_coordinator.py", line 251, in on_device_update
entity.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 361, in async_write_ha_state
raise RuntimeError(f"Attribute hass is None for {self}")
RuntimeError: Attribute hass is None for
This issue is for working through the support for GE Split A/C Units. If you have one of these units, please let me know if the latest dev release enables support for these within HA. @RobertusIT, we can continue the discussion from the gehome repository here.
HAss History always shows Closed for my appliances' (Washing Machine & Dryer) door.
However, your gehomesdk shows the state change. Any way to enable that sensor (and any other ERDs not enabled/receiving state [ex, door locked] - full audit of what ERDs are enabled in hass?)?
2021-08-06 09:31:55,899 DEBUG Using selector: SelectSelector
C:\Users\steve.redden.REDNET\Documents\Development\gehome-master\gehome-master\examples\websocket_example.py:75: DeprecationWarning: The object should be created within an async function
session = aiohttp.ClientSession()
2021-08-06 09:31:55,899 DEBUG Getting OAuth2 token
2021-08-06 09:31:55,919 DEBUG Client changed state: GeClientState.INITIALIZING to GeClientState.AUTHORIZING_OAUTH
2021-08-06 09:31:56,680 DEBUG Getting WS credentials
2021-08-06 09:31:56,680 DEBUG Client changed state: GeClientState.AUTHORIZING_OAUTH to GeClientState.AUTHORIZING_CLIENT
2021-08-06 09:31:56,779 INFO Starting GE Appliances client
2021-08-06 09:31:56,794 DEBUG Client changed state: GeClientState.AUTHORIZING_CLIENT to GeClientState.CONNECTING
2021-08-06 09:31:56,825 DEBUG client - state = CONNECTING
2021-08-06 09:31:56,888 DEBUG client - event = connection_made(<asyncio.sslproto._SSLProtocolTransport object at 0x00000212BAB95820>)
2021-08-06 09:31:56,888 DEBUG client > GET /?access_token=REDACTED HTTP/1.1
2021-08-06 09:31:56,888 DEBUG client > Headers([('Host', 'ws-us-east-1.brillion.geappliances.com'), ('Upgrade', 'websocket'), ('Connection', 'Upgrade'), ('Sec-WebSocket-Key', '6E8BjqMBUzR8XURh6BlxDg=='), ('Sec-WebSocket-Version', '13'), ('Sec-WebSocket-Extensions', 'permessage-deflate; client_max_window_bits'), ('User-Agent', 'Python/3.9 websockets/9.1')])
2021-08-06 09:31:57,294 DEBUG client - event = data_received(<212 bytes>)
2021-08-06 09:31:57,309 DEBUG client < HTTP/1.1 101 Switching Protocols
2021-08-06 09:31:57,309 DEBUG client < Headers([('Date', 'Fri, 06 Aug 2021 14:31:57 GMT'), ('Connection', 'upgrade'), ('upgrade', 'websocket'), ('sec-websocket-accept', 'WB87fuuBHuDMxJaowEDTIc8D74o='), ('sec-websocket-extensions', 'permessage-deflate')])
2021-08-06 09:31:57,309 DEBUG client - state = OPEN
2021-08-06 09:31:57,309 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#subscribe", "action": "subscribe", "resources": ["/appliance/*/erd/*"]}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:31:57,309 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance", "id": "List-appliances"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:31:57,309 DEBUG Client changed state: GeClientState.CONNECTING to GeClientState.CONNECTED
2021-08-06 09:31:57,388 DEBUG client - event = data_received(<49 bytes>)
2021-08-06 09:31:57,388 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#subscribe","success":true}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:31:57,497 DEBUG client - event = data_received(<300 bytes>)
2021-08-06 09:31:57,497 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"List-appliances","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance"},"success":true,"code":200,"body":{"kind":"appliance#applianceList","userId":"a7o71pz52pf8cxi","items":[{"applianceId":"D828C95D21C9","type":"Clothes Dryer","brand":"Unknown","jid":"d828c95d21c9_a7o71pz52pf8cxi","nickname":"Dryer","online":"ONLINE","onlineTime":"2021-08-05T04:09:44.000Z"},{"applianceId":"D828C954A9AE","type":"Clothes Washer","brand":"Unknown","jid":"d828c954a9ae_a7o71pz52pf8cxi","nickname":"Washer","online":"ONLINE","onlineTime":"2021-08-06T08:00:50.000Z"}]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:31:57,497 DEBUG D828C95D21C9 marked available
2021-08-06 09:31:57,497 DEBUG Adding appliance D828C95D21C9
2021-08-06 09:31:57,497 DEBUG Requesting update for client D828C95D21C9
2021-08-06 09:31:57,497 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance/D828C95D21C9/erd", "id": "D828C95D21C9-allErd"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:31:57,497 DEBUG Requesting features for client D828C95D21C9
2021-08-06 09:31:57,497 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance/D828C95D21C9/feature", "id": "Request-features"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:31:57,497 DEBUG D828C954A9AE marked available
2021-08-06 09:31:57,497 DEBUG Adding appliance D828C954A9AE
2021-08-06 09:31:57,497 DEBUG Requesting update for client D828C954A9AE
2021-08-06 09:31:57,497 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance/D828C954A9AE/erd", "id": "D828C954A9AE-allErd"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:31:57,497 DEBUG Requesting features for client D828C954A9AE
2021-08-06 09:31:57,497 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance/D828C954A9AE/feature", "id": "Request-features"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:31:57,497 DEBUG Registering update callback for GeAppliance(D828C95D21C9) (Unknown Type)
2021-08-06 09:31:57,497 DEBUG Registering update callback for GeAppliance(D828C954A9AE) (Unknown Type)
2021-08-06 09:31:57,650 DEBUG client - event = data_received(<330 bytes>)
2021-08-06 09:31:57,651 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"D828C95D21C9-allErd","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C95D21C9/erd"},"success":true,"code":200,"body":{"kind":"appliance#erdList","userId":"a7o71pz52pf8cxi","applianceId":"D828C95D21C9","items":[{"erd":"0x0001","value":"0C47464435354553534E30575700000000000000000000000000000000000000","time":"2021-08-05T04:11:45.976Z"},{"erd":"0x0002","value":"0944533130303838304700000000000000000000000000000000000000000000","time":"2021-08-05T04:11:45.976Z"},{"erd":"0x0008","value":"01","time":"2021-08-05T04:11:45.976Z"},{"erd":"0x0035","value":"00000001","time":"2021-08-05T04:11:45.976Z"},{"erd":"0x0099","value":"00","time":"2021-08-05T04:11:45.976Z"},{"erd":"0x0100","value":"00000B27","time":"2021-08-05T04:11:45.976Z"},{"erd":"0x0101","value":"00000000","time":"2021-08-05T04:11:45.976Z"},{"erd":"0x0102","value":"00","time":"2021-08-05T04:11:45.976Z"},{"erd":"0x0103","value":"01000352","time":"2021-08-05T04:11:45.976Z"},{"erd":"0x0104","value":"00000000","time":"2021-08-05T04:11:45.976Z"},{"erd":"0x0105","value":"00","time":"2021-08-05T04:11:45.976Z"},{"erd":"0x2000","value":"02","time":"2021-08-06T14:23:52.922Z"},{"erd":"0x2001","value":"80","time":"2021-08-06T14:23:52.922Z"},{"erd":"0x2002","value":"00","time":"2021-08-05T04:11:45.976Z"},{"erd":"0x2007","value":"0831","time":"2021-08-06T14:31:50.496Z"},{"erd":"0x200A","value":"89","time":"2021-08-06T14:23:42.266Z"},{"erd":"0x2010","value":"0000","time":"2021-08-05T04:11:45.976Z"},{"erd":"0x2012","value":"01","time":"2021-08-06T14:23:41.400Z"},{"erd":"0x201C","value":"00","time":"2021-08-06T14:23:51.846Z"},{"erd":"0x201D","value":"00","time":"2021-08-05T04:11:45.976Z"},{"erd":"0x2022","value":"0000000000","time":"2021-08-05T04:11:45.976Z"},{"erd":"0x2023","value":"0000","time":"2021-08-05T04:11:45.976Z"},{"erd":"0x2038","value":"FFFF","time":"2021-08-05T04:11:45.976Z"},{"erd":"0x2039","value":"01","time":"2021-08-06T14:23:52.922Z"},{"erd":"0x2040","value":"FF","time":"2021-08-05T04:11:45.976Z"},{"erd":"0x2041","value":"FF","time":"2021-08-05T04:11:45.976Z"},{"erd":"0x204D","value":"04","time":"2021-08-06T14:23:44.459Z"},{"erd":"0x2050","value":"04","time":"2021-08-06T14:23:46.650Z"},{"erd":"0x2051","value":"FF","time":"2021-08-05T04:11:45.976Z"},{"erd":"0x2052","value":"0003","time":"2021-08-05T04:11:45.976Z"},{"erd":"0x2053","value":"00","time":"2021-08-05T04:11:45.976Z"},{"erd":"0x206F","value":"00","time":"2021-08-05T04:11:45.976Z"}]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:31:57,654 DEBUG Setting ErdCode.MODEL_NUMBER to GFD55ESSN0WW
2021-08-06 09:31:57,656 DEBUG Setting ErdCode.SERIAL_NUMBER to DS100880G
2021-08-06 09:31:57,657 DEBUG Setting ErdCode.APPLIANCE_TYPE to ErdApplianceType.DRYER
2021-08-06 09:31:57,657 DEBUG Setting ErdCode.UNIT_TYPE to ErdUnitType.TYPE_120V_CAFE
2021-08-06 09:31:57,658 DEBUG Setting ErdCode.UNKNOWN_0099 to b'\x00'
2021-08-06 09:31:57,658 DEBUG Setting ErdCode.WIFI_MODULE_SW_VERSION to 0.0.11.39
2021-08-06 09:31:57,659 DEBUG Setting ErdCode.WIFI_MODULE_SW_VERSION_AVAILABLE to 0.0.0.0
2021-08-06 09:31:57,659 DEBUG Setting ErdCode.ACM_UPDATING to False
2021-08-06 09:31:57,660 DEBUG Setting ErdCode.APPLIANCE_SW_VERSION to 1.0.3.82
2021-08-06 09:31:57,661 DEBUG Setting ErdCode.APPLIANCE_SW_VERSION_AVAILABLE to 0.0.0.0
2021-08-06 09:31:57,661 DEBUG Setting ErdCode.APPLIANCE_UPDATING to False
2021-08-06 09:31:57,661 DEBUG Setting ErdCode.LAUNDRY_MACHINE_STATE to Run
2021-08-06 09:31:57,662 DEBUG Setting ErdCode.LAUNDRY_SUB_CYCLE to ErdLaundrySubCycle.DRYING
2021-08-06 09:31:57,662 DEBUG Setting ErdCode.LAUNDRY_END_OF_CYCLE to False
2021-08-06 09:31:57,663 DEBUG Setting ErdCode.LAUNDRY_TIME_REMAINING to 0:34:57
2021-08-06 09:31:57,663 DEBUG Setting ErdCode.LAUNDRY_CYCLE to ErdLaundryCycle.MIXED
2021-08-06 09:31:57,663 DEBUG Setting ErdCode.LAUNDRY_DELAY_TIME_REMAINING to 0:00:00
2021-08-06 09:31:57,664 DEBUG Setting ErdCode.LAUNDRY_DOOR to ErdLaundryDoorStatus.CLOSED
2021-08-06 09:31:57,664 DEBUG Setting ErdCode.LAUNDRY_DRYER_LEVEL_SENSOR_DISABLED to False
2021-08-06 09:31:57,665 DEBUG Setting ErdCode.LAUNDRY_UNKNOWN201D to b'\x00'
2021-08-06 09:31:57,665 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')
2021-08-06 09:31:57,665 DEBUG Setting ErdCode.LAUNDRY_DRYER_SHEET_INVENTORY to 0
2021-08-06 09:31:57,666 DEBUG Got timespan value of 65535. Treating as None.
2021-08-06 09:31:57,666 DEBUG Setting ErdCode.LAUNDRY_REMOTE_STATUS to True
2021-08-06 09:31:57,667 DEBUG Setting ErdCode.LAUNDRY_REMOTE_POWER_CONTROL to 255
2021-08-06 09:31:57,667 DEBUG Setting ErdCode.LAUNDRY_UNKNOWN2041 to b'\xff'
2021-08-06 09:31:57,668 DEBUG Setting ErdCode.LAUNDRY_DRYER_DRYNESSNEW_LEVEL to More Dry
2021-08-06 09:31:57,668 DEBUG Setting ErdCode.LAUNDRY_DRYER_TEMPERATURENEW_OPTION to Medium
2021-08-06 09:31:57,669 DEBUG Setting ErdCode.LAUNDRY_DRYER_UNKNOWN2051 to b'\xff'
2021-08-06 09:31:57,669 DEBUG Setting ErdCode.LAUNDRY_DRYER_ECODRY_STATUS to Disabled
2021-08-06 09:31:57,669 DEBUG Setting ErdCode.LAUNDRY_DRYER_TUMBLENEW_STATUS to ErdTumbleStatus.DISABLE
2021-08-06 09:31:57,670 DEBUG Setting ErdCode.LAUNDRY_DRYER_UNKNOWN206F to b'\x00'
2021-08-06 09:31:57,674 DEBUG Got initial appliance type for GeAppliance(D828C95D21C9) (ErdApplianceType.DRYER)
2021-08-06 09:31:57,675 DEBUG Appliance state change detected in GeAppliance(D828C95D21C9) (ErdApplianceType.DRYER). Updated keys: ErdCode.MODEL_NUMBER, ErdCode.SERIAL_NUMBER, ErdCode.APPLIANCE_TYPE, ErdCode.UNIT_TYPE, ErdCode.UNKNOWN_0099, 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, ErdCode.LAUNDRY_TIME_REMAINING, ErdCode.LAUNDRY_CYCLE, ErdCode.LAUNDRY_DELAY_TIME_REMAINING, ErdCode.LAUNDRY_DOOR, ErdCode.LAUNDRY_DRYER_LEVEL_SENSOR_DISABLED, ErdCode.LAUNDRY_UNKNOWN201D, ErdCode.LAUNDRY_DRYER_SHEET_USAGE_CONFIGURATION, ErdCode.LAUNDRY_DRYER_SHEET_INVENTORY, ErdCode.LAUNDRY_REMOTE_STATUS, ErdCode.LAUNDRY_REMOTE_POWER_CONTROL, ErdCode.LAUNDRY_UNKNOWN2041, ErdCode.LAUNDRY_DRYER_DRYNESSNEW_LEVEL, ErdCode.LAUNDRY_DRYER_TEMPERATURENEW_OPTION, ErdCode.LAUNDRY_DRYER_UNKNOWN2051, ErdCode.LAUNDRY_DRYER_ECODRY_STATUS, ErdCode.LAUNDRY_DRYER_TUMBLENEW_STATUS, ErdCode.LAUNDRY_DRYER_UNKNOWN206F
2021-08-06 09:31:57,676 DEBUG Appliance state change detected in GeAppliance(D828C95D21C9) (ErdApplianceType.DRYER)
2021-08-06 09:31:57,681 DEBUG client - event = data_received(<17 bytes>)
2021-08-06 09:31:57,682 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#connect","success":true}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:31:57,731 DEBUG client - event = data_received(<71 bytes>)
2021-08-06 09:31:57,731 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"Request-features","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C954A9AE/feature"},"success":true,"code":200,"body":{"kind":"appliance#applianceFeature","userId":"a7o71pz52pf8cxi","applianceId":"D828C954A9AE","features":["CLOTHES_WASHER_V1_WASHER_LINK"]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:31:57,731 DEBUG Received features ['CLOTHES_WASHER_V1_WASHER_LINK'] for D828C954A9AE
2021-08-06 09:31:57,731 DEBUG client - event = data_received(<41 bytes>)
2021-08-06 09:31:57,731 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"Request-features","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C95D21C9/feature"},"success":true,"code":200,"body":{"kind":"appliance#applianceFeature","userId":"a7o71pz52pf8cxi","applianceId":"D828C95D21C9","features":["CLOTHES_DRYER_V1_EXTENDED_TUMBLE"]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:31:57,731 DEBUG Received features ['CLOTHES_DRYER_V1_EXTENDED_TUMBLE'] for D828C95D21C9
2021-08-06 09:31:57,763 DEBUG client - event = data_received(<275 bytes>)
2021-08-06 09:31:57,763 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"D828C954A9AE-allErd","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C954A9AE/erd"},"success":true,"code":200,"body":{"kind":"appliance#erdList","userId":"a7o71pz52pf8cxi","applianceId":"D828C954A9AE","items":[{"erd":"0x0001","value":"0C47465735353053534E30575700000000000000000000000000000000000000","time":"2021-08-06T08:02:51.037Z"},{"erd":"0x0002","value":"0953523337313831304E00000000000000000000000000000000000000000000","time":"2021-08-06T08:02:51.037Z"},{"erd":"0x0008","value":"02","time":"2021-08-06T08:02:51.037Z"},{"erd":"0x0035","value":"00000002","time":"2021-08-06T08:02:51.037Z"},{"erd":"0x0099","value":"00","time":"2021-08-06T08:02:51.037Z"},{"erd":"0x0100","value":"00000B27","time":"2021-08-06T08:02:51.037Z"},{"erd":"0x0101","value":"00000000","time":"2021-08-06T08:02:51.037Z"},{"erd":"0x0102","value":"00","time":"2021-08-06T08:02:51.037Z"},{"erd":"0x0103","value":"0100026A","time":"2021-08-06T08:02:51.037Z"},{"erd":"0x0104","value":"00000000","time":"2021-08-06T08:02:51.037Z"},{"erd":"0x0105","value":"00","time":"2021-08-06T08:02:51.037Z"},{"erd":"0x2000","value":"00","time":"2021-08-06T14:27:55.255Z"},{"erd":"0x2001","value":"00","time":"2021-08-06T13:52:55.667Z"},{"erd":"0x2002","value":"00","time":"2021-08-06T13:57:25.035Z"},{"erd":"0x2007","value":"0CCF","time":"2021-08-06T13:53:02.709Z"},{"erd":"0x200A","value":"1C","time":"2021-08-06T08:02:51.037Z"},{"erd":"0x2010","value":"0000","time":"2021-08-06T08:02:51.037Z"},{"erd":"0x2012","value":"01","time":"2021-08-06T14:23:27.984Z"},{"erd":"0x2013","value":"00","time":"2021-08-06T13:53:02.709Z"},{"erd":"0x2015","value":"02","time":"2021-08-06T08:02:51.037Z"},{"erd":"0x2016","value":"14","time":"2021-08-06T08:02:51.037Z"},{"erd":"0x2017","value":"02","time":"2021-08-06T08:02:51.037Z"},{"erd":"0x2018","value":"00","time":"2021-08-06T08:02:51.037Z"},{"erd":"0x201D","value":"00","time":"2021-08-06T08:02:51.037Z"},{"erd":"0x2038","value":"FFFF","time":"2021-08-06T08:02:51.037Z"},{"erd":"0x2039","value":"00","time":"2021-08-06T14:22:49.888Z"},{"erd":"0x2040","value":"FF","time":"2021-08-06T08:02:51.037Z"},{"erd":"0x2054","value":"00","time":"2021-08-06T08:02:51.037Z"},{"erd":"0x2055","value":"00","time":"2021-08-06T08:02:51.037Z"},{"erd":"0x205B","value":"00","time":"2021-08-06T08:02:51.037Z"},{"erd":"0x2060","value":"00","time":"2021-08-06T08:02:51.037Z"},{"erd":"0x2061","value":"00","time":"2021-08-06T08:02:51.037Z"},{"erd":"0x2069","value":"000000E203000300","time":"2021-08-06T13:52:55.667Z"}]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.MODEL_NUMBER to GFW550SSN0WW
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.SERIAL_NUMBER to SR371810N
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.APPLIANCE_TYPE to ErdApplianceType.WASHER
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.UNIT_TYPE to ErdUnitType.TYPE_120V_MONOGRAM
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.UNKNOWN_0099 to b'\x00'
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.WIFI_MODULE_SW_VERSION to 0.0.11.39
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.WIFI_MODULE_SW_VERSION_AVAILABLE to 0.0.0.0
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.ACM_UPDATING to False
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.APPLIANCE_SW_VERSION to 1.0.2.106
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.APPLIANCE_SW_VERSION_AVAILABLE to 0.0.0.0
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.APPLIANCE_UPDATING to False
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.LAUNDRY_MACHINE_STATE to Off
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.LAUNDRY_SUB_CYCLE to ErdLaundrySubCycle.CYCLE_NONE
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.LAUNDRY_END_OF_CYCLE to False
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.LAUNDRY_TIME_REMAINING to 0:54:39
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.LAUNDRY_CYCLE to ErdLaundryCycle.NORMAL2
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.LAUNDRY_DELAY_TIME_REMAINING to 0:00:00
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.LAUNDRY_DOOR to ErdLaundryDoorStatus.CLOSED
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.LAUNDRY_WASHER_DOOR_LOCK to False
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.LAUNDRY_WASHER_SOIL_LEVEL to ErdSoilLevel.NORMAL
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.LAUNDRY_WASHER_WASHTEMP_LEVEL to Warm
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.LAUNDRY_WASHER_SPINTIME_LEVEL to ErdSpinTimeLevel.MEDIUM
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.LAUNDRY_WASHER_RINSE_OPTION to ErdRinseOption.INVALID
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.LAUNDRY_UNKNOWN201D to b'\x00'
2021-08-06 09:31:57,763 DEBUG Got timespan value of 65535. Treating as None.
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.LAUNDRY_REMOTE_STATUS to False
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.LAUNDRY_REMOTE_POWER_CONTROL to 255
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.LAUNDRY_WASHER_UNKNOWN2054 to b'\x00'
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.LAUNDRY_WASHER_TIMESAVER to False
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.LAUNDRY_WASHER_PREWASH to False
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.LAUNDRY_WASHER_UNKNOWN2060 to b'\x00'
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.LAUNDRY_WASHER_TUMBLECARE to False
2021-08-06 09:31:57,763 DEBUG Setting ErdCode.LAUNDRY_WASHER_UNKNOWN2069 to b'\x00\x00\x00\xe2\x03\x00\x03\x00'
2021-08-06 09:31:57,763 DEBUG Got initial appliance type for GeAppliance(D828C954A9AE) (ErdApplianceType.WASHER)
2021-08-06 09:31:57,763 DEBUG Appliance state change detected in GeAppliance(D828C954A9AE) (ErdApplianceType.WASHER). Updated keys: ErdCode.MODEL_NUMBER, ErdCode.SERIAL_NUMBER, ErdCode.APPLIANCE_TYPE, ErdCode.UNIT_TYPE, ErdCode.UNKNOWN_0099, 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, ErdCode.LAUNDRY_TIME_REMAINING, 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, ErdCode.LAUNDRY_REMOTE_STATUS, ErdCode.LAUNDRY_REMOTE_POWER_CONTROL, ErdCode.LAUNDRY_WASHER_UNKNOWN2054, ErdCode.LAUNDRY_WASHER_TIMESAVER, ErdCode.LAUNDRY_WASHER_PREWASH, ErdCode.LAUNDRY_WASHER_UNKNOWN2060, ErdCode.LAUNDRY_WASHER_TUMBLECARE, ErdCode.LAUNDRY_WASHER_UNKNOWN2069
2021-08-06 09:31:57,778 DEBUG Appliance state change detected in GeAppliance(D828C954A9AE) (ErdApplianceType.WASHER)
2021-08-06 09:31:57,919 DEBUG client - event = data_received(<52 bytes>)
2021-08-06 09:31:57,919 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"resource":"/appliance/*/erd/*","kind":"websocket#subscription","success":true,"change":"ADDED"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:32:02,759 DEBUG client - event = data_received(<60 bytes>)
2021-08-06 09:32:02,759 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"item":{"applianceId":"D828C95D21C9","erd":"0x2007","time":"2021-08-06T14:32:00.953Z","value":"0827"},"resource":"/appliance/D828C95D21C9/erd/0x2007","kind":"publish#erd","userId":"a7o71pz52pf8cxi"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:32:02,759 DEBUG Setting ErdCode.LAUNDRY_TIME_REMAINING to 0:34:47
2021-08-06 09:32:02,759 DEBUG Appliance state change detected in GeAppliance(D828C95D21C9) (ErdApplianceType.DRYER). Updated keys: ErdCode.LAUNDRY_TIME_REMAINING
2021-08-06 09:32:12,619 DEBUG client - event = data_received(<21 bytes>)
2021-08-06 09:32:12,619 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"item":{"applianceId":"D828C95D21C9","erd":"0x2007","time":"2021-08-06T14:32:11.194Z","value":"081D"},"resource":"/appliance/D828C95D21C9/erd/0x2007","kind":"publish#erd","userId":"a7o71pz52pf8cxi"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:32:12,619 DEBUG Setting ErdCode.LAUNDRY_TIME_REMAINING to 0:34:37
2021-08-06 09:32:12,619 DEBUG Appliance state change detected in GeAppliance(D828C95D21C9) (ErdApplianceType.DRYER). Updated keys: ErdCode.LAUNDRY_TIME_REMAINING
2021-08-06 09:32:17,318 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\x0b\x0b\xc1\x93', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:32:17,341 DEBUG client - event = data_received(<6 bytes>)
2021-08-06 09:32:17,341 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\x0b\x0b\xc1\x93', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:32:17,341 DEBUG client - received solicited pong: 0b0bc193
2021-08-06 09:32:19,133 DEBUG client - event = data_received(<34 bytes>)
2021-08-06 09:32:19,133 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"item":{"applianceId":"D828C954A9AE","erd":"0x2012","time":"2021-08-06T14:32:17.442Z","value":"00"},"resource":"/appliance/D828C954A9AE/erd/0x2012","kind":"publish#erd","userId":"a7o71pz52pf8cxi"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:32:19,133 DEBUG Setting ErdCode.LAUNDRY_DOOR to ErdLaundryDoorStatus.OPEN
2021-08-06 09:32:19,133 DEBUG Appliance state change detected in GeAppliance(D828C954A9AE) (ErdApplianceType.WASHER). Updated keys: ErdCode.LAUNDRY_DOOR
2021-08-06 09:32:22,806 DEBUG client - event = data_received(<18 bytes>)
2021-08-06 09:32:22,806 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"item":{"applianceId":"D828C95D21C9","erd":"0x2007","time":"2021-08-06T14:32:21.409Z","value":"0813"},"resource":"/appliance/D828C95D21C9/erd/0x2007","kind":"publish#erd","userId":"a7o71pz52pf8cxi"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:32:22,806 DEBUG Setting ErdCode.LAUNDRY_TIME_REMAINING to 0:34:27
2021-08-06 09:32:22,806 DEBUG Appliance state change detected in GeAppliance(D828C95D21C9) (ErdApplianceType.DRYER). Updated keys: ErdCode.LAUNDRY_TIME_REMAINING
2021-08-06 09:32:25,008 DEBUG client - event = data_received(<27 bytes>)
2021-08-06 09:32:25,008 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"item":{"applianceId":"D828C954A9AE","erd":"0x2000","time":"2021-08-06T14:32:23.673Z","value":"01"},"resource":"/appliance/D828C954A9AE/erd/0x2000","kind":"publish#erd","userId":"a7o71pz52pf8cxi"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:32:25,008 DEBUG Setting ErdCode.LAUNDRY_MACHINE_STATE to Standby
2021-08-06 09:32:25,008 DEBUG Appliance state change detected in GeAppliance(D828C954A9AE) (ErdApplianceType.WASHER). Updated keys: ErdCode.LAUNDRY_MACHINE_STATE
2021-08-06 09:32:27,312 DEBUG Sending keepalive ping
2021-08-06 09:32:27,313 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:32:27,341 DEBUG client - event = data_received(<29 bytes>)
2021-08-06 09:32:27,341 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:32:31,813 DEBUG client - event = data_received(<19 bytes>)
2021-08-06 09:32:31,819 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"item":{"applianceId":"D828C95D21C9","erd":"0x2007","time":"2021-08-06T14:32:30.839Z","value":"0809"},"resource":"/appliance/D828C95D21C9/erd/0x2007","kind":"publish#erd","userId":"a7o71pz52pf8cxi"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:32:31,819 DEBUG Setting ErdCode.LAUNDRY_TIME_REMAINING to 0:34:17
2021-08-06 09:32:31,819 DEBUG Appliance state change detected in GeAppliance(D828C95D21C9) (ErdApplianceType.DRYER). Updated keys: ErdCode.LAUNDRY_TIME_REMAINING
2021-08-06 09:32:33,028 DEBUG client - event = data_received(<17 bytes>)
2021-08-06 09:32:33,028 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"item":{"applianceId":"D828C954A9AE","erd":"0x2000","time":"2021-08-06T14:32:31.882Z","value":"00"},"resource":"/appliance/D828C954A9AE/erd/0x2000","kind":"publish#erd","userId":"a7o71pz52pf8cxi"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:32:33,028 DEBUG Setting ErdCode.LAUNDRY_MACHINE_STATE to Off
2021-08-06 09:32:33,028 DEBUG Appliance state change detected in GeAppliance(D828C954A9AE) (ErdApplianceType.WASHER). Updated keys: ErdCode.LAUNDRY_MACHINE_STATE
2021-08-06 09:32:33,727 DEBUG client - event = data_received(<19 bytes>)
2021-08-06 09:32:33,727 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"item":{"applianceId":"D828C954A9AE","erd":"0x2012","time":"2021-08-06T14:32:32.868Z","value":"01"},"resource":"/appliance/D828C954A9AE/erd/0x2012","kind":"publish#erd","userId":"a7o71pz52pf8cxi"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:32:33,727 DEBUG Setting ErdCode.LAUNDRY_DOOR to ErdLaundryDoorStatus.CLOSED
2021-08-06 09:32:33,727 DEBUG Appliance state change detected in GeAppliance(D828C954A9AE) (ErdApplianceType.WASHER). Updated keys: ErdCode.LAUNDRY_DOOR
2021-08-06 09:32:37,347 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\xeb\x9c\x984', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:32:37,357 DEBUG client - event = data_received(<6 bytes>)
2021-08-06 09:32:37,372 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\xeb\x9c\x984', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:32:37,372 DEBUG client - received solicited pong: eb9c9834
2021-08-06 09:32:41,903 DEBUG client - event = data_received(<23 bytes>)
2021-08-06 09:32:41,911 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"item":{"applianceId":"D828C95D21C9","erd":"0x2007","time":"2021-08-06T14:32:40.996Z","value":"07FF"},"resource":"/appliance/D828C95D21C9/erd/0x2007","kind":"publish#erd","userId":"a7o71pz52pf8cxi"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:32:41,911 DEBUG Setting ErdCode.LAUNDRY_TIME_REMAINING to 0:34:07
2021-08-06 09:32:41,911 DEBUG Appliance state change detected in GeAppliance(D828C95D21C9) (ErdApplianceType.DRYER). Updated keys: ErdCode.LAUNDRY_TIME_REMAINING
in particular lines 137:138 and 161:162:
...
2021-08-06 09:32:19,133 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"item":{"applianceId":"D828C954A9AE","erd":"0x2012","time":"2021-08-06T14:32:17.442Z","value":"00"},"resource":"/appliance/D828C954A9AE/erd/0x2012","kind":"publish#erd","userId":"a7o71pz52pf8cxi"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:32:19,133 DEBUG Setting ErdCode.LAUNDRY_DOOR to ErdLaundryDoorStatus.OPEN
...
2021-08-06 09:32:33,727 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"item":{"applianceId":"D828C954A9AE","erd":"0x2012","time":"2021-08-06T14:32:32.868Z","value":"01"},"resource":"/appliance/D828C954A9AE/erd/0x2012","kind":"publish#erd","userId":"a7o71pz52pf8cxi"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-06 09:32:33,727 DEBUG Setting ErdCode.LAUNDRY_DOOR to ErdLaundryDoorStatus.CLOSED
...
Is it possible to have a sensor created with the temperature the oven is set to? This information is visible within the app, so I hope it's exposed to the api.
IE: When the oven is turned on, it defaults to being set to 350F. Can a sensor be generated to read that data?
I've tried making a template sensor that calculates the raw_temperature and user_temp_offset, but the user_temp_offset doesn't seem to update very quickly so the template sensor usually just ends up displaying the raw_temperature value.
Would be very nice to have.
@alexanv1, I've started integrating the coffee maker support into the "dev" branch, please give it a shot and let me know what you think.
I'm getting this following error with my dishwasher. I have Cafe appliances and the Dishwasher had to be put on a different router because it will not connect to an Orbi router for some reason. Maybe thats it?? Either way, its happening 1000s of times.
Logger: gehomesdk.erd.converters.dishwasher.erd_user_setting_converter
Source: /usr/local/lib/python3.9/site-packages/gehomesdk/erd/converters/dishwasher/erd_user_setting_converter.py:40
First occurred: 10:30:21 AM (58 occurrences)
Last logged: 10:58:21 AM
Could not construct user setting, using default.
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/gehomesdk/erd/converters/dishwasher/erd_user_setting_converter.py", line 33, in erd_decode
wash_temp = UserWashTempSetting((i & 12288) >> 12),
File "/usr/local/lib/python3.9/enum.py", line 384, in call
return cls.new(cls, value)
File "/usr/local/lib/python3.9/enum.py", line 702, in new
raise ve_exc
ValueError: 3 is not a valid UserWashTempSetting
I presume that the water_heater entity should respond to an "on" event - or perhaps expose a "Start" in operation_mode, but it copies "Normal" and "Sabbath Mode" from the Fridge configuration instead. Also, when you use "water_heater.set_temperature" on the hot water dispenser entity, it sets MOMENTARILY but then goes back to zero (looks like on the next poll).
I have a GE Profile convection oven that does not show up under this integration. I have tried reinstalling the custom component, rebooting HA, and verifying the oven shows up in the SmartHQ app for GE. There is an error that keeps popping up in my HA log.
2021-07-28 05:19:46 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/config/custom_components/ge_home/update_coordinator.py", line 287, in on_device_initial_update
self.maybe_add_appliance_api(appliance)
File "/config/custom_components/ge_home/update_coordinator.py", line 121, in maybe_add_appliance_api
api.build_entities_list()
File "/config/custom_components/ge_home/devices/base.py", line 112, in build_entities_list
e for e in self.get_all_entities()
File "/config/custom_components/ge_home/devices/oven.py", line 34, in get_all_entities
cooktop_config: ErdCooktopConfig = self.appliance.get_erd_value(ErdCode.COOKTOP_CONFIG)
File "/usr/local/lib/python3.9/site-packages/gehomesdk/ge_appliance.py", line 119, in get_erd_value
return self._property_cache[erd_code]
KeyError: <ErdCode.COOKTOP_CONFIG: '0x551c'>
Login Screen
"Failed to connect"
Confirmed I can log into https://accounts.brillion.geappliances.com/consumer/active/home using same credentials.
Getting this error when trying use your HA addon
Logger: custom_components.ge_home.config_flow
Source: custom_components/ge_home/config_flow.py:33
Integration: ge_home (documentation)
First occurred: 5:44:43 PM (1 occurrences)
Last logged: 5:44:43 PM
Unknown connection failure
Traceback (most recent call last):
File "/config/custom_components/ge_home/config_flow.py", line 33, in validate_input
_ = await async_get_oauth2_token(session, data[CONF_USERNAME], data[CONF_PASSWORD])
File "/usr/local/lib/python3.9/site-packages/gehomesdk/clients/async_login_flows.py", line 55, in async_get_oauth2_token
code = parse_qs(urlparse(resp.headers['Location']).query)['code'][0]
KeyError: 'Location'
Any hopes of getting this data?
Is there any intent / desire to add support for microwaves?
Model #: CVM721M2N1S5
Type: Microwave
Did a full deletion of the integration + entities. Re-did the integration.
Serials seem different:
Things seem to be working now!
Only remaining errors are:
2021-08-08 13:43:29 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/config/custom_components/ge_home/update_coordinator.py", line 266, in on_device_update
entity.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 457, in async_write_ha_state
raise RuntimeError(f"Attribute hass is None for {self}")
RuntimeError: Attribute hass is None for <Entity DS100880G Laundry Delay Time Remaining: >
2021-08-08 13:43:29 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/config/custom_components/ge_home/update_coordinator.py", line 266, in on_device_update
entity.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 457, in async_write_ha_state
raise RuntimeError(f"Attribute hass is None for {self}")
RuntimeError: Attribute hass is None for <Entity DS100880G Laundry Machine State: Off>
2021-08-08 13:43:32 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/config/custom_components/ge_home/update_coordinator.py", line 266, in on_device_update
entity.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 457, in async_write_ha_state
raise RuntimeError(f"Attribute hass is None for {self}")
RuntimeError: Attribute hass is None for <Entity SR371810N Laundry Delay Time Remaining: >
2021-08-08 13:43:32 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/config/custom_components/ge_home/update_coordinator.py", line 266, in on_device_update
entity.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 457, in async_write_ha_state
raise RuntimeError(f"Attribute hass is None for {self}")
RuntimeError: Attribute hass is None for <Entity SR371810N Laundry Delay Time Remaining: >
So:
Dryer.Delay Time
Dryer.State
Washer.State
Unsure if they're worth investigating in a different issue, because this one seems to be ready to close!
Originally posted by @steveredden in #28 (comment)
I am getting the following error for SW Version for multiple entities when trying to install GE Home integration:
Logger: homeassistant.components.binary_sensor
Source: custom_components/ge_home/devices/base.py:84
Integration: Binary sensor (documentation, issues)
Error adding entities for domain binary_sensor with platform ge_home
Error while setting up ge_home platform for binary_sensor
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 383, in async_add_entities
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 458, in _async_add_entity
device_info = entity.device_info
File "/config/custom_components/ge_home/entities/common/ge_entity.py", line 25, in device_info
return self.api.device_info
File "/config/custom_components/ge_home/devices/base.py", line 84, in device_info
"sw_version": self.appliance.get_erd_value(ErdCode.APPLIANCE_SW_VERSION),
File "/usr/local/lib/python3.8/site-packages/gehomesdk/ge_appliance.py", line 119, in get_erd_value
return self._property_cache[erd_code]
KeyError: <ErdCode.APPLIANCE_SW_VERSION: '0x0103'>
When performing component initialization I get the error pasted below. I have also tried the ge_kitchen component from ajmarks repository which does not have the authentication error. Same login info of course.
I've tried manual installation and HACS with no success. Anything ideas?
This error originated from a custom integration.
Logger: homeassistant.config_entries
Source: custom_components/ge_home/update_coordinator.py:155
Integration: GE Home (documentation)
First occurred: 4:12:48 PM (1 occurrences)
Last logged: 4:12:48 PM
Error setting up entry GE Home (******@gmail.com) for ge_home
Traceback (most recent call last):
File "/config/custom_components/ge_home/update_coordinator.py", line 153, in async_setup
await self.async_start_client()
File "/config/custom_components/ge_home/update_coordinator.py", line 172, in async_start_client
await self.async_begin_session()
File "/config/custom_components/ge_home/update_coordinator.py", line 182, in async_begin_session
await self.client.async_get_credentials(session)
File "/usr/local/lib/python3.8/site-packages/gehomesdk/clients/base_client.py", line 179, in async_get_credentials
await self.async_do_full_login_flow()
File "/usr/local/lib/python3.8/site-packages/gehomesdk/clients/base_client.py", line 183, in async_do_full_login_flow
self.credentials = await self._async_do_full_login_flow()
File "/usr/local/lib/python3.8/site-packages/gehomesdk/clients/websocket_client.py", line 61, in _async_do_full_login_flow
await self._async_get_oauth2_token()
File "/usr/local/lib/python3.8/site-packages/gehomesdk/clients/base_client.py", line 206, in _async_get_oauth2_token
oauth_token = await async_get_oauth2_token(self._session, self.account_username, self.account_password)
File "/usr/local/lib/python3.8/site-packages/gehomesdk/clients/async_login_flows.py", line 67, in async_get_oauth2_token
raise GeAuthFailedError(await resp.text())
gehomesdk.exception.ge_auth_failed_error.GeAuthFailedError: {
"error": "invalid_grant",
"error_description": "Invalid Authorization Code"
}
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 293, in async_setup
result = await component.async_setup_entry(hass, self) # type: ignore
File "/config/custom_components/ge_home/init.py", line 26, in async_setup_entry
if not await coordinator.async_setup():
File "/config/custom_components/ge_home/update_coordinator.py", line 155, in async_setup
raise HaAuthError('Authentication failure')
custom_components.ge_home.exceptions.HaAuthError: Authentication failure
I'm just wondering if you plan on supporting climate entities to allow setting mode and temps for an A/C? I installed the integration and configured it no problem. My A/C shows all the values, but I can't set them because they are all just sensors. I'm just wondering if you have any plans to implement support for climate too? Turning the power on and off as a switch works :)
The SmartHQ app allows for turning on and off of lights for the double oven but they don't seem to be found as entities.
What do I need to do to get the water softener setup?
Model GXSHC40N it shows in the phone app but not HA yet. :)
Where is this SDK repository that will offer debug? Nevermind I see and will post what I find
When I updated to 0.4.0, I lost everything except time remaining. When I reverted to 0.3.12 all entities reappeared.
Is it possible to create switch entities for "Lock Controls" and "Sounds" for dishwasher user settings? Below are logs from toggling within the GE Home app.
Dishwasher = GDF530PGM0CC
Lock Controls Enabled
Setting ErdCode.DISHWASHER_USER_SETTING to ErdUserSetting(sound=<UserSetting.DISABLE: 0>, lock_control=<UserSetting.ENABLE: 1>, sabbath=<UserSetting.DISABLE: 0>, cycle_mode=<UserCycleSetting.THIRTY_MIN: 4>, presoak=<UserSetting.ENABLE: 1>, bottle_jet=<UserSetting.DISABLE: 0>, wash_temp=<UserWashTempSetting.BOOST_AND_SANITIZE: 3>, dry_option=<UserDryOptionSetting.MAX_DRY: 2>, wash_zone=<UserWashZoneSetting.BOTH: 0>, delay_hours=4, raw_value='043B24')
Lock Controls Disabled
Setting ErdCode.DISHWASHER_USER_SETTING to ErdUserSetting(sound=<UserSetting.DISABLE: 0>, lock_control=<UserSetting.DISABLE: 0>, sabbath=<UserSetting.DISABLE: 0>, cycle_mode=<UserCycleSetting.THIRTY_MIN: 4>, presoak=<UserSetting.ENABLE: 1>, bottle_jet=<UserSetting.DISABLE: 0>, wash_temp=<UserWashTempSetting.BOOST_AND_SANITIZE: 3>, dry_option=<UserDryOptionSetting.MAX_DRY: 2>, wash_zone=<UserWashZoneSetting.BOTH: 0>, delay_hours=4, raw_value='043924')
Sounds Enabled
Setting ErdCode.DISHWASHER_USER_SETTING to ErdUserSetting(sound=<UserSetting.ENABLE: 1>, lock_control=<UserSetting.DISABLE: 0>, sabbath=<UserSetting.DISABLE: 0>, cycle_mode=<UserCycleSetting.THIRTY_MIN: 4>, presoak=<UserSetting.ENABLE: 1>, bottle_jet=<UserSetting.DISABLE: 0>, wash_temp=<UserWashTempSetting.BOOST_AND_SANITIZE: 3>, dry_option=<UserDryOptionSetting.MAX_DRY: 2>, wash_zone=<UserWashZoneSetting.BOTH: 0>, delay_hours=4, raw_value='843924')
Sounds Disabled
Setting ErdCode.DISHWASHER_USER_SETTING to ErdUserSetting(sound=<UserSetting.DISABLE: 0>, lock_control=<UserSetting.DISABLE: 0>, sabbath=<UserSetting.DISABLE: 0>, cycle_mode=<UserCycleSetting.THIRTY_MIN: 4>, presoak=<UserSetting.ENABLE: 1>, bottle_jet=<UserSetting.DISABLE: 0>, wash_temp=<UserWashTempSetting.BOOST_AND_SANITIZE: 3>, dry_option=<UserDryOptionSetting.MAX_DRY: 2>, wash_zone=<UserWashZoneSetting.BOTH: 0>, delay_hours=4, raw_value='043924')
Hi,
i open this support, because i make a fresh HA installation, and i see with last ha_gehome-0.5.0-dev3, ( i didn't remember if is already present in previous version ), that there are 2 temperature sensor, in Fahrenheit and not Celsius.
On app, ( Geappliances in europe, SmartHQ in US ) is already setup Celsius.
I remember that was a know issue, when we tested first time the integration.
sensor.d_ac_ambient_temperature
sensor.d_ac_target_temperature
note. you can see C, but it isn't, because if in my house there was 84 Celsius, i was dead ;)
Should be great if get from app celsius and not Fahrenheit , or when you import any devices, to choose from f to c or viceversa.
Thanks for the amazing support and integration!
Woke up this morning to seeing the entity statuses for both my washer and dryer show as unavailable. The only errors logged in HA are below:
Logger: aiohttp.server
Source: /usr/local/lib/python3.8/site-packages/aiohttp/web_protocol.py:393
First occurred: 8:16:54 AM (52 occurrences)
Last logged: 8:21:39 AM
Error handling request
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/aiohttp/web_protocol.py", line 314, in data_received
messages, upgraded, tail = self._request_parser.feed_data(data)
File "aiohttp/_http_parser.pyx", line 546, in aiohttp._http_parser.HttpParser.feed_data
aiohttp.http_exceptions.BadStatusLine: 400, message="Bad status line 'invalid HTTP method'"
Hey, the integration looks good overall but I have something Id like to change if you can point me in the right direction. The home assistant integration into HomeKit lets me see and change the temp of the oven but wont turn it off. The low limit is 170 and high limit is in the 500s. So im wondering If I can change the lower limit to 0? Or if theres simply a way to add an off button.
Thanks
I'm getting the following error when setting up my oven.
`This error originated from a custom integration.
Logger: custom_components.ge_home.config_flow
Source: custom_components/ge_home/config_flow.py:33
Integration: GE Home (documentation)
First occurred: 7:32:13 AM (2 occurrences)
Last logged: 8:03:10 AM
Unknown connection failure
Traceback (most recent call last):
File "/config/custom_components/ge_home/config_flow.py", line 33, in validate_input
_ = await async_get_oauth2_token(session, data[CONF_USERNAME], data[CONF_PASSWORD])
File "/usr/local/lib/python3.8/site-packages/gehomesdk/clients/async_login_flows.py", line 55, in async_get_oauth2_token
code = parse_qs(urlparse(resp.headers['Location']).query)['code'][0]
KeyError: 'Location'
`
I'm getting some warning about sabbath switch also, but I think it may be related to this.
`Logger: homeassistant.helpers.service
Source: helpers/service.py:128
First occurred: 7:39:08 AM (2 occurrences)
Last logged: 7:39:11 AM
Unable to find referenced entities switch.shvh173907p_sabbath_mode`
I also have the following warning.
`Logger: slixmpp.stringprep
Source: /usr/local/lib/python3.8/site-packages/slixmpp/stringprep.py:120
First occurred: 7:15:43 AM (1 occurrences)
Last logged: 7:15:43 AM
Using slower stringprep, consider compiling the faster cython/libidn one.`
FYI, I'm running this in docker and installed HACS through the docker container. The oven controls are also coming up as water heater controls.
Hi
Through the GE SmartHQ app I have a few other items that this integration doesn't have. Would it be possible to add any of these?
My fridge (GE Model PVD28BYNFS) has the following options in the app that are not already covered by the integration:
-Convertible drawer (the middle drawer can change to 4 different temp settings for Meat (29 F), Beverages (33 F), Snacks (37 F), or Wine (42 F). This one is the most important because the current door status indicator on this component doesn't even recognize that the middle drawer on this fridge exists.
-Lighting preference - 0%-100% slider for the LED backlighting brightness inside the refrigerator.
-Lighting preference - turn off or on proximity light that enables the light under water dispenser
Thanks!!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.