Integration of ETA (Heating) sensors and switches to Home Assistant
This integration uses the ETA REST API to get sensor values and set switch states from the ETA pellets heating unit.
This is a fork of nigl's repo with the following changes:
Bereit
(Ready
) or Heizen
(Heating
) for the boiler)Sensors | Controls | Diagnostic |
---|---|---|
This integration can be configured directly in Home Assistant via HACS:
HACS
-> Integrations
-> Click on the three dots in the top right corner --> Click on Userdefined repositories
https://github.com/Tidone/homeassistant_eta_integration
into the field Repository
Integration
in the dropdown field Category
.Add
button.ETA
integration, click on it and the click on the button Download
on the bottom right cornerConfiguration
-> Integrations
-> Click + Add Integration
Search for Eta Sensors
and follow the instructions.
Configure
. This will also take a bit of time, but not as much as when adding the integration for the first time.You have to activate the webservices API on your pellet heater first: see the "official" documentation:
meinETA
Settings
in the middle of the page (not the bottom one!)Activate Webservices
For best results, your pellet heater has to support at least API version 1.2. If you are on an older version the integration will fall back to a compatibility mode, which means that some sensors may not be correctly detected/identified. The ones that are correctly detected and identified should still work without problems.\
If you want to update the firmware of your pellet heater you can find the firmware files on meinETA
(Settings at the bottom
-> Installation & Software
).
Your ETA pellets unit needs a static IP address! Either configure the IP adress directly on the ETA terminal, or set the DHCP server on your router to give the ETA unit a static lease.
If you have problems setting up this integration you can enable verbose logs on the dialog where you enter your ETA credentials.
This will log all communication responses, which may help locating the problem.
After setting up the integration you can download the logs at Settings
-> System
-> Logs
-> Download Full Log
.
Please note that these logs may be very large, and contain sensitive information from other integrations. If you want to post them somewhere you may have to manually edit the file and delete the lines from before you started setting up this integration.
This integration publishes an event whenever a new error is reported by the ETA terminal, or when an active error is cleared. These events can then be handled in automations.
If a new error is reported, an eta_webservices_error_detected
event is published.\
If an error is cleared, an eta_webservices_error_cleared
event is published.
Every event has the following data: | Name | Info | Sample Data |
---|---|---|---|
msg |
Short error message | Water pressure too low 0,00 bar | |
priority |
Error priority | Error | |
time |
Time of the error, as reported by the ETA terminal | 2011-06-29T12:48:12 | |
text |
Detailed error message | Top up heating water! If this warning occurs more than once a year, please contact plumber. | |
fub |
Functional Block of the error | Kessel | |
host |
Address of the ETA terminal connection | 0.0.0.0 | |
port |
Port of the ETA terminal connection | 8080 |
If you want to check the data of an active event, you can follow these steps.
Note: This is only possible if the ETA terminal actually reports an ective error!
Settings
-> Devices & Services
-> Devices
on top -> ETA
Developer tools
-> Events
on top -> Enter eta_webservices_error_detected
in the field Event to subscribe to
-> Click on Start Listening
Resend Error Events
buttonIf you want to send a test event to check if your automations work you can follow these steps:
Developer tools
-> Events
on topeta_webservices_error_detected
in the field Event type
Event data
field
msg: Test
priority: Error
time: "2023-11-06T12:48:12"
text: This is a test error.
fub: Kessel
host: 0.0.0.0
port: 8080
Fire Event
This implementation supports setting the value of sensors which have a unit of °C
, kg
, or %
.
These writable sensors are not immediately added to the dashboard in Home Assistant. You can find the sensors (after adding them via configuration) on the ETA device page under Config
.
You can add writable sensors by clicking on Configure
on the ETA Integeration page in Home Assistant.
If you are clicking this button for the first time after updating this integration from a previous version without support for these sensor types, this step will take a while because the integration will have to query the list of valid sensors from the ETA unit again.
API v1.1 does not have some endpoints, which are used to query the valid values of writable sensors. If your terminal is on this API version, the integration will fall back to a compatibility mode and guess the valid value ranges for these sensors.
Also, on API v1.1 it is not possible to query if a sensor is writable at all! This integration therefore shows all sensors in the list of writable sensors, and the user has to choose the ones which are actually writable.
The authors cannot be made responsible if the user renders their ETA heating unit unusable because they set a sensor to an invalid value.
This integration implements a custom service to write values to ETA endpoints.
Attention: This service is very low-level and does not respect the scaleFactor
and other attributes of the endpoints! You have to calculate the correct value yourself!
E.g. If an endpoint has a scaleFactor of 10 and you want set the value 55, you have to write 550 to the endpoint.
Developer tools
-> Services
on topEta Sensors: Set value
service/40/10021/0/0/12080
, which should be the On/Off button)1803
to turn on the heating unit)62
(15*4+2
or (15*60+30)/15
)You can add the ETA Heating Unit into the Energy Dashboard by converting the total pellets consumption into kWh, and adding that as a gas heater.
To convert the consumption you have to add a custom template sensor to your configuration.yaml
file:
# Convert pellet consumption (kg) to energy consumption (kWh)
template:
- sensor:
- name: eta_total_energy
unit_of_measurement: kWh
device_class: energy
state_class: total_increasing
state: >
{{ states('sensor.eta_<IP>_kessel_zahlerstande_gesamtverbrauch') | float(default=0.0) | multiply(4.8) | round(1) }}
Make sure to replace the `<IP> field with the Ip address of your ETA unit. You can also check the sensor id by going to the options of the sensor, and
You can also use the web interface to create a template helper:
You can then add your ETA heating unit to your Energy Dashboard by adding this new sensor to the list of gas sources.
If you have some ideas about expansions to this implementation, please open an issue and I may look into it.