Renson healthbox 3.0

Anyone uses this one ?

1 Like

I have one, but nothing out of the box exists I’m afraid :slight_smile:

it would be nice :slight_smile:

I have been digging around there’s a local api endpoint you can query on the healthbox 3 which gives a “Global Air Quality Index” and a the air flow rate in m3/h per room. I’m writing a simple sensor to start with.

I’d also like to have the co2, humidity and VOC sensor data, but haven’t found an api endpoint yet…

I was just playing around with the HB3 API as well. The interesting ones:
/v1/device/test gives you valve positions
/v1/api/data/current gives you room info, which valve they’re connected to, valve flowrate (relates to motor power and valve actuator position, there’s also the sensor 0 (global AQI) in there)
/v1/device/fan gives you fan info (RPM, voltage, etc)
/v1/constellation tells you how everything is connected (room-valve-sensor-actuator, etc)

It’s also possible to enable boost mode per room, and define timeout:

PUT "http://{HEALTHBOX_IP}/v1/api/boost/{ROOM_ID}"
Content-Type: application/json
{
  "enable": true,
  "level": 175,
  "timeout": 900
}

a quick and dirty python script gives me these values:

$ ./hb3.py
Main Pollutant: indoor relative humidity is 93.8 in Kelder
Room 1 is Badkamer type BathRoom on valve 1.1 flowrate 5.0 m3/h, valve position is 9.4
Room 2 is Toilet Praktijk  type Toilet on valve 1.2 flowrate 5.0 m3/h, valve position is 9.5
Room 3 is Toilet Boven type Toilet on valve 2 flowrate 5.0 m3/h, valve position is 9.5
Room 4 is Oefenzaal type Office on valve 3 flowrate 5.0 m3/h, valve position is 9.3
Room 5 is Praktijk type Office on valve 4 flowrate 5.0 m3/h, valve position is 9.2
Room 6 is Kelder type LaundryRoom on valve 5 flowrate 77.0 m3/h, valve position is 100.0
Room 7 is Keuken type Kitchen on valve 6 flowrate 7.5 m3/h, valve position is 14.6
Room 8 is Douchekamer type Shower on valve 7 flowrate 5.0 m3/h, valve position is 9.2

Source of the python script:

#!/usr/local/bin/python

import json
import requests
import base64


hb3ip = "192.168.2.163"
hb3port = "8080"

hb3url = "http://" + hb3ip + ":" + hb3port + "/"

currentdata = requests.get(hb3url+"v1/api/data/current")
devicetest = requests.get(hb3url+"v1/device/test")

numRooms = len(currentdata.json()['room'])

mainPollutant = currentdata.json()['sensor'][0]['parameter']['main_pollutant']['value']
mainPollutantValue = round(currentdata.json()['sensor'][0]['parameter']['index']['value'], 1)
mainPollutantRoom = currentdata.json()['sensor'][0]['parameter']['room']['value']

print "Main Pollutant: " +  mainPollutant + " is " + str(mainPollutantValue) + " in " + mainPollutantRoom

i = 0
roomName = "bleh"
while i < numRooms:
	roomName = currentdata.json()['room'][i]['name']
	roomType = currentdata.json()['room'][i]['type']
	roomID =  currentdata.json()['room'][i]['id']
	roomValve = currentdata.json()['room'][i]['parameter']['valve']['value']
	roomValveFlowRate = round(currentdata.json()['room'][i]['actuator'][0]['parameter']['flow_rate']['value'], 1)
	valvePosition = round(devicetest.json()['valves'][i]['position'], 1)
	print "Room " + str(roomID) + " is " + roomName + " type " + roomType + " on valve " + roomValve + " flowrate " + str(roomValveFlowRate) + " m3/h, valve position is " + str(valvePosition)
	i += 1

Then I have this defined in my config yaml, as a test. I know the values are off, and flowrate would be a better measure than valve position. Also this does one request per value so it’s not the most effective, but I’m just testing the waters here:

sensor:
  - platform: rest
    resource: http://192.168.2.163:8080/v1/device/test/valves/0/position
    name: Bathroom Ventilation Level
    unit_of_measurement: '%'
  - platform: rest
    resource: http://192.168.2.163:8080/v1/device/test/valves/1/position
    name: Downstairs Toilet Ventilation Level
    unit_of_measurement: '%'
  - platform: rest
    resource: http://192.168.2.163:8080/v1/device/test/valves/2/position
    name: Upstairs Ventilation Level
    unit_of_measurement: '%'
  - platform: rest
    resource: http://192.168.2.163:8080/v1/device/test/valves/3/position
    name: Exercise Room Ventilation Level
    unit_of_measurement: '%'
  - platform: rest
    resource: http://192.168.2.163:8080/v1/device/test/valves/4/position
    name: Practice Ventilation Level
    unit_of_measurement: '%'
  - platform: rest
    resource: http://192.168.2.163:8080/v1/device/test/valves/5/position
    name: Basement Ventilation Level
    unit_of_measurement: '%'
  - platform: rest
    resource: http://192.168.2.163:8080/v1/device/test/valves/6/position
    name: Kitchen Ventilation Level
    unit_of_measurement: '%'
  - platform: rest
    resource: http://192.168.2.163:8080/v1/device/test/valves/7/position
    name: Childrens Bathroom Ventilation Level
    unit_of_measurement: '%'
  - platform: rest
    resource: http://192.168.2.163:8080/v1/device/fan/voltage
    name: Ventilation Fan Voltage
    unit_of_measurement: 'V'
  - platform: rest
    resource: http://192.168.2.163:8080/v1/device/fan/power
    name: Ventilation Fan Power
    unit_of_measurement: 'W'
  - platform: rest
    resource: http://192.168.2.163:8080/v1/device/fan/rpm
    name: Ventilation Fan RPM
    unit_of_measurement: 'RPM'
  - platform: rest
    resource: http://192.168.2.163:8080/v1/device/fan/flow
    name: Ventilation Fan Flow
    unit_of_measurement: 'm3s'
  - platform: rest
    resource: http://192.168.2.163:8080/v1/device/fan/pressure
    name: Ventilation Fan Pressure
    unit_of_measurement: 'Hpa'

But indeed I can’t find individual sensor values.

1 Like

Great find! How did you find the other endpoints?

Guessing and brute-forcing mainly, I also have the API documentation from Renson but that only talks about v1/api/data/current and v1/api/boost.

I’m suspecting that the actual sensor values are only exposed to Renson via their cloud. There’s supposedly a cloud API as well, but I don’t have any documentation for that.

Hi can you please share the link to the “API documentation from Renson” ?

thanks in advance

Hi,
Someone could share the doc on the API please ?
Can’t find :confused:

Thx

Hi All,

I was able to figure out the api link to retrieve all info at once as the API interface can’t handle 10+ requests at the same time. http://healthbox3_IP/v1/api/data/current
The thing is i’m not that good at how to parse the json into proper data and put it into influx or Home Assistant for now.

Anyone that could provide some more info here?

To use the boost function as a Service this worked out for me (just add it in configuration.yaml or any of the related files):

rest_command:
  service_name:
    url: http://{HEALTHBOX_IP}/v1/api/boost/{ROOM_ID}
    method: put
    payload: '{"enable":{{enable}},"level":{{level}},"timeout":{{timeout}}}'
    content_type: 'application/json'

This part i use in the automations to customize the speed and timings:

{
  enable: 'true' #enable or disable the service (this is case sensitive!)
  level: 200 #speed of fan (maximum 200% over 100% it starts making noise)
  timeout: 3600 #time to return to normal operations 
}
1 Like

anyone has the latest API documentation?
The solution above is not working, as i’m probably on V2 of the API version.
Also i noticed in my unfi that the HB3 is going in a kind of sleep mode every x minutes for around 5min.

I’m i the only one or have someone this to?

1 Like

What issues do you have? I can exchange v1 to v2 in the URL’s mentioned here without issue. There is no real documentation on the API. If you ask renson you get a generic PDF with some examples, but nothing really interesting.

Hi L3,

I just cannot recieve any info on the url’s i found.
timeout on : http://192.168.1.130:8080/v1/api/data/current
no json reply on : http://192.168.1.130/v1/api/data/current
via app i can see stuff in the app and is online but in my unifi i see every 2 hours disconnectes (but still available via app, wtf this is weird stuf…)
I found some V2 url’s but can’t find them now

Mhm,

That’s diffrent from what I am seeing. Can you check http://<HB3_IP>/renson_core/v1/packages and see which version you are running?
I am on APP 1.10.1 and OS 1.5.0

/v1/api/data/current and /v2/api/data/current give same JSON for me.

Is your HB on wifi or ethernet?

i just don’t recieve any info on the url’s :frowning:
Really werid tbh.
Firmware version : EDURA DELTA 0.0.67
Andriod version 1.6.2

And you don’t get any response when you go to the IP in a browser?


nope, i don’t receive anything from it.
I also see it in my unify connecting and disconnecting (a lot every day) so i don’t think that’s ok right?

Is your wifi strong enough? It only works on 2.4 Ghz, this can be a problem if you use same ssid for both.

It is strange tough you are seeing data in the android app, this would indicate there is some data flowing trough. Almost like it is connecting, sending data and going offline again…

I had issues getting the health box connected to wifi, but raising a ticket with renson helped (had to follow an alternative procedure putting HB in AP mode and then connect to this network, log into the local admin page and set up the network from there)