Continuing the discussion from Modbus switch - write specific bit in holding register:
Hello!
Yes it is an Ăstberg Heru Energy Recovery Unit model 100 S EC -V1.
My plan with the integration was to make a replica of the IQ remote control in Home Assistant UI but Iâm not finished with the Lovelace layout yet.
This is what I have so far
.
.
heru_binary_sensors.yaml
- name: HeruFireAlarmInput
slave: 1
address: 0
input_type: discrete_input
scan_interval: 15
- name: HeruBoostInput
slave: 1
address: 1
input_type: discrete_input
scan_interval: 15
- name: HeruOverpressureInput
slave: 1
address: 2
input_type: discrete_input
scan_interval: 15
- name: HeruExtendedOperationInput
slave: 1
address: 3
input_type: discrete_input
scan_interval: 15
- name: HeruAwayInput
slave: 1
address: 4
input_type: discrete_input
scan_interval: 15
- name: HeruFilterInput
slave: 1
address: 5
input_type: discrete_input
scan_interval: 15
- name: HeruHeaterInterlock
slave: 1
address: 6
input_type: discrete_input
scan_interval: 15
- name: HeruFireAlarm
slave: 1
address: 9
input_type: discrete_input
scan_interval: 15
- name: HeruRotorAlarm
slave: 1
address: 10
input_type: discrete_input
scan_interval: 15
- name: HeruFreezeAlarm
slave: 1
address: 12
input_type: discrete_input
scan_interval: 15
- name: HeruLowSupplyAlarm
slave: 1
address: 13
input_type: discrete_input
scan_interval: 15
- name: HeruLowRotorTempAlarm
slave: 1
address: 14
input_type: discrete_input
scan_interval: 15
- name: HeruTempSensorOpenCircuitAlarm
slave: 1
address: 17
input_type: discrete_input
scan_interval: 15
- name: HeruTempSensorShortCircuitAlarm
slave: 1
address: 18
input_type: discrete_input
scan_interval: 15
- name: HeruPulserAlarm
slave: 1
address: 19
input_type: discrete_input
scan_interval: 15
- name: HeruSupplyFanAlarm
slave: 1
address: 20
input_type: discrete_input
scan_interval: 15
- name: HeruExhaustFanAlarm
slave: 1
address: 21
input_type: discrete_input
scan_interval: 15
- name: HeruSupplyFilterAlarm
slave: 1
address: 22
input_type: discrete_input
scan_interval: 15
- name: HeruExhaustFilterAlarm
slave: 1
address: 23
input_type: discrete_input
scan_interval: 15
- name: HeruFilterTimerAlarm
slave: 1
address: 24
input_type: discrete_input
scan_interval: 15
- name: HeruFreezeProtectionBlevel
slave: 1
address: 25
input_type: discrete_input
scan_interval: 15
- name: HeruFreezeProtectionAlevel
slave: 1
address: 26
input_type: discrete_input
scan_interval: 15
- name: HeruStartup1stPhase
slave: 1
address: 27
input_type: discrete_input
scan_interval: 15
- name: HeruStartup2stPhase
slave: 1
address: 28
input_type: discrete_input
scan_interval: 15
- name: HeruHeating
slave: 1
address: 29
input_type: discrete_input
scan_interval: 15
- name: HeruRecoveryHeatCold
slave: 1
address: 30
input_type: discrete_input
scan_interval: 15
- name: HeruCooling
slave: 1
address: 31
input_type: discrete_input
scan_interval: 15
- name: HeruCO2boost
slave: 1
address: 32
input_type: discrete_input
scan_interval: 15
- name: HeruRHboost
slave: 1
address: 33
input_type: discrete_input
scan_interval: 15
- name: HeruHeatingPumpAlarm
slave: 1
address: 34
input_type: discrete_input
scan_interval: 15
- name: HeruCoolingPumpAlarm
slave: 1
address: 35
input_type: discrete_input
scan_interval: 15
.
.
.
heru_sensors.yaml
- name: HeruOutdoorTemp
slave: 1
address: 1
input_type: input
unit_of_measurement: '°C'
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: int16
scan_interval: 15
- name: HeruSupplyAirTemp
slave: 1
address: 2
input_type: input
unit_of_measurement: '°C'
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: int16
scan_interval: 15
- name: HeruExtractAirTemp
slave: 1
address: 3
input_type: input
unit_of_measurement: '°C'
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: int16
scan_interval: 15
- name: HeruExhaustAirTemp
slave: 1
address: 4
input_type: input
unit_of_measurement: '°C'
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: int16
scan_interval: 15
- name: HeruWaterTemp
slave: 1
address: 5
input_type: input
unit_of_measurement: '°C'
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: int16
scan_interval: 15
- name: HeruHeatRecoveryTemp
slave: 1
address: 6
input_type: input
unit_of_measurement: '°C'
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: int16
scan_interval: 15
- name: HeruRoomTemp
slave: 1
address: 7
input_type: input
unit_of_measurement: '°C'
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: int16
scan_interval: 15
- name: HeruSupplyPressure
slave: 1
address: 11
input_type: input
unit_of_measurement: 'Pa'
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: int16
scan_interval: 15
- name: HeruExtractPressure
slave: 1
address: 12
input_type: input
unit_of_measurement: 'Pa'
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: int16
scan_interval: 15
- name: TPHeruSensorsOpen
# Bit mask. Bit is set if sensor is required and open circuit. See also Sensors shorted.
slave: 1
address: 17
input_type: input
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruSensorsShorten
# Bit mask. Bit is set if sensor is required and shorten. Bit0 = T1 ... Bit6 = T7.
slave: 1
address: 18
input_type: input
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruFilterDaysLeft
slave: 1
address: 19
input_type: input
unit_of_measurement: 'days'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruCurrentWeektimerProgram
# 0 = none, 1-5 = program 1-5
slave: 1
address: 20
input_type: input
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruCurrentSupplyFanStep
# 0 = Off, 1 = Min, 2 = Std, 3 = Max
slave: 1
address: 22
input_type: input
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruCurrentExhaustFanStep
# 0 = Off, 1 = Min, 2 = Std, 3 = Max
slave: 1
address: 23
input_type: input
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruCurrentSupplyFanPower
slave: 1
address: 24
input_type: input
unit_of_measurement: '%'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruCurrentExhaustFanPower
slave: 1
address: 25
input_type: input
unit_of_measurement: '%'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruCurrentSupplyFanSpeed
slave: 1
address: 26
input_type: input
unit_of_measurement: 'rpm'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruCurrentExhaustFanSpeed
slave: 1
address: 27
input_type: input
unit_of_measurement: 'rpm'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruCurrentHeatingPower
# In range 0-255. Heater rated power: 1200W
slave: 1
address: 28
input_type: input
unit_of_measurement: 'W'
count: 1
scale: 4.706 # 1200/255=4.706
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruCurrentHeatColdRecoveryPower
# In range 0-255
slave: 1
address: 29
input_type: input
# unit_of_measurement: 'W'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruCurrentCoolingPower
# In range 0-255
slave: 1
address: 30
input_type: input
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruSupplyFanControlVoltage
slave: 1
address: 31
input_type: input
unit_of_measurement: 'V'
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: int16
scan_interval: 15
- name: HeruExhaustFanControlVoltage
slave: 1
address: 32
input_type: input
unit_of_measurement: 'V'
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: int16
scan_interval: 15
- name: TPHeruQualitySensor1_type
# 0 = None, 1 = RH, 2 = CO2, 3 = VOC
slave: 1
address: 40
input_type: input
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruQualitySensor1_value
# RH: 0-10V=0-100(%), CO2: 0-10V=0-2000(PPM), VOC: 0-10V=0-2000(PPM)
slave: 1
address: 41
input_type: input
# unit_of_measurement: '%'
# unit_of_measurement: RPM
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruQualitySensor2_type
# 0 = None, 1 = RH, 2 = CO2, 3 = VOC
slave: 1
address: 42
input_type: input
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruQualitySensor2_value
# RH: 0-10V=0-100(%), CO2: 0-10V=0-2000(PPM), VOC: 0-10V=0-2000(PPM)
slave: 1
address: 43
input_type: input
# unit_of_measurement: '%'
# unit_of_measurement: RPM
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruQualitySensor3_type
# 0 = None, 1 = RH, 2 = CO2, 3 = VOC
slave: 1
address: 44
input_type: input
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruQualitySensor3_value
# RH: 0-10V=0-100(%), CO2: 0-10V=0-2000(PPM), VOC: 0-10V=0-2000(PPM)
slave: 1
address: 45
input_type: input
# unit_of_measurement: '%'
# unit_of_measurement: RPM
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruTempSetpointEconomy
# 15-39°C
slave: 1
address: 0
input_type: holding
unit_of_measurement: '°C'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruTempSetpoint
# 15-40°C
slave: 1
address: 1
input_type: holding
unit_of_measurement: '°C'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruSupplyFanSpeed
# 0-100%
slave: 1
address: 2
input_type: holding
unit_of_measurement: '%'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruExhaustFanSpeed
# 0-100%
slave: 1
address: 3
input_type: holding
unit_of_measurement: '%'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruMinSupplyFanSpeed
# 0-100%
slave: 1
address: 4
input_type: holding
unit_of_measurement: '%'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruMaxSupplyFanSpeed
# 0-100%
slave: 1
address: 5
input_type: holding
unit_of_measurement: '%'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruRegulationMode
# 0 = Supply, 1 = Extract, 2 = Room, 3 = Extract S/W, 4 = Room S/W
slave: 1
address: 11
input_type: holding
# unit_of_measurement:
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruMinSupplyTemp
# 15-19°C
slave: 1
address: 12
input_type: holding
unit_of_measurement: '°C'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruMaxSupplyTemp
# 20-40°C
slave: 1
address: 13
input_type: holding
unit_of_measurement: '°C'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruSupplyColdLimitA
# 2-10°C
slave: 1
address: 14
input_type: holding
unit_of_measurement: '°C'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruSupplyColdLimitB
# 5-12°C
slave: 1
address: 15
input_type: holding
unit_of_measurement: '°C'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruFreezeProtectionLimitTemp
# 5-10°C
slave: 1
address: 16
input_type: holding
unit_of_measurement: '°C'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruSNCenabled
# 0 = no, 1 = yes
slave: 1
address: 18
input_type: holding
# unit_of_measurement:
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruSNCindoorOutdoorDiffLimit
# 10-100°C
slave: 1
address: 19
input_type: holding
unit_of_measurement: '°K'
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: int16
scan_interval: 15
- name: HeruSNCexhaustHighLimit
# 18-24°C
slave: 1
address: 20
input_type: holding
unit_of_measurement: '°C'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruSNCexhaustLowLimit
# 19-26°C
slave: 1
address: 21
input_type: holding
unit_of_measurement: '°C'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruStandbyTempEvaluationEnabled
# 0 = no, 1 = yes
slave: 1
address: 22
input_type: holding
# unit_of_measurement:
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruSNCstandbyTempEvalInterval
# 1-4 hours
slave: 1
address: 23
input_type: holding
unit_of_measurement: 'h'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruSNCstandbyEvalTime
# 5-15 min
slave: 1
address: 24
input_type: holding
unit_of_measurement: 'min'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruSNCminOperatingTime
# 30-120 min
slave: 1
address: 25
input_type: holding
unit_of_measurement: 'min'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruBoostDuration
# 10-240min
slave: 1
address: 26
input_type: holding
unit_of_measurement: 'min'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruOverpressureDuration
# 10-60min
slave: 1
address: 27
input_type: holding
unit_of_measurement: 'min'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruOverpressureOffset
# 5 - Max value of diff. between EC Min and EC Max
slave: 1
address: 28
input_type: holding
unit_of_measurement: '%'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruFireSensorType
# 0: None, 1: Normally open (NO), 2: Normally closed (NC)
slave: 1
address: 29
input_type: holding
# unit_of_measurement:
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruFireMode
# 0: Fans off, 1: Exhaust fan only, 2: Supply fan only, 3: Both fans
slave: 1
address: 30
input_type: holding
# unit_of_measurement:
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruForcedFanspeed
# 0 - 100% (Only used when 4x00031 > 0)
slave: 1
address: 31
input_type: holding
unit_of_measurement: '%'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruSupplyPressureSensorType
# 0 = None, 1 = 0..100 Pa, 2 = 0..200 Pa, 3 = 0..300 Pa, 4 = 0..500 Pa, 5 = 0..700 Pa, 6 = 0..1000 Pa, 7 = 0..1250 Pa, 8 = 0..1500 Pa, 9 = 0..2000 Pa, 10 = 0..2500 Pa
slave: 1
address: 32
input_type: holding
# unit_of_measurement:
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruExhaustPressureSensorType
# 0 = None, 1 = 0..100 Pa, 2 = 0..200 Pa, 3 = 0..300 Pa, 4 = 0..500 Pa, 5 = 0..700 Pa, 6 = 0..1000 Pa, 7 = 0..1250 Pa, 8 = 0..1500 Pa, 9 = 0..2000 Pa, 10 = 0..2500 Pa
slave: 1
address: 33
input_type: holding
# unit_of_measurement:
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruFilterMeasurementWeekday
# 0 = Monday, 1 = Tuesday ... 6 = Sunday
slave: 1
address: 36
input_type: holding
# unit_of_measurement:
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruFilterMeasurementHour
# 0-23 hour
slave: 1
address: 37
input_type: holding
unit_of_measurement: 'h'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruFilterMeasurementMinute
# 0-59 min
slave: 1
address: 38
input_type: holding
unit_of_measurement: 'min'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruFilterSpeedIncrease
# 5 to 50 = allowed power increase in %-units. Writing 5 or less equals 5
slave: 1
address: 39
input_type: holding
unit_of_measurement: '%pts'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruFilterMeasurementMode
# 0 = Off, 1 = Switch, 2 = Speed inc., 3 = Differential
slave: 1
address: 40
input_type: holding
# unit_of_measurement:
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruFilterChangePeriod
# 6-12 month. Filter timer in months. 0 = off, 6-12 time in months (30 days). Writing 5 or less equals 6
slave: 1
address: 43
input_type: holding
unit_of_measurement: 'month'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruAlarmClasses
# 0=A, 1=B
# Bit mask:
# bit 0: - Not used -
# bit 1: Sensor open
# bit 2: Sensor shorted
# bit 3: Overheat protection
# bit 4: Freeze alarm
# bit 5: Supply temperature low
# bit 6: Rotor temperature low
# bit 7: Fan failure
# bit 8: Heat exchanger
# bit 9: Duct pressure deviation
# bit 10: Pump alarm
# bit 11: - Not used -
# bit 12: - Not used -
slave: 1
address: 44
input_type: holding
# unit_of_measurement:
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruAlarmRelayOutput
# 0=Off, 1=On
# Bit mask:
# bit 0: Fire
# bit 1: Sensor open
# bit 2: Sensor shorted
# bit 3: Overheat protection
# bit 4: Freeze alarm
# bit 5: Supply temperature low
# bit 6: Rotor temperature low
# bit 7: Fan failure
# bit 8: Heat exchanger
# bit 9: Duct pressure deviation
# bit 10: Pump alarm
# bit 11: Filter
# bit 12: Filter timer
slave: 1
address: 45
input_type: holding
# unit_of_measurement:
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 5
- name: TPHeruAlarmRelayContactFunction
# 0=NO, 1=NC
# Bit mask:
# bit 0: A-relay state
# bit 1: B-relay state
# bit 2: Run-relay state
slave: 1
address: 46
input_type: holding
# unit_of_measurement:
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruSetpointMaxLimitComfort
# 15-40°C
slave: 1
address: 47
input_type: holding
unit_of_measurement: '°C'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruEcoSetpointEnabled
# 0 = no, 1 = yes
slave: 1
address: 48
input_type: holding
# unit_of_measurement:
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruChangeoverType
# 0 = Temperature, 1 = Date, 2 = External input
slave: 1
address: 51
input_type: holding
# unit_of_measurement:
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruSupplyTempOffset
# -10 - 10 °K
slave: 1
address: 52
input_type: holding
unit_of_measurement: '°K'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruWinterStartTemp
# -40 - 40 °C
slave: 1
address: 53
input_type: holding
unit_of_measurement: '°C'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruSummerStartTemp
# -40 - 40 °C
slave: 1
address: 54
input_type: holding
unit_of_measurement: '°C'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruTimeConstant
# 0 - 1000 h
slave: 1
address: 55
input_type: holding
unit_of_measurement: 'h'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruWinterStartDate
# 1102 = 2 Nov, 930 = 30 Sep
slave: 1
address: 56
input_type: holding
# unit_of_measurement:
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruSummerStartDate
# 1102 = 2 Nov, 930 = 30 Sep
slave: 1
address: 57
input_type: holding
# unit_of_measurement:
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruFlowDirection
# 0 = standard, 1 = opposite
slave: 1
address: 60
input_type: holding
# unit_of_measurement:
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruDamperOpeningTime
# 30-120 sec
slave: 1
address: 61
input_type: holding
unit_of_measurement: 'sec'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruPreheaterType
# 0 = None, 1 = Electric
slave: 1
address: 62
input_type: holding
# unit_of_measurement:
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruPreheaterTempSetpoint
# -40 - 40 °C
slave: 1
address: 64
input_type: holding
unit_of_measurement: '°C'
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruHeaterType
# 0 = None, 1 = Water, 2 = Electric
slave: 1
address: 65
input_type: holding
# unit_of_measurement:
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: TPHeruCoolerType
# 0 = None, 1 = Water
slave: 1
address: 67
input_type: holding
# unit_of_measurement:
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruT1CalibrationOutsideTemp
# -50 - 50 (-5,0 - 5,0 °K)
slave: 1
address: 80
input_type: holding
unit_of_measurement: '°K'
count: 1
scale: 0.1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruT2CalibrationHeatRecoveryTemp
# -50 - 50 (-5,0 - 5,0 °K)
slave: 1
address: 81
input_type: holding
unit_of_measurement: '°K'
count: 1
scale: 0.1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruT3CalibrationExtractAirTemp
# -50 - 50 (-5,0 - 5,0 °K)
slave: 1
address: 82
input_type: holding
unit_of_measurement: '°K'
count: 1
scale: 0.1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruT4CalibrationExhaustAirTemp
# -50 - 50 (-5,0 - 5,0 °K)
slave: 1
address: 83
input_type: holding
unit_of_measurement: '°K'
count: 1
scale: 0.1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruT5CalibrationWaterTemp
# -50 - 50 (-5,0 - 5,0 °K)
slave: 1
address: 84
input_type: holding
unit_of_measurement: '°K'
count: 1
scale: 0.1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruT6CalibrationSupplayAirTemp
# -50 - 50 (-5,0 - 5,0 °K)
slave: 1
address: 85
input_type: holding
unit_of_measurement: '°K'
count: 1
scale: 0.1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruT7CalibrationRoomTemp
# -50 - 50 (-5,0 - 5,0 °K)
slave: 1
address: 86
input_type: holding
unit_of_measurement: '°K'
count: 1
scale: 0.1
offset: 0
precision: 0
data_type: int16
scan_interval: 15
- name: HeruDateTimeYear
slave: 1
address: 399
input_type: holding
# unit_of_measurement: ''
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 60
- name: HeruDateTimeMonth
# 1 - 12
slave: 1
address: 400
input_type: holding
# unit_of_measurement: ''
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 60
- name: HeruDateTimeDay
# 1 - 31
slave: 1
address: 401
input_type: holding
# unit_of_measurement: ''
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 60
- name: HeruDateTimeHours
# 0 - 23
slave: 1
address: 402
input_type: holding
# unit_of_measurement: ''
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 60
- name: HeruDateTimeMinutes
# 0 - 59
slave: 1
address: 403
input_type: holding
# unit_of_measurement: ''
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 60
- name: HeruDateTimeSeconds
# 0 - 59
slave: 1
address: 404
input_type: holding
# unit_of_measurement: ''
count: 1
scale: 1
offset: 0
precision: 0
data_type: int16
scan_interval: 60
.
.
.
heru_switches.yaml
- name: HeruOnOff
slave: 1
address: 0
write_type: coil
command_on: 1
command_off: 0
scan_interval: 15
verify:
- name: HeruOverpressureMode
slave: 1
address: 1
write_type: coil
command_on: 1
command_off: 0
scan_interval: 15
verify:
- name: HeruBoostMode
slave: 1
address: 2
write_type: coil
command_on: 1
command_off: 0
scan_interval: 15
verify:
- name: HeruAwayMode
slave: 1
address: 3
write_type: coil
command_on: 1
command_off: 0
scan_interval: 15
verify:
- name: HeruClearAlarms
slave: 1
address: 4
write_type: coil
command_on: 1
command_off: 0
scan_interval: 15
verify:
- name: HeruResetFilterTimer
slave: 1
address: 5
write_type: coil
command_on: 1
command_off: 0
scan_interval: 15
verify:
- name: HeruSNCenabled
slave: 1
address: 18
write_type: holding
command_on: 1
command_off: 0
scan_interval: 15
verify:
input_type: holding
address: 18
state_on: 1
state_off: 0
- name: HeruStandbyTempEvaluationEnabled
slave: 1
address: 22
write_type: holding
command_on: 1
command_off: 0
scan_interval: 15
verify:
input_type: holding
address: 22
state_on: 1
state_off: 0
- name: HeruEcoSetpointEnabled
slave: 1
address: 48
write_type: holding
command_on: 1
command_off: 0
scan_interval: 15
verify:
input_type: holding
address: 48
state_on: 1
state_off: 0
- name: HeruPreheaterEnabled
slave: 1
address: 62
write_type: holding
command_on: 1
command_off: 0
scan_interval: 15
verify:
input_type: holding
address: 62
state_on: 1
state_off: 0
- name: HeruHeaterEnabled
slave: 1
address: 66
write_type: holding
command_on: 1
command_off: 0
scan_interval: 15
verify:
input_type: holding
address: 66
state_on: 1
state_off: 0
- name: HeruCoolerEnabled
slave: 1
address: 68
write_type: holding
command_on: 1
command_off: 0
scan_interval: 15
verify:
input_type: holding
address: 68
state_on: 1
state_off: 0