SMA-2: each inverter is reached through a driver; GoodWe behaviour unchanged
checks / unit (pull_request) Successful in 23m14s
infra-pin / fresh (pull_request) Successful in 2s

app/drivers.py holds one Driver per roster entry (configured, actuator_id,
limits, read, write, release, probe, link_stale_s, batt_bound, settle_s, brand,
words). GoodWeEsphomeDriver makes the calls the code it replaced made, in the
same order. Inverter gets driver; has_writer, is_live and link_note read it. The
SoC/power read, the write, the device range (run_control, amain, the settings
panel), rule 2 per unit and the SAFETY-28 census go through it.

setpoint_entity is optional per entry beside driver, host, port, unit_id and
maintenance; only goodwe_esphome is selectable, the rest are checked and unused.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
glenn schrooyen
2026-11-07 11:28:47 +01:00
co-authored by Claude
parent 23ff9d0920
commit e56eeef8f0
18 changed files with 1238 additions and 65 deletions
+10
View File
@@ -1683,6 +1683,11 @@ LABELS = {
"capacity_kwh": "Usable battery capacity",
"inverters": "Inverter list",
"name": "Name",
"driver": "Inverter type",
"host": "Inverter address",
"port": "Inverter port",
"unit_id": "Inverter unit number",
"maintenance": "Battery maintenance",
"meter_source": "Where the meter reading comes from",
"meter_phases": "Number of phases",
"p1_host": "HomeWizard P1 address",
@@ -1764,6 +1769,11 @@ LABELS_NL = {
"capacity_kwh": "Bruikbare capaciteit",
"inverters": "Lijst met omvormers",
"name": "Naam",
"driver": "Type omvormer",
"host": "Adres van de omvormer",
"port": "Poort van de omvormer",
"unit_id": "Eenheidsnummer van de omvormer",
"maintenance": "Onderhoud van de batterij",
"meter_source": "Waar de meterstand vandaan komt",
"meter_phases": "Aantal fasen",
"p1_host": "Adres van de HomeWizard P1",