Actually it seemed to be no way to get access to the Kaco API. There are a lot of discussions about it (and also longer times) and on GitHub is an old implementation, but it isnt working anymore and the developper has given up the project. I tried to get information about Kaco directly, they answered, but they give no informations about the protocol or ways of access or so. = not helpful. In some other informations somebody talks about openems but you need also an API-ID “only for development”. Open said: I cannot understand this policy! It is user-unfriendly and reason enough to change to another supplier. Actually I take the data on team-viewer and I plan to get some of the data about current-transformer. Some of the data I take over my Zappi Wallbox which is integrated in home-assistant. That works really fine.Compliments to all involved developpers.
The Primus Energy Manager from energydepot.de (an openEMS based little inexpensive Raspi like box) is available for the KACO Blueplanet Hybrid 3.0TL3 - 10.0TL3 (originally named “Energydepot Centurio”). Afaik this is the only reasonable communication way to the inverter. It allows all inverter data to be read out and displayed, logged etc. (and in the future planned also to control it and completely replacing hy-sys). With this it is also possible to connect external systems by REST API; one example is the existing integration to the openWB wallbox for PV surplus charging that works perfectly for me. Presumably this will also be the way to integrate with HA. As I’m a HA newbie (I only joined yesterday…) connecting my 2017 Centurio and the openWB is definitely on the to-do list - but maybe one of you will be quicker…
Ref. openWB: I’m not quite sure if there already is a ready to work HA integration with openWB? If so, it may be possible to use the Primus as connection between Centurio and openWB and then forwarding the PV info from openWB to HA?
P.S. After KACO had been acquired by Siemens, since 2024 Energydepot has taken back all Centurio/Blueplanet Hybrid related activities with full technical control from KACO in order to portfolio streamlining, so it will make sense to directly talk to energydepot…
I took a poke around their app KACONXSetup and tried to get as much info as I could. It seems the only useful endpoint is the one you listed. Although maybe other models or bigger setups would have useful information on the other endpoints.
Anyways, no one needs to write a custom integration to use this data. The build in RESTful integration can easily handle it. Here is what I built with it:
rest:
- resource: "http://ip_of_converter:8484/getdevdata.cgi?device=2&sn=SN_of_converter"
scan_interval: 10
sensor:
- name: "Kaco Energy Total"
value_template: "{{ value_json['eto'] / 10 }}"
unit_of_measurement: kWh
device_class: energy
- name: "Kaco Energy Today"
value_template: "{{ value_json['etd'] / 10 }}"
unit_of_measurement: kWh
device_class: energy
- name: "Kaco Today Run Time"
value_template: "{{ value_json['hto'] }}"
unit_of_measurement: h
device_class: duration
- name: "Kaco Current Total Power"
value_template: "{{ value_json['pac'] }}"
unit_of_measurement: W
device_class: power
- name: "Kaco Power Factor"
value_template: "{{ value_json['pac'] }}"
unit_of_measurement: "%"
device_class: power_factor
- name: "Kaco Last Update"
value_template: "{{ strptime(value_json['tim'], '%Y%m%d%H%M%S', 0)}}{{ now().strftime('%z') }}"
device_class: timestamp
- name: "Kaco AC Voltage Output 1"
value_template: "{{ value_json['vac'][0] / 10 }}"
unit_of_measurement: V
device_class: voltage
- name: "Kaco AC Voltage Output 2"
value_template: "{{ value_json['vac'][1] / 10 }}"
unit_of_measurement: V
device_class: voltage
- name: "Kaco AC Voltage Output 3"
value_template: "{{ value_json['vac'][2] / 10 }}"
unit_of_measurement: V
device_class: voltage
- name: "Kaco AC Current Output 1"
value_template: "{{ value_json['iac'][0] / 10 }}"
unit_of_measurement: A
device_class: current
- name: "Kaco AC Current Output 2"
value_template: "{{ value_json['iac'][1] / 10 }}"
unit_of_measurement: A
device_class: current
- name: "Kaco AC Current Output 3"
value_template: "{{ value_json['iac'][2] / 10 }}"
unit_of_measurement: A
device_class: current
- name: "Kaco DC Voltage Input 1"
value_template: "{{ value_json['vpv'][0] / 10 }}"
unit_of_measurement: V
device_class: voltage
- name: "Kaco DC Voltage Input 2"
value_template: "{{ value_json['vpv'][1] / 10 }}"
unit_of_measurement: V
device_class: voltage
- name: "Kaco DC Current Input 1"
value_template: "{{ value_json['ipv'][0] / 100 }}"
unit_of_measurement: A
device_class: current
- name: "Kaco DC Current Input 2"
value_template: "{{ value_json['ipv'][1] / 100 }}"
unit_of_measurement: A
device_class: current
If you can connect to it with the KACO NX Setup app then you need to turn on the App Local for monitoring. You’ll know if it will work because you can simply go to the url in your config above with a web browser and it will return data.
You have a different version. What I have and what michi14 have do not have any sort of web interface and the url is just a data endpoints.
Now if you opened the website on a computer and use the developer tools utility to monitor network calls. You could find out how the website is getting the data and create a REST sensor from that. If you can find the data I can help you with the sensor but since this is completely different from mine I cannot find the data endpoints for you.
someone in the German KNX-User-Forum was able to access the KACO blueplanet hybrid 10.0 TL3 via Python Script. I tested the script, and it worked with my 2 kacos, too.
I am a Homeassistant rookie and also not familiar with Python-coding. But maybe someone here is able to use this script to develop a Homeassistant integration out of it.
the code in the KNX-Forum seems to be an “emulation” of the tcp communication between the inverter (source) and a computer (in this case a raspi; destination).
He/she “cracked” the payload of the data sent by the inverter & aditionally the multiple data types (float, int) & formats (32bit data & array of 3 values (96bit).
Don’t know how he/she did it but it must took unimaginable count of hours for reverse engineering this and extracting the values out of the hex payload by using Wireshark. Challenge to put it in custom component code seems to be solvable but I’m not shure, if the socket lib (it’s used in the python code to establish the communication between source & dest) is useable within HA?
@neunzehn78 : The Kaco Blueplanet Hybrid may have different frimware versions. Is there any restriction known with which firmware the python code is working?
Tried it with my Kaco BP Hybrid a minute ago. It works too!!! I have 8.2@hy-switch, 8.18@Controller and 8.9@COM.
I do occasionally read posts here in the forum (today i signed in to answer you ), but I haven’t installed or run HomeAssistant on my system yet. So far, I haven’t really felt a strong need for it. When it comes to Python coding, I might be able to help since I can probably work with the code that’s provided. However, there are certainly real experts here in the forum for whom this would just be a simple task.
I have tested the script with the following firmware configuration, which is the latest available from Kaco at this point in time: hy-switch: 8.2, Controller: 8.27, COM: 8.11.
I tried to generate a custom integration with the support of ChatGPT. This was successfully running in my VS Code environment and when I copied it to Homeassistant, I can see my custom integration and the sensors provided by the script. So if someone with more experience would take this up, let me know.