Jeg har en VTR500 selv og kommunisere med HA modbus (https://www.home-assistant.io/integrations/modbus/) ved hjelp av en Systemair IAM over modbus/tcp. For mitt oppsett måtte modbus adressene i Modbus Variable List dokumentet substraheres med -1 dvs at 12401 må bli 12400.
Ser ingen direkte feil i esphome modbus konfigurasjonen, men dokumentasjonen sier at det er modbus/rtu som skal brukes. Protokoll er RS485. Regner med at du har lest denne artikkelen her.
Her er mitt oppsett:
modbus:
- name: VTR500
type: tcp
host: 10.0.0.107
port: 502
delay: 2
sensors:
- name: "VTR500 Outdoor Air Temperature"
unit_of_measurement: °C
device_class: temperature
slave: 1
address: 12101
scale: 0.1
precision: 1
data_type: int16
scan_interval: 30
- name: "VTR500 Supply Air Temperature"
unit_of_measurement: °C
device_class: temperature
slave: 1
address: 12102
scale: 0.1
precision: 1
data_type: int16
scan_interval: 30
- name: "VTR500 Overheat Temperature"
unit_of_measurement: °C
device_class: temperature
slave: 1
address: 12107
scale: 0.1
precision: 1
data_type: int16
scan_interval: 30
- name: "VTR500 Extract Air Temperature"
unit_of_measurement: °C
device_class: temperature
slave: 1
address: 12543
scale: 0.1
precision: 1
data_type: uint16
scan_interval: 30
- name: "VTR500 Heat Exchanger AO state"
unit_of_measurement: '%'
device_class: power_factor
slave: 1
address: 14102
data_type: uint16
scan_interval: 30
- name: "VTR500 Relative Humidity Sensor"
unit_of_measurement: '%'
device_class: humidity
slave: 1
address: 12135
data_type: uint16
scan_interval: 30
- name: "VTR500 Supply Air Fan RPM"
unit_of_measurement: 'rpm'
slave: 1
address: 12400
data_type: uint16
scan_interval: 30
- name: "VTR500 Extract Air Fan RPM"
unit_of_measurement: 'rpm'
slave: 1
address: 12401
data_type: uint16
scan_interval: 30
- name: "VTR500 Fan speed level"
slave: 1
address: 1130
- name: "VTR500 Eco level"
slave: 1
address: 2504
data_type: uint16
scan_interval: 30
- name: "VTR500 User level"
slave: 1
address: 1160
data_type: uint16
scan_interval: 30
template:
- sensor:
- name: "VTR500 aktiv viftemodus"
state: >
{% set usermode = states('sensor.vtr500_fan_speed_level')|int(0) %}
{% set options = ['Off', 'Off(1)', 'Low', 'Normal', 'High'] %}
{{options[usermode]}}
- name: "VTR500 aktiv ecomodus"
state: >
{% set usermode = states('sensor.vtr500_eco_level')|int(0) %}
{% set options = ['Off', 'On'] %}
{{options[usermode]}}
- name: "VTR500 aktiv usermodus"
state: >
{% set usermode = states('sensor.vtr500_user_level')|int(0) %}
{% set options = ['Auto', 'Manual', 'Crowded', 'Refresh', 'Fireplace', 'Away', 'Holiday', 'Cooker Hood', 'Vacuum Cleaner'] %}
{{options[usermode]}}
Slik ser mitt oppsett ut i Lovelace: