• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

FlexMeasures / flexmeasures / 30217343487
83%

Build:
DEFAULT BRANCH: main
Ran 26 Jul 2026 07:53PM UTC
Jobs 1
Files 171
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

26 Jul 2026 07:40PM UTC coverage: 82.922% (+0.04%) from 82.885%
30217343487

push

github

web-flow
Confine device power to operation-mode power bands (#2278)

* feat: confine device power to operation-mode power bands (#2113)

New storage flex-model field "operation-modes" (S2 terminology): a list of
signed power ranges; the device must operate within one of them at every time
step. Adds one binary per device per band per time step to the device
scheduler, so devices that cannot modulate below a minimum power (or are
strictly on/off) no longer receive fractional schedules that their control
layer must round up, overshooting site capacity limits.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* docs: document the operation-modes storage flex-model field

Adds the field to the storage flex-model table (via a new OPERATION_MODES
MetaData entry, which the schema now also uses for its API docs), including
the sign convention, an on/off device example, the MILP note, and a reference
to the S2 standard's FRBC OperationMode concept. Also adds a changelog entry.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Address review: sign-explicit operation-mode ranges

Replace the single signed `power-range` on an operation mode with explicit
`consumption-range` (positive = consumption) and/or `production-range`
(positive = production). A mode may use either or both; combining both (each
starting at 0) forms one band through zero. Document that the S2 power-range
maps to the FM consumption-range (S2 fixes one sign convention; FM leaves it
to the user). Also update the changelog reference to PR #2278.

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

* tests: cover StorageScheduler-level operation-modes wiring

Add integration-level tests that exercise StorageScheduler.compute()
end-to-end with "operation-modes" set in the flex-model, so that a
regression severing the plumbing that reads operation-modes and passes
devi... (continued)

54 of 61 new or added lines in 6 files covered. (88.52%)

170 existing lines in 5 files now uncovered.

15945 of 19229 relevant lines covered (82.92%)

0.83 hits per line

Uncovered Changes

Lines Coverage ∆ File
3
88.33
0.3% flexmeasures/data/schemas/scheduling/storage.py
2
46.79
-0.87% flexmeasures/api/v3_0/__init__.py
2
92.02
0.91% flexmeasures/data/models/planning/linear_optimization.py

Coverage Regressions

Lines Coverage ∆ File
96
91.3
0.02% flexmeasures/data/models/planning/storage.py
30
92.02
0.91% flexmeasures/data/models/planning/linear_optimization.py
28
88.33
0.3% flexmeasures/data/schemas/scheduling/storage.py
9
81.25
0.4% flexmeasures/utils/doc_utils.py
7
46.79
-0.87% flexmeasures/api/v3_0/__init__.py
Jobs
ID Job ID Ran Files Coverage
1 30217343487.1 26 Jul 2026 07:53PM UTC 171
82.92
GitHub Action Run
Source Files on build 30217343487
  • Tree
  • List 171
  • Changed 6
  • Source Changed 6
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #30217343487
  • 853f9af6 on github
  • Prev Build on main (#30108710689)
  • Next Build on main (#30218218857)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc