feat: odometer baseline syncs to server — push on save, pull on sync, +/api/device-config/push endpoint
This commit is contained in:
@@ -16,6 +16,7 @@ def get_device_config():
|
||||
"car_model": app_sql.get_setting("device_car_model", ""),
|
||||
"device_name": app_sql.get_setting("device_device_name", ""),
|
||||
"avatar_path": app_sql.get_setting("device_avatar_path", ""),
|
||||
"odometer_baseline": float(app_sql.get_setting("odometer_baseline", "0") or "0"),
|
||||
"sync_enabled": sync_enabled,
|
||||
}
|
||||
# Fill in any missing values from config file or defaults
|
||||
|
||||
@@ -122,6 +122,8 @@ def _store_synced_config(config):
|
||||
app_sql.set_setting("device_avatar_path", config.get("avatar_path", "img/yaris.png"))
|
||||
app_sql.set_setting("device_config_version", str(config.get("config_version", 0)))
|
||||
app_sql.set_setting("device_config_synced_at", str(int(time.time())))
|
||||
if config.get("odometer_baseline") is not None:
|
||||
app_sql.set_setting("odometer_baseline", str(config["odometer_baseline"]))
|
||||
|
||||
|
||||
def _on_config_changed():
|
||||
|
||||
@@ -220,4 +220,29 @@ def update_settings(body):
|
||||
settings["alert_ntfy_token"] = ntfy_token
|
||||
|
||||
app_sql.set_settings(settings)
|
||||
|
||||
# Push odometer_baseline to server if configured and non-zero
|
||||
if values["odometer_baseline"] is not None and values["odometer_baseline"] > 0:
|
||||
_push_odometer_to_server(values["odometer_baseline"])
|
||||
|
||||
return {}
|
||||
|
||||
|
||||
def _push_odometer_to_server(baseline):
|
||||
try:
|
||||
from . import app_upload
|
||||
creds = app_upload._credentials()
|
||||
if not creds["server_url"] or not creds["device_name"] or not creds["api_key"]:
|
||||
return
|
||||
import requests
|
||||
requests.post(
|
||||
f"{creds['server_url']}/api/device-config/push",
|
||||
headers={
|
||||
"X-Device-Name": creds["device_name"],
|
||||
"X-Api-Key": creds["api_key"],
|
||||
},
|
||||
json={"odometer_baseline": baseline},
|
||||
timeout=5,
|
||||
)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user