feat: scheduled auto-sync for Zigbee & Z-Wave imports
Mirror the Proxmox auto-sync pattern for the Zigbee2MQTT and Z-Wave JS UI mesh imports. Connection config + MQTT credentials live in .env only, are never persisted to scan_config.json, and are never returned by any API or shown in the UI (single source of truth). - config: ZIGBEE_* / ZWAVE_* env settings; only sync_enabled+interval are persisted, connection/credentials stay env-only - routes: GET/POST /config, POST /sync-now; auto-sync reuses the exact manual _background_*_import + _persist_pending_import path (fresh import when empty, update-in-place when nodes exist, ScanRun trace) - scheduler: zigbee_sync / zwave_sync jobs with live enable + reschedule - frontend: reusable MeshAutoSync section in Settings (Zigbee, Z-Wave) - .env.example: documented both blocks - tests: scheduler jobs, router config/sync-now/auth, credential-never- persisted, SettingsModal sections Manual Zigbee/Z-Wave import behaviour is unchanged. ha-relevant: no
This commit is contained in:
@@ -58,3 +58,30 @@ MCP_SERVICE_KEY=svc_changeme
|
||||
# PROXMOX_HOST=192.168.1.10
|
||||
# PROXMOX_PORT=8006
|
||||
# PROXMOX_VERIFY_TLS=true # set false only for self-signed certs
|
||||
|
||||
# Zigbee2MQTT auto-sync — pull the mesh from an MQTT broker on a schedule.
|
||||
# MQTT credentials are secrets: kept in memory only, never written to disk by
|
||||
# the app, never returned by any API. Manual imports (the Zigbee dialog) are
|
||||
# unaffected — this block only powers Settings → Zigbee auto-sync and /sync-now.
|
||||
# Required only for auto-sync; one-off imports pass their config in the dialog.
|
||||
# ZIGBEE_MQTT_HOST=192.168.1.20
|
||||
# ZIGBEE_MQTT_PORT=1883
|
||||
# ZIGBEE_MQTT_USERNAME=mqttuser # optional
|
||||
# ZIGBEE_MQTT_PASSWORD=mqttpass # optional
|
||||
# ZIGBEE_BASE_TOPIC=zigbee2mqtt
|
||||
# ZIGBEE_MQTT_TLS=false # true for TLS brokers (typically port 8883)
|
||||
# ZIGBEE_MQTT_TLS_INSECURE=false # skip cert verify (self-signed only; requires TLS)
|
||||
# ZIGBEE_SYNC_ENABLED=false # turn scheduled auto-sync on
|
||||
# ZIGBEE_SYNC_INTERVAL=3600 # seconds between syncs (min 300)
|
||||
|
||||
# Z-Wave JS UI (zwavejs2mqtt) auto-sync — same MQTT secret/env rules as Zigbee.
|
||||
# ZWAVE_MQTT_HOST=192.168.1.20
|
||||
# ZWAVE_MQTT_PORT=1883
|
||||
# ZWAVE_MQTT_USERNAME=mqttuser # optional
|
||||
# ZWAVE_MQTT_PASSWORD=mqttpass # optional
|
||||
# ZWAVE_PREFIX=zwave
|
||||
# ZWAVE_GATEWAY_NAME=zwavejs2mqtt
|
||||
# ZWAVE_MQTT_TLS=false # true for TLS brokers (typically port 8883)
|
||||
# ZWAVE_MQTT_TLS_INSECURE=false # skip cert verify (self-signed only; requires TLS)
|
||||
# ZWAVE_SYNC_ENABLED=false # turn scheduled auto-sync on
|
||||
# ZWAVE_SYNC_INTERVAL=3600 # seconds between syncs (min 300)
|
||||
|
||||
Reference in New Issue
Block a user