diff --git a/.changeset/bundle-easee-request-active.md b/.changeset/bundle-easee-request-active.md deleted file mode 100644 index 30ace0814..000000000 --- a/.changeset/bundle-easee-request-active.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -"ftw": patch ---- - -Bundle easee_cloud 1.2.0 (srcfl/device-drivers#103): the driver now -emits `request_active`, so Core can tell "the car has stopped -requesting current" (Easee reason 50 / charging completed) from "the -box paused it". This turns on three existing protections for Easee -sites: the session-completion latch stops the planner allocating -energy to a full car, a manual Start hold auto-releases instead of -offering power all night, and the charging-interrupted notification -stops firing on the car's own renegotiation bursts. The driver's HTTP -transport is also pcall-hardened. diff --git a/.changeset/ev-charge-now-boost.md b/.changeset/ev-charge-now-boost.md deleted file mode 100644 index aa13c3ea7..000000000 --- a/.changeset/ev-charge-now-boost.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -"ftw": minor ---- - -The EV modal's Start button becomes "Charge now → target": the manual -hold charges at the slider's amps and releases itself once the car's -estimated state of charge reaches the schedule's target (80 % when no -schedule is set), falling straight back to planned dispatch — pressing -Start no longer overrides the planner for the rest of the session. The -release target survives restarts with the hold, holds without a target -keep the old pin-until-Stop-or-unplug contract, and -POST /api/loadpoints/{id}/manual_hold accepts the new -`release_at_soc_pct` field. diff --git a/.changeset/ev-plan-visibility.md b/.changeset/ev-plan-visibility.md deleted file mode 100644 index 2c60ce8d9..000000000 --- a/.changeset/ev-plan-visibility.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -"ftw": minor ---- - -The EV modal now says why the charger is or is not charging, and when it -will: the next planned charge window from the active plan ("Charging -planned 02:15–06:30, ~18 kWh"), an explicit "waiting for tomorrow's -prices — PV surplus only until then" state when grid-funded planning is -deferred past the published price horizon, "charger offers X kW but the -car isn't drawing" with the charger's own reason when the vehicle -declines, and a plain warning when nothing (schedule, PV-only, Start) -will ever start a charge. GET /api/loadpoints carries the new fields: -`plan_next_start_ms` / `plan_next_end_ms` / `plan_next_wh` / -`plan_total_wh`, `grid_deferred`, and `commanded_w` / `commanded_known`. diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d6517866..4a08cccf7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,41 @@ # Changelog +## 2.5.0 + +### Minor Changes + +- 4082a64: The EV modal's Start button becomes "Charge now → target": the manual + hold charges at the slider's amps and releases itself once the car's + estimated state of charge reaches the schedule's target (80 % when no + schedule is set), falling straight back to planned dispatch — pressing + Start no longer overrides the planner for the rest of the session. The + release target survives restarts with the hold, holds without a target + keep the old pin-until-Stop-or-unplug contract, and + POST /api/loadpoints/{id}/manual_hold accepts the new + `release_at_soc_pct` field. +- 3d99dd8: The EV modal now says why the charger is or is not charging, and when it + will: the next planned charge window from the active plan ("Charging + planned 02:15–06:30, ~18 kWh"), an explicit "waiting for tomorrow's + prices — PV surplus only until then" state when grid-funded planning is + deferred past the published price horizon, "charger offers X kW but the + car isn't drawing" with the charger's own reason when the vehicle + declines, and a plain warning when nothing (schedule, PV-only, Start) + will ever start a charge. GET /api/loadpoints carries the new fields: + `plan_next_start_ms` / `plan_next_end_ms` / `plan_next_wh` / + `plan_total_wh`, `grid_deferred`, and `commanded_w` / `commanded_known`. + +### Patch Changes + +- 940783e: Bundle easee_cloud 1.2.0 (srcfl/device-drivers#103): the driver now + emits `request_active`, so Core can tell "the car has stopped + requesting current" (Easee reason 50 / charging completed) from "the + box paused it". This turns on three existing protections for Easee + sites: the session-completion latch stops the planner allocating + energy to a full car, a manual Start hold auto-releases instead of + offering power all night, and the charging-interrupted notification + stops firing on the car's own renegotiation bursts. The driver's HTTP + transport is also pcall-hardened. + ## 2.4.0 ### Minor Changes diff --git a/package-lock.json b/package-lock.json index e331e0f0b..0f4553c86 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ftw", - "version": "2.4.0", + "version": "2.5.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ftw", - "version": "2.4.0", + "version": "2.5.0", "devDependencies": { "@changesets/cli": "^3.0.1" } diff --git a/package.json b/package.json index 558c15474..229f0ca24 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ftw", - "version": "2.4.0", + "version": "2.5.0", "private": true, "type": "module", "description": "FTW — local-first home energy coordination. Version metadata only; the runtime is Go and the mathematical planner is Python/CVXPY.",