Open mhpetiwala opened 3 years ago
I too would love to see support for washers & dryers, and would also gladly help. It appears that most of the constants, etc. that are needed can be found here. I don't want to try adding support on my own yet given the ongoing work on PR #7 ...
I've ordered a set myself. I'm more than happy to do the heavy lifting once I have them installed.
Using the code from PR #7, I was able to get information from my Dryer. I can confirm the erd code 0x2007 is time remaining.
The erd codes from "can be found here" seem to map to the list below. As it's from 2014 this list is at least incomplete as I see codes not on this list (ex: 201C). Once PR #7 is merged in I'd be happy to add this to the code.
2000 machineStatus 2001 machineSubCycle 2002 endOfCycle 2003 cycleCount 2004 dryerServiceErrorCodes 2005 dsmOverridesAllowed 2006 maximumWaterTemperature 2007 timeRemainingInSeconds 2008 tankStatus 2009 tankSelected 200A cycleSelected 200B washerUserInterfaceServiceErrorCodes 200C washerInverterServiceErrorCodes 200D washerMainControlServiceErrorCodes 200E operatingMode 200F dryerC riticalResponseEnabled 2010 delayTimeRemainingInMinutes
I've got a GE Washing machine with SmartHQ, so I can assist with the Washer side of the fence.
I've been using this SDK, the erd codes from "can be found here", along with pulling the names out of the Smart HQ apk (classmap.txt) to try to map out some of the status codes for the washer. I'll update this as I go and will probably do a PR to add them in...
0x2000 - machineStatus 0x2001 - machinesubCycle 0x2002 - endOfCycle (0x00 == no 0x01 == yes) 0x2007 - timeRemainingInSeconds 0x200A - cycleSelected (missing quick wash from the "found here" link - 0x1d / 29 decimal) 0x2015 - soilLevel (0x00 = extra light 0x01 = light 0x02 = normal 0x03 = heavy 0x04 = extra heavy) 0x2016 - tempLevel (0x11 = cold 0x14 = warm) - need to finish these, have just tested cold and warm temp levels so far... 0x2017 - spinTimeLevel (0x00 = no spin 0x01 = low 0x02 = medium 0x03 = high 0x04 = max) 0x2018 - rinseOption - (0x00 = no 0x01 = ??? prewash maybe? 0x02 = Extra Rinse) not sure what 0x01 is, i'm guessing prewash but haven't confirmed yet
Just providing an update on this thread.
Jack and I have added laundry support to his fork - https://github.com/simbaja/gehome. I've got a washer but no dryer, however we've added the ERDs that I could find from the app, if someone with a dryer wants to test it out and let us know we can continue to expand out support.
I've both the GE SmartHQ Washer and Dryer. I tried to use the above gehome lib and see the params but it's failing to execute as shown in the error below:
pi@Home-Assistant:~/ge-appliances $ python3 test.py DEBUG Using selector: EpollSelector test.py:17: DeprecationWarning: The object should be created within an async function session = aiohttp.ClientSession() DEBUG Getting OAuth2 token ERROR Task exception was never retrieved future: <Task finished coro=<GeBaseClient.async_get_credentials_and_run() done, defined at /home/pi/.local/lib/python3.7/site-packages/gehomesdk/clients/base_client.py:114> exception=AttributeError("'str' object has no attribute 'create_task'")> Traceback (most recent call last): File "/home/pi/.local/lib/python3.7/site-packages/gehomesdk/clients/base_client.py", line 116, in async_get_credentials_and_run await self.async_get_credentials(session) File "/home/pi/.local/lib/python3.7/site-packages/gehomesdk/clients/base_client.py", line 179, in async_get_credentials await self.async_do_full_login_flow() File "/home/pi/.local/lib/python3.7/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 "/home/pi/.local/lib/python3.7/site-packages/gehomesdk/clients/websocket_client.py", line 61, in _async_do_full_login_flow await self._async_get_oauth2_token() File "/home/pi/.local/lib/python3.7/site-packages/gehomesdk/clients/base_client.py", line 204, in _async_get_oauth2_token await self._set_state(GeClientState.AUTHORIZING_OAUTH) File "/home/pi/.local/lib/python3.7/site-packages/gehomesdk/clients/base_client.py", line 254, in _set_state await self.async_event(EVENT_STATE_CHANGED, old_state, new_state) File "/home/pi/.local/lib/python3.7/site-packages/gehomesdk/clients/base_client.py", line 98, in async_event asyncio.ensure_future(cb(*args, **kwargs), loop=self.loop) File "/usr/lib/python3.7/asyncio/tasks.py", line 581, in ensure_future task = loop.create_task(coro_or_future) AttributeError: 'str' object has no attribute 'create_task' /usr/lib/python3.7/asyncio/base_events.py:1760: RuntimeWarning: coroutine 'GeBaseClient._on_state_change' was never awaited handle = self._ready.popleft() RuntimeWarning: Enable tracemalloc to get the object allocation traceback ERROR Unclosed client session client_session: <aiohttp.client.ClientSession object at 0xb34e6ef0>
I am able to execute the test app with the original gekitchen lib and it is sending out the ERDs and relevant info pertaining to the washer and dryer. But this above fork is running into some execution error tied to the ensure_future call in the asyncio module. If you can help provide some details to run - I can collect the relevant data from the appliances and send it out.
Rgds, -mo
I've personally been using the websocket_example.py and editing it to change the path to the secrets.py file wrees@eta:~/gehome % more secrets.py USERNAME = "email@address" PASSWORD = "password" wrees@eta:~/gehome % python websocket_example.py DEBUG Using selector: KqueueSelector websocket_example.py:74: DeprecationWarning: The object should be created within an async function session = aiohttp.ClientSession() DEBUG Getting OAuth2 token DEBUG Client changed state: GeClientState.INITIALIZING to GeClientState.AUTHORIZING_OAUTH DEBUG Getting WS credentials DEBUG Client changed state: GeClientState.AUTHORIZING_OAUTH to GeClientState.AUTHORIZING_CLIENT
Thank you. So the Washing machine appears to be good to go, with the exception of the 4 unknowns that i haven't bee able to identify.
We're missing a few ERDs for the dryer, specifically 0x201c, 0x2022, 0x2023, 0x2041, 0x2051, 0x2052, 0x2053 and 0x206f.
I'll see if i can find any of those in the original app. Would you be able to test the dryer with some known cycles and settings and provide those, along with what was set so we can further isolate values/options?
If you wouldn't mind, can we also take this over to the gehome project, as that's where I'll be applying the updates to.
You probably want to either delete the log file or remove the first 18 lines, your access token for the API is in there, typically I should only need the entries after: DEBUG D828C953B542 marked available DEBUG Adding appliance D828C953B542
Thanks!
Warren
Sure let's move the discussion to the gehome project. I'll try to check with some known cycles and revert back the observations.
Rgds, -mo ge-washer-dryer.log
I understand this is an old thread, but I have a question.
GE smart washing machine dispenser loads left not working home assistant. Mine constantly reports 8, is there anything I can do to fix this?
Thanks
Hi - wanted to reach out to see if it's possible for you to add support within this component for GE Washer and Dryer that has SmartHQ support. I can assist in providing any captures, etc needed to add this. Help is much appreciated.
Rgds, -mo