4 Commits
Author SHA1 Message Date
Vlad DolomanandClaude Sonnet 5.5 a6f8295d0e Add dashboard editor for registers 230 and 293
- writable_registers.py: shared whitelist, ranges and defaults (230: 0-115 A,
  293: 0-6500 W; defaults 43 and 4500) with strict validate_write()
- app.py: POST /api/registers validates everything before writing, writes
  under the inverter lock, reads each register back to verify; also reads
  register 230 for display
- index.html: Settings section with per-register Set, Default button,
  client-side digit/range checks and a confirm dialog
- read_registers.py: use the shared limits; README documents the feature

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-06 23:36:50 +02:00
Vlad DolomanandClaude Sonnet 5.5 93e8304809 Add --read to register tool; fix BMS data on dashboard
- read_registers.py: --read N|START-END|START:COUNT for arbitrary registers
  (chunked, shows dec/hex/signed); README documents the tool
- app.py: BMS pack 2 (614-627) is byte-swapped by the firmware; swap back
  and scale (SOC 0.1%, temp +1000 offset); pack 1 is unused, so drop it
- index.html: BMS cards now show pack 2 SOC, voltage, current, temp,
  charge voltage and BMS charge current limit

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-06 23:17:55 +02:00
Vlad DolomanandClaude Sonnet 5.5 4d1ff0c7ea Fix dashboard bugs, verify register map against manual, harden scripts
- index.html: remove duplicated sections/IDs, restore card CSS, add fetch
  timeout and error handling, label relay and lithium type values
- app.py: close inverter connection in finally, socket timeout, lock plus
  2s cache, debug off, friendly missing-config error, HTTP 502 on failure
- app.py: fix register scaling per Deye Modbus V118 (battery temp +1000
  offset, charge efficiency 0.1%, block 5 off-by-one for 312-325)
- read_registers.py: drop hard-coded IP/serial (env or config.py), use
  argparse type validators, unify INVERTER_SLAVE_ID, document limits
- extract_pdf.py: main guard, argparse, output next to script, pypdf in
  docs/requirements.txt; pin requirements

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-06 19:14:33 +02:00
Vladyslav Doloman a7730a0e34 Added test/read_registers.py for testing 2025-11-24 02:33:24 +02:00