Skip to content

Add ST CUBE WIFI WM 100L W 2400W (1983) and FLAT/S4 IOTHUB (1763) support - #144

Open
Joonel wants to merge 1 commit into
gduteil:mainfrom
Joonel:upstream-st-cube-support
Open

Joonel wants to merge 1 commit into
gduteil:mainfrom
Joonel:upstream-st-cube-support

Conversation

@Joonel

@Joonel Joonel commented Jul 6, 2026

Copy link
Copy Markdown

Summary

  • Model definitions for the ST CUBE WIFI WM 100L W 2400W water heater (modelId 1983) and its FLAT/S4 IOTHUB DEFAULT hub (modelId 1763)
  • Distinct names for the ST CUBE's five temperature setpoints (manual, eco+, percentage-based, eco, auxiliary) instead of five colliding target_temperature entities — model-gated, other models unchanged; EN/FR translations included
  • Caps 105906/105907 max raised 65 → 70 °C to match what the hardware actually accepts (device reports setpoints up to 70 °C)
  • New optional v40WaterAvailable model flag to skip cap 268 per model: the ST CUBE always reports 0 for it, so the entity was pure noise. Defaults to True, other models unaffected.

Testing

Running in production on real hardware (ST CUBE + FLAT/S4 hub) since February 2026.

🤖 Generated with Claude Code

https://claude.ai/code/session_01635y2ipTY7KdjuMDvqbDtH

…port

Adds model definitions for the ST CUBE WIFI WM 100L W 2400W water heater
(modelId 1983) and its FLAT/S4 IOTHUB DEFAULT hub (modelId 1763).

The ST CUBE exposes five distinct temperature setpoints; naming them all
target_temperature produced colliding, unusable entities. They now get
distinct names on this model (manual, eco+, percentage-based, eco,
auxiliary), with English and French translations. Caps 105906/105907 max
raised from 65 to 70 C to match what the device accepts (verified on
real hardware, which reports setpoints up to 70 C).

Cap 268 (v40_water_available) can now be opted out per model via a
v40WaterAvailable model flag: the ST CUBE always reports 0 for it, so
the entity was pure noise on this model. Other models are unaffected
(flag defaults to True).

Running in production on real hardware since 2026-02.

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

Dasert75 commented Sep 4, 2026

Copy link
Copy Markdown

Same device, different modelId: my unit reports 1984, not 1983.
Commercial name is identical (ST CUBE WIFI WM 100L W 2400W), and the hub
comes up as 1763 exactly as in this PR — so it looks like a variant of the
same product, similar to KELUD already being listed under 1381 and 1382.

I ran this branch with a one-line widening of the model gate:

# model.py
elif modelId in (1983, 1984):

# capability.py — same change in all four places
if modelId in (1983, 1984):

Results on my unit:

  • device is now recognised as a water heater instead of Unknown product (1984)
  • Heating Mode select works: Manual / Eco+ / Prog
  • the colliding target_temperature entities are properly split — I get
    distinct Eco+ and hot-water setpoints instead of several identically
    named ones
  • cap 268 is correctly skipped: it reported Unknown here before, so the
    v40WaterAvailable flag does the right thing

Would you consider adding 1984 to the same branch? Happy to open a separate
PR against your branch if you prefer.

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.

2 participants