feat: server telemetry, update entity, sync-clock controls

- Server device exposing CPU/RAM/GPU/temperature/battery sensors via
  /api/v1/system/performance, plus last-restart timestamp (cached with
  jitter threshold so the recorder doesn't see poll wobble) and version.
- Update entity backed by /api/v1/system/update — installs via
  /apply, hides the install button when the server reports
  can_auto_update=false.
- Sync-clock entities: reset button, speed number, running switch, and
  the event listener now refreshes on entity_changed events too.
- Bump manifest to 0.4.0.
This commit is contained in:
2026-04-27 01:35:42 +03:00
parent e8f2b5e528
commit a666d9eb9c
12 changed files with 1080 additions and 23 deletions
@@ -29,6 +29,9 @@
"button": {
"activate_scene": {
"name": "{scene_name}"
},
"sync_clock_reset": {
"name": "Reset"
}
},
"light": {
@@ -39,6 +42,9 @@
"switch": {
"processing": {
"name": "Processing"
},
"sync_clock_running": {
"name": "Active"
}
},
"sensor": {
@@ -56,6 +62,39 @@
},
"mapped_lights": {
"name": "Mapped Lights"
},
"sync_clock_elapsed": {
"name": "Elapsed Time"
},
"server_cpu_percent": {
"name": "CPU Usage"
},
"server_ram_percent": {
"name": "RAM Usage"
},
"server_app_cpu_percent": {
"name": "App CPU Usage"
},
"server_app_ram": {
"name": "App Memory"
},
"server_gpu_utilization": {
"name": "GPU Usage"
},
"server_gpu_temp": {
"name": "GPU Temperature"
},
"server_cpu_temp": {
"name": "CPU Temperature"
},
"server_battery": {
"name": "Battery"
},
"server_last_restart": {
"name": "Last Restart"
},
"server_version": {
"name": "Server Version"
}
},
"number": {
@@ -76,6 +115,9 @@
},
"api_input_timeout": {
"name": "Fallback Timeout"
},
"sync_clock_speed": {
"name": "Speed"
}
},
"select": {
@@ -93,6 +135,11 @@
"nearest": "Nearest"
}
}
},
"update": {
"server_update": {
"name": "Server Update"
}
}
}
}