Compare commits
9 Commits
7.1.6beta1
...
7.1.6
| Author | SHA1 | Date | |
|---|---|---|---|
| ebc2d8b6ac | |||
| cf4cc32b13 | |||
| 2523fc74c2 | |||
| 87de91c2c5 | |||
| a3b6f66f1b | |||
| 8cf09e5254 | |||
| 0b67226666 | |||
| 812bb19e10 | |||
| be3012af71 |
@@ -1050,7 +1050,7 @@ class BaseThermostat(ClimateEntity, RestoreEntity, Generic[T]):
|
|||||||
self._hvac_mode in [HVACMode.COOL, HVACMode.HEAT, HVACMode.HEAT_COOL]
|
self._hvac_mode in [HVACMode.COOL, HVACMode.HEAT, HVACMode.HEAT_COOL]
|
||||||
and self.preset_mode != PRESET_NONE
|
and self.preset_mode != PRESET_NONE
|
||||||
):
|
):
|
||||||
if self.preset_mode != PRESET_FROST_PROTECTION:
|
if self.preset_mode != PRESET_FROST_PROTECTION or self._hvac_mode in [HVACMode.HEAT, HVACMode.HEAT_COOL]:
|
||||||
await self.async_set_preset_mode_internal(self.preset_mode, True)
|
await self.async_set_preset_mode_internal(self.preset_mode, True)
|
||||||
else:
|
else:
|
||||||
await self.async_set_preset_mode_internal(PRESET_ECO, True, False)
|
await self.async_set_preset_mode_internal(PRESET_ECO, True, False)
|
||||||
@@ -1244,12 +1244,12 @@ class BaseThermostat(ClimateEntity, RestoreEntity, Generic[T]):
|
|||||||
|
|
||||||
async def async_set_humidity(self, humidity: int):
|
async def async_set_humidity(self, humidity: int):
|
||||||
"""Set new target humidity."""
|
"""Set new target humidity."""
|
||||||
_LOGGER.info("%s - Set fan mode: %s", self, humidity)
|
_LOGGER.info("%s - Set humidity: %s", self, humidity)
|
||||||
return
|
return
|
||||||
|
|
||||||
async def async_set_swing_mode(self, swing_mode: str):
|
async def async_set_swing_mode(self, swing_mode: str):
|
||||||
"""Set new target swing operation."""
|
"""Set new target swing operation."""
|
||||||
_LOGGER.info("%s - Set fan mode: %s", self, swing_mode)
|
_LOGGER.info("%s - Set swing mode: %s", self, swing_mode)
|
||||||
return
|
return
|
||||||
|
|
||||||
async def async_set_temperature(self, **kwargs):
|
async def async_set_temperature(self, **kwargs):
|
||||||
|
|||||||
@@ -14,6 +14,6 @@
|
|||||||
"quality_scale": "silver",
|
"quality_scale": "silver",
|
||||||
"requirements": [],
|
"requirements": [],
|
||||||
"ssdp": [],
|
"ssdp": [],
|
||||||
"version": "7.1.4",
|
"version": "7.1.6",
|
||||||
"zeroconf": []
|
"zeroconf": []
|
||||||
}
|
}
|
||||||
@@ -1104,7 +1104,7 @@ class ThermostatOverClimate(BaseThermostat[UnderlyingClimate]):
|
|||||||
@overrides
|
@overrides
|
||||||
async def async_set_humidity(self, humidity: int):
|
async def async_set_humidity(self, humidity: int):
|
||||||
"""Set new target humidity."""
|
"""Set new target humidity."""
|
||||||
_LOGGER.info("%s - Set fan mode: %s", self, humidity)
|
_LOGGER.info("%s - Set humidity: %s", self, humidity)
|
||||||
if humidity is None:
|
if humidity is None:
|
||||||
return
|
return
|
||||||
for under in self._underlyings:
|
for under in self._underlyings:
|
||||||
@@ -1115,7 +1115,7 @@ class ThermostatOverClimate(BaseThermostat[UnderlyingClimate]):
|
|||||||
@overrides
|
@overrides
|
||||||
async def async_set_swing_mode(self, swing_mode):
|
async def async_set_swing_mode(self, swing_mode):
|
||||||
"""Set new target swing operation."""
|
"""Set new target swing operation."""
|
||||||
_LOGGER.info("%s - Set fan mode: %s", self, swing_mode)
|
_LOGGER.info("%s - Set swing mode: %s", self, swing_mode)
|
||||||
if swing_mode is None:
|
if swing_mode is None:
|
||||||
return
|
return
|
||||||
for under in self._underlyings:
|
for under in self._underlyings:
|
||||||
|
|||||||
@@ -155,7 +155,7 @@
|
|||||||
},
|
},
|
||||||
"data_description": {
|
"data_description": {
|
||||||
"motion_sensor_entity_id": "Id d'entité du détecteur de mouvement",
|
"motion_sensor_entity_id": "Id d'entité du détecteur de mouvement",
|
||||||
"motion_delay": "Délai avant activation lorsqu'un mouvement est détecté (secondss)",
|
"motion_delay": "Délai avant activation lorsqu'un mouvement est détecté (secondes)",
|
||||||
"motion_off_delai": "Délai avant désactivation lorsqu'aucun mouvement n'est détecté (secondes)",
|
"motion_off_delai": "Délai avant désactivation lorsqu'aucun mouvement n'est détecté (secondes)",
|
||||||
"motion_preset": "Preset à utiliser si mouvement détecté",
|
"motion_preset": "Preset à utiliser si mouvement détecté",
|
||||||
"no_motion_preset": "Preset à utiliser si pas de mouvement détecté",
|
"no_motion_preset": "Preset à utiliser si pas de mouvement détecté",
|
||||||
@@ -200,7 +200,7 @@
|
|||||||
"use_advanced_central_config": "Utiliser la configuration centrale avancée"
|
"use_advanced_central_config": "Utiliser la configuration centrale avancée"
|
||||||
},
|
},
|
||||||
"data_description": {
|
"data_description": {
|
||||||
"minimal_activation_delay": "Délai en seondes en-dessous duquel l'équipement ne sera pas activé",
|
"minimal_activation_delay": "Délai en secondes en-dessous duquel l'équipement ne sera pas activé",
|
||||||
"safety_delay_min": "Délai maximal autorisé en minutes entre 2 mesures de températures. Au-dessus de ce délai, le thermostat se mettra en position de sécurité",
|
"safety_delay_min": "Délai maximal autorisé en minutes entre 2 mesures de températures. Au-dessus de ce délai, le thermostat se mettra en position de sécurité",
|
||||||
"safety_min_on_percent": "Seuil minimal de pourcentage de chauffage en-dessous duquel le préréglage sécurité ne sera jamais activé",
|
"safety_min_on_percent": "Seuil minimal de pourcentage de chauffage en-dessous duquel le préréglage sécurité ne sera jamais activé",
|
||||||
"safety_default_on_percent": "Valeur par défaut pour le pourcentage de chauffage en mode sécurité. Mettre 0 pour éteindre le radiateur en mode sécurité",
|
"safety_default_on_percent": "Valeur par défaut pour le pourcentage de chauffage en mode sécurité. Mettre 0 pour éteindre le radiateur en mode sécurité",
|
||||||
|
|||||||
@@ -611,7 +611,7 @@ class UnderlyingClimate(UnderlyingEntity):
|
|||||||
|
|
||||||
async def set_humidity(self, humidity: int):
|
async def set_humidity(self, humidity: int):
|
||||||
"""Set new target humidity."""
|
"""Set new target humidity."""
|
||||||
_LOGGER.info("%s - Set fan mode: %s", self, humidity)
|
_LOGGER.info("%s - Set humidity: %s", self, humidity)
|
||||||
if not self.is_initialized:
|
if not self.is_initialized:
|
||||||
return
|
return
|
||||||
data = {
|
data = {
|
||||||
@@ -627,7 +627,7 @@ class UnderlyingClimate(UnderlyingEntity):
|
|||||||
|
|
||||||
async def set_swing_mode(self, swing_mode):
|
async def set_swing_mode(self, swing_mode):
|
||||||
"""Set new target swing operation."""
|
"""Set new target swing operation."""
|
||||||
_LOGGER.info("%s - Set fan mode: %s", self, swing_mode)
|
_LOGGER.info("%s - Set swing mode: %s", self, swing_mode)
|
||||||
if not self.is_initialized:
|
if not self.is_initialized:
|
||||||
return
|
return
|
||||||
data = {
|
data = {
|
||||||
|
|||||||
@@ -60,6 +60,8 @@ Of course, your underlying equipment must have ventilation, and it must be contr
|
|||||||
|
|
||||||
### Compensating for the Internal Temperature of the Underlying Equipment
|
### Compensating for the Internal Temperature of the Underlying Equipment
|
||||||
|
|
||||||
|
Warning: This option must not be used with direct valve control regulation if a calibration entity has been provided.
|
||||||
|
|
||||||
Sometimes, the internal thermometer of the underlying equipment (TRV, air conditioner, etc.) is inaccurate to the point that self-regulation is insufficient. This happens when the internal thermometer is placed too close to the heat source. The internal temperature rises much faster than the room temperature, leading to regulation failures.
|
Sometimes, the internal thermometer of the underlying equipment (TRV, air conditioner, etc.) is inaccurate to the point that self-regulation is insufficient. This happens when the internal thermometer is placed too close to the heat source. The internal temperature rises much faster than the room temperature, leading to regulation failures.
|
||||||
Example:
|
Example:
|
||||||
1. Room temperature is 18°, setpoint is 20°.
|
1. Room temperature is 18°, setpoint is 20°.
|
||||||
|
|||||||
@@ -31,8 +31,8 @@ This allows you to configure the valve control entities:
|
|||||||
You need to provide:
|
You need to provide:
|
||||||
1. As many valve opening control entities as there are underlying devices, and in the same order. These parameters are mandatory.
|
1. As many valve opening control entities as there are underlying devices, and in the same order. These parameters are mandatory.
|
||||||
2. As many temperature calibration entities as there are underlying devices, and in the same order. These parameters are optional; they must either all be provided or none.
|
2. As many temperature calibration entities as there are underlying devices, and in the same order. These parameters are optional; they must either all be provided or none.
|
||||||
3. As many valve closure control entities as there are underlying devices, and in the same order. These parameters are optional; they must either all be provided or none.
|
3. As many valve closure control entities as there are underlying devices, and in the same order. These parameters are optional; they must either all be provided or none. For Sonoff TRVZB, you should not configure this entity. See the note below.
|
||||||
4. A list of minimum opening values for the valve when it needs to be opened. This field is a list of integers. If the valve needs to be opened, it will be opened at a minimum of this opening value. This allows enough water to pass through when it needs to be opened.
|
4. A list of minimum opening values for the valve when it needs to be opened. This field is a list of integers. If the valve needs to be opened, it will be opened at a minimum of this opening value, else it will be set to 0 (to ensure the valve is closed). This allows enough water to pass through when it needs to be opened.
|
||||||
|
|
||||||
The opening rate calculation algorithm is based on the _TPI_ algorithm described [here](algorithms.md). This is the same algorithm used for _VTherms_ `over_switch` and `over_valve`.
|
The opening rate calculation algorithm is based on the _TPI_ algorithm described [here](algorithms.md). This is the same algorithm used for _VTherms_ `over_switch` and `over_valve`.
|
||||||
|
|
||||||
|
|||||||
@@ -63,6 +63,8 @@ Une fois l'écart de température redevenu faible, la ventilation se mettra dans
|
|||||||
|
|
||||||
### Compenser la température interne du sous-jacent
|
### Compenser la température interne du sous-jacent
|
||||||
|
|
||||||
|
Attention : cette option ne doit pas être utilisée avec une régulation par contrôle direct de la vanne si une entité de calibrage a été fournie.
|
||||||
|
|
||||||
Quelque fois, il arrive que le thermomètre interne du sous-jacent (TRV, climatisation, ...) soit tellement faux que l' auto-régulation ne suffise pas à réguler.
|
Quelque fois, il arrive que le thermomètre interne du sous-jacent (TRV, climatisation, ...) soit tellement faux que l' auto-régulation ne suffise pas à réguler.
|
||||||
Cela arrive lorsque le thermomètre interne est trop près de la source de chaleur. La température interne monte alors beaucoup plus vite que la température de la pièce, ce qui génère des défauts dans la régulation.
|
Cela arrive lorsque le thermomètre interne est trop près de la source de chaleur. La température interne monte alors beaucoup plus vite que la température de la pièce, ce qui génère des défauts dans la régulation.
|
||||||
Exemple :
|
Exemple :
|
||||||
|
|||||||
@@ -32,8 +32,8 @@ Elle permet de configurer les entités de contrôle de la vanne :
|
|||||||
Vous devez donner :
|
Vous devez donner :
|
||||||
1. autant d'entités de contrôle d'ouverture de la vanne qu'il y a de sous-jacents et dans le même odre. Ces paramètres sont obligatoires,
|
1. autant d'entités de contrôle d'ouverture de la vanne qu'il y a de sous-jacents et dans le même odre. Ces paramètres sont obligatoires,
|
||||||
2. autant d'entités de calibrage du décalage de température qu'il y a de sous-jacents et dans le même ordre. Ces paramètres sont facultatifs ; ils doivent être tous founis ou aucun,
|
2. autant d'entités de calibrage du décalage de température qu'il y a de sous-jacents et dans le même ordre. Ces paramètres sont facultatifs ; ils doivent être tous founis ou aucun,
|
||||||
3. autant d'entités de de contrôile du taux de fermture qu'il y a de sous-jacents et dans le même ordre. Ces paramètres sont facultatifs ; ils doivent être tous founis ou aucun,
|
3. autant d'entités de de contrôile du taux de fermture qu'il y a de sous-jacents et dans le même ordre. Ces paramètres sont facultatifs ; ils doivent être tous founis ou aucun. Pour les Sonoff TRVZB, ils ne doivent pas être fournis,
|
||||||
4. une liste de valeurs minimales d'ouverture de la vanne lorsqu'elle doit être ouverte. Ce champ est une liste d'entier. Si la vanne doit être ouverte, elle le sera au minimum avec cette valeur d'ouverture. Cela permet de laisser passer suffisamment d'eau lorsqu'elle doit être ouverte.
|
4. une liste de valeurs minimales d'ouverture de la vanne lorsqu'elle doit être ouverte. Ce champ est une liste d'entier. Si la vanne doit être ouverte, elle le sera au minimum avec cette valeur d'ouverture, sinon elle sera totalement close (0). Cela permet de laisser passer suffisamment d'eau lorsqu'elle doit être ouverte mais garde la fermeeture complète si il n'y a pas besoin de chauffer.
|
||||||
|
|
||||||
L'algorithme de calcul du taux d'ouverture est basé sur le _TPI_ qui est décrit [ici](algorithms.md). C'est le même algorithme qui est utilisé pour les _VTherm_ `over_switch` et `over_valve`.
|
L'algorithme de calcul du taux d'ouverture est basé sur le _TPI_ qui est décrit [ici](algorithms.md). C'est le même algorithme qui est utilisé pour les _VTherm_ `over_switch` et `over_valve`.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user