Repository navigation
feat(hot-water): ASHW cylinder support validated on an EDL200UK-630RF - #130
Merged
Merged
Conversation
A live ASHW cylinder (EDL200UK-630RF) reports its water target, 45 °C, in ActiveSetPointTemperature, which made capabilities_for call it room climate and keep every room-heater feature. Clients then gave it a thermostat with a 7-30 °C range, room temperature, open window, EcoStart and setback. Only a room temperature now makes a hot-water appliance room climate. Without one, the room-heater features default to off unless its status reports them (the live cylinder sends null for all of them), and so do the room setpoint and setback writes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From a live ASHW cylinder (EDL200UK-630RF):
- ApplianceStatus declares the cylinder fields the overview carries:
Capacity, HeatingUp, IsGreenEnergyActive, HygieneFrequency,
HygieneTemperature, HolidayNumOfDays and the always-null rest.
- get_heat_pump_hot_water_schedule returns HeatPumpHwcSchedule. The reply
has no TimerMode and one {DayOfWeek, StartTime, Mode} per period, so the
TimerModeSettings parse failed on real hardware.
- set_hot_water_holiday engages or clears Holiday. Verified: status 8192 ->
8200 with HolidayNumOfDays set and heating stopped, then back to 8192.
- set_heat_pump_hot_water_schedule documents that the endpoint answers
403 to every body tried.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Mark the heat-pump cylinder endpoints with what was validated live on an EDL200UK-630RF (holiday, schedule read) and what was not (schedule write answers 403; the temperature, boost and hygiene writes are untested). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Same change as #128, reconstructed on top of
main— authored by @Mista-P, whose three commits are carried over unchanged via cherry-pick.Why a new PR
gh pr update-branchon #128 mergedmain(which now contains #127's squashed_coerce_codevalidator) into a branch that already carried its own copy of #127's commit. The result defined_coerce_codetwice indimplex_controller/models.py, andmypycorrectly refused it:That is a merge artefact of landing a stacked PR by squash, not a defect in the work — but it needs a commit on the branch to remove the duplicate, and the branch lives in a fork. So the three cylinder commits are cherry-picked onto current
mainhere, dropping only the duplicated #127 commit thatmainalready has.Verified on this branch:
pytest— 207 passed. The single failure istest_repo_scripts.py::test_check_md_alerts_passes, pre-existing on macOS (bash 3.2 has nomapfile); it passes on CI's bash 5.ruff check,ruff format --check,mypy— clean._coerce_codeis defined once.The change itself
Unchanged from #128 — see that PR for the detail, which is validated against a live EDL200UK-630RF ASHW cylinder and compared with the official app at the same moment:
fix(capabilities): a hot-water cylinder is not room climate — only aRoomTemperaturemakes a hot-water appliance room climate, so a cylinder no longer gets a 7–30 °C thermostat.feat(hot-water): the cylinder status fields the overview already carries;get_heat_pump_hot_water_schedulereturning aHeatPumpHwcSchedule;set_hot_water_holiday(...); and the documentation of what was validated and what still was not.Still unverified after this lands: the temperature, boost and hygiene writes, and
UpdateHeatPumpHwcSchedulePeriods, which answered 403 to every body shape tried.Stacking
#127 is already merged, so this needs no predecessor. The Home Assistant side is #258, which is merged and does not depend on these model additions (it tolerates them with
extra="allow").🤖 Generated with Claude Code