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

FlexMeasures / flexmeasures-ha-integration / 29407909445
85%
main: 85%

Build:
Build:
LAST BUILD BRANCH: v0.4.0
DEFAULT BRANCH: main
Ran 15 Jul 2026 10:23AM UTC
Jobs 1
Files 11
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

15 Jul 2026 10:21AM UTC coverage: 85.213% (+1.2%) from 84.029%
29407909445

push

github

web-flow
v0.4.0: several FlexMeasures servers, plus modernization for Home Assistant 2026.7 (#30)

* fix: stop logging the FlexMeasures client (and thus the password) on websocket connect

WebSocketHandler logged the whole FlexMeasuresClient at WARNING level on
every incoming S2 websocket connection. The client is a dataclass, so its
repr contains the configured password and username in plain text — they
ended up in the Home Assistant log, and in any log bundle shared for
support. The line was a leftover debug statement.

Adds a regression test that opens a websocket connection and asserts the
credentials do not appear in the captured log.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: F.N. Claessen <felix@seita.nl>

* feat: support several FlexMeasures servers, and modernize for Home Assistant 2026.7

Runtime state moves from a global hass.data[DOMAIN] onto the config
entry (entry.runtime_data), so the integration can be added more than
once. Each entry gets its own client, S2 datastore, schedule state,
device and schedule sensor. Services are now registered once for the
integration and resolve the entry per call, through an optional entry_id
field; Resource Managers reach a specific entry at
/api/websocket_custom/<entry_id>. With a single entry configured,
nothing changes for the user.

This also fixes a reload bug: services were registered per entry, and
the registration list was mutated in place, so after every options change
(which reloads the entry) the handlers bound to the *previous* entry
state were re-registered.

Config entry migration v3 -> v4 keeps existing installs intact: it
re-scopes the schedule sensor's unique id to the entry (so the entity
and its history survive) and moves the shared S2 datastore to the
entry's own store.

Further changes:
- config flow: drop the hardcoded defaults, which pointed a fresh
  install at one pilot's FlexMeasures server (https://seita.energy) and
  at the asset and sensor ids on it. The S... (continued)

461 of 541 relevant lines covered (85.21%)

0.85 hits per line

Coverage Regressions

Lines Coverage ∆ File
24
79.55
3.01% flexmeasures_hacs/services.py
20
81.74
-0.08% flexmeasures_hacs/websockets.py
9
90.57
2.95% flexmeasures_hacs/__init__.py
7
77.08
4.58% flexmeasures_hacs/config_flow.py
Jobs
ID Job ID Ran Files Coverage
1 29407909445.1 15 Jul 2026 10:23AM UTC 11
85.21
GitHub Action Run
Source Files on build 29407909445
  • Tree
  • List 11
  • Changed 6
  • Source Changed 0
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #29407909445
  • 6a4e420f on github
  • Prev Build on v0.3.9 (#29280991111)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc