This website requires JavaScript.
Explore
Help
Register
Sign In
admin
/
goodwe-addon
Watch
1
Star
0
Fork
0
Code
Issues
Pull Requests
Actions
Packages
Projects
Releases
Wiki
Activity
Files
bf3ac7998c471ca59f995912f8082d5a2812b13c
goodwe-addon
/
goodwe_controller
T
History
admin
and
Claude Opus 5.5
61a61941bb
checks / unit (pull_request)
Successful in 34m56s
Details
infra-pin / fresh (pull_request)
Successful in 1s
Details
MAINT-14 review: tests for a HOLD episode after a no-SoC charge, a MAINT-13 state file, and a true twin site at N=2
...
Co-Authored-By: Claude Opus 5.5 <
noreply@anthropic.com
>
2026-10-08 22:14:26 +02:00
..
app
MAINT-14: accurate no-level wording per phase; name the limit that ended the charge
2026-10-08 21:25:35 +02:00
DECISIONS
MAINT-14: accurate no-level wording per phase; name the limit that ended the charge
2026-10-08 21:25:35 +02:00
scenarios
OPT-11 P4: solar forecast and day plan
2026-09-29 19:29:32 +02:00
tools
SAFETY-103: no swing on old battery readings after a drain ends
2026-10-08 02:25:55 +02:00
translations
Merge release/1.0 (0.15.0 + SAFETY-90) into maint-10-local-start-hour
2026-10-05 21:51:04 +02:00
build.yaml
Packaged as a Home Assistant add-on, with a field guide
2026-08-23 01:15:25 +02:00
CHANGELOG.md
REL-0.16.0 review: CHANGELOG wording fixes
2026-10-08 00:09:08 +02:00
config.yaml
Release 0.16.0
2026-10-07 23:25:14 +02:00
Dockerfile
Six silent failures found by installing this on a live system
2026-08-23 02:25:58 +02:00
DOCS.md
MAINT-13 review: tests for a stale charge record and a clock step back; DOCS names the 7 day end
2026-10-08 13:08:40 +02:00
MUTATION.md
TEL-12: several PV inverters, and one absent member is an absent TOTAL
2026-09-24 22:13:25 +02:00
named_absence.py
TEST-26: a missing value in a check is a named FAIL, not a traceback
2026-09-25 00:06:58 +02:00
requirements.txt
Six silent failures found by installing this on a live system
2026-08-23 02:25:58 +02:00
run.sh
Six silent failures found by installing this on a live system
2026-08-23 02:25:58 +02:00
test_alloc.py
OPT-11 P1: per-battery mode limits, on/off, solar order
2026-09-28 18:51:29 +02:00
test_arbiter.py
SAFETY-86 review: hold the site at the peak floor while a HOLD gives
2026-10-01 02:00:20 +02:00
test_arbitrage.py
SAFETY-79: peak guard keeps a margin below the limit
2026-09-28 23:09:39 +02:00
test_batteries_screen.py
Merge release/1.0 (SAFETY-78,
#154
) into opt11-p4-solar-forecast
2026-09-29 22:37:09 +02:00
test_bytecode.py
TEST-15: purge the bytecode cache before a mutation run, not after
2026-09-01 02:07:09 +02:00
test_ci_gate.py
TOOL-9: pin checks print their FAIL line under pipefail; job tokens via header
2026-09-25 19:07:34 +02:00
test_clamp.py
SAFETY-94: a healthy battery that lags or reverses is not flagged as frozen or refusing
2026-10-04 00:15:42 +02:00
test_control_task.py
UX-08 2d: plain log lines, the rest of the status page, and DOCS
2026-09-27 08:01:16 +02:00
test_control.py
OPT-11 P1 review: a mode never beats the peak floor; SAFETY-03 kept at the rail
2026-09-28 19:41:36 +02:00
test_defaults_pin.py
TARIFF-15: your own tariff card, as two coefficients the card itself grades
2026-09-13 03:49:08 +02:00
test_delivery.py
SAFETY-73 review: a refusal needs 22 s of evidence, and the cut-out warning is for giving only
2026-09-28 02:16:24 +02:00
test_docs.py
DOC-1: operator docs name the real P1 entity and a roster that starts
2026-09-24 23:24:50 +02:00
test_freeze.py
UX-08 phase 2b: short, plain status rows and page banners
2026-09-27 02:12:10 +02:00
test_freshness.py
SAFETY-94: a healthy battery that lags or reverses is not flagged as frozen or refusing
2026-10-04 00:15:42 +02:00
test_haentities.py
UX-13 P2: the Installer settings view
2026-09-28 02:49:58 +02:00
test_home.py
MAINT-10: maintenance start hour in local time, default 19:00
2026-09-29 22:52:05 +02:00
test_inverter.py
UX-08 2d: plain log lines, the rest of the status page, and DOCS
2026-09-27 08:01:16 +02:00
test_loop.py
SAFETY-39: slew_w is a ratio to the rail, and gain is what is still wrong
2026-09-06 01:10:15 +02:00
test_maint10.py
MAINT-10 review: warn when HA did not answer and TZ is UTC; test the 3 s budget
2026-10-05 23:24:02 +02:00
test_maint13.py
MAINT-13 review: tests for a stale charge record and a clock step back; DOCS names the 7 day end
2026-10-08 13:08:40 +02:00
test_maint14.py
MAINT-14 review: tests for a HOLD episode after a no-SoC charge, a MAINT-13 state file, and a true twin site at N=2
2026-10-08 22:14:26 +02:00
test_maintenance.py
MAINT-14: maintenance with no SoC reading: charge times out, drain holds at 0 W
2026-10-08 20:37:01 +02:00
test_messages.py
Merge release/1.0 (
7337b79
, OPT-11 P2) into safety-79-peak-margin
2026-09-29 00:23:14 +02:00
test_modes_p3.py
OPT-11 P3, owner option A: selling off, Leftover solar takes solar only
2026-09-29 10:42:58 +02:00
test_modes_p4.py
OPT-11 P4 review: records and text
2026-09-29 22:29:00 +02:00
test_modes.py
SAFETY-95: a maintenance drain that ends hands back smoothly (N>=2)
2026-10-06 12:44:25 +02:00
test_mqtt.py
OPT-11 P3: price runs per battery
2026-09-29 02:37:44 +02:00
test_named_absence.py
TEST-26: a missing value in a check is a named FAIL, not a traceback
2026-09-25 00:06:58 +02:00
test_p1.py
UX-08 phase 2b: short, plain status rows and page banners
2026-09-27 02:12:10 +02:00
test_packshare.py
TEST-26: a missing value in a check is a named FAIL, not a traceback
2026-09-25 00:06:58 +02:00
test_peak_margin.py
SAFETY-85: no false 'not keeping up' while maintenance or the peak guard sets the battery
2026-10-01 19:05:27 +02:00
test_peakguard.py
SAFETY-91: a held battery is drawn only after the others are full
2026-10-02 14:03:54 +02:00
test_price_forecast.py
MAINT-10: maintenance start hour in local time, default 19:00
2026-09-29 22:52:05 +02:00
test_price_history.py
UX-10: the last plain-language leftovers: log lines, two table rows, 'Why: Other', red at 0 s
2026-09-27 10:58:43 +02:00
test_price.py
test_price: grade the Why row of the same render, not a second read of why_words
2026-09-27 17:04:55 +02:00
test_pv.py
UX-13 P1: page shell and Home screen on a structured /status
2026-09-28 00:45:01 +02:00
test_refusal_units.py
SAFETY-73 review: a refusal needs 22 s of evidence, and the cut-out warning is for giving only
2026-09-28 02:16:24 +02:00
test_refusal.py
SAFETY-52 review: a refusal is under 100 W, and any delivery ends it
2026-09-27 18:11:42 +02:00
test_rehearse.py
SAFETY-60/62: operator tools refuse input they cannot read
2026-09-24 23:27:50 +02:00
test_safety78.py
SAFETY-96: a battery the loop cannot move does not freeze it
2026-10-06 04:02:03 +02:00
test_safety81.py
SAFETY-81 review: 10 s hold, ERROR line per episode, more scenarios
2026-09-29 20:58:37 +02:00
test_safety83.py
SAFETY-86: peak guard outranks the maintenance hold
2026-10-01 00:56:34 +02:00
test_safety84.py
SAFETY-85: no false 'not keeping up' while maintenance or the peak guard sets the battery
2026-10-01 19:05:27 +02:00
test_safety85.py
SAFETY-85 review: grade discharge only, over the plant's settle time
2026-10-01 20:25:41 +02:00
test_safety86.py
SAFETY-85: no false 'not keeping up' while maintenance or the peak guard sets the battery
2026-10-01 19:05:27 +02:00
test_safety87.py
SAFETY-91: a held battery is drawn only after the others are full
2026-10-02 14:03:54 +02:00
test_safety90.py
SAFETY-90 review: test that a second gap does not price the first one down
2026-10-05 12:39:28 +02:00
test_safety91.py
SAFETY-91 review: a held-back battery is released 1 point above its reserve
2026-10-02 14:54:20 +02:00
test_safety93.py
MAINT-13 round 3: provider site, hourly fixed-tariff check, faster tests
2026-10-08 12:03:55 +02:00
test_safety94.py
SAFETY-97: "gives nothing" is graded against each battery's idle reading
2026-10-04 12:21:24 +02:00
test_safety95.py
SAFETY-95 review: test the stale-link and contradiction legs; refusal +1 only
2026-10-07 16:41:16 +02:00
test_safety96.py
SAFETY-96 review: keep the refusal count over a refused write; test a fast board
2026-10-06 05:46:32 +02:00
test_safety97.py
SAFETY-97: centre the band on the idle reading clamped to 75 W
2026-10-04 16:57:16 +02:00
test_safety103.py
SAFETY-103: test a dropped battery is not counted; guard a read
2026-10-08 03:12:03 +02:00
test_selfconfig.py
UX-13 P0: layout table, page<->options derivation, warning tier, entity list
2026-09-27 23:11:31 +02:00
test_settings.py
UX-13 P4: the setup wizard for installers
2026-09-28 05:31:18 +02:00
test_setup_only.py
UX-15: mutations fail named checks, not crashes
2026-09-28 08:54:26 +02:00
test_setup.py
OPT-11 P3 option A review: wizard no longer says modes come later
2026-09-29 11:21:32 +02:00
test_static_tariff.py
UX-08 2d: plain log lines, the rest of the status page, and DOCS
2026-09-27 08:01:16 +02:00
test_tariff.py
UX-10: the last plain-language leftovers: log lines, two table rows, 'Why: Other', red at 0 s
2026-09-27 10:58:43 +02:00
test_telemetry.py
SAFETY-48: what the lead cap actually does to a frozen integrator, and what the peak figure depends on
2026-09-19 02:37:01 +02:00
test_tool_inputs.py
UX-08 2c: short refusals, error texts and option texts
2026-09-27 05:55:45 +02:00
test_translations.py
UX-08 2c: short refusals, error texts and option texts
2026-09-27 05:55:45 +02:00
test_ui_text.py
UX-13 P5 review: every STYLE rule has a mutation check, fuller jargon lists, Dutch wording, overlap partner test
2026-09-28 16:54:45 +02:00
test_uilayout.py
UX-13 P2: the Installer settings view
2026-09-28 02:49:58 +02:00
test_uimodel.py
UX-13 P5 review: every STYLE rule has a mutation check, fuller jargon lists, Dutch wording, overlap partner test
2026-09-28 16:54:45 +02:00
test_validate.py
UX-13 P0: layout table, page<->options derivation, warning tier, entity list
2026-09-27 23:11:31 +02:00
test_version_gate.py
UX-08 2c: short refusals, error texts and option texts
2026-09-27 05:55:45 +02:00
test_watchdog.py
SAFETY-91: a held battery is drawn only after the others are full
2026-10-02 14:03:54 +02:00
ux08_allowlist.txt
UX-08 2d: plain log lines, the rest of the status page, and DOCS
2026-09-27 08:01:16 +02:00