Add opentherm_gw option for setpoint override mode (#48465)
* Adding option for setpoint override mode Temporary setpoint override mode can now be set on or off. 'Constant' setpoint override mode will be used when Temporary is set to off * Changes after review comment Added default value for the setpoint override mode
This commit is contained in:
parent
fc8dc038e2
commit
99ab084cdd
5 changed files with 25 additions and 3 deletions
|
@ -32,6 +32,7 @@ from .const import (
|
|||
CONF_FLOOR_TEMP,
|
||||
CONF_READ_PRECISION,
|
||||
CONF_SET_PRECISION,
|
||||
CONF_TEMPORARY_OVRD_MODE,
|
||||
DATA_GATEWAYS,
|
||||
DATA_OPENTHERM_GW,
|
||||
)
|
||||
|
@ -69,6 +70,7 @@ class OpenThermClimate(ClimateEntity):
|
|||
self.floor_temp = options.get(CONF_FLOOR_TEMP, DEFAULT_FLOOR_TEMP)
|
||||
self.temp_read_precision = options.get(CONF_READ_PRECISION)
|
||||
self.temp_set_precision = options.get(CONF_SET_PRECISION)
|
||||
self.temporary_ovrd_mode = options.get(CONF_TEMPORARY_OVRD_MODE, True)
|
||||
self._available = False
|
||||
self._current_operation = None
|
||||
self._current_temperature = None
|
||||
|
@ -88,6 +90,7 @@ class OpenThermClimate(ClimateEntity):
|
|||
self.floor_temp = entry.options[CONF_FLOOR_TEMP]
|
||||
self.temp_read_precision = entry.options[CONF_READ_PRECISION]
|
||||
self.temp_set_precision = entry.options[CONF_SET_PRECISION]
|
||||
self.temporary_ovrd_mode = entry.options[CONF_TEMPORARY_OVRD_MODE]
|
||||
self.async_write_ha_state()
|
||||
|
||||
async def async_added_to_hass(self):
|
||||
|
@ -271,7 +274,7 @@ class OpenThermClimate(ClimateEntity):
|
|||
if temp == self.target_temperature:
|
||||
return
|
||||
self._new_target_temperature = await self._gateway.gateway.set_target_temp(
|
||||
temp
|
||||
temp, self.temporary_ovrd_mode
|
||||
)
|
||||
self.async_write_ha_state()
|
||||
|
||||
|
|
|
@ -19,7 +19,12 @@ from homeassistant.core import callback
|
|||
import homeassistant.helpers.config_validation as cv
|
||||
|
||||
from . import DOMAIN
|
||||
from .const import CONF_FLOOR_TEMP, CONF_READ_PRECISION, CONF_SET_PRECISION
|
||||
from .const import (
|
||||
CONF_FLOOR_TEMP,
|
||||
CONF_READ_PRECISION,
|
||||
CONF_SET_PRECISION,
|
||||
CONF_TEMPORARY_OVRD_MODE,
|
||||
)
|
||||
|
||||
|
||||
class OpenThermGwConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
||||
|
@ -138,6 +143,12 @@ class OpenThermGwOptionsFlow(config_entries.OptionsFlow):
|
|||
[0, PRECISION_TENTHS, PRECISION_HALVES, PRECISION_WHOLE]
|
||||
),
|
||||
),
|
||||
vol.Optional(
|
||||
CONF_TEMPORARY_OVRD_MODE,
|
||||
default=self.config_entry.options.get(
|
||||
CONF_TEMPORARY_OVRD_MODE, True
|
||||
),
|
||||
): bool,
|
||||
vol.Optional(
|
||||
CONF_FLOOR_TEMP,
|
||||
default=self.config_entry.options.get(CONF_FLOOR_TEMP, False),
|
||||
|
|
|
@ -21,6 +21,7 @@ CONF_FLOOR_TEMP = "floor_temperature"
|
|||
CONF_PRECISION = "precision"
|
||||
CONF_READ_PRECISION = "read_precision"
|
||||
CONF_SET_PRECISION = "set_precision"
|
||||
CONF_TEMPORARY_OVRD_MODE = "temporary_override_mode"
|
||||
|
||||
DATA_GATEWAYS = "gateways"
|
||||
DATA_OPENTHERM_GW = "opentherm_gw"
|
||||
|
|
|
@ -23,7 +23,8 @@
|
|||
"data": {
|
||||
"floor_temperature": "Floor Temperature",
|
||||
"read_precision": "Read Precision",
|
||||
"set_precision": "Set Precision"
|
||||
"set_precision": "Set Precision",
|
||||
"temporary_override_mode": "Temporary Setpoint Override Mode"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@ from homeassistant.components.opentherm_gw.const import (
|
|||
CONF_PRECISION,
|
||||
CONF_READ_PRECISION,
|
||||
CONF_SET_PRECISION,
|
||||
CONF_TEMPORARY_OVRD_MODE,
|
||||
DOMAIN,
|
||||
)
|
||||
from homeassistant.const import (
|
||||
|
@ -251,12 +252,14 @@ async def test_options_form(hass):
|
|||
CONF_FLOOR_TEMP: True,
|
||||
CONF_READ_PRECISION: PRECISION_HALVES,
|
||||
CONF_SET_PRECISION: PRECISION_HALVES,
|
||||
CONF_TEMPORARY_OVRD_MODE: True,
|
||||
},
|
||||
)
|
||||
|
||||
assert result["type"] == data_entry_flow.RESULT_TYPE_CREATE_ENTRY
|
||||
assert result["data"][CONF_READ_PRECISION] == PRECISION_HALVES
|
||||
assert result["data"][CONF_SET_PRECISION] == PRECISION_HALVES
|
||||
assert result["data"][CONF_TEMPORARY_OVRD_MODE] is True
|
||||
assert result["data"][CONF_FLOOR_TEMP] is True
|
||||
|
||||
result = await hass.config_entries.options.async_init(
|
||||
|
@ -270,6 +273,7 @@ async def test_options_form(hass):
|
|||
assert result["type"] == data_entry_flow.RESULT_TYPE_CREATE_ENTRY
|
||||
assert result["data"][CONF_READ_PRECISION] == 0.0
|
||||
assert result["data"][CONF_SET_PRECISION] == PRECISION_HALVES
|
||||
assert result["data"][CONF_TEMPORARY_OVRD_MODE] is True
|
||||
assert result["data"][CONF_FLOOR_TEMP] is True
|
||||
|
||||
result = await hass.config_entries.options.async_init(
|
||||
|
@ -282,10 +286,12 @@ async def test_options_form(hass):
|
|||
CONF_FLOOR_TEMP: False,
|
||||
CONF_READ_PRECISION: PRECISION_TENTHS,
|
||||
CONF_SET_PRECISION: PRECISION_HALVES,
|
||||
CONF_TEMPORARY_OVRD_MODE: False,
|
||||
},
|
||||
)
|
||||
|
||||
assert result["type"] == data_entry_flow.RESULT_TYPE_CREATE_ENTRY
|
||||
assert result["data"][CONF_READ_PRECISION] == PRECISION_TENTHS
|
||||
assert result["data"][CONF_SET_PRECISION] == PRECISION_HALVES
|
||||
assert result["data"][CONF_TEMPORARY_OVRD_MODE] is False
|
||||
assert result["data"][CONF_FLOOR_TEMP] is False
|
||||
|
|
Loading…
Add table
Reference in a new issue