Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for GE Washer and Dryer #8

Open
mhpetiwala opened this issue Jan 14, 2021 · 10 comments
Open

Support for GE Washer and Dryer #8

mhpetiwala opened this issue Jan 14, 2021 · 10 comments

Comments

@mhpetiwala
Copy link

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

@bpennypacker
Copy link

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 ...

@vanstinator
Copy link

I've ordered a set myself. I'm more than happy to do the heavy lifting once I have them installed.

@stonesrose
Copy link

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

@warrenrees
Copy link

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

@warrenrees
Copy link

warrenrees commented May 16, 2021

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.

@mhpetiwala
Copy link
Author

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

@warrenrees
Copy link

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

@warrenrees
Copy link

warrenrees commented May 17, 2021

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

@mhpetiwala
Copy link
Author

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

@Waank1
Copy link

Waank1 commented Sep 13, 2023

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants