Skip to content

feat: machine management — sound themes, WiFi, and health dashboard #327

@hessius

Description

@hessius

Summary

Add machine management capabilities leveraging the full Meticulous API surface discovered in #283. These features are available via existing API endpoints but not yet exposed in MeticAI.

1. Sound Theme Management

The machine supports customizable sound themes for button presses, brew stages, and notifications.

API endpoints:

  • GET /api/v1/sounds/list — List available sound themes
  • POST /api/v1/sounds/set — Set active sound theme
  • GET /api/v1/sounds/get/{name} — Get theme details
  • POST /api/v1/sounds/upload — Upload custom sound theme
  • DELETE /api/v1/sounds/delete/{name} — Delete custom theme
  • GET /api/v1/sounds/volume / POST /api/v1/sounds/volume — Get/set volume

Behaviour: A new "Sounds" section in Settings with:

  • Dropdown to select active sound theme from installed themes
  • Volume slider (0-100%)
  • Upload button for custom .zip sound packs
  • Delete button for user-uploaded themes (not defaults)
  • Preview/play button for each theme

2. WiFi Management

The machine has full WiFi CRUD via API, currently only manageable through the dial UI.

API endpoints:

  • GET /api/v1/wifi/status — Current connection status
  • GET /api/v1/wifi/list — Available networks (with signal strength)
  • POST /api/v1/wifi/connect — Connect to network (SSID + password)
  • POST /api/v1/wifi/disconnect — Disconnect
  • GET /api/v1/wifi/saved — Saved networks
  • DELETE /api/v1/wifi/forget/{ssid} — Forget saved network
  • POST /api/v1/wifi/scan — Trigger fresh scan
  • GET /api/v1/wifi/hostname — Machine hostname

Behaviour: A new "WiFi" section in Settings with:

  • Current connection status badge (connected/disconnected + SSID + signal strength)
  • List of available networks with signal strength indicators
  • Tap network → password dialog → connect
  • Saved networks list with "Forget" option
  • "Scan" refresh button
  • Only available in direct mode (on-machine PWA) — hidden when using MeticAI server proxy

3. Machine Health Dashboard

The meticulous-watcher service (port 3000) monitors 7 services and system health.

API endpoints:

  • GET /status — Health of all monitored services
  • System metrics: disk usage, memory, uptime, temperature

Behaviour: A compact "Machine Status" card on the home screen (direct mode only) or a dedicated section in Settings:

  • Service status indicators (green/yellow/red dots)
  • Disk usage bar
  • Memory usage bar
  • Machine uptime
  • CPU/board temperature
  • Auto-refresh every 30s, or on-demand refresh button

Scope

All three features are only relevant when connected to a machine (direct mode or via MeticAI server proxy). WiFi management should only be available in direct mode.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions