StiebelEltron heatpump ModBus data implemented

Hi guys.

I was able to get all data from StiebelEltron heatpump into HA and this is how…
I have ISGWeb module connected to heatpump and ISGWeb exposes modbus for heatpump data.

First I wrote a simple script in node.js to ping all modbus registers to see which reponds with data:

// create an empty modbus client
const ModbusRTU = require("modbus-serial");
const client = new ModbusRTU();

// open connection to a tcp line
client.connectTCP("192.168.1.66", { port: 502 });
client.setID(1);

var regCounter = 500;

setInterval(function() {
    client.readHoldingRegisters(regCounter, 1, function(err, data) {
		if (data != undefined
		&& data.data != 32768
		&& data.data != 0)
		{
			console.log("Holding:" + regCounter + " Data: " + data.data);
		}
		
    });
	client.readInputRegisters(regCounter, 1, function(err, data) {
		if (data != undefined
		&& data.data != 32768
		&& data.data != 0)
		{
			console.log("Input:" + regCounter + " Data: " + data.data);
		}
    });
	regCounter++;
}, 200);

I got data like this:

Input:503 Data: 242
Input:504 Data: 200
Input:505 Data: 423
Input:506 Data: 106
Input:507 Data: 226
Input:508 Data: 231
Input:510 Data: 189
Input:514 Data: 405
Input:515 Data: 290
Holding:1501 Data: 2
Holding:1504 Data: 32
Holding:1510 Data: 440
Holding:1511 Data: 440

Then I checked in StiebelEltron documentation what is in each of this registers:

Input:503 Data: 242 → ACTUAL TEMPERATURE FEK
Input:504 Data: 200 → SET TEMPERATURE FEK
Input:505 Data: 423 → RELATIVE HUMIDITY
Input:506 Data: 106 → DEW POINT TEMPERATURE
Input:507 Data: 226 → OUTSIDE TEMPERATURE
Input:508 Data: 231 → ACTUAL TEMPERATURE HK 1
Input:510 Data: 189 → SET TEMPERATURE HK 1
Input:514 Data: 405 → ACTUAL FLOW TEMPERATURE NHZ
Input:515 Data: 290 → ACTUAL FLOW TEMPERATURE

And then added the interesting variables to HA config:
(For unknown reason I had to substract 1 from modbus addresses)

modbus:
  - name: modbus_hub
    type: tcp
    host: 192.168.1.66
    port: 502
    sensors:
      - name: 'MODBUS ACTUAL TEMPERATURE FEK'
        slave: 1
        address: 502
        input_type: input
        unit_of_measurement: °C
        device_class: temperature
        scale: 0.1
        precision: 1
      - name: 'MODBUS SET TEMPERATURE FEK'
        slave: 1
        address: 503
        input_type: input
        unit_of_measurement: °C
        device_class: temperature
        scale: 0.1
        precision: 1
      - name: 'MODBUS RELATIVE HUMIDITY'
        slave: 1
        address: 504
        input_type: input
        unit_of_measurement: '%'
        device_class: humidity
        scale: 0.1
        precision: 1
      - name: 'MODBUS DEW POINT TEMPERATURE'
        slave: 1
        address: 505
        input_type: input
        unit_of_measurement: °C
        device_class: temperature
        scale: 0.1
        precision: 1
      - name: 'MODBUS OUTSIDE TEMPERATURE'
        slave: 1
        address: 506
        input_type: input
        unit_of_measurement: °C
        device_class: temperature
        scale: 0.1
        precision: 1
      - name: 'MODBUS ACTUAL TEMPERATURE HK 1'
        slave: 1
        address: 507
        input_type: input
        unit_of_measurement: °C
        device_class: temperature
        scale: 0.1
        precision: 1
      - name: 'MODBUS SET TEMPERATURE HK 1'
        slave: 1
        address: 509
        input_type: input
        unit_of_measurement: °C
        device_class: temperature
        scale: 0.1
        precision: 1
      - name: 'MODBUS ACTUAL FLOW TEMPERATURE NHZ'
        slave: 1
        address: 513
        input_type: input
        unit_of_measurement: °C
        device_class: temperature
        scale: 0.1
        precision: 1
      - name: 'MODBUS ACTUAL FLOW TEMPERATURE'
        slave: 1
        address: 514
        input_type: input
        unit_of_measurement: °C
        device_class: temperature
        scale: 0.1
        precision: 1  
      - name: 'MODBUS ACTUAL RETURN TEMPERATURE'
        slave: 1
        address: 515
        input_type: input
        unit_of_measurement: °C
        device_class: temperature
        scale: 0.1
        precision: 1
      - name: 'MODBUS ACTUAL BUFFER TEMPERATURE'
        slave: 1
        address: 517
        input_type: input
        unit_of_measurement: °C
        device_class: temperature
        scale: 0.1
        precision: 1
      - name: 'MODBUS SET BUFFER TEMPERATURE'
        slave: 1
        address: 518
        input_type: input
        unit_of_measurement: °C
        device_class: temperature
        scale: 0.1
        precision: 1
      - name: 'MODBUS HEATING PRESSURE'
        slave: 1
        address: 519
        input_type: input
        unit_of_measurement: 'bar'
        device_class: pressure
        scale: 0.01
        precision: 1
      - name: 'MODBUS ACTUAL TEMPERATURE DHW'
        slave: 1
        address: 521
        input_type: input
        unit_of_measurement: °C
        device_class: temperature
        scale: 0.1
        precision: 1
      - name: 'MODBUS SET TEMPERATURE DHW'
        slave: 1
        address: 522
        input_type: input
        unit_of_measurement: °C
        device_class: temperature
        scale: 0.1
        precision: 1
      - name: 'MODBUS RETURN TEMPERATURE'
        slave: 1
        address: 541
        input_type: input
        unit_of_measurement: °C
        device_class: temperature
        scale: 0.1
        precision: 1
      - name: 'MODBUS FLOW TEMPERATURE'
        slave: 1
        address: 542
        input_type: input
        unit_of_measurement: °C
        device_class: temperature
        scale: 0.1
        precision: 1
      - name: 'MODBUS HOT GAS TEMPERATURE'
        slave: 1
        address: 543
        input_type: input
        unit_of_measurement: °C
        device_class: temperature
        scale: 0.1
        precision: 1
      - name: 'MODBUS LOW PRESSURE'
        slave: 1
        address: 544
        input_type: input
        unit_of_measurement: 'bar'
        device_class: pressure
        scale: 0.01
        precision: 1
      - name: 'MODBUS MEAN PRESSURE'
        slave: 1
        address: 545
        input_type: input
        unit_of_measurement: 'bar'
        device_class: pressure
        scale: 0.01
        precision: 1
      - name: 'MODBUS HIGH PRESSURE'
        slave: 1
        address: 546
        input_type: input
        unit_of_measurement: 'bar'
        device_class: pressure
        scale: 0.01
        precision: 1
      - name: 'MODBUS COMFORT TEMPERATURE DHW'
        slave: 1
        address: 1509
        input_type: holding
        unit_of_measurement: °C
        device_class: temperature
        scale: 0.1
        precision: 1
      - name: 'MODBUS ECO TEMPERATURE DHW'
        slave: 1
        address: 1510
        input_type: holding
        unit_of_measurement: °C
        device_class: temperature
        scale: 0.1
        precision: 1

And then all items to history card:

type: history-graph
entities:
  - entity: sensor.modbus_actual_temperature_fek
    name: Actual temp FEK
  - entity: sensor.modbus_set_temperature_fek
    name: Set temp FEK
  - entity: sensor.modbus_dew_point_temperature
    name: Dew point
  - entity: sensor.modbus_outside_temperature
    name: Outside temp
  - entity: sensor.modbus_actual_temperature_hk_1
    name: Temp HK1
  - entity: sensor.modbus_set_temperature_hk_1
    name: Set temp HK1
  - entity: sensor.modbus_actual_flow_temperature_nhz
    name: Flow temp NHZ
  - entity: sensor.modbus_actual_flow_temperature
    name: Flow temp
  - entity: sensor.modbus_actual_return_temperature
    name: Return temp
  - entity: sensor.modbus_actual_buffer_temperature
    name: Buffer temp
  - entity: sensor.modbus_set_buffer_temperature
    name: Set buffer temp
  - entity: sensor.modbus_heating_pressure
    name: Heating pressure
  - entity: sensor.modbus_actual_temperature_dhw
    name: Temp DHW
  - entity: sensor.modbus_set_temperature_dhw
    name: Set temp DHW
  - entity: sensor.modbus_return_temperature
    name: Return temp
  - entity: sensor.modbus_flow_temperature
    name: Flow temp
  - entity: sensor.modbus_hot_gas_temperature
    name: Hot gas temp
  - entity: sensor.modbus_low_pressure
    name: Low pressure
  - entity: sensor.modbus_mean_pressure
    name: Mean pressure
  - entity: sensor.modbus_high_pressure
    name: High pressure
  - entity: sensor.modbus_comfort_temperature_dhw
    name: Comfort temp
  - entity: sensor.modbus_eco_temperature_dhw
    name: Eco temp
  - entity: sensor.modbus_relative_humidity
    name: Relative humidity

And this is the result:

1 Like