From 2ca52dac0f8cd82c4cf8e5742649d230670f9279 Mon Sep 17 00:00:00 2001 From: Bouwe Date: Tue, 8 Aug 2023 19:33:54 +0200 Subject: [PATCH 1/5] Add max_dhw_temperature number --- homeassistant/components/plugwise/number.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/plugwise/number.py b/homeassistant/components/plugwise/number.py index 102d94f91b756..5979480d90f3a 100644 --- a/homeassistant/components/plugwise/number.py +++ b/homeassistant/components/plugwise/number.py @@ -48,6 +48,14 @@ class PlugwiseNumberEntityDescription( entity_category=EntityCategory.CONFIG, native_unit_of_measurement=UnitOfTemperature.CELSIUS, ), + PlugwiseNumberEntityDescription( + key="max_dhw_temperature", + translation_key="max_dhw_temperature", + command=lambda api, number, value: api.set_number_setpoint(number, value), + device_class=NumberDeviceClass.TEMPERATURE, + entity_category=EntityCategory.CONFIG, + native_unit_of_measurement=UnitOfTemperature.CELSIUS, + ), ) @@ -89,7 +97,6 @@ def __init__( self.entity_description = description self._attr_unique_id = f"{device_id}-{description.key}" self._attr_mode = NumberMode.BOX - self._attr_native_max_value = self.device[description.key]["upper_bound"] self._attr_native_min_value = self.device[description.key]["lower_bound"] self._attr_native_step = max(self.device[description.key]["resolution"], 0.5) From 667af013073b556f9459ed13f5ee558094ac2e14 Mon Sep 17 00:00:00 2001 From: Bouwe Date: Tue, 8 Aug 2023 19:35:23 +0200 Subject: [PATCH 2/5] Update strings.json --- homeassistant/components/plugwise/strings.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/homeassistant/components/plugwise/strings.json b/homeassistant/components/plugwise/strings.json index e1b5b5c40535d..5210f8a6dc0b2 100644 --- a/homeassistant/components/plugwise/strings.json +++ b/homeassistant/components/plugwise/strings.json @@ -76,6 +76,9 @@ "number": { "maximum_boiler_temperature": { "name": "Maximum boiler temperature setpoint" + }, + "max_dhw_temperature": { + "name": "Domestic hot water setpoint" } }, "select": { From 5ef9aaed8cd05fdae0a813d2e37915daa0721aa4 Mon Sep 17 00:00:00 2001 From: Bouwe Date: Tue, 8 Aug 2023 19:40:19 +0200 Subject: [PATCH 3/5] Add related tests --- tests/components/plugwise/test_number.py | 29 ++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/components/plugwise/test_number.py b/tests/components/plugwise/test_number.py index da31b8038c854..c67ed4dfdfc67 100644 --- a/tests/components/plugwise/test_number.py +++ b/tests/components/plugwise/test_number.py @@ -40,3 +40,32 @@ async def test_anna_max_boiler_temp_change( mock_smile_anna.set_number_setpoint.assert_called_with( "maximum_boiler_temperature", 65.0 ) + + +async def test_adam_number_entities( + hass: HomeAssistant, mock_smile_adam_2: MagicMock, init_integration: MockConfigEntry +) -> None: + """Test creation of a number.""" + state = hass.states.get("number.opentherm_domestic_hot_water_setpoint") + assert state + assert float(state.state) == 60.0 + + +async def test_adam_dhw_setpoint_change( + hass: HomeAssistant, mock_smile_adam_2: MagicMock, init_integration: MockConfigEntry +) -> None: + """Test changing of number entities.""" + await hass.services.async_call( + NUMBER_DOMAIN, + SERVICE_SET_VALUE, + { + ATTR_ENTITY_ID: "number.opentherm_domestic_hot_water_setpoint", + ATTR_VALUE: 55, + }, + blocking=True, + ) + + assert mock_smile_adam_2.set_number_setpoint.call_count == 1 + mock_smile_adam_2.set_number_setpoint.assert_called_with( + "max_dhw_temperature", "056ee145a816487eaa69243c3280f8bf", 55.0 + ) \ No newline at end of file From 72292c5622f56f14c8a1fc93ac208343afb664a6 Mon Sep 17 00:00:00 2001 From: Bouwe Date: Tue, 8 Aug 2023 22:44:36 +0200 Subject: [PATCH 4/5] Correct test --- tests/components/plugwise/test_number.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/components/plugwise/test_number.py b/tests/components/plugwise/test_number.py index c67ed4dfdfc67..9c16081648fa2 100644 --- a/tests/components/plugwise/test_number.py +++ b/tests/components/plugwise/test_number.py @@ -67,5 +67,5 @@ async def test_adam_dhw_setpoint_change( assert mock_smile_adam_2.set_number_setpoint.call_count == 1 mock_smile_adam_2.set_number_setpoint.assert_called_with( - "max_dhw_temperature", "056ee145a816487eaa69243c3280f8bf", 55.0 + "max_dhw_temperature", 55.0 ) \ No newline at end of file From 33a5ffb6994a84f6f85b9fd07a111650da4b5c05 Mon Sep 17 00:00:00 2001 From: Bouwe Date: Wed, 9 Aug 2023 08:06:42 +0200 Subject: [PATCH 5/5] Black-fix --- tests/components/plugwise/test_number.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/components/plugwise/test_number.py b/tests/components/plugwise/test_number.py index 9c16081648fa2..9ca64e104d313 100644 --- a/tests/components/plugwise/test_number.py +++ b/tests/components/plugwise/test_number.py @@ -68,4 +68,4 @@ async def test_adam_dhw_setpoint_change( assert mock_smile_adam_2.set_number_setpoint.call_count == 1 mock_smile_adam_2.set_number_setpoint.assert_called_with( "max_dhw_temperature", 55.0 - ) \ No newline at end of file + )