Skip to content

feat(admin): remote Meshtastic node config write (limited fields)#87

Open
iceice400 wants to merge 1 commit into
KMX415:mainfrom
iceice400:feat/remote-node-config-write
Open

feat(admin): remote Meshtastic node config write (limited fields)#87
iceice400 wants to merge 1 commit into
KMX415:mainfrom
iceice400:feat/remote-node-config-write

Conversation

@iceice400
Copy link
Copy Markdown
Contributor

Summary

  • Adds limited remote Meshtastic config writes via ADMIN portnum (names, role, screen timeout, telemetry interval)
  • Role changes require typing CONFIRM in DangerousModal; post-write automatic read-back verifies applied state
  • Builds on PR feat(admin): remote Meshtastic node config reader via ADMIN portnum #86 read path — includes full ADMIN read + write stack

Part of Master PR Roadmap #16 (FR4). Highest-risk PR in the roadmap — ADMIN write TX.

Writable fields

Field Notes
long_name / short_name Owner ADMIN message
role Device config — requires role_confirm: "CONFIRM"
screen_on_secs Display config (0–600)
telemetry_interval_secs Module telemetry config (30–86400)

Blocked: LoRa frequency, PSK/security, factory reset, channel keys.

Risks / notes

  • Wrong admin PSK or offline node → write ACK may succeed but verify times out
  • Role changes affect mesh routing behavior — extra confirmation required
  • Multiple ADMIN packets per apply when several fields change
  • Audit: admin.config_write logs target + changed fields only (no secrets)

Test plan

  • python -m unittest tests.test_admin_reader tests.test_admin_writer -v (14 tests)
  • Shared admin channel on Meshpoint + test node
  • Change long/short name — verify owner read-back
  • Change role with CONFIRM modal — verify device.role in read-back
  • Change telemetry interval — verify module telemetry read-back
  • Confirm LoRa/PSK fields rejected server-side

AI-assisted

PR description and implementation assisted by Claude. Follows PR #86 patterns (TxService.send_admin_message, audit, node drawer).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant