Web UI
The daemon serves a dark-themed control panel at http://127.0.0.1:8090 (configurable via EMEET_PIXYD_WEB_ADDR).
Layout
Section titled “Layout”The UI is composed of two sections:
- Camera preview — full-width hero at the top, rendered once on page load
- Status panel — below the preview, re-renders via DataStar SSE patches
Camera Mode Cards
Section titled “Camera Mode Cards”Three selectable cards replace the old button group:
| Mode | Icon | Shortcut | Description |
|---|---|---|---|
| Track | Target | T |
AI face tracking enabled |
| Idle | Standby | I |
Camera on but no tracking |
| Privacy | Eye-off | P |
Hardware lens shutter engaged |
Active mode is highlighted with a per-mode color glow:
- Track — green
- Idle — yellow
- Privacy — red
Audio Segmented Control
Section titled “Audio Segmented Control”Three buttons inside a segmented container:
| Mode | Label | Description |
|---|---|---|
nc |
Noise Cancel | Hardware noise cancellation + DSP |
live |
Live | Raw audio, no processing |
org |
Original | Original mode (shorthand: org) |
Clicking a segment POSTs to /api/audio/{mode}.
PTZ Control
Section titled “PTZ Control”Sliders
Section titled “Sliders”Three sliders for pan, tilt, and zoom:
| Axis | Range | Unit |
|---|---|---|
| Pan | -150 to +150 | degrees |
| Tilt | -90 to +90 | degrees |
| Zoom | 100 to 150 | times |
Positive tilt = up. No sign inversion anywhere.
A circular position indicator shows the current pan/tilt/zoom spatially:
- A glowing dot represents the camera position
- Crosshair and rings provide reference
- Zoom ring size scales from 30% to 80% of radar diameter
The radar updates live as you drag sliders.
Keyboard Shortcuts
Section titled “Keyboard Shortcuts”| Key | Action |
|---|---|
| Arrow keys | Pan/tilt by 5-degree steps |
+ / = |
Zoom in (step of 10) |
- / _ |
Zoom out (step of 10) |
C |
Center camera |
Shortcuts are ignored when typing in an input field.
Press ? to toggle the keyboard shortcut legend (bottom-left panel). Escape closes it.
Presets
Section titled “Presets”Save and recall named PTZ positions:
- Type a name in the input field
- Press Enter or click Save
- The preset chip appears below
Click a preset name to recall it. Click the x button to delete.
Maximum 16 presets. Names must be non-empty, 32 characters or fewer, with no path separators or control characters.
Snapshot
Section titled “Snapshot”Click the camera icon overlay on the preview to capture a still frame. The image downloads as pixy-YYYY-MM-DD-HH-MM-SS.jpg.
Live Updates
Section titled “Live Updates”The UI uses Server-Sent Events (SSE) for real-time state updates. When the daemon state changes (from CLI, auto-mode, or another browser tab), all connected clients update instantly without polling.
Offline State
Section titled “Offline State”When the PIXY is not connected, the PTZ section is replaced with a placeholder card. The preview shows an SVG camera-off icon. The daemon automatically re-detects the device via netlink uevents when it’s plugged back in.
Where to go next
Section titled “Where to go next”- PTZ Control — the sliders and radar in depth
- Presets — managing saved positions
- Auto Modes — what the auto toggle does
- CLI Reference — the same controls from the terminal
- Configuration — change the web listen address