Prutzer
(Prutzer)
June 24, 2022, 5:53pm
1
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.
nickrout
(Nick Rout)
June 24, 2022, 8:43pm
2
Have you integrated the esphome device into ha?
Prutzer
(Prutzer)
June 25, 2022, 9:33am
3
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
Prutzer
(Prutzer)
June 26, 2022, 10:59am
4
Solution: Remove the device from HA en install it again. Now it is working.
Prutzer
(Prutzer)
June 26, 2022, 6:36pm
5
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
nickrout
(Nick Rout)
June 27, 2022, 3:43am
6
Logs? ESPHome creates them. HA creates them.