New ETA PU15 Integration

Hi I wrote a first version of a custom integration for the ETA PU pellet unit

https://github.com/hubtub2/ha_custom_components/tree/master/eta

Load the script and copy to /config/custom_components/eta, then add an entry to configuration.yaml.
(see README.md) then restart.

Tip: for the new HA Energy Monitor add the ETA Sensor for total power as “Gas Sources”. There is no pellet wood heating yet - but it works just fine.

Note: It is using the REST api of the PU that you first have to activate, see the Readme.MD file.

Give me a not if you are using this integration - then I may invest more time to generalize it.

3 Likes

Hello,

thanks for publishing your custom integration. I’m getting my PU15 soon. Did you notice any downside of using the total power as “Gas Source”? Is it also possible to integrate the data source of the solar panel (like temperature of the panel, etc.)?

Is there any good documentation of the API? If yes, I might also wanna work on this integration.

Thanks a lot,
and greetings from austria :wink:

Hi Peter,
i dont have a solar panel for hot water, but if the ETA API exposes the temperature, it should be possible. Check out the README.md of the intergration, there should be a link to the API.
Best,
Stefan

1 Like

Hi Shell1

I just got my ETA SH 30 running and I will certainly use your integration. Trying to get it going atm.

Keep up the good work!
Peter

Hi Shell1

I keep getting this error:

do you have clue what could be wrong?

Below the error log is my config

Logger: homeassistant.components.websocket_api.http.connection
Source: components/hassio/init.py:705
Integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 3:47:42 PM (1 occurrences)
Last logged: 3:47:42 PM

[140513768472688] The system cannot restart because the configuration is not valid: Platform error sensor.eta_heating - Integration ‘eta_heating’ not found.

Traceback (most recent call last): File “/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py”, line 199, in handle_call_service await hass.services.async_call( File “/usr/src/homeassistant/homeassistant/core.py”, line 1713, in async_call task.result() File “/usr/src/homeassistant/homeassistant/core.py”, line 1750, in _execute_service await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)( File “/usr/src/homeassistant/homeassistant/components/hassio/init.py”, line 705, in async_handle_core_service raise HomeAssistantError( homeassistant.exceptions.HomeAssistantError: The system cannot restart because the configuration is not valid: Platform error sensor.eta_heating - Integration ‘eta_heating’ not found.

config.yaml

sensor:
- platform: eta_heating
  host: 192.168.178.103
  port: 8080
  scan_interval: 60`

I use smarthome-ng in the moment and wrote a python plugin there for reading and writing ETA.
Do You have any plans to enable wirting support? For instance switch on/of the ETA or switch extra hot water button and so on?

I also customized the addon so that every sensor is addedd by default, but be aware that therefore startup of hassio takes a little longer, as the integration has to call like 2000 endpoints every startup.

If one wants to try out the integration:

Hi and thanks a lot for the integration.

I have just the question what unit i need to take if i want to get only the strValue.

e.g. from the following restcall: /40/10021/0/0/12080

<eta xmlns="http://www.eta.co.at/rest/v1" version="1.0">
<value advTextOffset="4000" unit="" uri="/user/var/40/10021/0/0/19402" strValue="Heizen" scaleFactor="1" decPlaces="0">4011</value>
</eta>

I just would like to get the strValue “Heizen”

if let the unit empty in the custom_senors.py like:

  {
    "name": "ETA Kessel -  ein aus",
    "uri": "/40/10021/0/0/12080",  # ETA Kessel - ein aus
  },

I get not the strValue as result. Instead i get 4011.

Does somebody of you know how to fix this?
Thanks in advance

Hi,
I set up this integration in my home-assistant and faced the same problem.

I have found a solution for this that suits me here in the forum:

I have setup the entries that in needed as new sensor in my configuration file.

Here the REST call you postet for example written in the configuration.yaml

sensor:
  - platform: rest
    resource: http://eta-touch.fritz.box:8080/user/var/40/10021/0/0/12080
    unique_id: eta_kessel_status
    name: eta_kessel_status
    value_template: '{{ value_json["eta"]["value"]["@strValue"] }}'

have a nice day.

edited link to correct post.

If somebody is still interested, I updated my resource, to also support buttons. So turning every avaliable button (for instance the heaters on and off) is now possible.

But due to my way of implementing this restarting times are currently quite high. It takes like 5 minutes to boot the addon, as every endpoint has to be pinged once.

1 Like

Hello,
I get the following error: Invalid config for [sensor.eta_heating]: required key not provided @ data[‘prefix’]. Got None. (See ?, line ?).

Can someone help me fix this? I copied the eta folder from @Peda1996 to my custom config folder and added the corresponding lines in my config

Rest Platform is working just fine but implementing everything at once would be a huge win for me :slight_smile:

Hey, sorry for the late reply. You just have to follow the instructions provided here:

Sensors can just be found in the entities tab. They are disabled (first start) after everything was pinged once.

I havn’t fixed the long startup times yet, as things are working quite nice for me right now with this configuration ^^.