First packaged desktop release of PowerMeter for macOS.
This release introduces the application fork focused on local desktop use, Modbus/TCP device discovery, local SQLite storage, and a packaged FastAPI backend launched together with the desktop shell.
Highlights
- Added macOS desktop application packaging.
- Added FastAPI backend sidecar integration for the desktop app.
- Added local SQLite database storage in the user application data directory.
- Added desktop diagnostics endpoint and health check flow.
- Added Modbus/TCP network discovery workflow.
- Added configurable Unit ID discovery modes:
- quick
- extended
- custom
- guarded full scan mode
- Added scan job persistence and scan result storage.
- Added candidate device creation from discovered Modbus devices.
- Added frontend controls for scan mode, timeout, concurrency, and custom Unit IDs.
- Added safer Modbus detection strategy:
- FC43/14 first
- FC03 fallback
- FC04 fallback
- valid Modbus exception responses are treated as device responses.
Desktop runtime
The app stores its local data under the operating system application data directory.
On macOS:
~/Library/Application Support/PowerMeter/
Typical runtime files:
app.sqlite
logs/
Useful diagnostic endpoints:
http://127.0.0.1:8765/api/health
http://127.0.0.1:8765/api/desktop/diagnostics
Validation
The following check passed before release:
env PYTHONPYCACHEPREFIX=/tmp/powermeter_pycache .venv/bin/python -m compileall backend/appAlso verified:
- backend health endpoint returns OK;
- desktop diagnostics endpoint returns OK;
- SQLite database initialization works;
- desktop mode uses the expected application data directory;
- scan parameter validation works;
- quick, extended, custom, and guarded full scan plans were checked;
- custom Unit ID sorting and validation were checked;
- invalid custom Unit ID input is rejected.
Known limitations
- macOS build may be unsigned or not notarized.
- Gatekeeper may require manual approval on first launch.
- Discovery reliability depends on network access, firewall rules, reachable Modbus/TCP port 502, and device Unit ID configuration.
- Full Unit ID scanning is intentionally guarded to avoid unnecessarily aggressive scans.
- This is an early application release intended for testing and feedback.
Recommended installation
- Download the attached macOS application archive or DMG.
- Move PowerMeter to the Applications folder.
- Launch the app.
- If macOS blocks launch, allow it manually through System Settings → Privacy & Security.
- Open diagnostics if the backend does not start.
- Check that the health endpoint returns OK.
Notes for testers
Please report:
- macOS version;
- Apple Silicon or Intel CPU;
- whether the app launched successfully;
- whether backend diagnostics are healthy;
- whether discovery found expected Modbus/TCP devices;
- screenshots or logs from:
~/Library/Application Support/PowerMeter/logs/