Rheem Water Softener

I recently installed a Rheem Preferred water softener, which is wi-fi enabled, and is accessible via this iQua app. This model does not appear to integrate with Home Assistant. What’s the best starting point to creating an integration?
Thanks!

7 Likes

I have this same question! It has some really good data that would be excellent in Home Assistant. Wondering if they have an api?

2 Likes

I installed a Rheem water softener yesterday and I’m exploring this. I’ve reached out to the developers of iQua… I don’t have high hopes but it’s worth a shot.

Blah -

Hi,

We’ve been asked about API a couple of times. It is not currently set up for that. Appreciate your feedback.
Thank you

Thanks for checking! Who did you contact? If more of us nag them, maybe they’ll listen. :wink:

This is one of the few smart water softeners on the market. We paid a little extra for the remote shutoff and it was a godsend — I got an alert while on vacation about high water usage, and remotely shut it off. My basement could have been flooded otherwise.

If Rheem doesn’t add an API, and if I find the time for it, I thought about adding my own homegrown solution. The unit has what I think is a hall effect sensor (from what I remember, which was checked a while ago) to monitor the usage of water. I wonder if adding a pi/arduino with a similar sensor in the same area could be calibrated to report the water usage.

I’ve got to say, I haven’t been too impressed with the data on the iQua app. You really can’t get much of a detailed view of usage at all.

For me the iQua app is broken, it doesn’t work for me anymore. The unit will not get past the C-2 part. The C-1 part is the bluetooth setup, and then the C-2 part is where it connects to your house Wifi, and then negotiates with AWS IOT Cloud. It uses TLS certificates during this communication part where its suppose to register itself but fails. I’ve done numerous packet captures and opened up a ticket with Rheems and they said they’re working on it but its been broken for a couple weeks now. I’m thinking a possible class action lawsuit is in order because this capability is what I was looking for especially springing for the auto-water shut-off.

I’m having the same problem. It won’t connect anymore.

Have you found a work around?

Any success with HASS integration?

@markmghali @alexbeatle
I’ve finished integration for iQua supported water softeners. It fetches data from Ecowater company server.

1 Like

Thanks for doing this! Does their api allow for turning on and off the valve?

@jmacul2 shut off valve? If the application has this function, 99% API have this function too. But I can’t check because my softener doesn’t have shut off valve.

Thank you!
Is it possible to add a sensor for when cleaning is needed?
Is data available offline (local network)?

Created a card inspired by this… :slight_smile:
https://community.home-assistant.io/t/new-integration-grunbeck-softliq/157478/44

type: picture-elements
image: /local/water_soft.jpg
elements:
  - type: state-label
    entity: sensor.water_softener_water_current_flow
    style:
      top: 10%
      left: 70%
      color: white
  - type: conditional
    conditions:
      - entity: sensor.water_softener_state
        state: Online
    elements:
      - type: state-label
        entity: sensor.water_softener_state
        style:
          top: 25%
          left: 38%
          color: green
          font-weight: bold
          font-size: 150%
  - type: conditional
    conditions:
      - entity: sensor.water_softener_state
        state: Offline
    elements:
      - type: state-label
        entity: sensor.water_softener_state
        style:
          top: 25%
          left: 38%
          color: red
          font-weight: bold
          font-size: 150%
  - type: state-label
    entity: sensor.water_softener_today_water_usage
    style:
      top: 28%
      left: 77%
      text-align: left
      color: rgb(0,0,0)
      font-size: 100%
      font-weight: normal
    prefix: 'Used today: '
  - type: state-label
    entity: sensor.water_softener_water_usage_daily_average
    style:
      top: 34%
      left: 77%
      text-align: left
      color: rgb(0,0,0)
      font-size: 100%
      font-weight: normal
    prefix: 'Daily average: '
  - type: state-label
    entity: sensor.water_softener_available_water
    style:
      top: 48.3%
      left: 77%
      color: rgb(0,0,0)
      font-size: 100%
      font-weight: normal
    prefix: 'Water level: '
  - type: state-label
    entity: sensor.water_softener_salt_level
    style:
      top: 63.5%
      left: 77%
      color: rgb(0,0,0)
      font-size: 100%
      font-weight: normal
    prefix: 'Salt level: '
  - type: state-label
    entity: sensor.water_softener_out_of_salt_date
    style:
      top: 67.5%
      left: 77%
      color: rgb(0,0,0)
      font-size: 100%
      font-weight: normal
    prefix: 'Empty: '
  - type: image
    style:
      top: 48.4%
      left: 50%
      width: 19%
      aspect_ratio: 50%
    entity: sensor.water_softener_water_level_image
    state_image:
      image_0: /local/circ_blue_0.png
      image_25: /local/circ_blue_25.png
      image_50: /local/circ_blue_50.png
      image_75: /local/circ_blue_75.png
      image_100: /local/circ_blue_100.png
  - type: image
    style:
      top: 65.8%
      left: 50%
      width: 19%
      aspect_ratio: 50%
    entity: sensor.water_softener_salt_level_image
    state_image:
      image_0: /local/circ_grey_0.png
      image_25: /local/circ_grey_25.png
      image_50: /local/circ_grey_50.png
      image_75: /local/circ_grey_75.png
      image_100: /local/circ_grey_100.png
1 Like

Nice work. Thank you!

1 Like

Any chance we have answers for these?

I am really excited about this! Thank you arturzk! I’m having some trouble though, and am hoping someone can help out. I followed the instructions on github — copied just custom_components/iqua_softener folder into the config folder (didn’t touch other files at root like hacs.json). I added the iqua integration, and plugged in my user, pass and serial. But the sensors never seem to get created. Checking the logs, I see this entry below. Any ideas?

Error setting up entry iQua RHW4221-xxxxx-xxxx for sensor

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 313, in async_setup
    result = await component.async_setup_entry(hass, self)  # type: ignore
  File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 204, in async_setup_entry
    return await component.async_setup_entry(entry)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 147, in async_setup_entry
    platform = await async_prepare_setup_platform(
  File "/usr/src/homeassistant/homeassistant/setup.py", line 309, in async_prepare_setup_platform
    platform = integration.get_platform(domain)
  File "/usr/src/homeassistant/homeassistant/loader.py", line 530, in get_platform
    cache[full_name] = self._import_platform(platform_name)
  File "/usr/src/homeassistant/homeassistant/loader.py", line 535, in _import_platform
    return importlib.import_module(f"{self.pkg_path}.{platform_name}")
  File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/config/custom_components/iqua_softener/sensor.py", line 208, in <module>
    class IquaSoftenerSaltLevelSensor(IquaSoftenerSensor):
  File "/config/custom_components/iqua_softener/sensor.py", line 213, in IquaSoftenerSaltLevelSensor
    def icon(self) -> str | None:
TypeError: unsupported operand type(s) for |: 'type' and 'NoneType'

Worked without issues for me.

Are you sure the username, password and the serial number are correct (inc. correct case)? I couldn’t recall my iQua login info, so had to change password.

Your error says…

Blockquote
Error setting up entry iQua RHW4221-xxxxx-xxxx for sensor…
Blockquote

Maybe you used System Serial, when need to use DSN#?

Great idea. I had actually been using system serial. But I just tried with DSN#, and it still didn’t work. I doublechecked to make sure I had the user and password right as well. Still getting the same kind of log errors.

Tried…

  1. remove integration and delete the iqua_softener folder
  2. restart HASS
  3. create the iqua_softener folder with all files again
  4. restart HASS
  5. config the integration with the user info and the dsn#
  6. restart HASS
  7. check the entities…
    ?

I sometimes find that HASS doesn’t like just be given new login info when everything is already integrated. As if you give the component new info, but it retains the old in the background. So usually the above works.

Also, I’m assuming your HASS is up to date.

Post the new logs after this, please.

@timonium this errors comes from using Python 3.10 syntax on older version, you are probably using Python < 3.10? I made a commit with old syntax. Try pull updated version from git.