Implement pymodbus register map for SigenStor (T05)
Complete T05: pymodbus_client.py — TCP Modbus client that reads battery/inverter/PV registers, returns structured dict. Needs connection handling, register definitions for SoC/power/status, error handling, and unit test stub with mocked responses.
Acceptance criteria:
- src/pymodbus_client.py created with ModbusTcpClient class
- Reads battery (SoC), inverter (power, status), PV production registers
- Returns dict from each read cycle
- Handles connection timeout and modbus exceptions
- Unit test stub with mocked responses exists
Note (2026-06-29T18:55:19Z)
Picked up by ralph at 2026-06-30T04:35:00+10:00. Starting SigenStor T05 pymodbus implementation.
Note (2026-06-29T18:56:31Z)
Picked up by autopilot at 2026-06-29T22:30 UTC. Plan: create src/pymodbus_client.py with ModbusTcpClient class reading battery/inverter/PV registers from the existing register map in telemetry_poller/registers.py, add unit test stub with mocked responses, and handle connection errors + modbus exceptions.
Note (2026-06-29T19:37:59Z)
Ralph taking over at 2026-06-30T04:35:00+10:00. SigenStor T05: implement pymodbus_client.py with ModbusTcpClient reading battery/inverter/PV registers, returning structured dict with connection/exception handling + unit test stub.