Skip to content

Feat: add configurable EV stop strategy and stabilize peak shaving#141

Closed
joma999 wants to merge 1 commit into
gitcodebob:mainfrom
joma999:feat/ev-stop-peak-shave
Closed

Feat: add configurable EV stop strategy and stabilize peak shaving#141
joma999 wants to merge 1 commit into
gitcodebob:mainfrom
joma999:feat/ev-stop-peak-shave

Conversation

@joma999

@joma999 joma999 commented Jun 7, 2026

Copy link
Copy Markdown
Contributor

This PR adds a configurable EV Stop Trigger strategy and improves peak-shaving stability.

Users can now choose whether an active EV stop trigger should force Full stop or keep the battery in Standby / peak shave. Manual Full stop from the main strategy selector still takes priority, so the battery can always be explicitly shut down.

The dashboard now reflects the actually applied strategy more accurately, including correct Standby / peak shave display instead of misleading internal Self-consumption variants.

Peak shaving now latches the import/export direction and limit when a real grid-limit violation occurs. This prevents import peak shaving from accidentally flipping into export behavior during the release/hold timeout after a load step change.

Changes

  • Added EV Stop Trigger strategy selector.
  • Updated Node-RED strategy selection priority.
  • Fixed dashboard EV status and executing-flow display.
  • Fixed Standby / peak shave display while it uses Self-consumption internally.
  • Latched peak-shave direction and power limit during active peak shaving.
  • Added low import peak-shave limit dashboard warning below 2500 W.
  • Bumped version to 4.11.0.
  • Added 4.11.0 release notes.

Validation

  • Ran pwsh -NoProfile -File ./contribute/check.ps1.
  • Result: ALL CHECKS PASSED.
  • Verified JSON validity, node counts, version consistency, all-flows sync, and release notes section.

** Screenshots**

New option to select Standby / peak shave during EV stop tigger:
Scherm­afbeelding 2026-06-07 om 21 22 27

Now showing correct flow when selecting Standy / peak shave:
Scherm­afbeelding 2026-06-07 om 21 26 51

Example previous flipping behaviour during peak shaving when low limits were set:
Scherm­afbeelding 2026-06-07 om 21 20 53

Additional warning when setting very low peak shaving limits:
Scherm­afbeelding 2026-06-07 om 21 27 30

- add EV Stop Trigger strategy selector for Full stop vs Standby / peak shave
- keep manual Full stop prioritized over EV-trigger standby mode
- update dashboard EV status and executing-flow display to show applied strategy
- make Standby / peak shave report its user-facing display name
- latch peak-shave direction and limit during release/hold phase to prevent import/export flip-flopping
- add dashboard warning for low import peak-shave limits below 2500 W
- bump release version to 4.11.0 and add release notes
@nickles-lee

Copy link
Copy Markdown

I think it'd be good to also allow for:

  • Charge PV mode... useful for people who are charging really slowly at 3.3kW (or a farmer with a mountain of panels???)
  • Dynamic 2 w/ the "Regular" substrategy set to Charge-PV.

Considering the in-flight work for supporting per-phase peak-shaving/protection + most good EV chargers also having some form of phase protection, we might not want to block:

  • Charging from the grid during the cheap hours, accepting that we might have limited headroom to do it within our 3x25A power budget
  • Discharging to the grid during the expensive hours... If your car is actively charging during the two most expensive hours of the day, you probably don't mind using your batteries to defray the cost.

@joma999

joma999 commented Jun 24, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for your comments. I do have a few considerations, though.

First, when charging slowly—typically with a 10A charger—you may not want to enable this feature at all. After all, EV Stop is optional.

Second, when charging at full speed, which is typically 11 kW, I do not expect there to be much excess energy left for “Charge PV”, unless you have a very large PV installation.

Regarding charging the battery during low-price periods while also charging an EV: the 3×25A connection is indeed a limiting factor. I do not think you would want the charger to start load balancing simply because the battery is charging. In any case, charging your car during the most expensive hours of the day is generally not a good idea. I would expect HBC users to be proactive about that. ;-)

That said, I do think it would be useful to expand EV Stop with strategies beyond a full stop. My initial thought would be to introduce a standby mode. This could at least prevent dynamic load balancing from being triggered when, for example, you switch on the oven on the same phase.

For the rest, the strategy should make practical sense. Otherwise, leaving EV Stop disabled should remain an option.

gitcodebob added a commit that referenced this pull request Jul 22, 2026
) (#157)

Integrates PR #141 (joma999) onto current main (v4.12.0), re-targeted to
v4.13.0. The PR's branch was based on an old main (v4.10.1) and main has
since re-exported the Node-RED flows with regenerated node IDs, so the PR
could not be merged textually. Changes were re-applied semantically:

- EV Stop Trigger strategy: new selectable `Full stop` vs `Standby / peak
  shave` behaviour; manual Full stop still takes precedence. New
  `input_select.house_battery_strategy_ev_stop_trigger_strategy` helper and
  a new `EV Stop Trigger Strategy` api-current-state node spliced into the
  start-flow strategy-selection chain (against main's regenerated IDs).
- Peak shaving: latch import/export direction and power limit at the moment
  of the real grid-limit violation to prevent import/export flip-flopping
  during the release timeout.
- Dashboard: reflect the applied strategy, show Standby / peak shave, add a
  low import peak-shave limit (<2500 W) warning, expose Trigger strategy.
- Re-applied the same functional edits to all-flows-in-one-file.json and
  bumped all version labels to v4.13.0. contribute/check.ps1 passes.

Co-authored-by: joma999 <johan._@live.nl>
@gitcodebob

Copy link
Copy Markdown
Owner

Thank you for this contribution, @joma999! 🙏

This shipped in v4.13.0. Because main had since re-exported all Node-RED flows (regenerating every node ID), your branch could no longer be merged textually — so the changes were re-applied semantically onto current main while preserving your original intent:

  • Configurable EV Stop Trigger strategy (Full stop vs Standby / peak shave), with manual Full stop keeping precedence
  • Peak-shave direction/limit latching to stop import↔export flip-flopping during the release timeout
  • Standby display fix + low import-limit dashboard warning

Your authorship is preserved via Co-authored-by on the merged commit (7eea667), and you're credited in the release notes. Closing this as integrated — not rejected. Thanks again! 🔋

@gitcodebob

Copy link
Copy Markdown
Owner

Superseded by 7eea667 (v4.13.0).

@gitcodebob gitcodebob closed this Jul 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants