Fold the Windows tray/daemon into one self-contained Clawdmeter.exe with a settings UI, and wire the host side of the watch features: - config.py: single %LOCALAPPDATA%\Clawdmeter\config.json (ha/buttons/settings), atomic writes, auto-migration from the old ha_config.json. - server.py: local FastAPI (127.0.0.1:8723) — GET/PUT /api/config (token masked), POST /api/ha/test, GET /api/ha/entities, GET /api/status. - web/index.html: brand-styled settings panel (Status/HA/Buttons/Settings tabs). - panel.py: pywebview/WebView2 window, launched as its own process (pywebview and pystray both want the main thread); tray "Settings" opens it via --panel. - daemon: HA command dispatch (toggle/bri/ct), dynamic button labels + index→ action mapping, watch-battery low warning toast, and the dimmer "dim" snapshot (dimreq → light_snapshot of the first entity) so the watch dial seeds from HA. - clawdmeter.spec / requirements: bundle fastapi+uvicorn+pywebview+webview backend. - build-exe.ps1: ASCII-only (Windows PowerShell 5.1 mangles em-dashes under cp1251). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
38 lines
680 B
Plaintext
38 lines
680 B
Plaintext
# PlatformIO build artifacts
|
|
firmware/.pio/
|
|
firmware/.vscode/
|
|
|
|
# OS
|
|
.DS_Store
|
|
|
|
# Claude Code
|
|
.claude/
|
|
|
|
# Node tooling deps (npm install --no-save)
|
|
tools/node_modules/
|
|
tools/package-lock.json
|
|
|
|
# Mac daemon venv
|
|
daemon/.venv/
|
|
|
|
# Python bytecode cache
|
|
__pycache__/
|
|
*.pyc
|
|
|
|
# Windows daemon venv
|
|
/.venv/
|
|
|
|
# PyInstaller build artifacts — the standalone exe ships via a Gitea release,
|
|
# not git (build it with build-exe.ps1 / clawdmeter.spec).
|
|
/build/
|
|
/dist/
|
|
*_dbg.spec
|
|
|
|
# Local Home Assistant config (holds a secret token - never commit)
|
|
daemon/ha_config.json
|
|
|
|
# Session scratch — BLE daemon run logs + one-off on-device QA screenshots
|
|
/m3_daemon*.log
|
|
/dimmer_qa.png
|
|
/build-exe.log
|