Renson healthbox 3.0

it’s connected via an UTP cable, i could test this cable maybe it’s not good.
Do you know the alternative procedure?
Because i have the feeling that he is indeed not corrected perfectly

Here is the procedure I followed. But quick remarks:

  1. using wifi
  2. using the admin page

Was that the file with information on the REST API?
File is not available for download anymore.
Can you re-up?

Just to inform you all
I have found another page with device information that might seems relevant:
/v1/device/

Digging up this topic as I just moved in my new home and installed a Renson Healthbox3 myself and want to properly use it.
The whole idea was to be able to get sensor values and what not for this ventilation unit.
That was a bit of a mistake to assume you could just access everything.

But step by step I move a little forward.
These are my findings so you do not need to do this yourself:

When going to the local IP address of the unit, you can just inspect the DOM and look for the javascript sources. In there you will find some local api endpoints.
I managed to show some hidden menus in the menu bar (config, error and logout). If you are good enough with web dev, you will be able to get those menu’s to popup very easily.
Anyway, I tried to get in those pages, but you cant, unless you know the password.
For the people that are interested: the pasword is just a basic username+password on the background, where they take the last 2 characters from the password as username (doesn’t really make any sense to me)…
Then I tried to dig a bit further, maybe I could find some more endpoints inside this Android app from the play store. There you can actually see sensor values, have some statistics etc, but that is not what we want here. We want them to be available in HomeAssitant.
I grabbed the apk file from some website and tried to decompile it and see if I can find any interesting stuff. I am afraid to say that i could not find anything useful in there. It looks like they get the endpoints from some config files that are, or encrypted, or grab them from the internet on some cloud enpoint (at least that is my expectation).

Then I started digging a bit further on google and found this on github: plugins/healthbox3 at master · openmotics/plugins · GitHub
An openmotics plugin (that is written in python).
But this application will only work when you have an openmotics controller and load this plugin onto it.
I looked a bit in this code to see if I can find some more usefull things. And see how they grab the sensor values.
Apparently it is possible to get it.
The sensor values are part of the second version of the API (API V2).
All sensor values are theoretically on this endpoint: ‘/v2/api/data/current’.
In this returned Json there is a “sensor” entity on each room. But it shows empty array sadly… (on the v1 enpoint there is no “sensor” entity at all)
Response example can be found here: plugins/_extracting_healthbox_data.py at ce3e8050e485c56abbe7968c8b78a1d9c243e744 · openmotics/plugins · GitHub
My expectation is that this is only accessible when you have a service account at Renson and register the device there.

I’ve contacted the supplier where I got my unit and got this answer: “You cannot access the local api, you need to be a certified, by renson, installer to get all documentation”
I also filled in the renson form to request api access for “HB3API” maybe some more information here: www.renson.eu/nl-be/forms/office-forms but I haven’t got any response on that yet.
Long story short: it looks like you really need a business account to access the data, or at least have the unit registered, as through OpenMotics this seems to work.

I currently got some simple stuff working in HomeAssistant. See my config here:

sensor:
# HealthBox 3.0 Sensors
  # Flow rates
  - platform: rest
    name: Bijkeuken Ventilatie Flow Rate
    unit_of_measurement: m³/h
    resource: http://<IpAddress>/v2/api/data/current/room/1/actuator/0/parameter/flow_rate/value
    scan_interval: 30
  - platform: rest
    name: Toilet Ventilatie Flow Rate
    unit_of_measurement: m³/h
    resource: http://<IpAddress>/v2/api/data/current/room/2/actuator/0/parameter/flow_rate/value
    scan_interval: 30
  - platform: rest
    name: Keuken Ventilatie Flow Rate
    unit_of_measurement: m³/h
    resource: http://<IpAddress>/v2/api/data/current/room/3/actuator/0/parameter/flow_rate/value
    scan_interval: 30
  - platform: rest
    name: Badkamer Ventilatie Flow Rate
    unit_of_measurement: m³/h
    resource: http://<IpAddress>/v2/api/data/current/room/4/actuator/0/parameter/flow_rate/value
    scan_interval: 30
  - platform: rest
    name: Waskamer Ventilatie Flow Rate
    unit_of_measurement: m³/h
    resource: http://<IpAddress>/v2/api/data/current/room/5/actuator/0/parameter/flow_rate/value
    scan_interval: 30
  - platform: rest
    name: Zolder Ventilatie Flow Rate
    unit_of_measurement: m³/h
    resource: http://<IpAddress>/v2/api/data/current/room/6/actuator/0/parameter/flow_rate/value
    scan_interval: 30
  # Fan details
  - platform: rest
    resource: http://<IpAddress>/v2/device/fan/voltage
    name: Ventilation Fan Voltage
    unit_of_measurement: 'V'
  - platform: rest
    resource: http://<IpAddress>/v2/device/fan/power
    name: Ventilation Fan Power
    unit_of_measurement: 'W'
  - platform: rest
    resource: http://<IpAddress>/v2/device/fan/rpm
    name: Ventilation Fan RPM
    unit_of_measurement: 'RPM'
  - platform: rest
    resource: http://<IpAddress>/v2/device/fan/flow
    name: Ventilation Fan Flow
    unit_of_measurement: 'm³s'
  - platform: rest
    resource: http://<IpAddress>/v2/device/fan/pressure
    name: Ventilation Fan Pressure
    unit_of_measurement: 'Hpa'

Maybe this config can help someone.
There is much more information available at ‘/v2/device’ and on ‘/v2/decision’ (shows all configured settings and I believe you can also update them by using a PUT request)

It is not yet completely finished as i still need to set a proper device_class where applicable for those sensors so you can use them properly.
See here my example for viewing the sensors:

Maybe any of you know some more information? Or can maybe get in touch with some installer that is willing to create a Renson account and get us some more information to get it integrated properly?

I must say that this is not very nice of Renson that you just cannot login to a device that is on your local network and that you cannot access the api in a normal way (like some public documentation, as this api is kinda public anyway…)

My apologies for any typo’s and this long post. But maybe this can help someone (or make sure you don’t waste your time… :slight_smile: )

4 Likes

I can get the GET request working, but haven’t been able to make any actual changes which is a shame.

When I try to POST http://192.168.1.159/v2/device/fan/rpm with a body I’m getting a 401 unauthorized. So can’t really progress without the username+pasword I’m affraid which is a shame.

I would love to create some automation in the bathroom related to the status of the window and humidity to enable ventilation only below an outside temperature (winter) etc…

Still hoping we can get this working.

Do you want to set the whole system to a higher rpm or a specific zone?
As it is possible through the local api (without authentication) to do it per zone.
Setting it per zone works like this:
https://<IpAddress>/v1/api/boost/1
Where the 1 in this case is the Id of the room (can be found in other get requests)
And add this as body (JSON):

{
    "enable": true, 
    "level": 120, 
    "timeout": 300
}

Where:

  • “enable” is either true or false (obviously)
  • “level” is in percentage, minimum is i believe 10% and max is 200%
  • “timeout” is in seconds. Minimum is 5 minutes (300) and maximum is i believe 12 hours (43200)
    I noticed that sometimes this causes weird behavior if you start looking at the app. It works, but the app might show different values. But didn’t reproduce it yet.
    Initial test also looked like sending "enable": false didnt work. I had to wait until the time expired.

Maybe if you’re lucky you can try sending same request without the id of the room. Maybe that triggers the whole system :slight_smile:

Hopefully this helps!

2 Likes

I just tried and this works! Exactly what I needed!

That’s amazing, that’s exactly what I want to do. The idea is to have a humidity sensor in the bathroom together with a window sensor so when the window is open it means we are just ventilating ‘normal’ way. In the winter I want the ventilation system to take care of the humidity, and so when the humidity reaches a certain treshold I want it to trigger the api call. Seems a lot of work, when the system is ‘smart’ and detects these things as well. But I don’t like how often it triggers and we hear it being on all the time…

Thanks a lot!

Hello @shocknl,

I have had quite a back and foth with Renson regarding the availability of the sensor values, unfortunatly it is not possible, I tried the same things as you, but unfortunatly hit the same roadblocks. Renson promised some time ago there would be a cloud API we can access this date trough (Not really wat we want, but I would love to have the values for humidity, CO2 and VOC from the unit…

If you make any more discoveries, please let me know, I visit this thread sometimes to check if someone found an yet unknown endpoint which has these values.

You can disable a boost session (at lease I can), bij sending:

{
    "enable": false, 
    "level": 120, 
    "timeout": 300
}

You cannot send just the enable false, but need to specify a level and timout (those will be ignored by the HB)

I also monitor http:///v2/device/ error to check if there are any issues with the HB.
There also is some version info in http:///renson_core/v1/packages you can check OS verion and last updated date…

Hi @L3Chat,

Do you know who you had contact with?
I also had a discution with them but want to make them aware of the cloud sollution not making sensce at all.

If you have some contact information and are willing to share please come back to me. The information is available but is only transmitted over HTTPS so we don’t see how it is gathered. We just need to convince them in some way :wink:

Hello everyone,

As a potential future buyer, I’ve sent an email to Renson some times ago aksing them if it was possible or planned to contact their products somehow other than from the official app.

I’ve just received an email from the product manager of Renson Belgium asking if I managed to succeed contacting their API for my project.
I’ve replied him today about my situation but I also pointed him to this thread and the new Partnership program of HA, who knows…

For privacy sake, I won’t provide his name here, but he said I could also contact [email protected] to seek for help.
Maybe, if they aren’t convinced right away to work on an integration with HA, a few emails from you wonderful people will show enough interest :slight_smile:

Not sure if it will help much if we all start contacting them on the same matter.
Also maybe asking them for integration into HA is a bit too much. If they can only allow us access (or implement it in firmware if not done yet) to all sensor values of the device, then we can do the rest ourselves :slight_smile:

Did they gave you any API documentation? Or all “documentation” you had is this topic :smiley: ?

Well, I respectfully disagree.

It isn’t like it is an known issue that they are aware of and are working on solving at the moment.
To me, it’s more like a feature request and showing interest in such feature make them better realize on which topic to work to satisfy general user experience.

Well, that’s in theory :slight_smile:

Unfortunately, no.
But since he got back to me, I’ll wait for a few days for an answer to my mail before sending one email back.

Point taken. I will wait for a few more days to give them some time to answer my initial email (not sent to [email protected]).
Then I will also raise my interest in such api (or make the existing api output the data that is currently empty)

Lets hope they can help us in some way :slight_smile:

Dear all, regarding the local API, feel free to contact me directly if you have any feedback or questions: [email protected], Digital Product Manager at Renson. I am also looking at the partner program with Home Assistant to see if this is a possible route.

Hi everyone,

This topic was a great resource for integration the flowmeters into HA.

I’m looking to use the boost function in HA.
But I can seem to get it working.

Would somebody be so kind to have a look at my code?

rest_command:
    hb3a:
      url: 192.168.0.120/v1/api/boost/2
      method: put
      payload: '{"enable": 'true', "level": 120, "timeout": 300}'
      content_type: 'application/json'

Calling the service using developer tools does nothing.
Values do not change when checking it with a get request via postman.

I did get it working in Postman (see screenshot)

Any help is greatly appreciated!

Dries

I also hope that Renson Waves CO2 can communicate in the future with home assistant. Maybe already possible?

Hi Dries,

I hope you got your issue already resolved. If not this is my code to get the boost running:

boost_airflow_masterbedroom:
  url: "http://192.168.0.217/v1/api/boost/5"
  method: put
  content_type: "application/json"
  payload: '{ "enable": true, "level": 200, "timeout": 28800 }'

You forgot the http:// part.

When I stop boosting the ventilation keeps running at a high rate, so to stop the boost I use this rest command:

stop_boost_airflow_masterbedroom:
  url: "http://192.168.0.217/v1/api/boost/5"
  method: put
  content_type: "application/json"
  payload: '{ "enable": true, "level": 15, "timeout": 300 }'

Apologies if the text isn’t correctly formatted, its the first time am commenting on these forums.

Bram

Hi Bram!

Thanks for your reply…
Can’t the rest command to work but got it working with a shell command using CURL.

This my code for anyone interested:

#set boost with time-out from slider
  setboostbadkamer: curl -X PUT -d '{"enable":true, "level":200, "timeout":{{ (float(states("input_number.sliderbadkamer" )) * 3600) }}}' 'http://192.168.0.120/v1/api/boost/1'
  setboostkeuken: curl -X PUT -d '{"enable":true, "level":200, "timeout":{{ (float(states("input_number.sliderkeuken" )) * 3600) }}}' 'http://192.168.0.120/v1/api/boost/2'
  setboosttoilet: curl -X PUT -d '{"enable":true, "level":200, "timeout":{{ (float(states("input_number.slidertoilet" )) * 3600) }}}' 'http://192.168.0.120/v1/api/boost/3'
  setboostgarage: curl -X PUT -d '{"enable":true, "level":200, "timeout":{{ (float(states("input_number.slidergarage" )) * 3600) }}}' 'http://192.168.0.120/v1/api/boost/4'
#Auto
  setnormalbadkamer: curl -X PUT -d '{"enable":false}' 'http://192.168.0.120/v1/api/boost/1'
  setnormalkeuken: curl -X PUT -d '{"enable":false}' 'http://192.168.0.120/v1/api/boost/2'
  setnormaltoilet: curl -X PUT -d '{"enable":false}' 'http://192.168.0.120/v1/api/boost/3'
  setnormalgarage: curl -X PUT -d '{"enable":false}' 'http://192.168.0.120/v1/api/boost/4'
#Off for 4 hours
  setoffbadkamer: curl -X PUT -d '{"enable":true, "level":0, "timeout":14400}' 'http://192.168.0.120/v1/api/boost/1'
  setoffkeuken: curl -X PUT -d '{"enable":true, "level":0, "timeout":14400}' 'http://192.168.0.120/v1/api/boost/2'
  setofftoilet: curl -X PUT -d '{"enable":true, "level":0, "timeout":14400}' 'http://192.168.0.120/v1/api/boost/3'
  setoffgarage: curl -X PUT -d '{"enable":true, "level":0, "timeout":14400}' 'http://192.168.0.120/v1/api/boost/4'

{{ (float(states(“input_number.sliderbadkamer” )) * 3600) }} is an input number which can be set from a lovelace UI component.

1 Like

Hi Steve

We have a cloud API for the Renson Waves (for reading the sensor values), a local API is not available and not on our roadmap. If you would like to integrate the Waves with the cloud API, feel free to contact me at [email protected]