Skip to content

[Feature Request]: Add a configVersion uint32 to allow for client app config caching #9043

@danditomaso

Description

@danditomaso

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions