Rheem Hotwater heater, econet?

Yes I am able to use the Rheem Econet IOS app to control my HVAC unit.

If that’s the case then it can most likely be added, but since the API isn’t documented I would need your account credentials in order to capture the API calls from the official app and implement it. Send me a PM if you are interested in doing that.

PM Sent - Thanks

Just a quick followup to see if there has been any development on the Rheem Econet HVAC integration (re: tsmetana’s post above)? I’m also using the iOS app and would be happy to set up credentials I could share if it helped with development.

There has been some development. In order to support HVAC the current Rheem water heater support needed moved over to the water heater component in Home Assistant. So, I had to create the water heater component and then move the Wink water heater and Rheem water heater over to that. That has been completed, but was a pretty big job. Not that that has happened I can start working on the HVAC support.

Thanks for the update w1ll1am23. Let me know if you need any more info or if you need help testing.

Hi. I keep getting this error:

Invalid operation mode mapping. Electric-Only doesn’t map. Please report this.

12:07 PM components/water_heater/econet.py (ERROR) - message first occured at 9:35 AM and shows up 302 times

Invalid operation mode mapping. Heat Pump Only doesn’t map. Please report this.

12:07 PM components/water_heater/econet.py (ERROR) - message first occured at 9:35 AM and shows up 302 times

I am happy to help any way I can.

Just noticed someone else reported this on github. https://github.com/home-assistant/home-assistant/issues/19226 I commented there asking for some more information.

I know what the problem is, but not sure how to fix it since their API isn’t documented.

Anyone else receiving errors such as this? I started receiving this a few weeks back and it requires a restart in order for me to clear it.

2019-03-20 19:06:54 ERROR (MainThread) [homeassistant.helpers.entity] Update for water_heater.heat_pump_water_heater_gen_4 fails Traceback (most recent call last):
File “/usr/local/lib/python3.7/site-packages/homeassistant/helpers/entity.py”, line 221, in async_update_ha_state await self.async_device_update()
File “/usr/local/lib/python3.7/site-packages/homeassistant/helpers/entity.py”, line 349, in async_device_update await self.hass.async_add_executor_job(self.update)
File “/usr/local/lib/python3.7/concurrent/futures/thread.py”, line 57, in run result = self.fn(*self.args, **self.kwargs) File “/usr/local/lib/python3.7/site-packages/homeassistant/components/water_heater/econet.py”, line 202, in update self.water_heater.update_state() File “/usr/local/lib/python3.7/site-packages/pyeconet/equipment/water_heater.py”, line 112, in update_state vacations = self.api_interface.get_vacations()
File “/usr/local/lib/python3.7/site-packages/pyeconet/api.py”, line 123, in get_vacations return arequest.json() File “/usr/local/lib/python3.7/site-packages/requests/models.py”, line 897, in json return complexjson.loads(self.text, **kwargs)
File “/usr/local/lib/python3.7/site-packages/simplejson/init.py”, line 518, in loads return _default_decoder.decode(s) File “/usr/local/lib/python3.7/site-packages/simplejson/decoder.py”, line 370, in decode obj, end = self.raw_decode(s)
File “/usr/local/lib/python3.7/site-packages/simplejson/decoder.py”, line 400, in raw_decode return self.scan_once(s, idx=_w(s, idx).end()) simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 2019-03-20 19:08:01 WARNING (MainThread) [homeassistant.helpers.entity] Update of water_heater.heat_pump_water_heater_gen_4 is taking over 10 seconds 2019-03-20 19:30:23 WARNING (MainThread) [homeassistant.helpers.entity] Update of water_heater.heat_pump_water_heater_gen_4 is taking over 10 seconds 2019-03-20 20:00:52 WARNING (MainThread) [homeassistant.helpers.entity] Update of water_heater.heat_pump_water_heater_gen_4 is taking over 10 seconds 2019-03-20 20:31:22 WARNING (MainThread) [homeassistant.helpers.entity] Update of water_heater.heat_pump_water_heater_gen_4 is taking over 10 seconds 2019-03-20 22:00:10 WARNING (MainThread) [homeassistant.helpers.entity] Update of water_heater.heat_pump_water_heater_gen_4 is taking over 10 seconds 2019-03-20 23:01:44 WARNING (MainThread) [homeassistant.helpers.entity] Update of water_heater.heat_pump_water_heater_gen_4 is taking over 10 seconds

Can you try this fix https://drive.google.com/file/d/10DXpUNsvg4u_H2szsZk0oZ77Q-U2d05x/view?usp=sharing

unzip this in your ha config directory (unless you already have a custom components directory) and restart.

When I tried copying the custom_components directory into the same folder as my configuration.yaml. I received the following errors.

2019-03-24 20:29:48 WARNING (MainThread) [homeassistant.loader] You are using a custom component for water_heater which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant. 2019-03-24 20:29:53 WARNING (MainThread) [homeassistant.loader] You are using a custom component for water_heater.econet which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant. 2019-03-24 20:29:53 WARNING (MainThread) [homeassistant.loader] Integrations need to be in their own folder. Change water_heater/econet.py to econet/water_heater.py. This will stop working soon. 2019-03-24 20:29:56 WARNING (MainThread) [homeassistant.loader] Integrations need to be in their own folder. Change water_heater/econet.py to econet/water_heater.py. This will stop working soon. 2019-03-24 20:30:02 WARNING (MainThread) [homeassistant.components.upnp] Wanted UPnP/IGD device with UDN “uuid:f1af61a0-664c-42cc-ac96-00ed4b7ed8dc” not found, aborting 2019-03-24 20:30:44 ERROR (SyncWorker_1) [pyeconet.api] Authentication request failed, please check credintials. 500 2019-03-24 20:30:47 ERROR (SyncWorker_1) [pyeconet.api] Token expired. 2019-03-24 20:30:47 ERROR (MainThread) [custom_components.water_heater] Error while setting up platform econet Traceback (most recent call last): File “/usr/local/lib/python3.7/site-packages/homeassistant/helpers/entity_platform.py”, line 128, in _async_setup_platform SLOW_SETUP_MAX_WAIT, loop=hass.loop) File “/usr/local/lib/python3.7/asyncio/tasks.py”, line 416, in wait_for return fut.result() File “/usr/local/lib/python3.7/concurrent/futures/thread.py”, line 57, in run result = self.fn(*self.args, **self.kwargs) File “/config/custom_components/water_heater/econet.py”, line 75, in setup_platform water_heaters = econet.get_water_heaters() File “/usr/local/lib/python3.7/site-packages/pyeconet/api.py”, line 190, in get_water_heaters for location in self.locations: TypeError: ‘bool’ object is not iterable

I ended up copying the water_heater folder in and I don’t receive the same errors, but I don’t know it’s actually loaded, or if it’s just using the build-in econet module?

Thanks for the assistant!

Okay the first time it was running the correct code that I sent, it just has an issue. I will try to take a look when I get home today. For some reason the vacation call is failing for you and I am not returning the correct value which is why are are seeing the crash. I’ll send you a new file to test out.

Okay, great! Thanks for the update. I had a feeling that was the case after thinking about it for a bit. My python skills aren’t cut out for trying to begin to trace the issue. Thanks again!

Okay I made some updates. Put the custom components folder back and edit the econet.py file inside and update the library version on line ~16 from 0.1.0b2to 0.1.0b3 and give that a shot.

Great! That seems to be working a lot better. The only Warnings I receive are the ones below:

2019-03-25 18:21:17 WARNING (MainThread) [homeassistant.loader] You are using a custom component for water_heater which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant. 

2019-03-25 18:21:24 WARNING (MainThread) [homeassistant.loader] You are using a custom component for water_heater.econet which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant. 

2019-03-25 18:21:24 WARNING (MainThread) [homeassistant.loader] Integrations need to be in their own folder. Change water_heater/econet.py to econet/water_heater.py. This will stop working soon. 

2019-03-25 18:21:24 WARNING (MainThread) [homeassistant.loader] Integrations need to be in their own folder. Change water_heater/econet.py to econet/water_heater.py. This will stop working soon. 

2019-03-25 18:21:29 WARNING (MainThread) [homeassistant.components.upnp] Wanted UPnP/IGD device with UDN "uuid:f1af61a0-664c-42cc-ac96-00ed4b7ed8dc" not found, aborting 

2019-03-25 18:22:19 WARNING (MainThread) [homeassistant.loader] Integrations need to be in their own folder. Change water_heater/econet.py to econet/water_heater.py. This will stop working soon.

I’ll keep an eye on how it functions and report back after a few days to let you know if the initial error returns. THANK YOU! I have several automations that this was a part of and I was afraid that I would have to figure out an alternative to get this working again!

No problem. Yeah just let me know how it runs after a few days and I will get a pull request opened to get the library updated in HA officially.

Looks like it ran into another snag with the code. See the log below:

2019-03-25 19:03:02 WARNING (MainThread) [homeassistant.helpers.entity] Update of water_heater.heat_pump_water_heater_gen_4 is taking over 10 seconds 

2019-03-25 19:03:14 ERROR (MainThread) [homeassistant.helpers.entity] pdate for water_heater.heat_pump_water_heater_gen_4 fails 

Traceback (most recent call last): 

File "/config/deps/lib/python3.7/site-packages/pyeconet/api.py", line 88, in get_usage return arequest.json() 

File "/usr/local/lib/python3.7/site-packages/requests/models.py", line 897, in json return complexjson.loads(self.text, **kwargs) 

File "/usr/local/lib/python3.7/site-packages/simplejson/__init__.py", line 518, in loads return _default_decoder.decode(s) 

File "/usr/local/lib/python3.7/site-packages/simplejson/decoder.py", line 370, in decode obj, end = self.raw_decode(s) 

File "/usr/local/lib/python3.7/site-packages/simplejson/decoder.py", line 400, in raw_decode return self.scan_once(s, idx=_w(s, idx).end()) simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0) During handling of the above exception, another exception occurred: Traceback (most recent call last): 

File "/usr/local/lib/python3.7/site-packages/homeassistant/helpers/entity.py", line 221, in async_update_ha_state await self.async_device_update() 

File "/usr/local/lib/python3.7/site-packages/homeassistant/helpers/entity.py", line 349, in async_device_update await self.hass.async_add_executor_job(self.update) File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run result = self.fn(*self.args, **self.kwargs) File "/config/custom_components/water_heater/econet.py", line 210, in update self.water_heater.update_state() File "/config/deps/lib/python3.7/site-packages/pyeconet/equipment/water_heater.py", line 117, in update_state usage = self.api_interface.get_usage(self.id) File "/config/deps/lib/python3.7/site-packages/pyeconet/api.py", line 91, in get_usage _LOGGER.debug(str(response)) NameError: name 'response' is not defined 2019-03-25 19:03:53 ERROR (SyncWorker_10) [pyeconet.api] Failed to decode response 2019-03-25 19:03:53 ERROR (MainThread) [homeassistant.helpers.entity] Update for water_heater.heat_pump_water_heater_gen_4 fails Traceback (most recent call last): File "/config/deps/lib/python3.7/site-packages/pyeconet/api.py", line 106, in get_device return arequest.json() File "/usr/local/lib/python3.7/site-packages/requests/models.py", line 897, in json return complexjson.loads(self.text, **kwargs) File "/usr/local/lib/python3.7/site-packages/simplejson/__init__.py", line 518, in loads return _default_decoder.decode(s) File "/usr/local/lib/python3.7/site-packages/simplejson/decoder.py", line 370, in decode obj, end = self.raw_decode(s) File "/usr/local/lib/python3.7/site-packages/simplejson/decoder.py", line 400, in raw_decode return self.scan_once(s, idx=_w(s, idx).end()) simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/local/lib/python3.7/site-packages/homeassistant/helpers/entity.py", line 221, in async_update_ha_state await self.async_device_update() File "/usr/local/lib/python3.7/site-packages/homeassistant/helpers/entity.py", line 349, in async_device_update await self.hass.async_add_executor_job(self.update) File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run result = self.fn(*self.args, **self.kwargs) File "/config/custom_components/water_heater/econet.py", line 210, in update self.water_heater.update_state() File "/config/deps/lib/python3.7/site-packages/pyeconet/equipment/water_heater.py", line 112, in update_state device_state = self.api_interface.get_device(self.id) File "/config/deps/lib/python3.7/site-packages/pyeconet/api.py", line 109, in get_device _LOGGER.debug(str(response)) NameError: name 'response' is not defined

Looks like the API didn’t respond like it should have. Probably a fluke. I will push a new version for you to test and handle this sort of thing more gracefully.

EDIT: Done. Update your version to 0.1.0b4

Okay, loaded 0.1.0b4 and will report back!

Looks like we’re still getting some errors. Prior to a few weeks ago I was getting the update is taking longer than 10 second error, but it would always clear itself and it wouldn’t require a reset for the entity to reset where I could once again change the modes. Unsure if that helps at all, or not.

Also, as some additional background, I’m running 0.88.2 in a docker container. Would that have any effect?

2019-03-27 08:15:12 WARNING (MainThread) [homeassistant.helpers.entity] Update of water_heater.heat_pump_water_heater_gen_4 is taking over 10 seconds
2019-03-27 08:30:27 WARNING (MainThread) [homeassistant.helpers.entity] Update of water_heater.heat_pump_water_heater_gen_4 is taking over 10 seconds
2019-03-27 08:45:42 WARNING (MainThread) [homeassistant.helpers.entity] Update of water_heater.heat_pump_water_heater_gen_4 is taking over 10 seconds
2019-03-27 09:31:23 WARNING (MainThread) [homeassistant.helpers.entity] Update of water_heater.heat_pump_water_heater_gen_4 is taking over 10 seconds
2019-03-27 09:46:37 WARNING (MainThread) [homeassistant.helpers.entity] Update of water_heater.heat_pump_water_heater_gen_4 is taking over 10 seconds
2019-03-27 10:01:44 ERROR (SyncWorker_7) [pyeconet.api] Failed to decode response
2019-03-27 10:01:45 ERROR (SyncWorker_7) [pyeconet.api] Failed to decode response
2019-03-27 10:27:11 ERROR (MainThread) [homeassistant.helpers.entity] Update for water_heater.heat_pump_water_heater_gen_4 fails
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 159, in _new_conn
    (self._dns_host, self.port), self.timeout, **extra_kw)
  File "/usr/local/lib/python3.7/site-packages/urllib3/util/connection.py", line 57, in create_connection
    for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
  File "/usr/local/lib/python3.7/socket.py", line 748, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Try again

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 600, in urlopen
    chunked=chunked)
  File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 343, in _make_request
    self._validate_conn(conn)
  File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 839, in _validate_conn
    conn.connect()
  File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 301, in connect
    conn = self._new_conn()
  File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 168, in _new_conn
    self, "Failed to establish a new connection: %s" % e)
urllib3.exceptions.NewConnectionError: <urllib3.connection.VerifiedHTTPSConnection object at 0x6f0e2f10>: Failed to establish a new connection: [Errno -3] Try again

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/requests/adapters.py", line 449, in send
    timeout=timeout
  File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 638, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/usr/local/lib/python3.7/site-packages/urllib3/util/retry.py", line 398, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='econet-api.rheemcert.com', port=443): Max retries exceeded with url: /equipment/None (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x6f0e2f10>: Failed to establish a new connection: [Errno -3] Try again'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/homeassistant/helpers/entity.py", line 221, in async_update_ha_state
    await self.async_device_update()
  File "/usr/local/lib/python3.7/site-packages/homeassistant/helpers/entity.py", line 349, in async_device_update
    await self.hass.async_add_executor_job(self.update)
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/water_heater/econet.py", line 210, in update
    self.water_heater.update_state()
  File "/config/deps/lib/python3.7/site-packages/pyeconet/equipment/water_heater.py", line 112, in update_state
    device_state = self.api_interface.get_device(self.id)
  File "/config/deps/lib/python3.7/site-packages/pyeconet/api.py", line 100, in get_device
    arequest = requests.get(url, headers=HEADERS)
  File "/usr/local/lib/python3.7/site-packages/requests/api.py", line 75, in get
    return request('get', url, params=params, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/adapters.py", line 516, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='econet-api.rheemcert.com', port=443): Max retries exceeded with url: /equipment/None (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x6f0e2f10>: Failed to establish a new connection: [Errno -3] Try again'))
2019-03-27 12:30:14 WARNING (MainThread) [homeassistant.helpers.entity] Update of water_heater.heat_pump_water_heater_gen_4 is taking over 10 seconds
2019-03-27 12:30:56 ERROR (MainThread) [homeassistant.helpers.entity] Update for water_heater.heat_pump_water_heater_gen_4 fails
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/homeassistant/helpers/entity.py", line 221, in async_update_ha_state
    await self.async_device_update()
  File "/usr/local/lib/python3.7/site-packages/homeassistant/helpers/entity.py", line 349, in async_device_update
    await self.hass.async_add_executor_job(self.update)
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/water_heater/econet.py", line 210, in update
    self.water_heater.update_state()
  File "/config/deps/lib/python3.7/site-packages/pyeconet/equipment/water_heater.py", line 127, in update_state
    for equipment in vacation.get("participatingEquipment"):
AttributeError: 'str' object has no attribute 'get'
2019-03-27 12:36:13 ERROR (SyncWorker_8) [pyeconet.api] Failed to decode response
2019-03-27 12:36:16 ERROR (SyncWorker_8) [pyeconet.api] Failed to decode response
2019-03-27 12:41:25 WARNING (MainThread) [homeassistant.helpers.entity] Update of water_heater.heat_pump_water_heater_gen_4 is taking over 10 seconds
2019-03-27 12:46:20 ERROR (SyncWorker_11) [pyeconet.api] Failed to decode response
2019-03-27 12:46:21 ERROR (SyncWorker_11) [pyeconet.api] Failed to decode response
2019-03-27 16:30:06 WARNING (MainThread) [homeassistant.helpers.entity] Update of water_heater.heat_pump_water_heater_gen_4 is taking over 10 seconds
2019-03-27 16:45:21 WARNING (MainThread) [homeassistant.helpers.entity] Update of water_heater.heat_pump_water_heater_gen_4 is taking over 10 seconds
2019-03-27 17:00:36 WARNING (MainThread) [homeassistant.helpers.entity] Update of water_heater.heat_pump_water_heater_gen_4 is taking over 10 seconds
2019-03-27 17:15:51 WARNING (MainThread) [homeassistant.helpers.entity] Update of water_heater.heat_pump_water_heater_gen_4 is taking over 10 seconds
2019-03-27 18:01:33 WARNING (MainThread) [homeassistant.helpers.entity] Update of water_heater.heat_pump_water_heater_gen_4 is taking over 10 seconds
2019-03-27 18:16:39 ERROR (SyncWorker_13) [pyeconet.api] Failed to decode response
2019-03-27 18:32:02 WARNING (MainThread) [homeassistant.helpers.entity] Update of water_heater.heat_pump_water_heater_gen_4 is taking over 10 seconds