Skip to content

S2 changelog: one sensor holds the charging efficiency of all operation modes - #288

Merged
Flix6x merged 3 commits into
dev/s2-frbc-completefrom
docs/s2-changelog-efficiency-sensor
Nov 9, 2026
Merged

Flix6x merged 3 commits into
dev/s2-frbc-completefrom
docs/s2-changelog-efficiency-sensor

Conversation

@Flix6x

@Flix6x Flix6x commented Nov 9, 2026

Copy link
Copy Markdown
Member

Follows up on a review comment on #283, which asked to clarify how the efficiencies of different operation modes end up on a single sensor.

What

The changelog entry for charging_efficiency_sensor_id now says:

  • that one efficiency is recorded for all operation modes, before each schedule request, over the window of the schedule;
  • that the modes share one sensor because FlexMeasures takes one efficiency per device;
  • that recording each mode's efficiency apart only helps once FlexMeasures can plan with an efficiency per mode, with a link to FlexMeasures #2832.

Changelog only; no code changes.

🤖 Generated with Claude Code

https://claude.ai/code/session_01CcpawsJs74cSwFLXkz7ZwW

… all operation modes

As asked in the review of #283.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CcpawsJs74cSwFLXkz7ZwW
Signed-off-by: F.N. Claessen <claessen@seita.nl>
@Flix6x Flix6x added the S2 label Nov 9, 2026
@coveralls

coveralls commented Nov 9, 2026 •

Copy link
Copy Markdown

Coverage Report for CI Build 42681587466

Warning

No base build found for commit d7d9f6c on dev/s2-frbc-complete.
Coverage changes can't be calculated without a base build.
If a base build is processing, this comment will update automatically when it completes.

Coverage: 95.943%

Details

  • Patch coverage: No coverable lines changed in this PR.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

Requires a base build to compare against. How to fix this →


Coverage Stats

Coverage Status
Relevant Lines: 3180
Covered Lines: 3051
Line Coverage: 95.94%
Coverage Strength: 4.57 hits per line

💛 - Coveralls

Comment thread CHANGELOG-S2.rst Outdated
* ``FRBCSimple`` takes a ``fill_level_scale`` (default 1). Every fill level and fill rate sent to FlexMeasures is multiplied by it: the state of charge, the flex model, the fill-level band, the fill rate, the usage forecast and the storage efficiency. Translating a schedule into instructions keeps the resource manager's own units, because it matches fill levels against the operation modes, which are stated in those units. A scale of zero or below is refused. ``FRBCSimple`` also takes a ``power_unit`` (default ``W``), which an actuator's power is converted into and posted in [`#236 <https://github.com/FlexMeasures/flexmeasures-client/pull/236>`__, `#244 <https://github.com/FlexMeasures/flexmeasures-client/pull/244>`__, `#245 <https://github.com/FlexMeasures/flexmeasures-client/pull/245>`__, `#252 <https://github.com/FlexMeasures/flexmeasures-client/pull/252>`__]
* ``FRBCSimple`` takes a ``hard_bound_factor`` (default 1.5). It sets how far above the declared fill-level range a schedule's hard upper bound lies. If a schedule starts from a state of charge above that bound, the bound is raised to include it. A factor below 1 is refused: FlexMeasures clips the band to the hard bounds, so a hard upper bound inside the declared range would narrow the band to something the resource manager never asked for [`#245 <https://github.com/FlexMeasures/flexmeasures-client/pull/245>`__]
* ``FRBCSimple`` can take the actuator's charging efficiency into account. Give it the new ``charging_efficiency_sensor_id``: it records there what the operation modes say about converting drawn power into stored energy, and requests a schedule with it as ``charging-efficiency``. For a heat pump, this ratio is its coefficient of performance. Without it, the scheduler assumes power converts into stored energy one to one, and plans to reach fill-level targets at a power the actuator cannot deliver.
* ``FRBCSimple`` can take the actuator's charging efficiency into account. Give it the new ``charging_efficiency_sensor_id``: before each schedule request, it records there one efficiency for all operation modes, over the window of the schedule, from what they say about converting drawn power into stored energy, and requests the schedule with it as ``charging-efficiency``. For a heat pump, this ratio is its coefficient of performance. Without it, the scheduler assumes power converts into stored energy one to one, and plans to reach fill-level targets at a power the actuator cannot deliver.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This became illegible

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Split into short sentences in 8299241: what the efficiency is first, then what the handler does with it. In the sub-bullet, the shared sensor now leads, and the fill-level case follows the choice between modes.

@Flix6x Flix6x added this to the 0.10.0 milestone Nov 9, 2026
Flix6x and others added 2 commits November 9, 2026 19:32
…nces

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CcpawsJs74cSwFLXkz7ZwW
Signed-off-by: F.N. Claessen <claessen@seita.nl>
…ensor

Signed-off-by: F.N. Claessen <claessen@seita.nl>
@Flix6x
Flix6x merged commit d38f63c into dev/s2-frbc-complete Nov 9, 2026
19 checks passed
@Flix6x
Flix6x deleted the docs/s2-changelog-efficiency-sensor branch November 9, 2026 19:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants