What is Multi-Device Sync?

Multi-Device Sync (Beta) lets you pair two or more phones running GrowVPD Pro so they share the same diary, photos, sensor history, and automation rules. Pairing happens over your LAN with a one-time QR scan; from then on devices keep each other up to date automatically.

Common use cases:

  • Daily phone in your pocket + 24/7 hub phone next to the tent. Both see live data.
  • Partner’s phone added so they can update the diary while you’re away.
  • Tablet on a stand for the grow room dashboard, paired with your daily phone.

No cloud account. No central server. The encrypted sync runs over LAN whenever both devices are on the same Wi-Fi, and falls back to our cloud relay only if you opt in.

Privacy. Pairing produces an Ed25519 keypair per device. All sync traffic is end-to-end encrypted with libsodium box (XChaCha20-Poly1305). We literally cannot read the contents, even on the cloud relay path.

How Pairing Works

Step 1

Generate the QR on Phone A

Settings → Multi-Device Sync → Pair new device. Phone A generates an Ed25519 keypair (one-time), stores it in the Android Keystore, and shows a QR code containing its device id, public key, IP and a short-lived token (60s).

Step 2

Scan from Phone B

Phone B: Settings → Multi-Device Sync → Scan QR. Camera opens, scan A’s code. Phone B does the symmetric handshake (own keypair + key agreement) and the two phones exchange a confirmation tap.

Step 3

Initial backfill

The newer device pulls a full snapshot of the older device’s diary — entries, photos, sensors, rules, equipment profiles, strain library. Backfill runs in the background, ~2–5 minutes for a year of data on Wi-Fi.

Step 4

Live sync from then on

Every diary edit, photo upload, automation rule change, sensor reading propagates instantly via the wire protocol. Conflict resolution is “last writer wins” on a hybrid logical clock so out-of-order edits resolve cleanly.

What Gets Synced

  • Diary entries (everything: temp, RH, VPD, photos, notes, harvest data)
  • Strain catalogue and lineage
  • Equipment profiles and tent setups
  • Smart device list (but credentials stay on the device that paired the platform)
  • Automation rules
  • Sensor readings (last 30 days, then summarised)

What Does NOT Sync

  • Cloud platform credentials (Tuya client_secret, Mars Hydro password). For security each device pairs its own platform accounts.
  • Settings local to a device (theme, biometric lock, language). These are device-personal.
  • App lock PIN. Set independently per device.

Cloud Relay Fallback

Pairing always works over your local network. If both phones are on the same Wi-Fi, sync stays local and zero bytes touch the internet. If one phone goes mobile-data-only (you left the house), our cloud relay forwards encrypted messages between them — opt-in via Settings → Multi-Device Sync → Use cloud relay when off LAN.

Removing a Paired Device

Settings → Multi-Device Sync → Paired devices → tap a device → Unpair. The other device’s public key is revoked immediately and any future inbound message from it is rejected. You can re-pair later from a fresh QR.

Troubleshooting

“QR scan times out” — the token in the QR is valid for 60 seconds. Re-generate the QR on Phone A and scan promptly.

“LAN discovery fails” — some routers block mDNS (TP-Link Deco, Asus AiMesh defaults). Either enable mDNS on the router or use cloud relay (no router config needed).

“Diary entries appear twice” — rare; happens if both phones edited the same entry while offline and reconnected. Tap the conflicting entry → Resolve conflict → pick which version wins.