ESPHome RS485 Brink Flair WTW no entities shown

Hi All,

I made a yaml file to read the settings of my Brink Flair WTW. (Heat recovery appliance house ventilation)
It uses modbus (RS485) to read the settings and it succeed. But I don’see new entities. I did a reload, a restart of HA and a restart of the ESP module. Am I doing something wrong, or is it a bug?

Latest stable release of HA and ESPHome.
Hardware: Modbus Shield V2: Enri.nl

Script:

esphome:
  name: modbus
  platform: ESP8266
  board: d1_mini

# Enable/Disable logging
logger:
  #level: VERBOSE
  #baud_rate: 0

# Enable Home Assistant API
api:

ota:

web_server:
  port: 80
  auth:
    username: XXXXXXX
    password: XXXXXXX

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "XXXXXXX"
    password: "XXXXXXX"

captive_portal:

uart:
  id: mod_bus
  tx_pin: D7
  rx_pin: D6
  baud_rate: 19200
  stop_bits: 1
  parity: even

modbus:
  flow_control_pin: D5
  id: modbus1
  send_wait_time: 1000ms

modbus_controller:
  - id: brink
    ## the Modbus device addr 20  (hex: 0x14)
    address: 0x14
    modbus_id: modbus1
    setup_priority: -10
    #command_throttle: 250ms
    update_interval: 15s

sensor:
  - platform: modbus_controller
    modbus_controller_id: brink
    id: temp_buiten
    name: "Temperatuur Buiten"
    address: 4036
    unit_of_measurement: "C"
    register_type: read
    value_type: S_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: brink
    id: temperatuur_afvoer
    name: "Temperatuur afvoer"
    address: 4046
    unit_of_measurement: "C"
    register_type: read
    value_type: S_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: brink
    id: inlaatluchtvolume_ingesteld
    name: "Inlaatluchtvolume ingesteld"
    address: 4031
    unit_of_measurement: "m3"
    register_type: read
    value_type: S_WORD
    accuracy_decimals: 0
    filters:
      - multiply: 1

  - platform: modbus_controller
    modbus_controller_id: brink
    id: huidig_inlaatluchtvolume
    name: "Huidig inlaatluchtvolume"
    address: 4032
    unit_of_measurement: "m3"
    register_type: read
    value_type: S_WORD
    accuracy_decimals: 0
    filters:
      - multiply: 1

  - platform: modbus_controller
    modbus_controller_id: brink
    id: uitlaatluchtvolume_ingesteld
    name: "uitlaatluchtvolume ingesteld"
    address: 4032
    unit_of_measurement: "m3"
    register_type: read
    value_type: S_WORD
    accuracy_decimals: 0
    filters:
      - multiply: 1

  - platform: modbus_controller
    modbus_controller_id: brink
    id: huidig_uitlaatluchtvolume
    name: "Huidig uitlaatluchtvolume"
    address: 4041
    unit_of_measurement: "m3"
    register_type: read
    value_type: S_WORD
    accuracy_decimals: 0
    filters:
      - multiply: 1
      
  - platform: modbus_controller
    modbus_controller_id: brink
    id: Filter_status
    name: "Filter status"
    address: 4100
    register_type: read
    value_type: S_WORD
    accuracy_decimals: 0
    filters:
    
  - platform: modbus_controller
    modbus_controller_id: brink
    id: Bypass_status
    name: "Bypass status"
    address: 4050
    register_type: read
    value_type: S_WORD
    accuracy_decimals: 0
    filters:

  - platform: modbus_controller
    modbus_controller_id: brink
    id: voorverwarmings_status
    name: "Voorverwarmings status"
    address: 4060
    register_type: read
    value_type: S_WORD
    accuracy_decimals: 0
    filters:

  - platform: modbus_controller
    modbus_controller_id: brink
    id: Voorverwarmingsprestaties
    name: "Voorverwarmingsprestaties"
    address: 4061
    unit_of_measurement: "%"
    register_type: read
    value_type: S_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 1

Result:

But no Entities shown in HA.

Have you integrated the esphome device into ha?

Yes I have.
And enable newly added entities is on.
I Also have the smart meter P1 reader running with esphome. That one works correct.

Log:

INFO Reading configuration /config/esphome/brink-flair.yaml...
INFO Starting log output from modbus.local using esphome API
INFO Successfully connected to modbus.local
[11:36:31][I][app:102]: ESPHome version 2022.2.3 compiled on Jun 24 2022, 17:06:00
[11:36:31][C][wifi:491]: WiFi:
[11:36:31][C][wifi:353]:   Local MAC: XXXXXX
[11:36:31][C][wifi:354]:   SSID: [redacted]
[11:36:31][C][wifi:355]:   IP Address: XXXXXX
[11:36:31][C][wifi:356]:   BSSID: [redacted]
[11:36:31][C][wifi:358]:   Hostname: 'modbus'
[11:36:31][C][wifi:360]:   Signal strength: -49 dB ▂▄▆█
[11:36:31][C][wifi:364]:   Channel: XX
[11:36:31][C][wifi:365]:   Subnet: 255.255.255.0
[11:36:31][C][wifi:366]:   Gateway: XXXXXXX
[11:36:31][C][wifi:367]:   DNS1: XXXXXXX
[11:36:31][C][wifi:368]:   DNS2: XXXXXXX
[11:36:31][C][logger:233]: Logger:
[11:36:31][C][logger:234]:   Level: DEBUG
[11:36:31][C][logger:235]:   Log Baud Rate: 115200
[11:36:31][C][logger:236]:   Hardware UART: UART0
[11:36:31][C][uart.arduino_esp8266:102]: UART Bus:
[11:36:31][C][uart.arduino_esp8266:103]:   TX Pin: GPIO13
[11:36:31][C][uart.arduino_esp8266:104]:   RX Pin: GPIO12
[11:36:31][C][uart.arduino_esp8266:106]:   RX Buffer Size: 256
[11:36:31][C][uart.arduino_esp8266:108]:   Baud Rate: 19200 baud
[11:36:31][C][uart.arduino_esp8266:109]:   Data Bits: 8
[11:36:31][C][uart.arduino_esp8266:110]:   Parity: EVEN
[11:36:31][C][uart.arduino_esp8266:111]:   Stop bits: 1
[11:36:31][C][uart.arduino_esp8266:115]:   Using software serial
[11:36:31][C][modbus:129]: Modbus:
[11:36:31][C][modbus:130]:   Flow Control Pin: GPIO14
[11:36:31][C][modbus:131]:   Send Wait Time: 1000 ms
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensorModbus Controller Sensor 'Temperatuur Buiten'
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  State Class: ''
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  Unit of Measurement: 'C'
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  Accuracy Decimals: 1
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensorModbus Controller Sensor 'Temperatuur afvoer'
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  State Class: ''
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  Unit of Measurement: 'C'
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  Accuracy Decimals: 1
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensorModbus Controller Sensor 'Inlaatluchtvolume ingesteld'
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  State Class: ''
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  Unit of Measurement: 'm3'
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  Accuracy Decimals: 0
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensorModbus Controller Sensor 'Huidig inlaatluchtvolume'
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  State Class: ''
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  Unit of Measurement: 'm3'
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  Accuracy Decimals: 0
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensorModbus Controller Sensor 'uitlaatluchtvolume ingesteld'
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  State Class: ''
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  Unit of Measurement: 'm3'
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  Accuracy Decimals: 0
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensorModbus Controller Sensor 'Huidig uitlaatluchtvolume'
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  State Class: ''
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  Unit of Measurement: 'm3'
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  Accuracy Decimals: 0
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensorModbus Controller Sensor 'Filter status'
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  State Class: ''
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  Unit of Measurement: ''
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  Accuracy Decimals: 0
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensorModbus Controller Sensor 'Bypass status'
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  State Class: ''
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  Unit of Measurement: ''
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  Accuracy Decimals: 0
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensorModbus Controller Sensor 'Voorverwarmings status'
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  State Class: ''
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  Unit of Measurement: ''
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  Accuracy Decimals: 0
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensorModbus Controller Sensor 'Voorverwarmingsprestaties'
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  State Class: ''
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  Unit of Measurement: '%'
[11:36:31][C][modbus_controller.sensor:010]: modbus_controller.sensor  Accuracy Decimals: 1
[11:36:31][C][captive_portal:144]: Captive Portal:
[11:36:31][C][web_server:179]: Web Server:
[11:36:31][C][web_server:180]:   Address: modbus.local:80
[11:36:31][C][mdns:084]: mDNS:
[11:36:31][C][mdns:085]:   Hostname: modbus
[11:36:31][C][ota:085]: Over-The-Air Updates:
[11:36:31][C][ota:086]:   Address: modbus.local:8266
[11:36:31][C][api:138]: API Server:
[11:36:31][C][api:139]:   Address: modbus.local:6053
[11:36:31][C][api:143]:   Using noise encryption: NO
[11:36:31][C][modbus_controller:276]: ModbusController:
[11:36:31][C][modbus_controller:277]:   Address: 0x14
[11:36:43][D][modbus_controller.sensor:025]: Sensor new state: 100.00
[11:36:43][D][sensor:124]: 'Inlaatluchtvolume ingesteld': Sending state 100.00000 m3 with 0 decimals of accuracy
[11:36:43][D][modbus_controller.sensor:025]: Sensor new state: 100.00
[11:36:43][D][sensor:124]: 'Huidig inlaatluchtvolume': Sending state 100.00000 m3 with 0 decimals of accuracy
[11:36:43][D][modbus_controller.sensor:025]: Sensor new state: 100.00
[11:36:43][D][sensor:124]: 'uitlaatluchtvolume ingesteld': Sending state 100.00000 m3 with 0 decimals of accuracy
[11:36:43][D][modbus_controller.sensor:025]: Sensor new state: 226.00
[11:36:43][D][sensor:124]: 'Temperatuur Buiten': Sending state 22.60000 C with 1 decimals of accuracy
[11:36:43][D][modbus_controller.sensor:025]: Sensor new state: 100.00
[11:36:43][D][sensor:124]: 'Huidig uitlaatluchtvolume': Sending state 100.00000 m3 with 0 decimals of accuracy
[11:36:43][D][modbus_controller.sensor:025]: Sensor new state: 250.00
[11:36:43][D][sensor:124]: 'Temperatuur afvoer': Sending state 25.00000 C with 1 decimals of accuracy
[11:36:43][D][modbus_controller.sensor:025]: Sensor new state: 3.00
[11:36:43][D][sensor:124]: 'Bypass status': Sending state 3.00000  with 0 decimals of accuracy
[11:36:43][D][modbus_controller.sensor:025]: Sensor new state: 0.00
[11:36:43][D][sensor:124]: 'Voorverwarmings status': Sending state 0.00000  with 0 decimals of accuracy
[11:36:43][D][modbus_controller.sensor:025]: Sensor new state: 0.00
[11:36:43][D][sensor:124]: 'Voorverwarmingsprestaties': Sending state 0.00000 % with 1 decimals of accuracy
[11:36:43][D][modbus_controller.sensor:025]: Sensor new state: 0.00
[11:36:43][D][sensor:124]: 'Filter status': Sending state 0.00000  with 0 decimals of accuracy

Solution: Remove the device from HA en install it again. Now it is working.

Latest script. (Controlling the WTW is not working, yet)

esphome:
  name: esphome-web-01532d

esp8266:
  board: d1_mini

# Enable logging
logger:

# Enable Home Assistant API
api:

web_server:
  port: 80
  auth:
    username: xxxxx
    password: xxxxx

ota:


wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "xxxxx"
    password: "xxxxx"

captive_portal:

uart:
  id: mod_bus
  tx_pin: D7
  rx_pin: D6
  baud_rate: 19200
  stop_bits: 1
  parity: even

modbus:
  flow_control_pin: D5
  id: modbus1
  send_wait_time: 1000ms

modbus_controller:
  - id: brink
    ## the Modbus device addr 20  (hex: 0x14)
    address: 0x14
    modbus_id: modbus1
    setup_priority: -10
    #command_throttle: 250ms
    update_interval: 15s

sensor:
  - platform: modbus_controller
    modbus_controller_id: brink
    id: temp_buiten
    name: "Temperatuur Buiten"
    address: 4036
    unit_of_measurement: "C"
    register_type: read
    value_type: S_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: brink
    id: temperatuur_afvoer
    name: "Temperatuur afvoer"
    address: 4046
    unit_of_measurement: "C"
    register_type: read
    value_type: S_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: brink
    id: inlaatluchtvolume_ingesteld
    icon: "mdi:fan"
    name: "Inlaatluchtvolume ingesteld"
    address: 4031
    unit_of_measurement: "m3"
    register_type: read
    value_type: S_WORD
    accuracy_decimals: 0
    filters:
      - multiply: 1

  - platform: modbus_controller
    modbus_controller_id: brink
    id: huidig_inlaatluchtvolume
    icon: "mdi:fan"
    name: "Huidig inlaatluchtvolume"
    address: 4032
    unit_of_measurement: "m3"
    register_type: read
    value_type: S_WORD
    accuracy_decimals: 0
    filters:
      - multiply: 1

  - platform: modbus_controller
    modbus_controller_id: brink
    id: uitlaatluchtvolume_ingesteld
    icon: "mdi:fan"
    name: "uitlaatluchtvolume ingesteld"
    address: 4032
    unit_of_measurement: "m3"
    register_type: read
    value_type: S_WORD
    accuracy_decimals: 0
    filters:
      - multiply: 1

  - platform: modbus_controller
    modbus_controller_id: brink
    id: huidig_uitlaatluchtvolume
    icon: "mdi:fan"
    name: "Huidig uitlaatluchtvolume"
    address: 4041
    unit_of_measurement: "m3"
    register_type: read
    value_type: S_WORD
    accuracy_decimals: 0
    filters:
      - multiply: 1
  
text_sensor:
  - platform: modbus_controller
    modbus_controller_id: brink
    id: bypass_status
    register_type: read
    address: 4050
    raw_encode: NONE
    name: Bypass status
    lambda: |-
      uint16_t int_mode = (data[item->offset] << 8) + data[item->offset+1];
      ESP_LOGD("main","Parsed operation mode int : %d", int_mode);
      std::string mode_str;
      switch (int_mode) {
        case 0:  mode_str = "INITIALIZATING"; break;
        case 1:  mode_str = "OPEN"; break;
        case 2:  mode_str = "CLOSED"; break;
        case 3:  mode_str = "OPEN"; break;
        case 4:  mode_str = "CLOSED"; break;
        default: mode_str = "Unknown"; break;
       }
      return mode_str;
      
  - platform: modbus_controller
    modbus_controller_id: brink
    id: filterstatus
    register_type: read
    address: 4100
    raw_encode: NONE
    name: Filter status
    lambda: |-
      uint16_t int_mode = (data[item->offset] << 8) + data[item->offset+1];
      ESP_LOGD("main","Parsed operation mode int : %d", int_mode);
      std::string mode_str;
      switch (int_mode) {
        case 0:  mode_str = "Niet vervuild"; break;
        case 1:  mode_str = "Vervuild";
      }
      return mode_str;

number:
  - platform: modbus_controller
    modbus_controller_id: brink
    name: "Ventilatie stand"
    id: ventilatie_stand
    address: 8001
    value_type: S_WORD      
    min_value: 0
    max_value: 3
    mode: slider

Logs? ESPHome creates them. HA creates them.