-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Description
Platform
NRF52, ESP32, Cross-Platform, Linux Native
Description
I am creating a feature request to suggest improvements in how client app's handle obtaining a node's config. I am purposing a combination some small firmware changes along with several protobuf changes which will enable conditional config syncing when a user connects to their node.
Web and mobile clients currently request all configs on every connection, even when config hasn't changed. This slows down the connection process, and require additional power from a node to send the config (if running on solar or batteries).
Solution
Add config_version (uint32) to MyNodeInfo that increments on any config change. Clients cache config with its version; on reconnect, compare versions to skip unnecessary fetches.
A high level list of changes that would be required:
mesh.proto: Add config_version and/or config_modified_at fields to MyNodeInfo- Increment config_version on config writes
- Persist/load config_version from non-volatile memory
Benefits
- Faster reconnection (skipping all config requests when its unchanged)
- Better offline support for clients
- Improve device efficiency by avoiding unnecessary BLE/Wifi/Serial traffic.