Is this real?
Here is my log (abridged):
[09:56:23][V][modbus:184]: Modbus write: 01.04.00.01.00.02.20.0B (8)
[09:56:23][V][modbus_controller:487]: Command sent 4 0x1 2
[09:56:23][V][modbus:058]: Modbus received Byte 1 (0X1)
[09:56:23][V][modbus:058]: Modbus received Byte 4 (0X4)
[09:56:23][V][modbus:058]: Modbus received Byte 4 (0X4)
[09:56:23][V][modbus:058]: Modbus received Byte 0 (0X0)
[09:56:23][V][modbus:058]: Modbus received Byte 229 (0Xe5)
[09:56:23][V][modbus:058]: Modbus received Byte 2 (0X2)
[09:56:23][V][modbus:058]: Modbus received Byte 4 (0X4)
[09:56:23][V][modbus:058]: Modbus received Byte 234 (0Xea)
[09:56:23][V][modbus:058]: Modbus received Byte 208 (0Xd0)
[09:56:23][V][modbus_controller:055]: Modbus response queued
[09:56:23][V][modbus_controller:063]: Process modbus response for address 0x1 size: 4
[09:56:23][V][modbus_controller:098]: data for register address : 0x1 :
[09:56:24][D][modbus_controller.sensor:025]: Sensor new state: 229.00
[09:56:24][V][sensor:074]: 'XY-MD02 Temp': Received new state 229.000000
[09:56:24][D][sensor:125]: 'XY-MD02 Temp': Sending state 22.90000 °C with 1 decimals of accuracy
[09:56:24][D][modbus_controller.sensor:025]: Sensor new state: 516.00
[09:56:24][V][sensor:074]: 'XY-MD02 Humi': Received new state 516.000000
[09:56:24][D][sensor:125]: 'XY-MD02 Humi': Sending state 51.60000 % with 1 decimals of accuracy
[09:56:24][V][component:199]: Component modbus_controller took a long time for an operation (0.06 s).
[09:56:24][V][component:200]: Components should block for at most 20-30ms.
[09:56:33][V][modbus_controller:159]: Updating modbus component
[09:56:33][V][modbus_controller:126]: Range : 1 Size: 2 (4) skip: 0
[09:56:33][V][modbus_controller:036]: Sending next modbus command to device 1 register 0x01 count 2
[09:56:33][V][modbus:184]: Modbus write: 01.04.00.01.00.02.20.0B (8)
[09:56:33][V][modbus_controller:487]: Command sent 4 0x1 2
[09:56:33][V][modbus:058]: Modbus received Byte 1 (0X1)
[09:56:33][V][modbus:058]: Modbus received Byte 4 (0X4)
[09:56:33][V][modbus:058]: Modbus received Byte 4 (0X4)
[09:56:33][V][modbus:058]: Modbus received Byte 0 (0X0)
[09:56:33][V][modbus:058]: Modbus received Byte 229 (0Xe5)
[09:56:33][V][modbus:058]: Modbus received Byte 2 (0X2)
[09:56:33][V][modbus:058]: Modbus received Byte 1 (0X1)
[09:56:33][V][modbus:058]: Modbus received Byte 42 (0X2a)
[09:56:33][V][modbus:058]: Modbus received Byte 211 (0Xd3)
[09:56:33][V][modbus_controller:055]: Modbus response queued
[09:56:33][V][modbus_controller:063]: Process modbus response for address 0x1 size: 4
[09:56:33][V][modbus_controller:098]: data for register address : 0x1 :
[09:56:33][D][modbus_controller.sensor:025]: Sensor new state: 229.00
[09:56:33][V][sensor:074]: 'XY-MD02 Temp': Received new state 229.000000
[09:56:33][D][sensor:125]: 'XY-MD02 Temp': Sending state 22.90000 °C with 1 decimals of accuracy
[09:56:33][D][modbus_controller.sensor:025]: Sensor new state: 513.00
[09:56:33][V][sensor:074]: 'XY-MD02 Humi': Received new state 513.000000
[09:56:33][D][sensor:125]: 'XY-MD02 Humi': Sending state 51.30000 % with 1 decimals of accuracy
[09:56:33][V][component:199]: Component modbus_controller took a long time for an operation (0.06 s).
[09:56:33][V][component:200]: Components should block for at most 20-30ms.
… which I think is implying that my Modbus device (an XY-MD02 cheepie Temp/Humi) is taking 60mSec to respond.
While if I scope the Tx/Rx lines, I see this:
… the time between the two rulers is less than 4mSec?
Can anyone help me explain this apparent discrepancy?
Regards, M.
PS. Just for completeness, here is my .yaml:
esphome:
name: esp32-xy-md02
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
level: VERBOSE
# Enable Home Assistant API
api:
encryption:
key: "096fMlgiz/Tbj36R/lT2PELb+2DypE7T6JlbFC9PvWQ="
ota:
password: "bce11dbbc5d6cb522b2a77e1dc100a94"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esp32-Xy-Md02 Fallback Hotspot"
password: "iil8vDHcbXmg"
captive_portal:
uart:
- id: uart2
tx_pin: GPIO17 #marked as TX2 on DOITDEVKIT1
rx_pin: GPIO16 #marked as RX2
baud_rate: 9600
stop_bits: 1
parity: none
modbus:
uart_id: uart2
id: modbus1
modbus_controller:
- id: xy_md02
address: 0x01
modbus_id: modbus1
update_interval: 10s
sensor:
- platform: modbus_controller
modbus_controller_id: xy_md02
name: "XY-MD02 Temp"
id: xy_md02_temp
register_type: read
address: 0x01
unit_of_measurement: "°C"
accuracy_decimals: 1
filters:
- multiply: 0.10
- platform: modbus_controller
modbus_controller_id: xy_md02
name: "XY-MD02 Humi"
id: xy_md02_humi
register_type: read
address: 0x02
unit_of_measurement: "%"
accuracy_decimals: 1
filters:
- multiply: 0.10