Skip to content

[Feature]: Backup management — trigger and download Z2M backups #19

@tashda

Description

@tashda

What problem does this solve?

Backing up Z2M (configuration + coordinator state) is a critical maintenance task — losing the coordinator backup means re-pairing every device. Z2M's web frontend exposes backup creation, but on mobile the user has to either SSH into the host or open the frontend in a browser. Shellbee should bring this into the app for power users who want to grab a backup before risky operations (firmware updates, hardware migrations, big config changes).

What would you like Shellbee to do?

Add a Backup section to Settings with one-tap backup creation and download.

Behavior:

  • Create backup: button sends bridge/request/backup over MQTT. Z2M responds on bridge/response/backup with {"data": "<base64-encoded zip>"}.
  • Save the resulting file: write to a temp location, then present the iOS share sheet so the user can save to Files, iCloud Drive, Dropbox, AirDrop to Mac, etc. Filename convention: shellbee-z2m-backup-YYYY-MM-DD-HHmmss.zip.
  • Backup history (in-app): keep a list of recently created backups by timestamp + size in app storage, so the user can see "you last backed up 3 weeks ago." (No file content stored — just metadata. The actual file is whatever the user saved via the share sheet.)
  • Pre-flight checks: warn if Z2M version is below the version that supports bridge/request/backup (added in Z2M 1.x — check the MQTT API docs for exact version).

Out of scope (explicitly):

  • Restore — Z2M doesn't expose a restore endpoint over MQTT. Restoring requires host-level access (replace data/ directory on the Z2M host). Not safe to do from a mobile app and not supported by the Z2M API. Document this clearly in the UI: "To restore, see [Z2M docs link]."
  • Cloud backup destinations (S3, Google Drive direct integration) — the iOS share sheet covers all the destinations a user might want, without Shellbee handling auth.

Does the Z2M web frontend already do this?

Yes — Shellbee should match the capability with a mobile-appropriate UX (single tap, share sheet, no separate downloads-folder paradigm).

Alternatives considered

  • Auto-backup on a schedule — Z2M itself can be configured to do this. Shellbee triggering scheduled backups would duplicate the responsibility and require the app to be running. Skip.
  • Background backup via BGTaskScheduler — adds complexity for marginal benefit; user-initiated is fine.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions