Commit Graph
11 Commits
Author SHA1 Message Date
tim e32d3a8e22 Add a Grafana dashboard generator for the three UPS devices
tools/generate_grafana_ups.py writes grafana-ups.json, which shows the JBD network UPS, the River 2 desktop UPS, and the River 3 NAS UPS in three columns. Git ignores the generated file.

Each EcoFlow column shows one time-remaining panel in hours, for the direction in use. The River 2 histories add pack current and remaining capacity. The River 3 reports neither, so its histories add battery power and charge.
2026-10-10 11:56:29 +02:00
tim c2faeb669a Add River 3 telemetry and schema-based diagnostics
Decode River 3 separately and accumulate partial reports against a field-level checklist. Keep watch mode running after completion.

Label fields and nested records from the pinned pr705 schema. Preserve unknown values and document unverified meanings and routing.

Add synthetic regressions, the River 3 field reference, schema-generation tooling, and upstream attribution.
2026-10-08 14:08:20 +02:00
tim bac953bf48 Replace Poetry with uv
Use standard project metadata, dependency groups, and the uv build backend. The new lock preserves the previous dependency versions. Documentation and services use uv, and services leave their shared environment unchanged at startup.

Remove the entry point for the empty USB HID prototype. Exclude local prototypes, captures, and the external Type 7 lookup table from version control and distributions.
2026-10-08 14:03:09 +02:00
tim 886991caf3 Add River 2 Bluetooth telemetry and diagnostics
Decode River 2 charge, temperature, power flow, and time estimates. Preserve precise charge readings across packet reordering and omit unavailable time estimates.

Require valid PD, EMS, and BMS core heartbeats for diagnostic completion. Report optional packets separately and support raw watch output with reliable disconnect cleanup. Use synthetic regression tests and keep captures, credentials, and external keydata private.

Device details come from command-line arguments or discovery. This commit retains Poetry; the separate packaging commit migrates to uv.
2026-10-08 14:02:45 +02:00
tim 897ae5dfb7 Add unit tests 2026-05-02 23:12:29 +02:00
tim 827f59cf49 Update from influxdb_client to influxdb_client_3 2026-05-02 17:40:31 +02:00
tim a782e19563 Update Python minumum version to allow new dependencies
Add a manual pin to typing-extensions >= 4.13, as lower versions that might already be installed will break on Python >= 3.14
2026-05-02 17:40:31 +02:00
tim b672c9f5ae Add UPS functionality 2024-05-14 09:22:06 +02:00
tim cae4d1b0a4 Use JSON for serialising requests/responses, rather than pickle, to make C integration easier 2024-05-09 09:42:59 +02:00
tim dab791fb79 Refactor into a client/server model, to enable multiple clients to access the BMS data 2024-04-30 17:28:14 +02:00
tim be75d8fd88 Convert to using poetry to run bmspy 2024-03-19 22:28:39 +02:00