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: