Reading sensor data from lambda-heatpump using modbus TCP

yesterday i received my raspberry pi 4, and I managed to install HA successfully (i never touched a raspberry pi before, and I am new to home assistant, too)! :slight_smile:
Several integrations work well (tibber, homematic IP, fritzbox,…), and I started playing with the dashboards.
I tried to integrate the values from my heatpumpt (lambda EU13L) via modbus, but nothing happens.
I performed the following steps:

  1. copy the code from GitHub - RalfWinter/lambda-heatpump-modbus-tcp-HA: Home Assistant configuration.yaml additions to integrate Lambda heatpump and deleted all sensors except the first one.
  2. delete the parameter <count: 1> due to error "Invalid config for [modbus]: EU13L_Ambient_Operating_State: count: 1 cannot be combined with data_type: uint16"
  3. Save and import the YAML-konfig and restart HA

I expect the heatpump to appear in section “Integration”, but nothing happens.

The heatpump is response via modbus, I checked it with modbuspoll from my windows PC. I use the following settings:

modbus:

  • name: “EU13L”
    type: tcp
    host: 192.168.178.136
    port: 502
    sensors:
    - name: EU13L_Ambient_Operating_State
    address: 0001
    input_type: holding
    unit_of_measurement: “”
    state_class: total
    scale: 1
    precision: 0
    data_type: uint16

Can you please give advice what to do and how to receive values from the heatpump? Thank you very much!

Search on entities list

thank your for your quick support, i found all entries. :slight_smile:

unfortunatly there are no values, all entities are “not available”:
image

Before importing the yaml-kofig I had to remove the line <count: 1> due to an error message:

Any idea?

You should get any error

Hast du es mittlerweile hinbekommen? Ich habe das selbe Problem. Ich schaffe es leider nicht, eine Verbindung aufzubauen.

Probiere es mal hier mit deinem Problem:

Ich bekomme die Sensorwerte in HA angezeigt (bis auf die EMS-Werte [Register 0100-0104]).

external Return temp calculation (since there is no Modbus register for that):

{% set temp = states('sensor.eu08l_ambient_temp_calculated') %}
{% set Toffset = states('sensor.eu08l_heating_circuit_1_temp_flow_setpoint_offset') %}
  {% if (temp == 'unknown') or (Toffset == 'unknown') %}
    unknown
  {% elif (temp == 'unavailable') or (Toffset == 'unavailable') %}
    unavailable
  {% else %}
    {% set temp = temp | float %}
    {% set Toffset = Toffset | float %}
    {% set Ts22 = 25 | float %}
    {% set Ts0 = 30 | float %}
    {% set Ts_22 = 35 | float %}
    {% set dT = 5 | float %}
    {% set VL = ( Ts0 - temp * (( Ts0 - Ts22 if temp > 0 else Ts_22 - Ts0 )/22 )+ Toffset) | round(2) %}
    {{ VL - dT }}
  {% endif %}

Kannst du uns ein bisschen Kontext/Erklärung geben? Z.B.

  • Was fängst du mit dieser errechneten RL-Temperatur an?
  • Woher kommt die Rechnung?

Mit Hilfe der RL Temperaturen kann bestimmt werden wann die Lambda abschaltet bzw einschaltet.
Die Rechnung habe ich erstellt und getestet.