Rheem Water Softener

According to support they are now blocking accounts using this api feature with homeassistant. Mine is blocked and they said i have to remove homeassistant before they will restore my account. Hopefully someone can come up with a way to pull data from the softner directly.

Here’s a few more details from them. This integration might just need to be modified to do less api calls.

"Because of the API use, accounts using this outside program have been blocked temporarily. Are you able to remove your system from the API program and use only the integrated IQUA program?

We are currently implementing a throttling limit of 1,000 calls to the system per day. Above this, you will not be able to receive data from our system. Regular use of the IQUA program does not reach near this limit. API home assistants make significant more calls than the 1,000 per day limit. "

2 Likes

I can confirm the same “Account Deactivated” entry in the HomeAssistant IQua integration logs.

It just happened to me a couple days ago…

…figured that this “API Volume” was the issue.
…Get a real Cloud infrastructure there Mr. Rheem dudes :>)

But I also agree that 1000 API call-per-day is reasonable for a device like this.
Maybe a simple code tweak as each day has 1440 minutes to it.
2-minute (vs 1-minute or less) API update timing change???

Unfortunately, as they are LOCKING accounts that are making too many requests, even my Android IQua app login is blocked and unusable. I created a service ticket to reactivate my account, but have still not heard back from their support department (apparently Morton owns this software).

1 Like

To be fair, the integration was doing an api call every 5 seconds, for a total of 17,280 api calls per day. I’ve manually adjusted the code in the integration to every 3 minutes.

Until we get an update from the integration author, you can change the following line in sensor.py to something more reasonable.

UPDATE_INTERVAL = timedelta(seconds=5)

I suspected this is what was happening with my new setup. I just put in my unit last weekend and noticed mine has been going down a lot along with my app and I suspected they were restricting it somehow. I agree 5 seconds is likely to get unwanted attention as this gets more and more popular. I am making this adjustment manually now. Thanks.

It’s sad that the company has limited API calls. Temporarily you can reduce UPDATE_INTERVAL in code. Soon I will prepare an update that reduces this interval. This setting is so frequent that you can record the current flow.

@optronomega can you confirm whether using an external program or too frequent API calls is a problem for them?

I started work in this direction a few months ago but abandoned it after doing this integration. In that case, I’ll have to come back to it. In short - softener is built on ESP32 which uses AWS IoT which is just MQTT with TLS. ESP has a partition with remote host settings and certificates. In theory, changing these settings should allow the softener to send data to the local MQTT broker, but this requires flashing the controller.

This is what I received from Rheem…
image
image
So yes, they don’t like external program calling their API :frowning:

1 Like

I received a response from them today indicating that “the program [meaning the service] closed down on Friday due to some problems with users attempting API access to the softener”. Sounds like they are blaming it for the outage on Friday. My guess is their infrastructure can’t handle the request load.

@rjsmith0 @alexbeatle Rheem and other companies only brands softeners or buying PCB+know how from Ecowater company. API lays on Ecowater domain (apioem.ecowater.com).

Yesterday I played with it a bit and the data can be downloaded from the AWS IoT server, but to get access there you need to read certificates from the device flash, which is impossible for many users. I don’t know if the certificates are set during the production of the device or during registration in the cloud service and are sent to the device via bluetooth. Anyway, if the company completely blocks access to the API, integration will no longer be so easy.

It’s stupid corporate policy. Instead of treating it as a free added value, because users will more often buy a device that can be integrated with their smart home, they treat it as a problem…

2 Likes

I got the same email the other day from iQua which is unfortunate. The HA integration was the main reason that I installed this softener. I had asked if they could reactivate my account, but they weren’t even sure of that.

Well they have killed my account now even after reducing the poll count to 2 minutes a couple of days ago. It looks like my serial number has been blacklisted as a new account doesn’t work either.
They said they will start re-enabling them next week. We have only had it a week so I am tempted to return the whole thing, buy a lower cost unit and go to a custom ESP monitor. I got the feeling they are being punitive about it rather than taking the high road and attempting to educate their customers.

Same here @ 3 minutes.

I’ve pushed commit where interval has been changed to 5 minutes.

@rjsmith0 I’ve changed interval to 5 minutes yesterday and today I have access to API again. Maybe this depends on which company softener you have? My is from Viessmann.

If you are familiar with ESP it is better to wait - I will wrote instruction and new integration which reads data from AWS IoT service where devices pushes data. This thing will need read ESP flash from device and extract certificate+key+ID. Maybe I will create second integration which emulates AWS IoT service locally - this will need write ESP flash and change server name and certificates.

I tried changing to “seconds=120” and now it doesn’t work. :frowning:

Update code from git. In the morning I’ve changed interval to 5 minutes and for me from yesterday its working. Probably you must wait for throttling reset on API (time with less requests).

Maybe a long shot, but anybody tried registering their units with the ecowater instead of iqua?
My account is still locked out so have no access to my unit details to try.

Ecowater has a website that we can scrape for data, instead of calling api. I don’t think iqua has a website.

As far as I remember, that’s not possible. S/N it’s not recognized. I’m guessing their site is for devices sold under their brand.

I ran pcaps from the android app to get a better picture of what the app is doing with the API. The app pulls on the API every second. I am shocked they would limit it to 1000 calls a day. One thing I did notice is the user agent has changed to okhttp/4.9.1 from okhttp/3.12.1 which is currently listed in the git repo – GitHub - arturzx/iqua-softener: Python library for fetching data for iQua water softeners from Ecowater server.

I am wondering if they are checking on that old user agent and only rate limiting on that. Because there really isn’t any other way to tell if the API calls are coming from the app or from HA. The app would break for sure if its limited to 1000 per day. Anyone who had it open for than 15 minutes would get blocked.

Maybe updating that user agent will bypass the rates. Cat and mouse game for sure.

I also have a water shut off valve setup on my softener but as far as I can tell that valve doesn’t get called through the API. It seems to communicate directly with the device for the water shut off valve. I want to find a way to get that valve programmed into this HA integration cause I want to setup automatons for things like leak detection, etc. I’ll do more investigating and try to mock up some pull requests once I know better whats going on.

2 Likes

They didn’t update iOS app yet so I assume that they’re not using rate limiting based on user agent header.

OkHttp is Android/Java library for this reason user agent on iOS is probably different than on Android.

@jmacul2 thanks for investigation, I will update user-agent in my library. When developing this integration I saw that app calls API every second (maybe for showing realtime water flow) and for this reason I’ve set interval to 5 seconds. For now 5 minutes interval working well for 3 days in my HA.