Conversation
The planner filled every slot after the last published day-ahead price with an hour-of-week climatology from the priceforecast package, marked it confidence 0.6 and blended it toward the horizon mean. The owner decided that only the published prices count: they always reach 11–35 hours ahead, and the nearest hours carry the value. - Delete go/internal/priceforecast, its refit loop and seed CSV import. - mpc: remove PricePredictor, Service.Price, extendPricesWithForecast and Service.GridTariffOreKwh. The plan ends at the last published price; Horizon stays an upper bound. `mpc: replanned` logs prices_until. - Remove Slot/Action.Confidence, the DP's blend toward the mean, the "(predicted)" reason tag, and the field in diagnostics and the Home Assistant payload. horizonMeans becomes horizonMeanPrice; the export mean only fed the blend. - The Energyplan request still requires `confidence` (deny_unknown_fields), so Core sends 1 until the worker drops it (srcfl/energyplan#41). - The pricefc/state config key stays, as with Home Link and Ask why: nothing reads it, and an older release after a rollback uses it. - Web: no predicted zone, bars, badge or legend; the plan brief says "Published prices · Plan until Sat 24:00"; the chart's default view ends where the prices end; help texts say the plan reaches as far as prices are published. Closes #1439. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MuerPFZFG88kgu8sWVHeq7
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 66b7fe7d74
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| BatteryW float64 `json:"battery_w"` | ||
| GridW float64 `json:"grid_w"` | ||
| SoCPct float64 `json:"soc_pct"` | ||
| PriceOre float64 `json:"price_ore"` |
There was a problem hiding this comment.
Update the MQTT payload documentation after removing confidence
Removing confidence from both schedule payload structs makes the maintained integration guide incorrect: docs/ha-integration.md lines 49–55 still promises confidence in plan_json and describes plan_schedule_json as containing every field. Home Assistant or raw MQTT consumers following that contract will wait for a field that is no longer emitted, so update the documented payload alongside this wire-format change.
AGENTS.md reference: AGENTS.md:L321-L322
Useful? React with 👍 / 👎.
Closes #1439.
Why
Owner decision: the planner uses the prices that are published. The forecast filled every slot after the last day-ahead price with an hour-of-week climatology at confidence 0.6. It fed invented prices into charging decisions and into the terminal value. #1154 shows the tail even used a different VAT. Published prices always reach 11–35 h ahead, and the nearest hours carry the value.
Change
Core
go/internal/priceforecast: the model, the 6 h refit loop and the<config dir>/seed/prices.csvimport. No such file ships.mpc: removedPricePredictor,Service.Price,extendPricesWithForecastandService.GridTariffOreKwh, which only the forecast used.VATPercentstays for demand charges.Horizon(48 h) stays as an upper bound.mpc: replannednow logsprices_until.Confidencefrom slots, plan actions, diagnostics and the Home Assistant plan and price attributes. With it went the DP's blend toward the horizon mean and the "(predicted)" reason tag.horizonMeansbecamehorizonMeanPrice, since the export mean only fed the blend.confidence(deny_unknown_fields→missing field 'confidence'without it), so Core sends a constant 1.pricefc/statestays in the config table with a note inmigrate(), as with Home Link and Ask why. Nothing reads it, and an older release restores its model from it after a rollback.Web
Behaviour afterwards
slots=136 … prices_until=2026-09-27T00:00.Evidence
make test: all 67 Go packages ok.make native-solver-testagainst the bundled Energyplan 0.4.8 worker passes. Withoutconfidence, every native test failed withmissing field 'confidence', which is why Core keeps sending it.npm testwithLANG=C: 639/639. A Swedish locale failsupdate-dialog.test.mjson master too, because of "8 192".Not in scope
PV and load forecasting is a different "forecast" and is unchanged:
forecast,forecasting,planner.forecast_trust, the PV safety k slider andplan-forecast.js.Notes
vat_percent, and true 0 % VAT cannot be set. It stays open.web/plan.js, in its polling code. The hunks here touch only drawing and the chart window, so conflicts should be small.minor, because the plan horizon and the Plan view change visibly. The owner requested the change.🤖 Generated with Claude Code
https://claude.ai/code/session_01MuerPFZFG88kgu8sWVHeq7