From 9709a9eed0b4ddf6913fe0bc436cb7db2cb02d22 Mon Sep 17 00:00:00 2001 From: Jean-Marc Collin Date: Sat, 22 Jul 2023 10:47:10 +0200 Subject: [PATCH] Add AC mode configFlow --- .../versatile_thermostat/config_flow.py | 95 +++++++++++-------- .../versatile_thermostat/const.py | 39 +++++++- .../versatile_thermostat/strings.json | 32 +++++-- .../versatile_thermostat/translations/en.json | 32 +++++-- .../versatile_thermostat/translations/fr.json | 32 +++++-- .../versatile_thermostat/translations/it.json | 32 +++++-- 6 files changed, 191 insertions(+), 71 deletions(-) diff --git a/custom_components/versatile_thermostat/config_flow.py b/custom_components/versatile_thermostat/config_flow.py index 995c9cf..5a8a8bc 100644 --- a/custom_components/versatile_thermostat/config_flow.py +++ b/custom_components/versatile_thermostat/config_flow.py @@ -61,7 +61,9 @@ from .const import ( CONF_CYCLE_MIN, CONF_PRESET_POWER, CONF_PRESETS, + CONF_PRESETS_WITH_AC, CONF_PRESETS_AWAY, + CONF_PRESETS_AWAY_WITH_AC, CONF_PRESETS_SELECTIONABLE, CONF_PROP_FUNCTION, CONF_TPI_COEF_EXT, @@ -83,6 +85,7 @@ from .const import ( CONF_USE_MOTION_FEATURE, CONF_USE_PRESENCE_FEATURE, CONF_USE_POWER_FEATURE, + CONF_USE_AC_MODE, CONF_THERMOSTAT_TYPES, UnknownEntity, WindowOpenDetectionMethod, @@ -132,35 +135,6 @@ def add_suggested_values_to_schema( return vol.Schema(schema) -# def is_temperature_sensor(sensor: RegistryEntry): -# """Check if a registryEntry is a temperature sensor or assimilable to a temperature sensor""" -# if not sensor.entity_id.startswith( -# INPUT_NUMBER_DOMAIN -# ) and not sensor.entity_id.startswith(SENSOR_DOMAIN): -# return False -# return ( -# sensor.device_class == TEMPERATURE -# or sensor.original_device_class == TEMPERATURE -# or sensor.unit_of_measurement in TEMPERATURE_UNITS -# ) -# -# -# def is_power_sensor(sensor: RegistryEntry): -# """Check if a registryEntry is a power sensor or assimilable to a temperature sensor""" -# if not sensor.entity_id.startswith( -# INPUT_NUMBER_DOMAIN -# ) and not sensor.entity_id.startswith(SENSOR_DOMAIN): -# return False -# return ( -# sensor.unit_of_measurement -# in [ -# UnitOfPower.KILO_WATT, -# UnitOfPower.WATT, -# UnitOfPower.BTU_PER_HOUR, -# ] -# ) - - class VersatileThermostatBaseConfigFlow(FlowHandler): """The base Config flow class. Used to put some code in commons.""" @@ -257,6 +231,7 @@ class VersatileThermostatBaseConfigFlow(FlowHandler): vol.Required(CONF_CLIMATE): selector.EntitySelector( selector.EntitySelectorConfig(domain=CLIMATE_DOMAIN), ), + vol.Optional(CONF_USE_AC_MODE, default=False): cv.boolean, } ) @@ -274,6 +249,15 @@ class VersatileThermostatBaseConfigFlow(FlowHandler): } ) + self.STEP_PRESETS_WITH_AC_DATA_SCHEMA = ( # pylint: disable=invalid-name + vol.Schema( # pylint: disable=invalid-name + { + vol.Optional(v, default=0.0): vol.Coerce(float) + for (k, v) in CONF_PRESETS_WITH_AC.items() + } + ) + ) + self.STEP_WINDOW_DATA_SCHEMA = vol.Schema( # pylint: disable=invalid-name { vol.Optional(CONF_WINDOW_SENSOR): selector.EntitySelector( @@ -340,6 +324,27 @@ class VersatileThermostatBaseConfigFlow(FlowHandler): } ) + self.STEP_PRESENCE_WITH_AC_DATA_SCHEMA = ( # pylint: disable=invalid-name + vol.Schema( + { + vol.Optional(CONF_PRESENCE_SENSOR): selector.EntitySelector( + selector.EntitySelectorConfig( + domain=[ + PERSON_DOMAIN, + BINARY_SENSOR_DOMAIN, + INPUT_BOOLEAN_DOMAIN, + ] + ), + ), + } + ).extend( + { + vol.Optional(v, default=17): vol.Coerce(float) + for (k, v) in CONF_PRESETS_AWAY_WITH_AC.items() + } + ) + ) + self.STEP_ADVANCED_DATA_SCHEMA = vol.Schema( # pylint: disable=invalid-name { vol.Required( @@ -489,9 +494,12 @@ class VersatileThermostatBaseConfigFlow(FlowHandler): elif self._infos[CONF_USE_PRESENCE_FEATURE]: next_step = self.async_step_presence - return await self.generic_step( - "presets", self.STEP_PRESETS_DATA_SCHEMA, user_input, next_step - ) + if self._infos[CONF_USE_AC_MODE]: + schema = self.STEP_PRESETS_WITH_AC_DATA_SCHEMA + else: + schema = self.STEP_PRESETS_DATA_SCHEMA + + return await self.generic_step("presets", schema, user_input, next_step) async def async_step_window(self, user_input: dict | None = None) -> FlowResult: """Handle the window sensor flow steps""" @@ -542,9 +550,14 @@ class VersatileThermostatBaseConfigFlow(FlowHandler): """Handle the presence management flow steps""" _LOGGER.debug("Into ConfigFlow.async_step_presence user_input=%s", user_input) + if self._infos[CONF_USE_AC_MODE]: + schema = self.STEP_PRESENCE_WITH_AC_DATA_SCHEMA + else: + schema = self.STEP_PRESENCE_DATA_SCHEMA + return await self.generic_step( "presence", - self.STEP_PRESENCE_DATA_SCHEMA, + schema, user_input, self.async_step_advanced, ) @@ -676,9 +689,12 @@ class VersatileThermostatOptionsFlowHandler( elif self._infos[CONF_USE_PRESENCE_FEATURE]: next_step = self.async_step_presence - return await self.generic_step( - "presets", self.STEP_PRESETS_DATA_SCHEMA, user_input, next_step - ) + if self._infos[CONF_USE_AC_MODE]: + schema = self.STEP_PRESETS_WITH_AC_DATA_SCHEMA + else: + schema = self.STEP_PRESETS_DATA_SCHEMA + + return await self.generic_step("presets", schema, user_input, next_step) async def async_step_window(self, user_input: dict | None = None) -> FlowResult: """Handle the window sensor flow steps""" @@ -736,9 +752,14 @@ class VersatileThermostatOptionsFlowHandler( "Into OptionsFlowHandler.async_step_presence user_input=%s", user_input ) + if self._infos[CONF_USE_AC_MODE]: + schema = self.STEP_PRESENCE_WITH_AC_DATA_SCHEMA + else: + schema = self.STEP_PRESENCE_DATA_SCHEMA + return await self.generic_step( "presence", - self.STEP_PRESENCE_DATA_SCHEMA, + schema, user_input, self.async_step_advanced, ) diff --git a/custom_components/versatile_thermostat/const.py b/custom_components/versatile_thermostat/const.py index af00fe8..527c086 100644 --- a/custom_components/versatile_thermostat/const.py +++ b/custom_components/versatile_thermostat/const.py @@ -11,6 +11,10 @@ from homeassistant.components.climate import ( ClimateEntityFeature, ) +PRESET_ECO_AC = PRESET_ECO + "_ac" +PRESET_COMFORT_AC = PRESET_COMFORT + "_ac" +PRESET_BOOST_AC = PRESET_BOOST + "_ac" + from homeassistant.exceptions import HomeAssistantError from .prop_algorithm import ( @@ -64,6 +68,7 @@ CONF_USE_WINDOW_FEATURE = "use_window_feature" CONF_USE_MOTION_FEATURE = "use_motion_feature" CONF_USE_PRESENCE_FEATURE = "use_presence_feature" CONF_USE_POWER_FEATURE = "use_power_feature" +CONF_USE_AC_MODE = "use_ac_mode" CONF_WINDOW_AUTO_OPEN_THRESHOLD = "window_auto_open_threshold" CONF_WINDOW_AUTO_CLOSE_THRESHOLD = "window_auto_close_threshold" CONF_WINDOW_AUTO_MAX_DURATION = "window_auto_max_duration" @@ -77,14 +82,39 @@ CONF_PRESETS = { ) } +CONF_PRESETS_WITH_AC = { + p: f"{p}_temp" + for p in ( + PRESET_ECO, + PRESET_COMFORT, + PRESET_BOOST, + PRESET_ECO_AC, + PRESET_COMFORT_AC, + PRESET_BOOST_AC, + ) +} + + PRESET_AWAY_SUFFIX = "_away" CONF_PRESETS_AWAY = { p: f"{p}_temp" for p in ( PRESET_ECO + PRESET_AWAY_SUFFIX, - PRESET_BOOST + PRESET_AWAY_SUFFIX, PRESET_COMFORT + PRESET_AWAY_SUFFIX, + PRESET_BOOST + PRESET_AWAY_SUFFIX, + ) +} + +CONF_PRESETS_AWAY_WITH_AC = { + p: f"{p}_temp" + for p in ( + PRESET_ECO + PRESET_AWAY_SUFFIX, + PRESET_COMFORT + PRESET_AWAY_SUFFIX, + PRESET_BOOST + PRESET_AWAY_SUFFIX, + PRESET_ECO_AC + PRESET_AWAY_SUFFIX, + PRESET_COMFORT_AC + PRESET_AWAY_SUFFIX, + PRESET_BOOST_AC + PRESET_AWAY_SUFFIX, ) } @@ -92,6 +122,8 @@ CONF_PRESETS_SELECTIONABLE = [PRESET_ECO, PRESET_COMFORT, PRESET_BOOST] CONF_PRESETS_VALUES = list(CONF_PRESETS.values()) CONF_PRESETS_AWAY_VALUES = list(CONF_PRESETS_AWAY.values()) +CONF_PRESETS_WITH_AC_VALUES = list(CONF_PRESETS_WITH_AC.values()) +CONF_PRESETS_AWAY_WITH_AC_VALUES = list(CONF_PRESETS_AWAY_WITH_AC.values()) ALL_CONF = ( [ @@ -130,9 +162,12 @@ ALL_CONF = ( CONF_USE_MOTION_FEATURE, CONF_USE_PRESENCE_FEATURE, CONF_USE_POWER_FEATURE, + CONF_USE_AC_MODE, ] + CONF_PRESETS_VALUES - + CONF_PRESETS_AWAY_VALUES, + + CONF_PRESETS_AWAY_VALUES + + CONF_PRESETS_WITH_AC_VALUES + + CONF_PRESETS_AWAY_WITH_AC_VALUES, ) CONF_FUNCTIONS = [ diff --git a/custom_components/versatile_thermostat/strings.json b/custom_components/versatile_thermostat/strings.json index d34ca5a..4a2a93a 100644 --- a/custom_components/versatile_thermostat/strings.json +++ b/custom_components/versatile_thermostat/strings.json @@ -30,7 +30,8 @@ "heater_entity3_id": "3rd Heater switch", "heater_entity4_id": "4th Heater switch", "proportional_function": "Algorithm", - "climate_entity_id": "Underlying thermostat" + "climate_entity_id": "Underlying thermostat", + "ac_mode": "AC mode" }, "data_description": { "heater_entity_id": "Mandatory heater entity id", @@ -38,7 +39,8 @@ "heater_entity3_id": "Optional 3rd Heater entity id. Leave empty if not used", "heater_entity4_id": "Optional 4th Heater entity id. Leave empty if not used", "proportional_function": "Algorithm to use (TPI is the only one for now)", - "climate_entity_id": "Underlying climate entity id" + "climate_entity_id": "Underlying climate entity id", + "ac_mode": "Use the Air Conditioning (AC) mode" } }, "tpi": { @@ -55,7 +57,10 @@ "data": { "eco_temp": "Temperature in Eco preset", "comfort_temp": "Temperature in Comfort preset", - "boost_temp": "Temperature in Boost preset" + "boost_temp": "Temperature in Boost preset", + "eco_ac_temp": "Temperature in Eco preset for AC mode", + "comfort_ac_temp": "Temperature in Comfort preset for AC mode", + "boost_ac_temp": "Temperature in Boost preset for AC mode" } }, "window": { @@ -102,7 +107,10 @@ "presence_sensor_entity_id": "Presence sensor entity id (true is present)", "eco_away_temp": "Temperature in Eco preset when no presence", "comfort_away_temp": "Temperature in Comfort preset when no presence", - "boost_away_temp": "Temperature in Boost preset when no presence" + "boost_away_temp": "Temperature in Boost preset when no presence", + "eco_ac_away_temp": "Temperature in Eco preset when no presence in AC mode", + "comfort_ac_away_temp": "Temperature in Comfort preset when no presence in AC mode", + "boost_ac_away_temp": "Temperature in Boost preset when no presence in AC mode" } }, "advanced": { @@ -161,7 +169,8 @@ "heater_entity3_id": "3rd Heater switch", "heater_entity4_id": "4th Heater switch", "proportional_function": "Algorithm", - "climate_entity_id": "Underlying thermostat" + "climate_entity_id": "Underlying thermostat", + "ac_mode": "AC mode" }, "data_description": { "heater_entity_id": "Mandatory heater entity id", @@ -169,7 +178,8 @@ "heater_entity3_id": "Optional 3rd Heater entity id. Leave empty if not used", "heater_entity4_id": "Optional 4th Heater entity id. Leave empty if not used", "proportional_function": "Algorithm to use (TPI is the only one for now)", - "climate_entity_id": "Underlying climate entity id" + "climate_entity_id": "Underlying climate entity id", + "ac_mode": "Use the Air Conditioning (AC) mode" } }, "tpi": { @@ -186,7 +196,10 @@ "data": { "eco_temp": "Temperature in Eco preset", "comfort_temp": "Temperature in Comfort preset", - "boost_temp": "Temperature in Boost preset" + "boost_temp": "Temperature in Boost preset", + "eco_ac_temp": "Temperature in Eco preset for AC mode", + "comfort_ac_temp": "Temperature in Comfort preset for AC mode", + "boost_ac_temp": "Temperature in Boost preset for AC mode" } }, "window": { @@ -233,7 +246,10 @@ "presence_sensor_entity_id": "Presence sensor entity id (true is present)", "eco_away_temp": "Temperature in Eco preset when no presence", "comfort_away_temp": "Temperature in Comfort preset when no presence", - "boost_away_temp": "Temperature in Boost preset when no presence" + "boost_away_temp": "Temperature in Boost preset when no presence", + "eco_ac_away_temp": "Temperature in Eco preset when no presence in AC mode", + "comfort_ac_away_temp": "Temperature in Comfort preset when no presence in AC mode", + "boost_ac_away_temp": "Temperature in Boost preset when no presence in AC mode" } }, "advanced": { diff --git a/custom_components/versatile_thermostat/translations/en.json b/custom_components/versatile_thermostat/translations/en.json index d34ca5a..4a2a93a 100644 --- a/custom_components/versatile_thermostat/translations/en.json +++ b/custom_components/versatile_thermostat/translations/en.json @@ -30,7 +30,8 @@ "heater_entity3_id": "3rd Heater switch", "heater_entity4_id": "4th Heater switch", "proportional_function": "Algorithm", - "climate_entity_id": "Underlying thermostat" + "climate_entity_id": "Underlying thermostat", + "ac_mode": "AC mode" }, "data_description": { "heater_entity_id": "Mandatory heater entity id", @@ -38,7 +39,8 @@ "heater_entity3_id": "Optional 3rd Heater entity id. Leave empty if not used", "heater_entity4_id": "Optional 4th Heater entity id. Leave empty if not used", "proportional_function": "Algorithm to use (TPI is the only one for now)", - "climate_entity_id": "Underlying climate entity id" + "climate_entity_id": "Underlying climate entity id", + "ac_mode": "Use the Air Conditioning (AC) mode" } }, "tpi": { @@ -55,7 +57,10 @@ "data": { "eco_temp": "Temperature in Eco preset", "comfort_temp": "Temperature in Comfort preset", - "boost_temp": "Temperature in Boost preset" + "boost_temp": "Temperature in Boost preset", + "eco_ac_temp": "Temperature in Eco preset for AC mode", + "comfort_ac_temp": "Temperature in Comfort preset for AC mode", + "boost_ac_temp": "Temperature in Boost preset for AC mode" } }, "window": { @@ -102,7 +107,10 @@ "presence_sensor_entity_id": "Presence sensor entity id (true is present)", "eco_away_temp": "Temperature in Eco preset when no presence", "comfort_away_temp": "Temperature in Comfort preset when no presence", - "boost_away_temp": "Temperature in Boost preset when no presence" + "boost_away_temp": "Temperature in Boost preset when no presence", + "eco_ac_away_temp": "Temperature in Eco preset when no presence in AC mode", + "comfort_ac_away_temp": "Temperature in Comfort preset when no presence in AC mode", + "boost_ac_away_temp": "Temperature in Boost preset when no presence in AC mode" } }, "advanced": { @@ -161,7 +169,8 @@ "heater_entity3_id": "3rd Heater switch", "heater_entity4_id": "4th Heater switch", "proportional_function": "Algorithm", - "climate_entity_id": "Underlying thermostat" + "climate_entity_id": "Underlying thermostat", + "ac_mode": "AC mode" }, "data_description": { "heater_entity_id": "Mandatory heater entity id", @@ -169,7 +178,8 @@ "heater_entity3_id": "Optional 3rd Heater entity id. Leave empty if not used", "heater_entity4_id": "Optional 4th Heater entity id. Leave empty if not used", "proportional_function": "Algorithm to use (TPI is the only one for now)", - "climate_entity_id": "Underlying climate entity id" + "climate_entity_id": "Underlying climate entity id", + "ac_mode": "Use the Air Conditioning (AC) mode" } }, "tpi": { @@ -186,7 +196,10 @@ "data": { "eco_temp": "Temperature in Eco preset", "comfort_temp": "Temperature in Comfort preset", - "boost_temp": "Temperature in Boost preset" + "boost_temp": "Temperature in Boost preset", + "eco_ac_temp": "Temperature in Eco preset for AC mode", + "comfort_ac_temp": "Temperature in Comfort preset for AC mode", + "boost_ac_temp": "Temperature in Boost preset for AC mode" } }, "window": { @@ -233,7 +246,10 @@ "presence_sensor_entity_id": "Presence sensor entity id (true is present)", "eco_away_temp": "Temperature in Eco preset when no presence", "comfort_away_temp": "Temperature in Comfort preset when no presence", - "boost_away_temp": "Temperature in Boost preset when no presence" + "boost_away_temp": "Temperature in Boost preset when no presence", + "eco_ac_away_temp": "Temperature in Eco preset when no presence in AC mode", + "comfort_ac_away_temp": "Temperature in Comfort preset when no presence in AC mode", + "boost_ac_away_temp": "Temperature in Boost preset when no presence in AC mode" } }, "advanced": { diff --git a/custom_components/versatile_thermostat/translations/fr.json b/custom_components/versatile_thermostat/translations/fr.json index a758a0c..6c98727 100644 --- a/custom_components/versatile_thermostat/translations/fr.json +++ b/custom_components/versatile_thermostat/translations/fr.json @@ -29,7 +29,8 @@ "heater_entity3_id": "3ème radiateur", "heater_entity4_id": "4ème radiateur", "proportional_function": "Algorithme", - "climate_entity_id": "Thermostat sous-jacent" + "climate_entity_id": "Thermostat sous-jacent", + "ac_mode": "AC mode ?" }, "data_description": { "heater_entity_id": "Entity id du 1er radiateur obligatoire", @@ -37,7 +38,8 @@ "heater_entity3_id": "Optionnel entity id du 3ème radiateur", "heater_entity4_id": "Optionnel entity id du 4ème radiateur", "proportional_function": "Algorithme à utiliser (Seul TPI est disponible pour l'instant)", - "climate_entity_id": "Entity id du thermostat sous-jacent" + "climate_entity_id": "Entity id du thermostat sous-jacent", + "ac_mode": "Utilisation du mode Air Conditionné (AC)" } }, "tpi": { @@ -54,7 +56,10 @@ "data": { "eco_temp": "Température en preset Eco", "comfort_temp": "Température en preset Comfort", - "boost_temp": "Température en preset Boost" + "boost_temp": "Température en preset Boost", + "eco_ac_temp": "Température en preset Eco en mode AC", + "comfort_ac_temp": "Température en preset Comfort en mode AC", + "boost_ac_temp": "Température en preset Boost en mode AC" } }, "window": { @@ -101,7 +106,10 @@ "presence_sensor_entity_id": "Capteur de présence entity id (true si quelqu'un est présent)", "eco_away_temp": "Température en preset Eco en cas d'absence", "comfort_away_temp": "Température en preset Comfort en cas d'absence", - "boost_away_temp": "Température en preset Boost en cas d'absence" + "boost_away_temp": "Température en preset Boost en cas d'absence", + "eco_ac_away_temp": "Température en preset Eco en cas d'absence en mode AC", + "comfort_ac_away_temp": "Température en preset Comfort en cas d'absence en mode AC", + "boost_ac_away_temp": "Température en preset Boost en cas d'absence en mode AC" } }, "advanced": { @@ -161,7 +169,8 @@ "heater_entity3_id": "3ème radiateur", "heater_entity4_id": "4ème radiateur", "proportional_function": "Algorithme", - "climate_entity_id": "Thermostat sous-jacent" + "climate_entity_id": "Thermostat sous-jacent", + "ac_mode": "AC mode ?" }, "data_description": { "heater_entity_id": "Entity id du 1er radiateur obligatoire", @@ -169,7 +178,8 @@ "heater_entity3_id": "Optionnel entity id du 3ème radiateur", "heater_entity4_id": "Optionnel entity id du 4ème radiateur", "proportional_function": "Algorithme à utiliser (Seul TPI est disponible pour l'instant)", - "climate_entity_id": "Entity id du thermostat sous-jacent" + "climate_entity_id": "Entity id du thermostat sous-jacent", + "ac_mode": "Utilisation du mode Air Conditionné (AC)" } }, "tpi": { @@ -186,7 +196,10 @@ "data": { "eco_temp": "Température en preset Eco", "comfort_temp": "Température en preset Comfort", - "boost_temp": "Température en preset Boost" + "boost_temp": "Température en preset Boost", + "eco_ac_temp": "Température en preset Eco en mode AC", + "comfort_ac_temp": "Température en preset Comfort en mode AC", + "boost_ac_temp": "Température en preset Boost en mode AC" } }, "window": { @@ -233,7 +246,10 @@ "presence_sensor_entity_id": "Capteur de présence entity id (true si quelqu'un est présent)", "eco_away_temp": "Température en preset Eco en cas d'absence", "comfort_away_temp": "Température en preset Comfort en cas d'absence", - "boost_away_temp": "Température en preset Boost en cas d'absence" + "boost_away_temp": "Température en preset Boost en cas d'absence", + "eco_ac_away_temp": "Température en preset Eco en cas d'absence en mode AC", + "comfort_ac_away_temp": "Température en preset Comfort en cas d'absence en mode AC", + "boost_ac_away_temp": "Température en preset Boost en cas d'absence en mode AC" } }, "advanced": { diff --git a/custom_components/versatile_thermostat/translations/it.json b/custom_components/versatile_thermostat/translations/it.json index 0513685..09bd69e 100644 --- a/custom_components/versatile_thermostat/translations/it.json +++ b/custom_components/versatile_thermostat/translations/it.json @@ -30,7 +30,8 @@ "heater_entity3_id": "Terzo riscaldatore", "heater_entity4_id": "Quarto riscaldatore", "proportional_function": "Algoritmo", - "climate_entity_id": "Termostato sottostante" + "climate_entity_id": "Termostato sottostante", + "ac_mode": "AC mode ?" }, "data_description": { "heater_entity_id": "Entity id obbligatoria del primo riscaldatore", @@ -38,7 +39,8 @@ "heater_entity3_id": "Entity id del terzo riscaldatore facoltativo. Lasciare vuoto se non utilizzato", "heater_entity4_id": "Entity id del quarto riscaldatore facoltativo. Lasciare vuoto se non utilizzato", "proportional_function": "Algoritmo da utilizzare (il TPI per adesso è l'unico)", - "climate_entity_id": "Entity id del termostato sottostante" + "climate_entity_id": "Entity id del termostato sottostante", + "ac_mode": "Utilizzare la modalità AC (Air Conditioned) ?" } }, "tpi": { @@ -55,7 +57,10 @@ "data": { "eco_temp": "Temperatura nel preset Eco", "comfort_temp": "Temperatura nel preset Comfort", - "boost_temp": "Temperatura nel preset Boost" + "boost_temp": "Temperatura nel preset Boost", + "eco_ac_temp": "Temperatura nel preset Eco (AC mode)", + "comfort_ac_temp": "Temperatura nel preset Comfort (AC mode)", + "boost_ac_temp": "Temperatura nel preset Boost (AC mode)" } }, "window": { @@ -102,7 +107,10 @@ "presence_sensor_entity_id": "Entity id sensore presenza (true se è presente qualcuno)", "eco_away_temp": "Temperatura al preset Eco in caso d'assenza", "comfort_away_temp": "Temperatura al preset Comfort in caso d'assenza", - "boost_away_temp": "Temperatura al preset Boost in caso d'assenza" + "boost_away_temp": "Temperatura al preset Boost in caso d'assenza", + "eco_ac_away_temp": "Temperatura al preset Eco in caso d'assenza (AC mode)", + "comfort_ac_away_temp": "Temperatura al preset Comfort in caso d'assenza (AC mode)", + "boost_ac_away_temp": "Temperatura al preset Boost in caso d'assenza (AC mode)" } }, "advanced": { @@ -161,7 +169,8 @@ "heater_entity3_id": "Terzo interruttore riscaldatore", "heater_entity4_id": "Quarto interruttore riscaldatore", "proportional_function": "Algoritmo", - "climate_entity_id": "Termostato sottostante" + "climate_entity_id": "Termostato sottostante", + "ac_mode": "AC mode ?" }, "data_description": { "heater_entity_id": "Entity id obbligatoria del primo riscaldatore", @@ -169,7 +178,8 @@ "heater_entity3_id": "Entity id del terzo riscaldatore facoltativo. Lasciare vuoto se non utilizzato", "heater_entity4_id": "Entity id del quarto riscaldatore facoltativo. Lasciare vuoto se non utilizzato", "proportional_function": "Algoritmo da utilizzare (il TPI per adesso è l'unico)", - "climate_entity_id": "Entity id del termostato sottostante" + "climate_entity_id": "Entity id del termostato sottostante", + "ac_mode": "Utilizzare la modalità AC (Air Conditioned) ?" } }, "tpi": { @@ -186,7 +196,10 @@ "data": { "eco_temp": "Temperatura nel preset Eco", "comfort_temp": "Temperatura nel preset Comfort", - "boost_temp": "Temperatura nel preset Boost" + "boost_temp": "Temperatura nel preset Boost", + "eco_ac_temp": "Temperatura nel preset Eco (AC mode)", + "comfort_ac_temp": "Temperatura nel preset Comfort (AC mode)", + "boost_ac_temp": "Temperatura nel preset Boost (AC mode)" } }, "window": { @@ -233,7 +246,10 @@ "presence_sensor_entity_id": "Entity id sensore presenza (true se è presente qualcuno)", "eco_away_temp": "Temperatura al preset Eco in caso d'assenza", "comfort_away_temp": "Temperatura al preset Comfort in caso d'assenza", - "boost_away_temp": "Temperatura al preset Boost in caso d'assenza" + "boost_away_temp": "Temperatura al preset Boost in caso d'assenza", + "eco_ac_away_temp": "Temperatura al preset Eco in caso d'assenza (AC mode)", + "comfort_ac_away_temp": "Temperatura al preset Comfort in caso d'assenza (AC mode)", + "boost_ac_away_temp": "Temperatura al preset Boost in caso d'assenza (AC mode)" } }, "advanced": {