Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions custom_components/cozytouch/capability.py
Original file line number Diff line number Diff line change
Expand Up @@ -725,6 +725,35 @@ def get_capability_infos(modelInfos: dict, capabilityId: int, capabilityValue: s
capability["category"] = "sensor"
capability["icon"] = "mdi:arrow-oscillating"

elif capabilityId == 102004:
capability["name"] = "air_circulation_speed"
capability["type"] = "select"
capability["category"] = "sensor"
capability["icon"] = "mdi:fan"
capability["modelList"] = "AirCirculationSpeeds"

elif capabilityId == 102021:
# Air circulation runs for a set number of minutes; 102025 and 102026 sit
# next to it at 15 and 300 and look like the bounds
capability["name"] = "air_circulation_total_time"
capability["type"] = "minutes_adjustment_number"
capability["category"] = "sensor"
capability["icon"] = "mdi:fan-clock"
capability["lowest_value"] = 15
capability["highest_value"] = 300

elif capabilityId == 102023:
capability["name"] = "air_circulation_remaining_time"
capability["type"] = "time"
capability["category"] = "diagnostic"
capability["icon"] = "mdi:fan-clock"

elif capabilityId == 102024:
capability["name"] = "air_circulation"
capability["type"] = "switch"
capability["category"] = "sensor"
capability["icon"] = "mdi:fan"

elif capabilityId == 104044:
capability["name"] = "boost_mode"
capability["type"] = "switch"
Expand Down
4 changes: 4 additions & 0 deletions custom_components/cozytouch/const.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,7 @@ class CozytouchCapabilityVariableType(IntEnum):
HEATING_MODE_MANUAL = "manual"
HEATING_MODE_ECO_PLUS = "eco_plus"
HEATING_MODE_PROG = "prog"

AIR_CIRCULATION_SPEED_LOW = "low"
AIR_CIRCULATION_SPEED_MEDIUM = "medium"
AIR_CIRCULATION_SPEED_HIGH = "high"
11 changes: 11 additions & 0 deletions custom_components/cozytouch/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@
)

from .const import (
AIR_CIRCULATION_SPEED_HIGH,
AIR_CIRCULATION_SPEED_LOW,
AIR_CIRCULATION_SPEED_MEDIUM,
HEATING_MODE_ECO_PLUS,
HEATING_MODE_MANUAL,
HEATING_MODE_PROG,
Expand Down Expand Up @@ -205,6 +208,14 @@ def get_model_infos(modelId: int, zoneName: str | None = None):
modelInfos["currentTemperatureAvailable"] = False
modelInfos["quietModeAvailable"] = True

# Air circulation speed, all three values seen on the wire against the
# app's "Lente", "Moyenne" and "Rapide".
modelInfos["AirCirculationSpeeds"] = {
1: AIR_CIRCULATION_SPEED_LOW,
2: AIR_CIRCULATION_SPEED_MEDIUM,
3: AIR_CIRCULATION_SPEED_HIGH,
}

modelInfos["fanModes"] = {
1: FAN_LOW,
2: FAN_MEDIUM,
Expand Down
13 changes: 13 additions & 0 deletions custom_components/cozytouch/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,7 @@
"away_mode_stop": { "name": "Away Mode Stop" }
},
"number": {
"air_circulation_total_time": { "name": "Air Circulation Total Time" },
"away_mode_temperature": { "name": "Away Mode Temperature" },
"boost_timeout_max": { "name": "Boost Timeout Max." },
"override_total_time": { "name": "Override Total Time" },
Expand All @@ -152,6 +153,16 @@
"temperature_adjustment_max": { "name": "Maximum Temperature" }
},
"select": {
"air_circulation_speed":
{
"name": "Air Circulation Speed",
"state":
{
"low": "Low",
"medium": "Medium",
"high": "High"
}
},
"heating_mode":
{
"name": "Heating Mode",
Expand All @@ -164,6 +175,7 @@
}
},
"sensor": {
"air_circulation_remaining_time": { "name": "Air Circulation Remaining Time" },
"air_conditioner": { "name": "Air Conditioner" },
"away_mode": { "name": "Away Mode" },
"away_mode_start": { "name": "Away Mode Start" },
Expand Down Expand Up @@ -269,6 +281,7 @@
"zone_2": { "name": "Zone 2" }
},
"switch": {
"air_circulation": { "name": "Air Circulation" },
"away_mode": { "name": "Away Mode" },
"boost_mode": { "name": "Boost Mode" },
"domestic_hot_water": { "name": "Domestic Hot Water" },
Expand Down
13 changes: 13 additions & 0 deletions custom_components/cozytouch/translations/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,7 @@
"away_mode_stop": { "name": "Away Mode Stop" }
},
"number": {
"air_circulation_total_time": { "name": "Air Circulation Total Time" },
"away_mode_temperature": { "name": "Away Mode Temperature" },
"boost_timeout_max": { "name": "Boost Timeout Max." },
"override_total_time": { "name": "Override Total Time" },
Expand All @@ -152,6 +153,16 @@
"temperature_adjustment_max": { "name": "Maximum Temperature" }
},
"select": {
"air_circulation_speed":
{
"name": "Air Circulation Speed",
"state":
{
"low": "Low",
"medium": "Medium",
"high": "High"
}
},
"heating_mode":
{
"name": "Heating Mode",
Expand All @@ -164,6 +175,7 @@
}
},
"sensor": {
"air_circulation_remaining_time": { "name": "Air Circulation Remaining Time" },
"air_conditioner": { "name": "Air Conditioner" },
"away_mode": { "name": "Away Mode" },
"away_mode_start": { "name": "Away Mode Start" },
Expand Down Expand Up @@ -269,6 +281,7 @@
"zone_2": { "name": "Zone 2" }
},
"switch": {
"air_circulation": { "name": "Air Circulation" },
"away_mode": { "name": "Away Mode" },
"boost_mode": { "name": "Boost Mode" },
"domestic_hot_water": { "name": "Domestic Hot Water" },
Expand Down
13 changes: 13 additions & 0 deletions custom_components/cozytouch/translations/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,7 @@
"away_mode_stop": { "name": "Absence Fin" }
},
"number": {
"air_circulation_total_time": { "name": "Durée Brassage Totale" },
"away_mode_temperature": { "name": "Température Absence" },
"boost_timeout_max": { "name": "Temporisation Max. Boost" },
"override_total_time": { "name": "Durée Délégation" },
Expand All @@ -152,6 +153,16 @@
"temperature_adjustment_max": { "name": "Température Maximale" }
},
"select": {
"air_circulation_speed":
{
"name": "Vitesse de brassage",
"state":
{
"low": "Lente",
"medium": "Moyenne",
"high": "Rapide"
}
},
"heating_mode":
{
"name": "Mode Chauffe",
Expand All @@ -164,6 +175,7 @@
}
},
"sensor": {
"air_circulation_remaining_time": { "name": "Durée Brassage Restante" },
"air_conditioner": { "name": "Climatisation" },
"away_mode": { "name": "Absence" },
"away_mode_start": { "name": "Absence Début" },
Expand Down Expand Up @@ -269,6 +281,7 @@
"zone_2": { "name": "Zone 2" }
},
"switch": {
"air_circulation": { "name": "Brassage d'air" },
"away_mode": { "name": "Absence" },
"boost_mode": { "name": "Mode Boost" },
"domestic_hot_water": { "name": "Eau Chaude" },
Expand Down