Skip to content

Zigbee like behaviour

Pre-release
Pre-release

Choose a tag to compare

@codegraffiti codegraffiti released this 22 Feb 07:44
· 24 commits to main since this release
6470a48

Core Features:

AODV-like routing with routing_table_ for End Device → Router → Coordinator paths.
Router-assisted joining and failover (30s Coordinator timeout).
RSSI-based routing optimization (cost = hops * 100 - rssi + retries * 50).
Automatic RSSI sensors in HA (sensor.<node_id>_rssi), no YAML required.

Timeouts and Stability:

MAX_RETRIES = 5 (~1-2s send retries), CHILD_RETRY_INTERVAL_MS = 1000 (~5s retry), JOIN_TOTAL_TIMEOUT_MS = 8000 (8s scan)—fit 10s run_duration.
ROUTE_EXPIRY_MS = 60000 (60s)—faster failover vs. 5min.
Overflow-safe millis() comparisons (~49-day wraparound).
Router channel switch retries capped (10s max).

Buffer/Stack Safety:

MeshMessage::data[24] capped at 23 bytes + 1 RSSI—no overflow.
local_buffer_ capped at 5 (~190 bytes)—heap-safe.
Stack usage ~500 bytes max (e.g., on_recv_callback_)—within ~8 KB.
decrypt_data_ bounds-checked—no crashes.

Airtime Optimization:

RSSI piggybacked on MSG_DATA (~105 bytes/10s, ~0.08% of 1 Mbps).
Event-driven RSSI updates (±5 dBm change, 60s minimum)—lean airtime.

Router Enhancements:

Child table sync with Coordinator—multi-Router failover (~4s).
Beacons every 15s—faster channel discovery (~2-3s vs. 6s).