Release 0.18.2 (patch). Changes only goodwe_controller/config.yaml (version 0.18.2) and goodwe_controller/CHANGELOG.md. No code, no option change. Contents: 09a5485 SAFETY-118 (#198). Not to be merged by the dev.
CHANGELOG section:
0.18.2
A patch bump: one fix to how the 15-minute demand forecast sensor is read, and no option changes.
No option was added, removed or renamed, and no default changed (86 options). Existing installs need no option change: options that start 0.18.1 also
start 0.18.2. Only a forecast sensor with no power unit needs a look (below).
The change below applies with one inverter or two.
A forecast sensor with no power unit. If your 15-minute demand forecast
sensor has no unit, or a unit that is not power (for example kWh), the add-on
now ignores that forecast. The log warns once, and the Home and Settings pages
say so while it lasts. Pick a sensor that reads in W or kW.
Contents of this release, in merge order since 0.18.1 (780c1f6):
09a5485
The 15-minute demand forecast sensor is now read in its own unit, W or kW, and the old rule that took any value below 50 as kW is gone. With no unit, or a unit that is not power, the forecast is not used, and the log and the pages say so; the settings page no longer says a kW sensor is taken as watts (SAFETY-118, #198)
Known issues
A false "Battery is not keeping up" can still show when the peak guard pauses a maintenance charge (SAFETY-92).
A battery capped at a low limit with a perfectly flat reading can still trip the stale check (SAFETY-74).
A battery whose reading at rest is beyond about ±175 W is still not caught when it refuses (SAFETY-97).
The peak guard can still back off near the end of a 15-minute period when a meter reading is late, by less than 30 s (SAFETY-99).
Two inverters: the maintenance charge can switch on and off while the house is above the peak aim (SAFETY-88).
Two inverters: the "circulating" figure counts a battery's reading at rest (SAFETY-98).
Two inverters: a drain that starts during a big step in house use can send the other battery to full power, and about 1 kW goes to the grid for about 10 s (SAFETY-104).
Two inverters: when a battery comes back during a maintenance charge, the grid can step by several kW at once (SAFETY-101).
Two inverters: when a battery drops out during a solar surplus, the others can swing by up to 1.5 kW in a simulation (SAFETY-105).
Two inverters: after a drain ends, a change in house use can go unanswered for about 9 s, because some readings are old (SAFETY-106).
Two inverters: when one battery's level is missing, both batteries are held at 0 W, and for about 15 s the last command stays on (SAFETY-108).
Two inverters: if one battery's level stays missing for 12 h, the other battery's cycle can be marked failed, with a 7-day wait and a notice, though it is healthy. This comes from reading the code; it has not been seen on a site (MAINT-17).
When the 15-minute demand forecast sensor counts the battery's own charge, the maintenance charge runs at about half the power the peak limit leaves, so it takes about twice as long. Seen on a site: about 1.2 kW instead of 2.5 kW, and the peak limit was kept (SAFETY-111).
One inverter: after a link drop, the battery's own safety stop to 0 W can be taken as a refusal, and the site stays at 0 W for up to 15 min (SAFETY-102).
After a Home Assistant restart, control still waits until Home Assistant has finished starting, which can take several minutes, though the readings are already there (SAFETY-115).
While Home Assistant is not answering, the page can list inverters as refusing commands and sensors as missing, and send you to Developer Tools, though they are fine (UX-37).
If Home Assistant hangs or stops, the page keeps saying "Waiting for Home Assistant" and never turns into an alarm (SAFETY-113).
Right after Home Assistant has started, the page can say for about 4 s that an inverter cannot be controlled, and the first command can come late (SAFETY-114).
After a Home Assistant restart, the controller status sensor can still say "running" while the add-on cannot control. It was seen once, and the cause is not known (SAFETY-116).
Battery modes on: after a planned top-up from the grid, the Batteries screen can say "Enough sun is forecast" (UX-32).
Battery modes on: the forecast line "we count on" can show more sun than the plan counts, because the plan takes house use off first (UX-33).
Battery modes on: before a planned top-up, the Today list shows a smaller "gives" amount than the plan will use; it grows as the charge happens (UX-34).
Two inverters, battery modes on: while the other battery is in its maintenance charge, a battery's card can say it charges from the grid while it stays at 0 W (OPT-18).
Two inverters, battery modes on: while a battery refuses to charge in a cheap run, the action log on the page gets about 8 lines an hour for its retries, and the page hint says "waiting for a better price" (UX-38).
A battery in a safety stop, or one the add-on cannot reach, can still be started for a cycle, and its drain then waits about 12 h and ends in a failed-cycle notice. This comes from reading the code; it has not been seen on a site (MAINT-19).
On the Settings page, the rows of the solar forecast lists are labelled "Phase 1", "Phase 2" instead of "Sensor 1", "Sensor 2" (UX-27).
In the solar forecast list, a blank or repeated row makes "source 2 of 2" count differently from the rows on the Settings page (UX-28).
The solar forecast message says "has no reading" also when the sensor shows a number that is too old or in the wrong unit (UX-29).
If you use only the forecast lists, two Settings notes sit on the single-sensor field, and one of them tells you to set that field (UX-30).
After a restart during a price outage, the "No prices" message can say "yet" when prices did come in earlier (UX-39).
On the new settings page, you cannot see whether a price service token is set. Check the Configuration tab (UX-41).
On the classic settings page, the first click on Save after editing a field can do nothing. Click again (UX-42).
The price chart on the Home page shows one bar per hour, the average of four 15-minute prices, while the add-on decides on the 15-minute prices (UX-45).
If you are crossing from a version older than 0.10.0
## 0.10.0 below can refuse an old config: slew_w above its limit, and the
withdrawn price_provider ids engie_dynamic, totalenergies_dynamic and eneco_eddy. Read it before you update. Run tools/predeploy_check.py with the
bare options (jq '.data.options') first.
Release 0.18.2 (patch). Changes only goodwe_controller/config.yaml (version 0.18.2) and goodwe_controller/CHANGELOG.md. No code, no option change. Contents: 09a5485 SAFETY-118 (#198). Not to be merged by the dev.
CHANGELOG section:
## 0.18.2
**A patch bump: one fix to how the 15-minute demand forecast sensor is read, and no option changes.**
No option was added, removed or renamed, and no default changed (86 options).
**Existing installs need no option change:** options that start 0.18.1 also
start 0.18.2. Only a forecast sensor with no power unit needs a look (below).
The change below applies with one inverter or two.
**A forecast sensor with no power unit.** If your 15-minute demand forecast
sensor has no unit, or a unit that is not power (for example kWh), the add-on
now ignores that forecast. The log warns once, and the Home and Settings pages
say so while it lasts. Pick a sensor that reads in W or kW.
Contents of this release, in merge order since 0.18.1 (`780c1f6`):
| | |
|---|---|
| `09a5485` | The 15-minute demand forecast sensor is now read in its own unit, W or kW, and the old rule that took any value below 50 as kW is gone. With no unit, or a unit that is not power, the forecast is not used, and the log and the pages say so; the settings page no longer says a kW sensor is taken as watts ([[SAFETY-118]], #198) |
### Known issues
- A false "Battery is not keeping up" can still show when the peak guard pauses a maintenance charge ([[SAFETY-92]]).
- A battery capped at a low limit with a perfectly flat reading can still trip the stale check ([[SAFETY-74]]).
- A battery whose reading at rest is beyond about ±175 W is still not caught when it refuses ([[SAFETY-97]]).
- The peak guard can still back off near the end of a 15-minute period when a meter reading is late, by less than 30 s ([[SAFETY-99]]).
- Two inverters: the maintenance charge can switch on and off while the house is above the peak aim ([[SAFETY-88]]).
- Two inverters: the "circulating" figure counts a battery's reading at rest ([[SAFETY-98]]).
- Two inverters: a drain that starts during a big step in house use can send the other battery to full power, and about 1 kW goes to the grid for about 10 s ([[SAFETY-104]]).
- Two inverters: when a battery comes back during a maintenance charge, the grid can step by several kW at once ([[SAFETY-101]]).
- Two inverters: when a battery drops out during a solar surplus, the others can swing by up to 1.5 kW in a simulation ([[SAFETY-105]]).
- Two inverters: after a drain ends, a change in house use can go unanswered for about 9 s, because some readings are old ([[SAFETY-106]]).
- Two inverters: when one battery's level is missing, both batteries are held at 0 W, and for about 15 s the last command stays on ([[SAFETY-108]]).
- Two inverters: if one battery's level stays missing for 12 h, the other battery's cycle can be marked failed, with a 7-day wait and a notice, though it is healthy. This comes from reading the code; it has not been seen on a site ([[MAINT-17]]).
- When the 15-minute demand forecast sensor counts the battery's own charge, the maintenance charge runs at about half the power the peak limit leaves, so it takes about twice as long. Seen on a site: about 1.2 kW instead of 2.5 kW, and the peak limit was kept ([[SAFETY-111]]).
- One inverter: after a link drop, the battery's own safety stop to 0 W can be taken as a refusal, and the site stays at 0 W for up to 15 min ([[SAFETY-102]]).
- After a Home Assistant restart, control still waits until Home Assistant has finished starting, which can take several minutes, though the readings are already there ([[SAFETY-115]]).
- While Home Assistant is not answering, the page can list inverters as refusing commands and sensors as missing, and send you to Developer Tools, though they are fine ([[UX-37]]).
- If Home Assistant hangs or stops, the page keeps saying "Waiting for Home Assistant" and never turns into an alarm ([[SAFETY-113]]).
- Right after Home Assistant has started, the page can say for about 4 s that an inverter cannot be controlled, and the first command can come late ([[SAFETY-114]]).
- After a Home Assistant restart, the controller status sensor can still say "running" while the add-on cannot control. It was seen once, and the cause is not known ([[SAFETY-116]]).
- Battery modes on: after a planned top-up from the grid, the Batteries screen can say "Enough sun is forecast" ([[UX-32]]).
- Battery modes on: the forecast line "we count on" can show more sun than the plan counts, because the plan takes house use off first ([[UX-33]]).
- Battery modes on: before a planned top-up, the Today list shows a smaller "gives" amount than the plan will use; it grows as the charge happens ([[UX-34]]).
- Two inverters, battery modes on: while the other battery is in its maintenance charge, a battery's card can say it charges from the grid while it stays at 0 W ([[OPT-18]]).
- Two inverters, battery modes on: while a battery refuses to charge in a cheap run, the action log on the page gets about 8 lines an hour for its retries, and the page hint says "waiting for a better price" ([[UX-38]]).
- A battery in a safety stop, or one the add-on cannot reach, can still be started for a cycle, and its drain then waits about 12 h and ends in a failed-cycle notice. This comes from reading the code; it has not been seen on a site ([[MAINT-19]]).
- On the Settings page, the rows of the solar forecast lists are labelled "Phase 1", "Phase 2" instead of "Sensor 1", "Sensor 2" ([[UX-27]]).
- In the solar forecast list, a blank or repeated row makes "source 2 of 2" count differently from the rows on the Settings page ([[UX-28]]).
- The solar forecast message says "has no reading" also when the sensor shows a number that is too old or in the wrong unit ([[UX-29]]).
- If you use only the forecast lists, two Settings notes sit on the single-sensor field, and one of them tells you to set that field ([[UX-30]]).
- After a restart during a price outage, the "No prices" message can say "yet" when prices did come in earlier ([[UX-39]]).
- On the new settings page, you cannot see whether a price service token is set. Check the Configuration tab ([[UX-41]]).
- On the classic settings page, the first click on Save after editing a field can do nothing. Click again ([[UX-42]]).
- The price chart on the Home page shows one bar per hour, the average of four 15-minute prices, while the add-on decides on the 15-minute prices ([[UX-45]]).
### If you are crossing from a version older than 0.10.0
`## 0.10.0` below can refuse an old config: `slew_w` above its limit, and the
withdrawn `price_provider` ids `engie_dynamic`, `totalenergies_dynamic` and
`eneco_eddy`. Read it before you update. Run `tools/predeploy_check.py` with the
bare options (`jq '.data.options'`) first.
Model-router verdict: T63 PASS (dev ran on Sonnet, verified by Opus). Head 75f4359; CI run 1319 checks/unit and 1320 infra-pin/fresh green. Next: Opus review.
Model-router verdict: T63 PASS (dev ran on Sonnet, verified by Opus). Head 75f4359; CI run 1319 checks/unit and 1320 infra-pin/fresh green. Next: Opus review.
Review of PR #199. "Warns once" left out the Home row and the Settings
note, which stay while the fault lasts. "No option change" now points to
the one case that needs a look.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review of 75f4359 (Opus). Two low text findings, both fixed in ea77c63 (CHANGELOG only, one commit; PR body section updated to match). Merge waits for checks / unit on ea77c63.
F1 (low, CHANGELOG.md:12 and row l.18): "warns once" said too little. The log warns once per cause, but the Home page shows a status row and the Settings page a note for as long as the fault lasts (main.py checks() row peak_forecast; validate.py _entity_notes; SAFETY-118 test check 4). Now: "The log warns once, and the Home and Settings pages say so while it lasts." Row: "the log and the pages say so".
F2 (low, CHANGELOG.md:7-9): "Existing installs need no option change" is true (no option added, removed, renamed or re-defaulted; options start), but a site whose forecast sensor has no power unit loses that forecast and has to pick another sensor or give it a unit. Added: "Only a forecast sensor with no power unit needs a look (below)."
Checked and fine: diff is config.yaml + the new section only; 0.18.1 and older sections byte for byte unchanged; heading = version; patch is right (config.yaml unchanged 780c1f6..09a5485, 86 options, translations change description text only, no default in code changed); contents = the one first-parent merge 09a5485 (#198); no claim about the live site; known issues: 33 kept word for word, all cards still open (SAFETY-97 Done, limit unchanged as before), SAFETY-118 dropped, nothing new filed since the 0.18.1 cut. Offline tests (6) pass and predeploy CLEARS on ea77c63; mutation of heading and version both fail test_version_gate.
Review of 75f4359 (Opus). Two low text findings, both fixed in **ea77c63** (CHANGELOG only, one commit; PR body section updated to match). Merge waits for `checks / unit` on ea77c63.
- **F1 (low, CHANGELOG.md:12 and row l.18): "warns once" said too little.** The log warns once per cause, but the Home page shows a status row and the Settings page a note for as long as the fault lasts (main.py `checks()` row `peak_forecast`; validate.py `_entity_notes`; SAFETY-118 test check 4). Now: "The log warns once, and the Home and Settings pages say so while it lasts." Row: "the log and the pages say so".
- **F2 (low, CHANGELOG.md:7-9): "Existing installs need no option change"** is true (no option added, removed, renamed or re-defaulted; options start), but a site whose forecast sensor has no power unit loses that forecast and has to pick another sensor or give it a unit. Added: "Only a forecast sensor with no power unit needs a look (below)."
Checked and fine: diff is config.yaml + the new section only; 0.18.1 and older sections byte for byte unchanged; heading = version; patch is right (config.yaml unchanged 780c1f6..09a5485, 86 options, translations change description text only, no default in code changed); contents = the one first-parent merge 09a5485 (#198); no claim about the live site; known issues: 33 kept word for word, all cards still open (SAFETY-97 Done, limit unchanged as before), SAFETY-118 dropped, nothing new filed since the 0.18.1 cut. Offline tests (6) pass and predeploy CLEARS on ea77c63; mutation of heading and version both fail test_version_gate.
admin
merged commit c67d0cdb67 into release/1.02026-10-16 22:31:10 +02:00
Merged ea77c63 with head_commit_id pinned, after checks / unit (pull_request) run 1321 (21:49:51 to 22:30:11, success) and infra-pin / fresh run 1322 (success) on that head. Merge commit c67d0cd (parents 09a5485, ea77c63; same tree as ea77c63). ls-remote: release/1.0 c67d0cd, release-0.18.2 ea77c63, master ec2b0c3 (unchanged). No tag, no master PR, no deploy.
Merged ea77c63 with `head_commit_id` pinned, after `checks / unit (pull_request)` run 1321 (21:49:51 to 22:30:11, success) and `infra-pin / fresh` run 1322 (success) on that head. Merge commit c67d0cd (parents 09a5485, ea77c63; same tree as ea77c63). ls-remote: release/1.0 c67d0cd, release-0.18.2 ea77c63, master ec2b0c3 (unchanged). No tag, no master PR, no deploy.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Release 0.18.2 (patch). Changes only goodwe_controller/config.yaml (version 0.18.2) and goodwe_controller/CHANGELOG.md. No code, no option change. Contents:
09a5485SAFETY-118 (#198). Not to be merged by the dev.CHANGELOG section:
0.18.2
A patch bump: one fix to how the 15-minute demand forecast sensor is read, and no option changes.
No option was added, removed or renamed, and no default changed (86 options).
Existing installs need no option change: options that start 0.18.1 also
start 0.18.2. Only a forecast sensor with no power unit needs a look (below).
The change below applies with one inverter or two.
A forecast sensor with no power unit. If your 15-minute demand forecast
sensor has no unit, or a unit that is not power (for example kWh), the add-on
now ignores that forecast. The log warns once, and the Home and Settings pages
say so while it lasts. Pick a sensor that reads in W or kW.
Contents of this release, in merge order since 0.18.1 (
780c1f6):09a5485Known issues
If you are crossing from a version older than 0.10.0
## 0.10.0below can refuse an old config:slew_wabove its limit, and thewithdrawn
price_provideridsengie_dynamic,totalenergies_dynamicandeneco_eddy. Read it before you update. Runtools/predeploy_check.pywith thebare options (
jq '.data.options') first.Model-router verdict: T63 PASS (dev ran on Sonnet, verified by Opus). Head 75f4359; CI run 1319 checks/unit and 1320 infra-pin/fresh green. Next: Opus review.
Review of
75f4359(Opus). Two low text findings, both fixed inea77c63(CHANGELOG only, one commit; PR body section updated to match). Merge waits forchecks / unitonea77c63.checks()rowpeak_forecast; validate.py_entity_notes; SAFETY-118 test check 4). Now: "The log warns once, and the Home and Settings pages say so while it lasts." Row: "the log and the pages say so".Checked and fine: diff is config.yaml + the new section only; 0.18.1 and older sections byte for byte unchanged; heading = version; patch is right (config.yaml unchanged 780c1f6..09a5485, 86 options, translations change description text only, no default in code changed); contents = the one first-parent merge
09a5485(#198); no claim about the live site; known issues: 33 kept word for word, all cards still open (SAFETY-97 Done, limit unchanged as before), SAFETY-118 dropped, nothing new filed since the 0.18.1 cut. Offline tests (6) pass and predeploy CLEARS on ea77c63; mutation of heading and version both fail test_version_gate.Merged
ea77c63withhead_commit_idpinned, afterchecks / unit (pull_request)run 1321 (21:49:51 to 22:30:11, success) andinfra-pin / freshrun 1322 (success) on that head. Merge commitc67d0cd(parents09a5485, ea77c63; same tree asea77c63). ls-remote: release/1.0c67d0cd, release-0.18.2ea77c63, masterec2b0c3(unchanged). No tag, no master PR, no deploy.