simbaja / gehome

Python SDK for GE smart appliances
MIT License
42 stars 29 forks source link

Air Conditioner AHTK08AA #21

Closed mbrentrowe closed 3 years ago

mbrentrowe commented 3 years ago

I'm posting my debug logs that I generated from running websocket_example.py. Below is a link to the specific unit:

https://www.geappliances.com/appliance/GE-ENERGY-STAR-8-000-BTU-115-Volt-Smart-Electronic-Window-Air-Conditioner-AHTK08AA

I did a few basic things like adjusting the power up and down and then turning the unit off and back on again. Those should be the last four ERD codes generated in these logs. I can do some further testing later this week to make sure I've identified the correct ERD codes if they haven't already been identified from other integrations. Happy to help however I can with getting this integrated.

2021-07-27 21:06:39,295 DEBUG Using selector: EpollSelector websocket_example.py:72: DeprecationWarning: The object should be created within an async function session = aiohttp.ClientSession() 2021-07-27 21:06:39,295 DEBUG Getting OAuth2 token 2021-07-27 21:06:39,296 DEBUG Client changed state: GeClientState.INITIALIZING to GeClientState.AUTHORIZING_OAUTH 2021-07-27 21:06:40,395 DEBUG Getting WS credentials 2021-07-27 21:06:40,396 DEBUG Client changed state: GeClientState.AUTHORIZING_OAUTH to GeClientState.AUTHORIZING_CLIENT 2021-07-27 21:06:40,556 INFO Starting GE Appliances client 2021-07-27 21:06:40,565 DEBUG Client changed state: GeClientState.AUTHORIZING_CLIENT to GeClientState.CONNECTING 2021-07-27 21:06:40,632 DEBUG client - state = CONNECTING 2021-07-27 21:06:40,696 DEBUG client - event = connection_made(<asyncio.sslproto._SSLProtocolTransport object at 0x7f63b4747e80>) 2021-07-27 21:06:40,697 DEBUG client > GET /?access_token=ue1cpguwnbi7j4ttu6e1xju8u0qg96bm HTTP/1.1 2021-07-27 21:06:40,697 DEBUG client > Headers([('Host', 'ws-us-east-1.brillion.geappliances.com'), ('Upgrade', 'websocket'), ('Connection', 'Upgrade'), ('Sec-WebSocket-Key', '0JSyzaPopkIUtAxZbg9plg=='), ('Sec-WebSocket-Version', '13'), ('Sec-WebSocket-Extensions', 'permessage-deflate; client_max_window_bits'), ('User-Agent', 'Python/3.8 websockets/9.1')]) 2021-07-27 21:06:40,898 DEBUG client - event = data_received(<212 bytes>) 2021-07-27 21:06:40,898 DEBUG client < HTTP/1.1 101 Switching Protocols 2021-07-27 21:06:40,898 DEBUG client < Headers([('Date', 'Wed, 28 Jul 2021 01:06:40 GMT'), ('Connection', 'upgrade'), ('upgrade', 'websocket'), ('sec-websocket-accept', 'dozMcmDg/qBIxazUV7f5+AmjN5A='), ('sec-websocket-extensions', 'permessage-deflate')]) 2021-07-27 21:06:40,899 DEBUG client - state = OPEN 2021-07-27 21:06:40,899 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-07-27 21:06:40,899 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-07-27 21:06:40,900 DEBUG Client changed state: GeClientState.CONNECTING to GeClientState.CONNECTED 2021-07-27 21:06:40,984 DEBUG client - event = data_received(<49 bytes>) 2021-07-27 21:06:40,984 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#subscribe","success":true}', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:06:41,054 DEBUG client - event = data_received(<266 bytes>) 2021-07-27 21:06:41,054 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":"x11gujwz9srdb40","items":[{"applianceId":"D828C95AC480","type":"Air Conditioner","brand":"Unknown","jid":"d828c95ac480_x11gujwz9srdb40","nickname":"Air Conditioner","online":"ONLINE","onlineTime":"2021-07-27T22:18:38.000Z"}]}}', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:06:41,055 DEBUG D828C95AC480 marked available 2021-07-27 21:06:41,055 DEBUG Adding appliance D828C95AC480 2021-07-27 21:06:41,055 DEBUG Requesting update for client D828C95AC480 2021-07-27 21:06:41,055 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/D828C95AC480/erd", "id": "D828C95AC480-allErd"}', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:06:41,055 DEBUG Requesting features for client D828C95AC480 2021-07-27 21:06:41,055 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/D828C95AC480/feature", "id": "Request-features"}', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:06:41,056 DEBUG Registering update callback for GeAppliance(D828C95AC480) (Unknown Type) 2021-07-27 21:06:41,214 DEBUG client - event = data_received(<44 bytes>) 2021-07-27 21:06:41,214 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/D828C95AC480/feature"},"success":true,"code":200,"body":{"kind":"appliance#applianceFeature","userId":"x11gujwz9srdb40","applianceId":"D828C95AC480","features":[]}}', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:06:41,215 DEBUG Received features [] for D828C95AC480 2021-07-27 21:06:41,234 DEBUG client - event = data_received(<253 bytes>) 2021-07-27 21:06:41,234 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"D828C95AC480-allErd","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C95AC480/erd"},"success":true,"code":200,"body":{"kind":"appliance#erdList","userId":"x11gujwz9srdb40","applianceId":"D828C95AC480","items":[{"erd":"0x0001","value":"084148544B303841410000000000000000000000000000000000000000000000","time":"2021-07-27T22:20:43.278Z"},{"erd":"0x0002","value":"0000000000000000000000000000000000000000000000000000000000000000","time":"2021-07-27T22:20:43.278Z"},{"erd":"0x0007","value":"00","time":"2021-07-27T22:20:39.135Z"},{"erd":"0x0008","value":"0A","time":"2021-07-27T22:20:43.278Z"},{"erd":"0x0035","value":"00000000","time":"2021-07-27T22:20:51.417Z"},{"erd":"0x0099","value":"00","time":"2021-07-27T22:20:43.278Z"},{"erd":"0x0100","value":"00000B27","time":"2021-07-27T22:20:42.123Z"},{"erd":"0x0101","value":"00000000","time":"2021-07-27T22:20:42.123Z"},{"erd":"0x0102","value":"00","time":"2021-07-27T22:20:42.123Z"},{"erd":"0x0103","value":"00000000","time":"2021-07-27T22:20:42.123Z"},{"erd":"0x0104","value":"00000000","time":"2021-07-27T22:20:42.123Z"},{"erd":"0x0105","value":"00","time":"2021-07-27T22:20:43.278Z"},{"erd":"0x7003","value":"0040","time":"2021-07-27T22:20:39.135Z"},{"erd":"0x7A00","value":"08","time":"2021-07-27T22:20:39.135Z"},{"erd":"0x7A01","value":"00","time":"2021-07-27T22:20:39.135Z"},{"erd":"0x7A02","value":"44","time":"2021-07-28T00:09:43.655Z"},{"erd":"0x7A04","value":"00","time":"2021-07-27T22:20:39.135Z"},{"erd":"0x7A0F","value":"01","time":"2021-07-27T22:20:39.135Z"},{"erd":"0x7A12","value":"0014B745","time":"2021-07-28T00:20:43.961Z"},{"erd":"0xD005","value":"02B7000000000000000000","time":"2021-07-27T22:20:39.135Z"},{"erd":"0xD006","value":"00","time":"2021-07-27T22:20:39.135Z"}]}}', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:06:41,235 DEBUG Setting ErdCode.MODEL_NUMBER to AHTK08AA 2021-07-27 21:06:41,235 DEBUG Setting ErdCode.SERIAL_NUMBER to 2021-07-27 21:06:41,235 DEBUG Setting ErdCode.TEMPERATURE_UNIT to ErdMeasurementUnits.IMPERIAL 2021-07-27 21:06:41,235 DEBUG Setting ErdCode.APPLIANCE_TYPE to ErdApplianceType.UNKNOWN 2021-07-27 21:06:41,235 DEBUG Setting ErdCode.UNIT_TYPE to ErdUnitType.UNKNOWN 2021-07-27 21:06:41,235 DEBUG Setting ErdCode.UNKNOWN_0099 to b'\x00' 2021-07-27 21:06:41,235 DEBUG Setting ErdCode.WIFI_MODULE_SW_VERSION to 0.0.11.39 2021-07-27 21:06:41,235 DEBUG Setting ErdCode.WIFI_MODULE_SW_VERSION_AVAILABLE to 0.0.0.0 2021-07-27 21:06:41,236 DEBUG Setting ErdCode.ACM_UPDATING to False 2021-07-27 21:06:41,236 DEBUG Setting ErdCode.APPLIANCE_SW_VERSION to 0.0.0.0 2021-07-27 21:06:41,236 DEBUG Setting ErdCode.APPLIANCE_SW_VERSION_AVAILABLE to 0.0.0.0 2021-07-27 21:06:41,236 DEBUG Setting ErdCode.APPLIANCE_UPDATING to False 2021-07-27 21:06:41,236 DEBUG Setting 0x7003 to b'\x00@' 2021-07-27 21:06:41,236 DEBUG Setting 0x7A00 to b'\x08' 2021-07-27 21:06:41,236 DEBUG Setting 0x7A01 to b'\x00' 2021-07-27 21:06:41,236 DEBUG Setting 0x7A02 to b'D' 2021-07-27 21:06:41,236 DEBUG Setting 0x7A04 to b'\x00' 2021-07-27 21:06:41,236 DEBUG Setting 0x7A0F to b'\x01' 2021-07-27 21:06:41,236 DEBUG Setting 0x7A12 to b'\x00\x14\xb7E' 2021-07-27 21:06:41,236 DEBUG Setting 0xD005 to b'\x02\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00' 2021-07-27 21:06:41,237 DEBUG Setting 0xD006 to b'\x00' 2021-07-27 21:06:41,237 DEBUG Got initial appliance type for GeAppliance(D828C95AC480) (ErdApplianceType.UNKNOWN) 2021-07-27 21:06:41,237 DEBUG Appliance state change detected in GeAppliance(D828C95AC480) (ErdApplianceType.UNKNOWN). Updated keys: ErdCode.MODEL_NUMBER, ErdCode.SERIAL_NUMBER, ErdCode.TEMPERATURE_UNIT, 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, 0x7003, 0x7A00, 0x7A01, 0x7A02, 0x7A04, 0x7A0F, 0x7A12, 0xD005, 0xD006 2021-07-27 21:06:41,237 DEBUG Appliance state change detected in GeAppliance(D828C95AC480) (ErdApplianceType.UNKNOWN)2021-07-27 21:06:41,406 DEBUG client - event = data_received(<17 bytes>) 2021-07-27 21:06:41,406 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#connect","success":true}', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:06:41,521 DEBUG client - event = data_received(<50 bytes>) 2021-07-27 21:06:41,521 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-07-27 21:07:00,906 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'c:\xe9\x91', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:07:00,937 DEBUG client - event = data_received(<6 bytes>) 2021-07-27 21:07:00,938 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'c:\xe9\x91', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:07:00,938 DEBUG client - received solicited pong: 633ae991 2021-07-27 21:07:10,901 DEBUG Sending keepalive ping 2021-07-27 21:07:10,901 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-07-27 21:07:10,943 DEBUG client - event = data_received(<28 bytes>) 2021-07-27 21:07:10,943 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:07:20,950 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\x8c56', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:07:20,985 DEBUG client - event = data_received(<6 bytes>) 2021-07-27 21:07:20,985 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\x8c56', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:07:20,985 DEBUG client - received solicited pong: 2a8c3536 2021-07-27 21:07:40,921 DEBUG Sending keepalive ping 2021-07-27 21:07:40,921 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-07-27 21:07:40,980 DEBUG client - event = data_received(<6 bytes>) 2021-07-27 21:07:40,980 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:07:40,986 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\xae\xfa\xc8\xa7', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:07:41,013 DEBUG client - event = data_received(<6 bytes>) 2021-07-27 21:07:41,013 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\xae\xfa\xc8\xa7', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:07:41,013 DEBUG client - received solicited pong: aefac8a7 2021-07-27 21:07:41,056 DEBUG Requesting update for GeAppliance(D828C95AC480) (ErdApplianceType.UNKNOWN) 2021-07-27 21:07:41,056 DEBUG Requesting update for client D828C95AC480 2021-07-27 21:07:41,056 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/D828C95AC480/erd", "id": "D828C95AC480-allErd"}', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:07:41,232 DEBUG client - event = data_received(<26 bytes>) 2021-07-27 21:07:41,232 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"D828C95AC480-allErd","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C95AC480/erd"},"success":true,"code":200,"body":{"kind":"appliance#erdList","userId":"x11gujwz9srdb40","applianceId":"D828C95AC480","items":[{"erd":"0x0001","value":"084148544B303841410000000000000000000000000000000000000000000000","time":"2021-07-27T22:20:43.278Z"},{"erd":"0x0002","value":"0000000000000000000000000000000000000000000000000000000000000000","time":"2021-07-27T22:20:43.278Z"},{"erd":"0x0007","value":"00","time":"2021-07-27T22:20:39.135Z"},{"erd":"0x0008","value":"0A","time":"2021-07-27T22:20:43.278Z"},{"erd":"0x0035","value":"00000000","time":"2021-07-27T22:20:51.417Z"},{"erd":"0x0099","value":"00","time":"2021-07-27T22:20:43.278Z"},{"erd":"0x0100","value":"00000B27","time":"2021-07-27T22:20:42.123Z"},{"erd":"0x0101","value":"00000000","time":"2021-07-27T22:20:42.123Z"},{"erd":"0x0102","value":"00","time":"2021-07-27T22:20:42.123Z"},{"erd":"0x0103","value":"00000000","time":"2021-07-27T22:20:42.123Z"},{"erd":"0x0104","value":"00000000","time":"2021-07-27T22:20:42.123Z"},{"erd":"0x0105","value":"00","time":"2021-07-27T22:20:43.278Z"},{"erd":"0x7003","value":"0040","time":"2021-07-27T22:20:39.135Z"},{"erd":"0x7A00","value":"08","time":"2021-07-27T22:20:39.135Z"},{"erd":"0x7A01","value":"00","time":"2021-07-27T22:20:39.135Z"},{"erd":"0x7A02","value":"44","time":"2021-07-28T00:09:43.655Z"},{"erd":"0x7A04","value":"00","time":"2021-07-27T22:20:39.135Z"},{"erd":"0x7A0F","value":"01","time":"2021-07-27T22:20:39.135Z"},{"erd":"0x7A12","value":"0014B745","time":"2021-07-28T00:20:43.961Z"},{"erd":"0xD005","value":"02B7000000000000000000","time":"2021-07-27T22:20:39.135Z"},{"erd":"0xD006","value":"00","time":"2021-07-27T22:20:39.135Z"}]}}', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:08:01,017 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b"e\xbb'P", rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:08:01,045 DEBUG client - event = data_received(<6 bytes>) 2021-07-27 21:08:01,045 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b"e\xbb'P", rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:08:01,045 DEBUG client - received solicited pong: 65bb2750 2021-07-27 21:08:10,931 DEBUG Sending keepalive ping 2021-07-27 21:08:10,932 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-07-27 21:08:10,978 DEBUG client - event = data_received(<7 bytes>) 2021-07-27 21:08:10,978 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:08:20,573 DEBUG client - event = data_received(<61 bytes>) 2021-07-27 21:08:20,573 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"item":{"applianceId":"D828C95AC480","erd":"0x7003","time":"2021-07-28T01:08:18.960Z","value":"0041"},"resource":"/appliance/D828C95AC480/erd/0x7003","kind":"publish#erd","userId":"x11gujwz9srdb40"}', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:08:20,573 DEBUG Setting 0x7003 to b'\x00A' 2021-07-27 21:08:20,574 DEBUG Appliance state change detected in GeAppliance(D828C95AC480) (ErdApplianceType.UNKNOWN). Updated keys: 0x7003 2021-07-27 21:08:21,047 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\x0c\xe3\xa0', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:08:21,078 DEBUG client - event = data_received(<6 bytes>) 2021-07-27 21:08:21,078 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\x0c\xe3\xa0', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:08:21,078 DEBUG client - received solicited pong: 0ce32aa0 2021-07-27 21:08:32,468 DEBUG client - event = data_received(<19 bytes>) 2021-07-27 21:08:32,468 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"item":{"applianceId":"D828C95AC480","erd":"0x7003","time":"2021-07-28T01:08:31.264Z","value":"0040"},"resource":"/appliance/D828C95AC480/erd/0x7003","kind":"publish#erd","userId":"x11gujwz9srdb40"}', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:08:32,469 DEBUG Setting 0x7003 to b'\x00@' 2021-07-27 21:08:32,469 DEBUG Appliance state change detected in GeAppliance(D828C95AC480) (ErdApplianceType.UNKNOWN). Updated keys: 0x7003 2021-07-27 21:08:40,938 DEBUG Sending keepalive ping 2021-07-27 21:08:40,938 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-07-27 21:08:40,989 DEBUG client - event = data_received(<7 bytes>) 2021-07-27 21:08:40,989 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:08:41,058 DEBUG Requesting update for GeAppliance(D828C95AC480) (ErdApplianceType.UNKNOWN) 2021-07-27 21:08:41,058 DEBUG Requesting update for client D828C95AC480 2021-07-27 21:08:41,058 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/D828C95AC480/erd", "id": "D828C95AC480-allErd"}', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:08:41,079 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\xcb\x04\xaf\xbc', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:08:41,114 DEBUG client - event = data_received(<6 bytes>) 2021-07-27 21:08:41,114 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\xcb\x04\xaf\xbc', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:08:41,114 DEBUG client - received solicited pong: cb04afbc 2021-07-27 21:08:41,215 DEBUG client - event = data_received(<31 bytes>) 2021-07-27 21:08:41,215 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"D828C95AC480-allErd","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C95AC480/erd"},"success":true,"code":200,"body":{"kind":"appliance#erdList","userId":"x11gujwz9srdb40","applianceId":"D828C95AC480","items":[{"erd":"0x0001","value":"084148544B303841410000000000000000000000000000000000000000000000","time":"2021-07-27T22:20:43.278Z"},{"erd":"0x0002","value":"0000000000000000000000000000000000000000000000000000000000000000","time":"2021-07-27T22:20:43.278Z"},{"erd":"0x0007","value":"00","time":"2021-07-27T22:20:39.135Z"},{"erd":"0x0008","value":"0A","time":"2021-07-27T22:20:43.278Z"},{"erd":"0x0035","value":"00000000","time":"2021-07-27T22:20:51.417Z"},{"erd":"0x0099","value":"00","time":"2021-07-27T22:20:43.278Z"},{"erd":"0x0100","value":"00000B27","time":"2021-07-27T22:20:42.123Z"},{"erd":"0x0101","value":"00000000","time":"2021-07-27T22:20:42.123Z"},{"erd":"0x0102","value":"00","time":"2021-07-27T22:20:42.123Z"},{"erd":"0x0103","value":"00000000","time":"2021-07-27T22:20:42.123Z"},{"erd":"0x0104","value":"00000000","time":"2021-07-27T22:20:42.123Z"},{"erd":"0x0105","value":"00","time":"2021-07-27T22:20:43.278Z"},{"erd":"0x7003","value":"0040","time":"2021-07-28T01:08:31.264Z"},{"erd":"0x7A00","value":"08","time":"2021-07-27T22:20:39.135Z"},{"erd":"0x7A01","value":"00","time":"2021-07-27T22:20:39.135Z"},{"erd":"0x7A02","value":"44","time":"2021-07-28T00:09:43.655Z"},{"erd":"0x7A04","value":"00","time":"2021-07-27T22:20:39.135Z"},{"erd":"0x7A0F","value":"01","time":"2021-07-27T22:20:39.135Z"},{"erd":"0x7A12","value":"0014B745","time":"2021-07-28T00:20:43.961Z"},{"erd":"0xD005","value":"02B7000000000000000000","time":"2021-07-27T22:20:39.135Z"},{"erd":"0xD006","value":"00","time":"2021-07-27T22:20:39.135Z"}]}}', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:08:47,443 DEBUG client - event = data_received(<17 bytes>) 2021-07-27 21:08:47,443 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"item":{"applianceId":"D828C95AC480","erd":"0x7003","time":"2021-07-28T01:08:46.716Z","value":"0041"},"resource":"/appliance/D828C95AC480/erd/0x7003","kind":"publish#erd","userId":"x11gujwz9srdb40"}', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:08:47,443 DEBUG Setting 0x7003 to b'\x00A' 2021-07-27 21:08:47,444 DEBUG Appliance state change detected in GeAppliance(D828C95AC480) (ErdApplianceType.UNKNOWN). Updated keys: 0x7003 2021-07-27 21:09:01,130 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\x99mF\x9d', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:09:01,163 DEBUG client - event = data_received(<6 bytes>) 2021-07-27 21:09:01,164 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\x99mF\x9d', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:09:01,164 DEBUG client - received solicited pong: 996d469d 2021-07-27 21:09:06,458 DEBUG client - event = data_received(<29 bytes>) 2021-07-27 21:09:06,459 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"item":{"applianceId":"D828C95AC480","erd":"0x7A0F","time":"2021-07-28T01:09:05.062Z","value":"00"},"resource":"/appliance/D828C95AC480/erd/0x7A0F","kind":"publish#erd","userId":"x11gujwz9srdb40"}', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:09:06,459 DEBUG Setting 0x7A0F to b'\x00' 2021-07-27 21:09:06,459 DEBUG Appliance state change detected in GeAppliance(D828C95AC480) (ErdApplianceType.UNKNOWN). Updated keys: 0x7A0F 2021-07-27 21:09:10,944 DEBUG Sending keepalive ping 2021-07-27 21:09:10,944 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-07-27 21:09:10,987 DEBUG client - event = data_received(<7 bytes>) 2021-07-27 21:09:10,987 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:09:18,510 DEBUG client - event = data_received(<27 bytes>) 2021-07-27 21:09:18,510 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"item":{"applianceId":"D828C95AC480","erd":"0x7A01","time":"2021-07-28T01:09:17.255Z","value":"02"},"resource":"/appliance/D828C95AC480/erd/0x7A01","kind":"publish#erd","userId":"x11gujwz9srdb40"}', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:09:18,510 DEBUG Setting 0x7A01 to b'\x02' 2021-07-27 21:09:18,510 DEBUG Appliance state change detected in GeAppliance(D828C95AC480) (ErdApplianceType.UNKNOWN). Updated keys: 0x7A01 2021-07-27 21:09:18,530 DEBUG client - event = data_received(<15 bytes>) 2021-07-27 21:09:18,530 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"item":{"applianceId":"D828C95AC480","erd":"0x7A0F","time":"2021-07-28T01:09:17.255Z","value":"01"},"resource":"/appliance/D828C95AC480/erd/0x7A0F","kind":"publish#erd","userId":"x11gujwz9srdb40"}', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:09:18,530 DEBUG Setting 0x7A0F to b'\x01' 2021-07-27 21:09:18,531 DEBUG Appliance state change detected in GeAppliance(D828C95AC480) (ErdApplianceType.UNKNOWN). Updated keys: 0x7A0F 2021-07-27 21:09:21,168 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'(^\x1b\xa7', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:09:21,197 DEBUG client - event = data_received(<6 bytes>) 2021-07-27 21:09:21,197 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'(^\x1b\xa7', rsv1=False, rsv2=False, rsv3=False) 2021-07-27 21:09:21,197 DEBUG client - received solicited pong: 285e1ba7

simbaja commented 3 years ago

Thanks for doing this, much appreciated! Good news is that there don't appear to be too many ERDs to get through, so hopefully not too bad. Let me look into it a bit over the next couple days and see if I can get the ERDs figured out.

mbrentrowe commented 3 years ago

Awesome, thank you. Let me know if there's anything I can do to help out.

simbaja commented 3 years ago

I think that I've figured out all of them except 0x7a12. Can you give the latest a shot and see if everything else is good? If so, do you see any other indicator/button/anything that isn't represented by one of the identified values?

mbrentrowe commented 3 years ago

Sure thing, I'll try to get it later today or tomorrow morning. To confirm, I just need to run websocket_example.py again, correct?

simbaja commented 3 years ago

Yep, that's all that should be needed for now.

mbrentrowe commented 3 years ago

I checked wac_enums.py and what you have there matches what I saw from looking at my logs as I made changes. I couldn't find anything that produced 0x7a12. The only functionality I don't see in that file is the delay timer but I have no need of that if this is going to be controllable through HA.

Attached are my logs, you can ignore the first part, that was me cherry-picking stuff as I made changes before I looked for the file you created for the AC.

GEHOMESDKLOGS080221.txt

simbaja commented 3 years ago

Weird, it's not showing any of the updates to the output. Did you update to the latest before running?

mbrentrowe commented 3 years ago

Odd, I got a new boot drive so I reinstalled it this evening. Looking at my files, I don't have the most up-to-date version.

Should I just be able to do pip install --upgrade gehomesdk ? I tried that but it said everything was up to date or satisfied.

simbaja commented 3 years ago

Ah, that makes more sense. I didn't publish it as a new package, just updated the source. Any chance you can try cloning the repository and running the example using the newest code?

mbrentrowe commented 3 years ago

Sure, new logs are attached.

GEHOMESDKLOGS_AFTERUPDATE_08022021.txt

simbaja commented 3 years ago

Weird, the values still look like they're bytes (they should have all been decoded except the unknown one). I must have done something wrong during registration somewhere. I'll take a look in the morning and see what happened, don't see anything obvious at the moment.

swcrawford1 commented 3 years ago

Here is the log for a similar window AC unit model AHTK12AA https://www.geappliances.com/search.php?search_query=AHTK12AA gelog.txt I turned it on, changed the set temp and the mode. Like the previous commenter I never use the schedule feature. Let me know if I can provide any other info.

simbaja commented 3 years ago

I think that I've got everything in there based on the log. There's only one ERD that isn't identified, so I think I'll add get this new version finished off so that I can add support for both window and split A/C units. Might take a little while in HA, never dealt with building the climate entities. I'll keep you both posted, hopefully you'll be able to confirm that the climate entity is working once it's complete. Thanks for your help so far!

mbrentrowe commented 3 years ago

Thank you for getting this together. The GE app is awful, I'm so happy to never have to use it again.

simbaja commented 3 years ago

Can either of you change the setting to use metric units (i.e. Celsius) and then send me a debug log? Looking at the split AC logs, it looks like it always reports numbers in imperial (i.e. F) no matter what it's set to. Want to confirm the behavior of these units so I don't double convert.

mbrentrowe commented 3 years ago

Sure thing:

2021-08-07 10:26:47,475 DEBUG Using selector: EpollSelector websocket_example.py:74: DeprecationWarning: The object should be created within an async function session = aiohttp.ClientSession() 2021-08-07 10:26:47,476 DEBUG Getting OAuth2 token 2021-08-07 10:26:47,477 DEBUG Client changed state: GeClientState.INITIALIZING to GeClientState.AUTHORIZING_OAUTH 2021-08-07 10:26:48,900 DEBUG Getting WS credentials 2021-08-07 10:26:48,901 DEBUG Client changed state: GeClientState.AUTHORIZING_OAUTH to GeClientState.AUTHORIZING_CLIENT 2021-08-07 10:26:49,052 INFO Starting GE Appliances client 2021-08-07 10:26:49,079 DEBUG Client changed state: GeClientState.AUTHORIZING_CLIENT to GeClientState.CONNECTING 2021-08-07 10:26:49,128 DEBUG client - state = CONNECTING 2021-08-07 10:26:49,199 DEBUG client - event = connection_made(<asyncio.sslproto._SSLProtocolTransport object at 0x7fcd8ad62220>) 2021-08-07 10:26:49,200 DEBUG client > GET /?access_token=ue1cphqdhmxqbxcvcs7ieeyqaacvj2wu HTTP/1.1 2021-08-07 10:26:49,200 DEBUG client > Headers([('Host', 'ws-us-east-1.brillion.geappliances.com'), ('Upgrade', 'websocket'), ('Connection', 'Upgrade'), ('Sec-WebSocket-Key', 'Sp/qud1nsm2JCJooALCn2w=='), ('Sec-WebSocket-Version', '13'), ('Sec-WebSocket-Extensions', 'permessage-deflate; client_max_window_bits'), ('User-Agent', 'Python/3.8 websockets/9.1')]) 2021-08-07 10:26:49,392 DEBUG client - event = data_received(<212 bytes>) 2021-08-07 10:26:49,393 DEBUG client < HTTP/1.1 101 Switching Protocols 2021-08-07 10:26:49,393 DEBUG client < Headers([('Date', 'Sat, 07 Aug 2021 14:26:49 GMT'), ('Connection', 'upgrade'), ('upgrade', 'websocket'), ('sec-websocket-accept', '3rwGc5HeChQ5VS8MPpOxKGEaaTM='), ('sec-websocket-extensions', 'permessage-deflate')]) 2021-08-07 10:26:49,394 DEBUG client - state = OPEN 2021-08-07 10:26:49,394 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-07 10:26:49,395 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-07 10:26:49,396 DEBUG Client changed state: GeClientState.CONNECTING to GeClientState.CONNECTED 2021-08-07 10:26:49,585 DEBUG client - event = data_received(<49 bytes>) 2021-08-07 10:26:49,585 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#subscribe","success":true}', rsv1=False, rsv2=False, rsv3=False) 2021-08-07 10:26:49,713 DEBUG client - event = data_received(<263 bytes>) 2021-08-07 10:26:49,714 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":"x11gujwz9srdb40","items":[{"applianceId":"D828C95AC480","type":"Air Conditioner","brand":"Unknown","jid":"d828c95ac480_x11gujwz9srdb40","nickname":"Air Conditioner","online":"ONLINE","onlineTime":"2021-08-07T02:12:11.000Z"}]}}', rsv1=False, rsv2=False, rsv3=False) 2021-08-07 10:26:49,715 DEBUG D828C95AC480 marked available 2021-08-07 10:26:49,715 DEBUG Adding appliance D828C95AC480 2021-08-07 10:26:49,715 DEBUG Requesting update for client D828C95AC480 2021-08-07 10:26:49,716 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/D828C95AC480/erd", "id": "D828C95AC480-allErd"}', rsv1=False, rsv2=False, rsv3=False) 2021-08-07 10:26:49,716 DEBUG Requesting features for client D828C95AC480 2021-08-07 10:26:49,716 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/D828C95AC480/feature", "id": "Request-features"}', rsv1=False, rsv2=False, rsv3=False) 2021-08-07 10:26:49,717 DEBUG Registering update callback for GeAppliance(D828C95AC480) (Unknown Type) 2021-08-07 10:26:49,777 DEBUG client - event = data_received(<16 bytes>) 2021-08-07 10:26:49,777 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#connect","success":true}', rsv1=False, rsv2=False, rsv3=False) 2021-08-07 10:26:49,835 DEBUG client - event = data_received(<236 bytes>) 2021-08-07 10:26:49,836 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"D828C95AC480-allErd","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C95AC480/erd"},"success":true,"code":200,"body":{"kind":"appliance#erdList","userId":"x11gujwz9srdb40","applianceId":"D828C95AC480","items":[{"erd":"0x0001","value":"084148544B303841410000000000000000000000000000000000000000000000","time":"2021-08-07T02:23:30.452Z"},{"erd":"0x0002","value":"0000000000000000000000000000000000000000000000000000000000000000","time":"2021-08-07T02:23:30.452Z"},{"erd":"0x0007","value":"00","time":"2021-08-07T02:23:30.452Z"},{"erd":"0x0008","value":"0A","time":"2021-08-07T02:23:30.452Z"},{"erd":"0x0035","value":"00000000","time":"2021-08-07T02:23:30.452Z"},{"erd":"0x0099","value":"00","time":"2021-08-07T02:23:30.452Z"},{"erd":"0x0100","value":"00000B27","time":"2021-08-07T02:23:30.452Z"},{"erd":"0x0101","value":"00000000","time":"2021-08-07T02:23:30.452Z"},{"erd":"0x0102","value":"00","time":"2021-08-07T02:23:30.452Z"},{"erd":"0x0103","value":"00000000","time":"2021-08-07T02:23:30.452Z"},{"erd":"0x0104","value":"00000000","time":"2021-08-07T02:23:30.452Z"},{"erd":"0x0105","value":"00","time":"2021-08-07T02:23:30.452Z"},{"erd":"0x7003","value":"0040","time":"2021-08-07T02:23:30.452Z"},{"erd":"0x7A00","value":"08","time":"2021-08-07T02:23:30.452Z"},{"erd":"0x7A01","value":"00","time":"2021-08-07T02:23:30.452Z"},{"erd":"0x7A02","value":"44","time":"2021-08-07T14:23:38.800Z"},{"erd":"0x7A04","value":"01","time":"2021-08-07T02:23:30.452Z"},{"erd":"0x7A0F","value":"01","time":"2021-08-07T02:23:30.452Z"},{"erd":"0x7A12","value":"0016F71C","time":"2021-08-07T14:12:38.742Z"},{"erd":"0xD005","value":"02B7000000000000000000","time":"2021-08-07T12:55:37.629Z"},{"erd":"0xD006","value":"00","time":"2021-08-07T02:23:30.452Z"}]}}', rsv1=False, rsv2=False, rsv3=False) 2021-08-07 10:26:49,836 DEBUG Setting ErdCode.MODEL_NUMBER to AHTK08AA 2021-08-07 10:26:49,836 DEBUG Setting ErdCode.SERIAL_NUMBER to 2021-08-07 10:26:49,837 DEBUG Setting ErdCode.TEMPERATURE_UNIT to ErdMeasurementUnits.IMPERIAL 2021-08-07 10:26:49,837 DEBUG Setting ErdCode.APPLIANCE_TYPE to ErdApplianceType.UNKNOWN 2021-08-07 10:26:49,837 DEBUG Setting ErdCode.UNIT_TYPE to ErdUnitType.UNKNOWN 2021-08-07 10:26:49,837 DEBUG Setting ErdCode.UNKNOWN_0099 to b'\x00' 2021-08-07 10:26:49,837 DEBUG Setting ErdCode.WIFI_MODULE_SW_VERSION to 0.0.11.39 2021-08-07 10:26:49,838 DEBUG Setting ErdCode.WIFI_MODULE_SW_VERSION_AVAILABLE to 0.0.0.0 2021-08-07 10:26:49,838 DEBUG Setting ErdCode.ACM_UPDATING to False 2021-08-07 10:26:49,838 DEBUG Setting ErdCode.APPLIANCE_SW_VERSION to 0.0.0.0 2021-08-07 10:26:49,839 DEBUG Setting ErdCode.APPLIANCE_SW_VERSION_AVAILABLE to 0.0.0.0 2021-08-07 10:26:49,839 DEBUG Setting ErdCode.APPLIANCE_UPDATING to False 2021-08-07 10:26:49,839 DEBUG Setting ErdCode.WAC_TARGET_TEMPERATURE to b'\x00@' 2021-08-07 10:26:49,839 DEBUG Setting ErdCode.WAC_FAN_SETTING to b'\x08' 2021-08-07 10:26:49,839 DEBUG Setting ErdCode.WAC_OPERATION_MODE to b'\x00' 2021-08-07 10:26:49,839 DEBUG Setting ErdCode.WAC_AMBIENT_TEMPERATURE to b'D' 2021-08-07 10:26:49,840 DEBUG Setting ErdCode.WAC_FILTER_STATUS to b'\x01' 2021-08-07 10:26:49,840 DEBUG Setting 0x7A0F to b'\x01' 2021-08-07 10:26:49,840 DEBUG Setting ErdCode.WAC_UNKNOWN7A12 to b'\x00\x16\xf7\x1c' 2021-08-07 10:26:49,840 DEBUG Setting 0xD005 to b'\x02\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00' 2021-08-07 10:26:49,840 DEBUG Setting 0xD006 to b'\x00' 2021-08-07 10:26:49,841 DEBUG Got initial appliance type for GeAppliance(D828C95AC480) (ErdApplianceType.UNKNOWN) 2021-08-07 10:26:49,841 DEBUG Appliance state change detected in GeAppliance(D828C95AC480) (ErdApplianceType.UNKNOWN). Updated keys: ErdCode.MODEL_NUMBER, ErdCode.SERIAL_NUMBER, ErdCode.TEMPERATURE_UNIT, 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.WAC_TARGET_TEMPERATURE, ErdCode.WAC_FAN_SETTING, ErdCode.WAC_OPERATION_MODE, ErdCode.WAC_AMBIENT_TEMPERATURE, ErdCode.WAC_FILTER_STATUS, 0x7A0F, ErdCode.WAC_UNKNOWN7A12, 0xD005, 0xD006 2021-08-07 10:26:49,841 DEBUG Appliance state change detected in GeAppliance(D828C95AC480) (ErdApplianceType.UNKNOWN) 2021-08-07 10:26:49,873 DEBUG client - event = data_received(<42 bytes>) 2021-08-07 10:26:49,873 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/D828C95AC480/feature"},"success":true,"code":200,"body":{"kind":"appliance#applianceFeature","userId":"x11gujwz9srdb40","applianceId":"D828C95AC480","features":[]}}', rsv1=False, rsv2=False, rsv3=False) 2021-08-07 10:26:49,874 DEBUG Received features [] for D828C95AC480 2021-08-07 10:26:50,033 DEBUG client - event = data_received(<49 bytes>) 2021-08-07 10:26:50,034 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-07 10:27:09,403 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\xd0\xa6\xea>', rsv1=False, rsv2=False, rsv3=False) 2021-08-07 10:27:09,432 DEBUG client - event = data_received(<6 bytes>) 2021-08-07 10:27:09,433 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\xd0\xa6\xea>', rsv1=False, rsv2=False, rsv3=False) 2021-08-07 10:27:09,433 DEBUG client - received solicited pong: d0a6ea3e 2021-08-07 10:27:10,150 DEBUG client - event = data_received(<57 bytes>) 2021-08-07 10:27:10,151 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"item":{"applianceId":"D828C95AC480","erd":"0x7003","time":"2021-08-07T14:27:08.761Z","value":"0042"},"resource":"/appliance/D828C95AC480/erd/0x7003","kind":"publish#erd","userId":"x11gujwz9srdb40"}', rsv1=False, rsv2=False, rsv3=False) 2021-08-07 10:27:10,152 DEBUG Setting ErdCode.WAC_TARGET_TEMPERATURE to b'\x00B' 2021-08-07 10:27:10,152 DEBUG Appliance state change detected in GeAppliance(D828C95AC480) (ErdApplianceType.UNKNOWN). Updated keys: ErdCode.WAC_TARGET_TEMPERATURE 2021-08-07 10:27:11,192 DEBUG client - event = data_received(<18 bytes>) 2021-08-07 10:27:11,192 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"item":{"applianceId":"D828C95AC480","erd":"0x7003","time":"2021-08-07T14:27:09.647Z","value":"0044"},"resource":"/appliance/D828C95AC480/erd/0x7003","kind":"publish#erd","userId":"x11gujwz9srdb40"}', rsv1=False, rsv2=False, rsv3=False) 2021-08-07 10:27:11,193 DEBUG Setting ErdCode.WAC_TARGET_TEMPERATURE to b'\x00D' 2021-08-07 10:27:11,193 DEBUG Appliance state change detected in GeAppliance(D828C95AC480) (ErdApplianceType.UNKNOWN). Updated keys: ErdCode.WAC_TARGET_TEMPERATURE 2021-08-07 10:27:19,403 DEBUG Sending keepalive ping 2021-08-07 10:27:19,404 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-07 10:27:19,453 DEBUG client - event = data_received(<28 bytes>) 2021-08-07 10:27:19,453 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False)

simbaja commented 3 years ago

Interesting, so the display is showing Celsius?

The API is saying it's imperial:

2021-08-07 10:26:49,837 DEBUG Setting ErdCode.TEMPERATURE_UNIT to ErdMeasurementUnits.IMPERIAL

The split AC unit shows that it's metric, but all the values are imperial. These AC units are so weird.

mbrentrowe commented 3 years ago

Hold on, let me try again, what's odd is that it's still showing as C on the unit but when I just went back into the app it changed itself back to F.

mbrentrowe commented 3 years ago

The app keeps setting itself back to F after I leave the settings page.

2021-08-07 10:45:20,500 DEBUG Setting ErdCode.MODEL_NUMBER to AHTK08AA 2021-08-07 10:45:20,500 DEBUG Setting ErdCode.SERIAL_NUMBER to 2021-08-07 10:45:20,500 DEBUG Setting ErdCode.TEMPERATURE_UNIT to ErdMeasurementUnits.IMPERIAL 2021-08-07 10:45:20,500 DEBUG Setting ErdCode.APPLIANCE_TYPE to ErdApplianceType.UNKNOWN 2021-08-07 10:45:20,500 DEBUG Setting ErdCode.UNIT_TYPE to ErdUnitType.UNKNOWN 2021-08-07 10:45:20,501 DEBUG Setting ErdCode.UNKNOWN_0099 to b'\x00' 2021-08-07 10:45:20,501 DEBUG Setting ErdCode.WIFI_MODULE_SW_VERSION to 0.0.11.39 2021-08-07 10:45:20,501 DEBUG Setting ErdCode.WIFI_MODULE_SW_VERSION_AVAILABLE to 0.0.0.0 2021-08-07 10:45:20,502 DEBUG Setting ErdCode.ACM_UPDATING to False 2021-08-07 10:45:20,502 DEBUG Setting ErdCode.APPLIANCE_SW_VERSION to 0.0.0.0 2021-08-07 10:45:20,502 DEBUG Setting ErdCode.APPLIANCE_SW_VERSION_AVAILABLE to 0.0.0.0 2021-08-07 10:45:20,502 DEBUG Setting ErdCode.APPLIANCE_UPDATING to False 2021-08-07 10:45:20,503 DEBUG Setting ErdCode.WAC_TARGET_TEMPERATURE to b'\x00@' 2021-08-07 10:45:20,503 DEBUG Setting ErdCode.WAC_FAN_SETTING to b'\x08' 2021-08-07 10:45:20,503 DEBUG Setting ErdCode.WAC_OPERATION_MODE to b'\x00' 2021-08-07 10:45:20,503 DEBUG Setting ErdCode.WAC_AMBIENT_TEMPERATURE to b'D' 2021-08-07 10:45:20,503 DEBUG Setting ErdCode.WAC_FILTER_STATUS to b'\x01' 2021-08-07 10:45:20,503 DEBUG Setting 0x7A0F to b'\x01' 2021-08-07 10:45:20,504 DEBUG Setting ErdCode.WAC_UNKNOWN7A12 to b'\x00\x16\xf7\x1c' 2021-08-07 10:45:20,504 DEBUG Setting 0xD005 to b'\x02\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00' 2021-08-07 10:45:20,504 DEBUG Setting 0xD006 to b'\x00' 2021-08-07 10:45:20,504 DEBUG Got initial appliance type for GeAppliance(D828C95AC480) (ErdApplianceType.UNKNOWN) 2021-08-07 10:45:20,505 DEBUG Appliance state change detected in GeAppliance(D828C95AC480) (ErdApplianceType.UNKNOWN). Updated keys: ErdCode.MODEL_NUMBER, ErdCode.SERIAL_NUMBER, ErdCode.TEMPERATURE_UNIT, 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.WAC_TARGET_TEMPERATURE, ErdCode.WAC_FAN_SETTING, ErdCode.WAC_OPERATION_MODE, ErdCode.WAC_AMBIENT_TEMPERATURE, ErdCode.WAC_FILTER_STATUS, 0x7A0F, ErdCode.WAC_UNKNOWN7A12, 0xD005, 0xD006 2021-08-07 10:45:20,505 DEBUG Appliance state change detected in GeAppliance(D828C95AC480) (ErdApplianceType.UNKNOWN)2021-08-07 10:45:20,653 DEBUG client - event = data_received(<50 bytes>) 2021-08-07 10:45:20,654 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-07 10:45:40,103 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\xe95Bo', rsv1=False, rsv2=False, rsv3=False) 2021-08-07 10:45:40,131 DEBUG client - event = data_received(<6 bytes>) 2021-08-07 10:45:40,132 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\xe95Bo', rsv1=False, rsv2=False, rsv3=False) 2021-08-07 10:45:40,132 DEBUG client - received solicited pong: e935426f

simbaja commented 3 years ago

But the unit itself is still showing Celsius? That's so odd...

mbrentrowe commented 3 years ago

It is, the unit didn't switch back to Fahrenheit until I swapped it in settings even though the app had switched itself to Fahrenheit on its own. I just did a quick toggle back to C and then F and the unit changed.

simbaja commented 3 years ago

Alright, well, I'll assume that the uom that is being reported is correct then... we'll see what happens when people try to use it in metric mode and I'll adjust as needed.

swcrawford1 commented 3 years ago

I'm seeing the same results w/ my AC. If I change units to metric in the app the numbers on the window unit display in metric. The app seems to show fahrenheit no matter what.

On Sat, Aug 7, 2021 at 10:02 AM simbaja @.***> wrote:

Alright, well, I'll assume that the uom that is being reported is correct then... we'll see what happens when people try to use it in metric mode and I'll adjust as needed.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/simbaja/gehome/issues/21#issuecomment-894665674, or unsubscribe https://github.com/notifications/unsubscribe-auth/AG7NCJ3Z2CZT3NDNJ6UTBI3T3VDHLANCNFSM5BDLE2LQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .

simbaja commented 3 years ago

So odd... these appliances are kinda screwy. I'll do what I can, hopefully we'll make it work well in HA.

simbaja commented 3 years ago

Sent a message in the HA repo, added the initial version into the HA integration, let's switch over there for further discussions on this. Thanks for the help so far, much appreciated!