Create Integration Solesta 2.0 Zonneboiler

Since a couple of weeks i’ve installed a Solesta 2.0 Zonneboiler. The system communicates with the Solesta Server for service purposes. It would be nice to have a integration in HA, so i can display the information in lovelace dashboard.

I’ve no clue how to do this. Does anybody already started the development?

Today a Solesta 2.0 Zonneboiler is installed at my place to, so I am interested too.

I guess values can probably be obtained from a java script, in the website source I find this
https://monitor.solesta.nl/systeem-status/static/js/main.67292e11.chunk.js
Maybe phantomjs with get.js will do the trick.

So far it looks like Solesta is using esp32/arduino in its boiler, I sent a mail to Solesta to inform if the have an API or they can modify the boiler software to talk to a local MQTT server (temperature and device status - standby / circulating).

I did some investigation to the BuildIn Arduino of the Solesta boiler, and could get some data of it. However also noticed there is a non-critical problem with security. I informed the manufacturer about this, I will not share these on the internet.
When I spoke to the manufacturer, they liked the idea to sent data to homeassistant or a similar platform. So we have to wait for this.
Meanwhile I found another solution for homeassistant by using a Wemos D1 Mini (bought a bag full of them at AliExpress) and a Dallas DS18b20 one-wire temperature sensor (again AliExpress).
Software: ESPEasy, just to keep it simple with a MQTT controller as broker.

I placed the Dallas Sensor in the insulation under the pump, so now I am measuring the coldest water at te bottom of the boiler. If this works (yes it works) I am thinking about a second Dallas Sensor so you van measure the temperature that is coming from the roof.

Now waiting what will happen

Hi Han,

I am very curious what the results are with the Dallas sensor you installed. Did you receive a reaction from the manufacturer about the non-critical problem?

Can you help me how I can achieve getting data from solesta to HA?

Kind regards

@RV1978 @HanSyt , is this what you both eventually did?

Meanwhile I found another solution for homeassistant by using a Wemos D1 Mini (bought a bag full of them at AliExpress) and a Dallas DS18b20 one-wire temperature sensor (again AliExpress).
I placed the Dallas Sensor in the insulation under the pump, so now I am measuring the coldest water at te bottom of the boiler. If this works (yes it works) I am thinking about a second Dallas Sensor so you van measure the temperature that is coming from the roof.

And any news regarding below?

When I spoke to the manufacturer, they liked the idea to sent data to homeassistant or a similar platform. So we have to wait for this.

unfortunately I have no further updates about the server of Solesta. The sensor with the dallas at the bottom tube functions, not as good as I would like, since it cools down and does not represent the temperature of the boiler.

What I ended up doing is the following. I looked at the way you can sign in at monitor.solesta.nl and mimicked the behavior on the command line. It turns out that they do have api endpoints available.

With following statement you can retrieve the client_id that you need in the setup that follows below:

bash -c "rm -f solesta_cookies.txt && curl -s -c solesta_cookies.txt --location https://monitor.solesta.nl/api/login --header 'Content-Type: application/json' --data '{\"email\": \"<YOUR_EMAIL>\", \"password\": \"<YOUR_PASSWORD>\"}' >> /dev/null && curl -s --cookie solesta_cookies.txt --header 'Content-Type: application/json' --location https://monitor.solesta.nl/api/customer_account_info"

This will return a json payload and just look for something like "client_id":"<YOUR_CLIENT_ID>".

Now my command line statement in HA looks like:

command_line:
  - sensor:
      name: Solesta water temperatuur
      command: bash -c "rm -f solesta_cookies.txt >> /dev/null && curl -s -c solesta_cookies.txt --location https://monitor.solesta.nl/api/login --header 'Content-Type: application/json' --data '{\"email\": \"<YOUR_EMAIL>\", \"password\": \"<YOUR_PASSWORD>\"}' >> /dev/null && curl -s --cookie solesta_cookies.txt --header 'Content-Type: application/json'  --location https://monitor.solesta.nl/api/get_system_info?client_id=<YOUR_CLIENT_ID>"
      unit_of_measurement: "°C"
      value_template: "{{ value_json.water_temp | float }}"
      json_attributes:
        - energy_tank_kwh
        - pump_status
        - showers
        - system_status
      scan_interval: 300

This also returns some of the other values that are available and set them as attributes on your sensor.

Did you guys eventually got this working? i’m new to HA and tried te method explained by Frank Tubbing, but didn’t got it to work.

At what point did you fail to make the next step?

Hi Frank,

Is it possible to give a short step by step tutorial. I am nog that good in figuring it out bij myself.

I have no clue how to get the client_id?

Which programm can i use to put the command:
bash -c “rm -f solesta_cookies.txt && curl -s -c solesta_cookies.txt --location https://monitor.solesta.nl/api/login --header ‘Content-Type: application/json’ --data ‘{"email": "<YOUR_EMAIL>", "password": "<YOUR_PASSWORD>"}’ >> /dev/null && curl -s --cookie solesta_cookies.txt --header ‘Content-Type: application/json’ --location https://monitor.solesta.nl/api/customer_account_info

It depends a bit on your OS. If you have macos/linux it is simple and just paste it in a terminal. If you are on a windows machine then the easiest way is to run it in Git bash. If you do not have that, then you first need to install git.

Thank you so much, it worked!

Here’s your translation into English:


I had made quite some progress. In the Home Assistant terminal, I get the following output:

command:
~ $ /homeassistant/solesta.sh

output:
{“energy_tank_kwh”:0.87,“energy_tank_mj”:3.1395000000000004,“pump_status”:“Standby”,“showers”:0.7214999999999999,“system_status”:“Online”,“total_energy”:1,“water_temp”:19.5}

Here’s your translation into English:


I had made quite some progress. In the Home Assistant terminal, I get the following output:

Command: ~ $ /homeassistant/solesta.sh

Output:

{"energy_tank_kwh":0.87,"energy_tank_mj":3.1395000000000004,"pump_status":"Standby","showers":0.7214999999999999,"system_status":"Online","total_energy":1,"water_temp":19.5}

That looks good to me!

However, the values are not showing up in my dashboard. They remain as “Unknown”:

Can you help me take the next step?

Yeah I think the output is as one could expect. I have something like the following in my configuration.yaml:

...
command_line: !include command_line.yaml
...

In the same folder I have a file command_line.yaml:

command_line:
  - sensor:
      name: Solesta water temperatuur
      command: bash -c "rm -f solesta_cookies.txt >> /dev/null && curl -s -c solesta_cookies.txt --location https://monitor.solesta.nl/api/login --header 'Content-Type: application/json' --data '{\"email\": \"<YOUR_EMAIL>\", \"password\": \"<YOUR_PASSWORD>\"}' >> /dev/null && curl -s --cookie solesta_cookies.txt --header 'Content-Type: application/json'  --location https://monitor.solesta.nl/api/get_system_info?client_id=<YOUR_CLIENT_ID>"
      unit_of_measurement: "°C"
      value_template: "{{ value_json.water_temp | float }}"
      json_attributes:
        - energy_tank_kwh
        - pump_status
        - showers
        - system_status
      scan_interval: 300

Make sure that you replace <YOUR_EMAIL>, <YOUR_PASSWORD> and <YOUR_CLIENT_ID> and as far as I know you should be good to go