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
+15
View File
@@ -79,6 +79,21 @@ configuration:
capacity_kwh:
name: "Usable battery capacity (kWh) (optional)"
description: "This battery's usable capacity from its datasheet. Fill it in on every inverter or on none. The add-on then shares the work by the energy each battery has left."
driver:
name: "Inverter type (optional)"
description: "The kind of inverter. Leave it empty for a GoodWe."
host:
name: "Inverter address (optional)"
description: "Not used yet. Leave it empty."
port:
name: "Inverter port (optional)"
description: "Not used yet. Leave it empty."
unit_id:
name: "Inverter unit number (optional)"
description: "Not used yet. Leave it empty."
maintenance:
name: "Battery maintenance (optional)"
description: "Not used yet. Leave it empty."
estop_fitted:
name: "Hardware · RS485 emergency stop is fitted"
description: "Switch this on if the emergency stop is installed. It only changes a warning on the status page."
+15
View File
@@ -60,6 +60,21 @@ configuration:
capacity_kwh:
name: "Bruikbare capaciteit (kWh) (optioneel)"
description: "De bruikbare capaciteit van deze batterij, van het datablad. Vul ze bij elke omvormer in of bij geen. Dan verdeelt de add-on het werk volgens de energie in elke batterij."
driver:
name: "Type omvormer (optioneel)"
description: "Het soort omvormer. Laat leeg voor een GoodWe."
host:
name: "Adres van de omvormer (optioneel)"
description: "Nog niet in gebruik. Laat leeg."
port:
name: "Poort van de omvormer (optioneel)"
description: "Nog niet in gebruik. Laat leeg."
unit_id:
name: "Eenheidsnummer van de omvormer (optioneel)"
description: "Nog niet in gebruik. Laat leeg."
maintenance:
name: "Onderhoud van de batterij (optioneel)"
description: "Nog niet in gebruik. Laat leeg."
estop_fitted:
name: "Hardware · RS485-noodstop is geplaatst"
description: "Zet dit aan als de noodstop geïnstalleerd is. Het verandert alleen een waarschuwing op de statuspagina."