What's Changed
This is a quick follow-up to v1.8.3. The fix for Slave ID auto-detection inadvertently exposed a pre-existing bug: the configured poll_interval was never actually applied in the main loop.
Root Cause
Previously, broken TCP teardown was accidentally throttling the cycle to ~20-30s. With the cleaner TCP handling introduced in v1.8.3, the loop ran as fast as the Modbus read completed (~5-8s) — ignoring the configured interval entirely.
Fix
Added asyncio.sleep(remaining) after each successful cycle so the poll interval is now respected as documented. With a 20s poll interval and ~5-8s read time, the loop correctly waits the remaining ~12-15s before the next cycle.
Also fixed
- Duplicate
error_trackerinstantiation removed (dead code) - Test attribute name mismatch (
auto_detect_slave_id→modbus_auto_detect_slave_id) in 7 locations - Added test to verify poll interval sleep behavior
Update recommended for all v1.8.3 users.