v0.5.1
Special thanks to @cerebrate for significant architectural improvements and performance optimizations.
Added
- 🚀 Performance: Bulk SNMP Polling
- Replaced slow
GETNEXTwalks withGETBULKfor much faster data retrieval - Automatic fallback to
GETNEXTfor legacy SNMPv1 devices
- Replaced slow
- ⚡ Asynchronous Parallelization
- All static interface columns (Speed, Type, Alias, Name) are now fetched in parallel
- Environmental and PoE data collection now utilizes
asyncio.gatherfor simultaneous retrieval
- 🔒 Enhanced SNMP Security & Stability
- Explicit detection of SNMP authentication errors with
ConfigEntryAuthFailedintegration - Home Assistant will now prompt for re-authentication instead of retrying silently on auth failure
- Explicit detection of SNMP authentication errors with
- ⏱️ Configurable Global Polling Interval
- Added
CONF_POLL_INTERVAL(5s to 300s) to control the main data coordinator refresh rate
- Added
- 🛠️ Modern Home Assistant Architecture
- Migrated to
entry.runtime_data(Standard HA Pattern) - Properly handles transport cleanup during integration reloads via
async_close()
- Migrated to
Improved
- 🧊 Eliminated Blocking I/O
- Expanded MIB preloading to cover all core networking MIBs (
IF,ENTITY,BRIDGE,IP, etc.) - Disabled filesystem-based MIB searching to prevent event-loop stalls
- Expanded MIB preloading to cover all core networking MIBs (
- 🏎️ Startup Optimization
- Moved vendor-specific OID detection (Cisco, Zyxel, MikroTik) to one-time initialization
- Throttled IPv4 address polling to 5-minute intervals to reduce unnecessary network traffic
- Removed duplicate coordinator refreshes during platform setup
- 🧹 Code Quality
- Consolidated port renaming logic into the central coordinator
- Standardized IP address processing by moving
ipaddressimports to module level
Fixed
- 🚧 Cisco CBS350 Firmware Poll: Fixed a
TypeErrorcausing silent failures during firmware checks - 🚧 Zyxel PoE Statistics: Corrected alignment for interface-specific PoE metrics
- 🚧 Resource Leaks: Fixed unclosed UDP transport handles on integration reload/removal
- 🚧 Redundant Logic: Removed duplicated interface name post-processing from switch entities