Open nrodday opened 1 month ago
I have now upgraded to HA 2024.7.3 and frontend 20240710.0. Moreover, I have upgraded to the latest pymodbus package 3.6.9.
The issue still persist. When a single sensor is disconnected, the integration just repeats the send command for the unresponsive sensor but does not send out any other modbus communication anymore.
@janiversen Since you are the maintainer of the modbus integration, I guess that this issue is for you? If it is not a pymodbus problem, it certainly is a HA modbus integration problem.
I am not the maintainer of the modbus integration any longer, please do not address me directly.
Anyone else having an idea on how to turn off the resetting of frames (and therefore repeating them) when a slave does not respond? This might resolve the blocking of the channel during the wait periods. The desired behavior should simply be a log entry and then moving forward with the next command in the queue. Setting "timeout = 0.1" reduces the blocked periods significantly, but isn´t a production solution.
Moreover, I suspect a bug in this implementation as the disconnect of one sensor should not impact the querying of other sensors.
The problem
When using multiple modbus rtu entities a single non-responsive sensor blocks all other modbus communication on that channel. Therefore additional modules, like relays, won´t work anymore when a sensor gets disconnected.
What version of Home Assistant Core has the issue?
2024.7.3
What was the last working version of Home Assistant Core?
No response
What type of installation are you running?
Home Assistant Core
Integration causing the issue
modbus
Link to integration documentation on our website
https://www.home-assistant.io/integrations/modbus/
Diagnostics information
No response
Example YAML snippet
Anything in the logs that might be useful for us?
Additional information
When a relay is triggered during the nonresponsiveness of a sensor nothing happens, as the command is not transmitted. It is only switched on after the timeout message "Server not responding". Milliseconds after, the integration again enters into the blocking state while waiting for a reply and nothing does through anymore.
It seems the communication on the channel is always blocking until an answer to every sent packet is received.
How is it possible to parallelize the communication with multiple sensors?