diff --git a/custom_components/cozytouch/capability.py b/custom_components/cozytouch/capability.py index 16c1f4e..510bd97 100644 --- a/custom_components/cozytouch/capability.py +++ b/custom_components/cozytouch/capability.py @@ -127,7 +127,10 @@ def get_capability_infos(modelInfos: dict, capabilityId: int, capabilityValue: s capability["icon"] = "mdi:water-pump" elif capabilityId == 40: - capability["name"] = "target_temperature" + if modelId == 1983: + capability["name"] = "target_temperature_manual" + else: + capability["name"] = "target_temperature" capability["type"] = "temperature_adjustment_number" capability["category"] = "sensor" capability["lowestValueCapabilityId"] = 160 @@ -485,7 +488,10 @@ def get_capability_infos(modelInfos: dict, capabilityId: int, capabilityValue: s capability["capabilityDuplicate"] = 222 elif capabilityId == 231: - capability["name"] = "target_temperature" + if modelId == 1983: + capability["name"] = "target_temperature_eco_plus" + else: + capability["name"] = "target_temperature" capability["type"] = "temperature_adjustment_number" capability["category"] = "sensor" capability["lowestValueCapabilityId"] = 105301 @@ -564,10 +570,13 @@ def get_capability_infos(modelInfos: dict, capabilityId: int, capabilityValue: s capability["category"] = "sensor" elif capabilityId == 268: - capability["name"] = "v40_water_available" - capability["type"] = "volume" - capability["category"] = "sensor" - capability["icon"] = "mdi:water-thermometer" + if modelInfos.get("v40WaterAvailable", True): + capability["name"] = "v40_water_available" + capability["type"] = "volume" + capability["category"] = "sensor" + capability["icon"] = "mdi:water-thermometer" + else: + return {} elif capabilityId == 269: capability["name"] = "water_consumption" @@ -742,22 +751,28 @@ def get_capability_infos(modelInfos: dict, capabilityId: int, capabilityValue: s capability["step"] = 5 elif capabilityId == 105906: - capability["name"] = "Target 105906" + if modelId == 1983: + capability["name"] = "target_temperature_percentage" + else: + capability["name"] = "target_temperature" capability["type"] = "temperature_percent_adjustment_number" capability["category"] = "sensor" capability["temperatureMin"] = 15.0 - capability["temperatureMax"] = 65.0 + capability["temperatureMax"] = 70.0 elif capabilityId == 105907: - capability["name"] = "Target 105907" + capability["name"] = "target_temperature_eco" capability["type"] = "temperature_percent_adjustment_number" capability["category"] = "sensor" capability["temperatureMin"] = 15.0 - capability["temperatureMax"] = 65.0 + capability["temperatureMax"] = 70.0 # For test elif capabilityId == 312: - capability["name"] = "Temp_" + str(capabilityId) + if modelId == 1983: + capability["name"] = "target_temperature_auxiliary" + else: + capability["name"] = "Temp_" + str(capabilityId) capability["type"] = "temperature_adjustment_number" capability["category"] = "sensor" diff --git a/custom_components/cozytouch/model.py b/custom_components/cozytouch/model.py index 862b9bd..7f9c8ae 100644 --- a/custom_components/cozytouch/model.py +++ b/custom_components/cozytouch/model.py @@ -430,6 +430,13 @@ def get_model_infos(modelId: int, zoneName: str | None = None): 4: HEATING_MODE_PROG, } + elif modelId == 1763: + modelInfos["name"] = "FLAT/S4 IOTHUB DEFAULT" + modelInfos["type"] = CozytouchDeviceType.HUB + modelInfos["HVACModes"] = { + 0: HVACMode.OFF, + } + elif modelId == 1966: modelInfos["name"] = "Thermor Malicio 3 120L" modelInfos["type"] = CozytouchDeviceType.WATER_HEATER @@ -443,7 +450,22 @@ def get_model_infos(modelId: int, zoneName: str | None = None): 3: HEATING_MODE_ECO_PLUS, 4: HEATING_MODE_PROG, } - + + elif modelId == 1983: + modelInfos["name"] = "ST CUBE WIFI WM 100L W 2400W" + modelInfos["type"] = CozytouchDeviceType.WATER_HEATER + modelInfos["v40WaterAvailable"] = False + modelInfos["HVACModes"] = { + 0: HVACMode.OFF, + 4: HVACMode.HEAT, + } + + modelInfos["HeatingModes"] = { + 0: HEATING_MODE_MANUAL, + 3: HEATING_MODE_ECO_PLUS, + 4: HEATING_MODE_PROG, + } + elif modelId == 1957: modelInfos["name"] = "LINEO CONNECTE MP 100L 2250W" modelInfos["type"] = CozytouchDeviceType.WATER_HEATER diff --git a/custom_components/cozytouch/strings.json b/custom_components/cozytouch/strings.json index be2eca3..8f774f5 100644 --- a/custom_components/cozytouch/strings.json +++ b/custom_components/cozytouch/strings.json @@ -146,9 +146,14 @@ "override_total_time_z2": { "name": "Override Total Time Z2" }, "target_cool_temperature": { "name": "Target Cool Temperature" }, "target_temperature": { "name": "Target Temperature" }, - "target_temperature_dhw": { "name": "Target Temperature DHW" }, + "target_temperature_auxiliary": { "name": "Auxiliary Target Temperature" }, + "target_temperature_dhw": { "name": "Hot Water Target Temperature" }, + "target_temperature_eco": { "name": "Target Temperature Eco" }, + "target_temperature_eco_plus": { "name": "Eco+ Target Temperature" }, "target_temperature_eco_z1": { "name": "Target Temperature Eco Z1" }, "target_temperature_eco_z2": { "name": "Target Temperature Eco Z2" }, + "target_temperature_manual": { "name": "Manual Target Temperature" }, + "target_temperature_percentage": { "name": "Percentage-based Target Temperature" }, "temperature_adjustment_max": { "name": "Maximum Temperature" } }, "select": { @@ -250,9 +255,13 @@ "tank_middle_temperature": { "name": "Tank Middle Temperature" }, "tank_top_temperature": { "name": "Tank Top Temperature" }, "target_temperature": { "name": "Target Temperature" }, + "target_temperature_auxiliary": { "name": "Auxiliary Temperature Target" }, "target_temperature_dhw": { "name": "Target Temperature DHW" }, + "target_temperature_eco_plus": { "name": "Target Temperature Eco+" }, "target_temperature_eco_z1":{ "name": "Target Temperature Eco Z1" }, "target_temperature_eco_z2":{ "name": "Target Temperature Eco Z2" }, + "target_temperature_manual": { "name": "Target Temperature Manual" }, + "target_temperature_percentage": { "name": "Target Temperature (%)" }, "temperature_adjustment_min": { "name": "Minimum Temperature" }, "thermostat_temperature_z1":{ "name": "Thermostat Temperature Z1" }, "thermostat_temperature_z2":{ "name": "Thermostat Temperature Z2" }, diff --git a/custom_components/cozytouch/translations/en.json b/custom_components/cozytouch/translations/en.json index be2eca3..8f774f5 100644 --- a/custom_components/cozytouch/translations/en.json +++ b/custom_components/cozytouch/translations/en.json @@ -146,9 +146,14 @@ "override_total_time_z2": { "name": "Override Total Time Z2" }, "target_cool_temperature": { "name": "Target Cool Temperature" }, "target_temperature": { "name": "Target Temperature" }, - "target_temperature_dhw": { "name": "Target Temperature DHW" }, + "target_temperature_auxiliary": { "name": "Auxiliary Target Temperature" }, + "target_temperature_dhw": { "name": "Hot Water Target Temperature" }, + "target_temperature_eco": { "name": "Target Temperature Eco" }, + "target_temperature_eco_plus": { "name": "Eco+ Target Temperature" }, "target_temperature_eco_z1": { "name": "Target Temperature Eco Z1" }, "target_temperature_eco_z2": { "name": "Target Temperature Eco Z2" }, + "target_temperature_manual": { "name": "Manual Target Temperature" }, + "target_temperature_percentage": { "name": "Percentage-based Target Temperature" }, "temperature_adjustment_max": { "name": "Maximum Temperature" } }, "select": { @@ -250,9 +255,13 @@ "tank_middle_temperature": { "name": "Tank Middle Temperature" }, "tank_top_temperature": { "name": "Tank Top Temperature" }, "target_temperature": { "name": "Target Temperature" }, + "target_temperature_auxiliary": { "name": "Auxiliary Temperature Target" }, "target_temperature_dhw": { "name": "Target Temperature DHW" }, + "target_temperature_eco_plus": { "name": "Target Temperature Eco+" }, "target_temperature_eco_z1":{ "name": "Target Temperature Eco Z1" }, "target_temperature_eco_z2":{ "name": "Target Temperature Eco Z2" }, + "target_temperature_manual": { "name": "Target Temperature Manual" }, + "target_temperature_percentage": { "name": "Target Temperature (%)" }, "temperature_adjustment_min": { "name": "Minimum Temperature" }, "thermostat_temperature_z1":{ "name": "Thermostat Temperature Z1" }, "thermostat_temperature_z2":{ "name": "Thermostat Temperature Z2" }, diff --git a/custom_components/cozytouch/translations/fr.json b/custom_components/cozytouch/translations/fr.json index bfa1e76..615019d 100644 --- a/custom_components/cozytouch/translations/fr.json +++ b/custom_components/cozytouch/translations/fr.json @@ -147,6 +147,7 @@ "target_cool_temperature": { "name": "Température Consigne Cool" }, "target_temperature": { "name": "Température Consigne" }, "target_temperature_dhw": { "name": "Température Consigne DHW" }, + "target_temperature_eco": { "name": "Température Consigne Eco" }, "target_temperature_eco_z1": { "name": "Température Consigne Eco Z1" }, "target_temperature_eco_z2": { "name": "Température Consigne Eco Z2" }, "temperature_adjustment_max": { "name": "Température Maximale" } @@ -250,9 +251,13 @@ "tank_middle_temperature": { "name": "Température Milieu Réservoir" }, "tank_top_temperature": { "name": "Température Haut Réservoir" }, "target_temperature": { "name": "Température Consigne" }, + "target_temperature_auxiliary": { "name": "Température Auxiliaire" }, "target_temperature_dhw": { "name": "Température Consigne ECS" }, + "target_temperature_eco_plus": { "name": "Température Consigne Eco+" }, "target_temperature_eco_z1":{ "name": "Température Consigne Eco Z1" }, "target_temperature_eco_z2":{ "name": "Température Consigne Eco Z2" }, + "target_temperature_manual": { "name": "Température Consigne Manuel" }, + "target_temperature_percentage": { "name": "Température Consigne (%)" }, "temperature_adjustment_min": { "name": "Température Minimale" }, "thermostat_temperature_z1":{ "name": "Température Thermostat Z1" }, "thermostat_temperature_z2":{ "name": "Température Thermostat Z2" },