Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
5118414
Implement water_heater platform for DHW function
bouwew Jun 7, 2026
2b71396
Ruffed
bouwew Jun 7, 2026
c651221
Add test_water_heater.py
bouwew Jun 7, 2026
8aa3b08
Improve water_heater and supported_features detection
bouwew Jun 7, 2026
a645409
Correct mocked_adam to fixture with water_heater
bouwew Jun 7, 2026
234966a
Fixes
bouwew Jun 7, 2026
720fd1c
Save new test_water_heater snapshot
bouwew Jun 7, 2026
0348d81
Add anna_v4_dhw fixture
bouwew Jun 7, 2026
d6f1bd4
Add 2nd water_heater testcase
bouwew Jun 7, 2026
b10e662
Save updates: snapshot, ruffed
bouwew Jun 7, 2026
dae6a72
Update related test asserts
bouwew Jun 7, 2026
58cceac
Add water_heater async_set_temperature()
bouwew Jun 7, 2026
d9609f3
Add test case
bouwew Jun 7, 2026
845b742
Add missing import
bouwew Jun 7, 2026
3a9e4b9
Ruffed
bouwew Jun 7, 2026
224c542
Number: remove max_dhw-temperature, handled by water_heater
bouwew Jun 7, 2026
4c27cfa
Revert assert update after remove double number entity
bouwew Jun 7, 2026
e98d76a
Save updated number snapshot
bouwew Jun 7, 2026
7c4e06c
hass -> _hass
bouwew Jun 7, 2026
78f3bc1
Correct current_operation modes, as suggested
bouwew Jun 7, 2026
00640e6
Re-ruffed
bouwew Jun 7, 2026
f44d460
Improve, as suggested
bouwew Jun 7, 2026
733b0ba
Change modes, add set_operation_mode(), and more
bouwew Jun 7, 2026
9dc664a
Correct W0237
bouwew Jun 7, 2026
d79c175
Save snapshot updates
bouwew Jun 7, 2026
da88bfb
Tighten water_heater criterium
bouwew Jun 13, 2026
324cafd
Adapt async_set_operation_mode() to backend update
bouwew Jun 13, 2026
767a38f
Call set_dwh_mode() directly
bouwew Jun 14, 2026
b7d91b4
Link to updated library
bouwew Jun 14, 2026
46121fb
Refresh test-fixtures
bouwew Jun 14, 2026
759e61a
Remove dhw_cm_switch, function moved to water_heater platform
bouwew Jun 14, 2026
c3ad501
Save updated select snapshot
bouwew Jun 14, 2026
0ca4150
Cleaning up
bouwew Jun 14, 2026
349c964
Simplify, remove logging, add pragma-no cover
bouwew Jun 14, 2026
662dd9a
Add set_operation_mode test
bouwew Jun 14, 2026
647d9ea
Revert LOGGER removal
bouwew Jun 14, 2026
4e3f2fa
Update current_operation property
bouwew Jun 14, 2026
7d9ab52
Collect operation_list from device
bouwew Jun 14, 2026
979f9b4
Fix test
bouwew Jun 14, 2026
12d5283
Fix water_heater typing
bouwew Jun 14, 2026
1d7ad3a
Save updated test snapshot
bouwew Jun 14, 2026
78110fc
Update strings.json, translations
bouwew Jun 14, 2026
c4a1d08
Prettier fixes
bouwew Jun 14, 2026
9f0d923
Rework water_heater strings
bouwew Jun 14, 2026
1fc1338
Pass length of operation_list to determine set-method
bouwew Jun 14, 2026
3fc8e95
Fix set_dhw_mode() args
bouwew Jun 16, 2026
7ac9ed9
Fix test assert
bouwew Jun 16, 2026
ba68dc1
Add pragma-no-cover
bouwew Jun 16, 2026
5f59666
Replace strings by constants
bouwew Jun 16, 2026
929bbd9
Select: add extra guarding for changing to location
bouwew Jun 18, 2026
15a0b5c
Improve variable name, extend docstring
bouwew Jun 18, 2026
ca9b251
Fix device_id in test assert
bouwew Jun 19, 2026
e78ba42
SELECT_ZONE_PROFILE also requires the location id
bouwew Jun 19, 2026
00483fd
Add missing eco dhw_mode
bouwew Jun 19, 2026
604db85
Correct guarding as suggested
bouwew Jun 19, 2026
c7b7eb6
Remove strings.json
bouwew Jun 20, 2026
0053a02
Link to plugwise v1.12.0, set to v0.65.0 release-version
bouwew Jun 20, 2026
266bfa0
Update CHANGELOG
bouwew Jun 20, 2026
66a7907
Line up docstring with the last guarding update
bouwew Jun 20, 2026
294c10e
Correct current_temperature determination
bouwew Jun 20, 2026
865697a
Update water_heater string formatting
bouwew Jun 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@

Versions from 0.40 and up

## Ongoing
## v0.65.0

- Replace DHW_comfort_mode switch by a select or a water_heater, bump plugwise to [v1.12.0](https://github.com/plugwise/python-plugwise/releases/tag/v1.12.0) via PR [#1085](https://github.com/plugwise/plugwise-beta/pull/1085)
- Downstream Core updates via PR [#1084](https://github.com/plugwise/plugwise-beta/pull/1084)

## v0.64.4
Expand Down
2 changes: 2 additions & 0 deletions custom_components/plugwise/const.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@

# Select constants
AVAILABLE_SCHEDULES: Final = "available_schedules"
DHW_MODE: Final = "dhw_mode"
DHW_MODES: Final = "dhw_modes"
GATEWAY_MODES: Final = "gateway_modes"
REGULATION_MODES: Final = "regulation_modes"
Expand Down Expand Up @@ -165,6 +166,7 @@
Platform.SELECT,
Platform.SENSOR,
Platform.SWITCH,
Platform.WATER_HEATER,
]
SERVICE_DELETE: Final = "delete_notification"
SEVERITIES: Final[list[str]] = ["other", "info", "message", "warning", "error"]
Expand Down
4 changes: 2 additions & 2 deletions custom_components/plugwise/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"integration_type": "hub",
"iot_class": "local_polling",
"loggers": ["plugwise"],
"requirements": ["plugwise==1.11.4"],
"version": "0.64.4",
"requirements": ["plugwise==1.12.0"],
"version": "0.65.0",
"zeroconf": ["_plugwise._tcp.local."]
}
8 changes: 0 additions & 8 deletions custom_components/plugwise/number.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
LOGGER,
LOWER_BOUND,
MAX_BOILER_TEMP,
MAX_DHW_TEMP,
RESOLUTION,
TEMPERATURE_OFFSET,
UPPER_BOUND,
Expand Down Expand Up @@ -47,13 +46,6 @@ class PlugwiseNumberEntityDescription(NumberEntityDescription):
entity_category=EntityCategory.CONFIG,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
),
PlugwiseNumberEntityDescription(
key=MAX_DHW_TEMP,
translation_key=MAX_DHW_TEMP,
device_class=NumberDeviceClass.TEMPERATURE,
entity_category=EntityCategory.CONFIG,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
),
PlugwiseNumberEntityDescription(
key=TEMPERATURE_OFFSET,
translation_key=TEMPERATURE_OFFSET,
Expand Down
15 changes: 10 additions & 5 deletions custom_components/plugwise/select.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,9 +130,12 @@ def __init__(
self._attr_unique_id = f"{device_id}-{entity_description.key}"
self.entity_description = entity_description

self._location = device_id
if (location := self.device.get(LOCATION)) is not None:
self._location = location
self._device_or_location = device_id
if (
self.entity_description.key in (SELECT_SCHEDULE, SELECT_ZONE_PROFILE)
and (location := self.device.get(LOCATION)) is not None
):
self._device_or_location = location

@property
def current_option(self) -> str | None:
Expand All @@ -148,10 +151,12 @@ def options(self) -> list[str]:
async def async_select_option(self, option: str) -> None:
"""Change to the selected entity option.

Location ID and STATE_ON are required for the thermostat-schedule select.
Appliance ID (= device_id) is required for the dhw_mode select
Locattion ID is required for the thermostat-schedule and zone_profile selects.
STATE_ON is required for the thermostat-schedule select.
"""
await self.coordinator.api.set_select(
self.entity_description.key, self._location, option, STATE_ON
self.entity_description.key, self._device_or_location, option, STATE_ON
)
LOGGER.debug(
"Set %s to %s was successful",
Expand Down
Loading
Loading