Skip to content

PowerMeter v0.2.0-app

Latest

Choose a tag to compare

@sus-pavel sus-pavel released this 16 Jun 15:44
· 8 commits to App since this release

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/app

Also 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

  1. Download the attached macOS application archive or DMG.
  2. Move PowerMeter to the Applications folder.
  3. Launch the app.
  4. If macOS blocks launch, allow it manually through System Settings → Privacy & Security.
  5. Open diagnostics if the backend does not start.
  6. 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/