mirror of
https://github.com/home-assistant/core.git
synced 2025-07-22 12:47:08 +00:00
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
@ -32,6 +32,7 @@ from .const import (
|
|||||||
CONF_FLOOR_TEMP,
|
CONF_FLOOR_TEMP,
|
||||||
CONF_READ_PRECISION,
|
CONF_READ_PRECISION,
|
||||||
CONF_SET_PRECISION,
|
CONF_SET_PRECISION,
|
||||||
|
CONF_TEMPORARY_OVRD_MODE,
|
||||||
DATA_GATEWAYS,
|
DATA_GATEWAYS,
|
||||||
DATA_OPENTHERM_GW,
|
DATA_OPENTHERM_GW,
|
||||||
)
|
)
|
||||||
@ -69,6 +70,7 @@ class OpenThermClimate(ClimateEntity):
|
|||||||
self.floor_temp = options.get(CONF_FLOOR_TEMP, DEFAULT_FLOOR_TEMP)
|
self.floor_temp = options.get(CONF_FLOOR_TEMP, DEFAULT_FLOOR_TEMP)
|
||||||
self.temp_read_precision = options.get(CONF_READ_PRECISION)
|
self.temp_read_precision = options.get(CONF_READ_PRECISION)
|
||||||
self.temp_set_precision = options.get(CONF_SET_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._available = False
|
||||||
self._current_operation = None
|
self._current_operation = None
|
||||||
self._current_temperature = None
|
self._current_temperature = None
|
||||||
@ -88,6 +90,7 @@ class OpenThermClimate(ClimateEntity):
|
|||||||
self.floor_temp = entry.options[CONF_FLOOR_TEMP]
|
self.floor_temp = entry.options[CONF_FLOOR_TEMP]
|
||||||
self.temp_read_precision = entry.options[CONF_READ_PRECISION]
|
self.temp_read_precision = entry.options[CONF_READ_PRECISION]
|
||||||
self.temp_set_precision = entry.options[CONF_SET_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()
|
self.async_write_ha_state()
|
||||||
|
|
||||||
async def async_added_to_hass(self):
|
async def async_added_to_hass(self):
|
||||||
@ -271,7 +274,7 @@ class OpenThermClimate(ClimateEntity):
|
|||||||
if temp == self.target_temperature:
|
if temp == self.target_temperature:
|
||||||
return
|
return
|
||||||
self._new_target_temperature = await self._gateway.gateway.set_target_temp(
|
self._new_target_temperature = await self._gateway.gateway.set_target_temp(
|
||||||
temp
|
temp, self.temporary_ovrd_mode
|
||||||
)
|
)
|
||||||
self.async_write_ha_state()
|
self.async_write_ha_state()
|
||||||
|
|
||||||
|
@ -19,7 +19,12 @@ from homeassistant.core import callback
|
|||||||
import homeassistant.helpers.config_validation as cv
|
import homeassistant.helpers.config_validation as cv
|
||||||
|
|
||||||
from . import DOMAIN
|
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):
|
class OpenThermGwConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
||||||
@ -138,6 +143,12 @@ class OpenThermGwOptionsFlow(config_entries.OptionsFlow):
|
|||||||
[0, PRECISION_TENTHS, PRECISION_HALVES, PRECISION_WHOLE]
|
[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(
|
vol.Optional(
|
||||||
CONF_FLOOR_TEMP,
|
CONF_FLOOR_TEMP,
|
||||||
default=self.config_entry.options.get(CONF_FLOOR_TEMP, False),
|
default=self.config_entry.options.get(CONF_FLOOR_TEMP, False),
|
||||||
|
@ -21,6 +21,7 @@ CONF_FLOOR_TEMP = "floor_temperature"
|
|||||||
CONF_PRECISION = "precision"
|
CONF_PRECISION = "precision"
|
||||||
CONF_READ_PRECISION = "read_precision"
|
CONF_READ_PRECISION = "read_precision"
|
||||||
CONF_SET_PRECISION = "set_precision"
|
CONF_SET_PRECISION = "set_precision"
|
||||||
|
CONF_TEMPORARY_OVRD_MODE = "temporary_override_mode"
|
||||||
|
|
||||||
DATA_GATEWAYS = "gateways"
|
DATA_GATEWAYS = "gateways"
|
||||||
DATA_OPENTHERM_GW = "opentherm_gw"
|
DATA_OPENTHERM_GW = "opentherm_gw"
|
||||||
|
@ -23,7 +23,8 @@
|
|||||||
"data": {
|
"data": {
|
||||||
"floor_temperature": "Floor Temperature",
|
"floor_temperature": "Floor Temperature",
|
||||||
"read_precision": "Read Precision",
|
"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_PRECISION,
|
||||||
CONF_READ_PRECISION,
|
CONF_READ_PRECISION,
|
||||||
CONF_SET_PRECISION,
|
CONF_SET_PRECISION,
|
||||||
|
CONF_TEMPORARY_OVRD_MODE,
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
)
|
)
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
@ -251,12 +252,14 @@ async def test_options_form(hass):
|
|||||||
CONF_FLOOR_TEMP: True,
|
CONF_FLOOR_TEMP: True,
|
||||||
CONF_READ_PRECISION: PRECISION_HALVES,
|
CONF_READ_PRECISION: PRECISION_HALVES,
|
||||||
CONF_SET_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["type"] == data_entry_flow.RESULT_TYPE_CREATE_ENTRY
|
||||||
assert result["data"][CONF_READ_PRECISION] == PRECISION_HALVES
|
assert result["data"][CONF_READ_PRECISION] == PRECISION_HALVES
|
||||||
assert result["data"][CONF_SET_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
|
assert result["data"][CONF_FLOOR_TEMP] is True
|
||||||
|
|
||||||
result = await hass.config_entries.options.async_init(
|
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["type"] == data_entry_flow.RESULT_TYPE_CREATE_ENTRY
|
||||||
assert result["data"][CONF_READ_PRECISION] == 0.0
|
assert result["data"][CONF_READ_PRECISION] == 0.0
|
||||||
assert result["data"][CONF_SET_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
|
assert result["data"][CONF_FLOOR_TEMP] is True
|
||||||
|
|
||||||
result = await hass.config_entries.options.async_init(
|
result = await hass.config_entries.options.async_init(
|
||||||
@ -282,10 +286,12 @@ async def test_options_form(hass):
|
|||||||
CONF_FLOOR_TEMP: False,
|
CONF_FLOOR_TEMP: False,
|
||||||
CONF_READ_PRECISION: PRECISION_TENTHS,
|
CONF_READ_PRECISION: PRECISION_TENTHS,
|
||||||
CONF_SET_PRECISION: PRECISION_HALVES,
|
CONF_SET_PRECISION: PRECISION_HALVES,
|
||||||
|
CONF_TEMPORARY_OVRD_MODE: False,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
assert result["type"] == data_entry_flow.RESULT_TYPE_CREATE_ENTRY
|
assert result["type"] == data_entry_flow.RESULT_TYPE_CREATE_ENTRY
|
||||||
assert result["data"][CONF_READ_PRECISION] == PRECISION_TENTHS
|
assert result["data"][CONF_READ_PRECISION] == PRECISION_TENTHS
|
||||||
assert result["data"][CONF_SET_PRECISION] == PRECISION_HALVES
|
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
|
assert result["data"][CONF_FLOOR_TEMP] is False
|
||||||
|
Loading…
x
Reference in New Issue
Block a user