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

FlexMeasures / flexmeasures / 29662786777
82%

Build:
DEFAULT BRANCH: main
Ran 18 Jul 2026 10:19PM 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

18 Jul 2026 10:04PM UTC coverage: 82.101% (+0.2%) from 81.867%
29662786777

push

github

web-flow
Support intermediate power constraints on groups of devices (flex-model group field) (#2276)

* feat: support intermediate power constraints on groups of devices

Add a new `group` field to the storage flex-model, letting device entries
reference a power sensor that represents a group of devices (e.g. a hybrid
inverter shared by a battery and PV). The group sensor's own flex-model entry
constrains the group's aggregate power:

- power-capacity: hard constraint (both directions)
- consumption-capacity / production-capacity: soft constraints, enforced via
  breach commitments with default breach prices (10000 <currency>/kW)

The group's scheduled aggregate power is saved to the group sensor. Nested
groups are supported (cycles rejected); groups require multi-device
flex-models and members must share a commodity.

Implemented on top of the existing device-group solver machinery
(ems_constraint_groups from the multi-commodity work, and grouped
FlowCommitments from PR #1934); no changes to the optimizer itself.

Also fixes a latent device-index misalignment in MetaStorageScheduler._prepare,
where per-device lists were built from the full flex-model list (including
stock-only entries) instead of the filtered device models.

Closes #2092

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TAad46Ayg86DHpL6nY54sX

* docs: cite PR #2276 in changelog entry

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TAad46Ayg86DHpL6nY54sX

* feat: support intermediate power constraints on groups of devices

Add a new `group` field to the storage flex-model, letting device entries
reference a power sensor that represents a group of devices (e.g. a hybrid
inverter shared by a battery and PV). The group sensor's own flex-model entry
constrains the group's aggregate power:

- power-capacity: hard constraint (both directions)
- consumption-capacity / production-capacity: ... (continued)

217 of 236 new or added lines in 7 files covered. (91.95%)

1 existing line in 1 file now uncovered.

15302 of 18638 relevant lines covered (82.1%)

0.82 hits per line

Uncovered Changes

Lines Coverage ∆ File
9
91.13
-0.24% flexmeasures/data/models/planning/storage.py
5
98.44
-0.33% flexmeasures/conftest.py
4
94.23
0.74% flexmeasures/data/models/planning/devices.py
1
93.38
0.03% flexmeasures/data/schemas/scheduling/__init__.py

Coverage Regressions

Lines Coverage ∆ File
1
98.44
-0.33% flexmeasures/conftest.py
Jobs
ID Job ID Ran Files Coverage
1 29662786777.1 18 Jul 2026 10:19PM UTC 171
82.1
GitHub Action Run
Source Files on build 29662786777
  • Tree
  • List 171
  • Changed 7
  • Source Changed 7
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #29662786777
  • 0b12bad9 on github
  • Prev Build on main (#29590912749)
  • Next Build on main (#29721054646)
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