Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

merge #53

Merged
merged 13 commits into from
Feb 19, 2024
24 changes: 18 additions & 6 deletions core/class/thermostat.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -343,13 +343,16 @@ public static function temporal($_options) {
$thermostat->reschedule(null, true);
}

if ($thermostat->getCache('lastState') == 'heat' && $temporal_data['direction'] < 0) {
if ($thermostat->getCache('lastState','none') == 'heat' && $temporal_data['direction'] < 0) {
log::add(__CLASS__, 'debug', $thermostat->getHumanName() . ' ' . __('Je dois refroidir mais avant je chauffais, je stop tout avant', __FILE__));
$thermostat->setCache('lastState', 'stop');
$thermostat->stopThermostat();
}
if ($thermostat->getCache('lastState') == 'cool' && $temporal_data['direction'] > 0) {
sleep(5);
}else if ($thermostat->getCache('lastState','none') == 'cool' && $temporal_data['direction'] > 0) {
log::add(__CLASS__, 'debug', $thermostat->getHumanName() . ' ' . __('Je dois chauffer mais avant je refroidissait, je stop tout avant', __FILE__));
$thermostat->setCache('lastState', 'stop');
$thermostat->stopThermostat();
sleep(5);
}
$thermostat->save();
if ($duration > 0) {
Expand Down Expand Up @@ -610,6 +613,7 @@ public function windowOpen($_window) {
}

public function reschedule($_next = null, $_stop = false, $_smartThermostat = false) {
log::add(__CLASS__, 'debug', $this->getHumanName() . ' Reschedule, next : '.$_next.', stop : '.$_stop.', smartThermostat : '.$_smartThermostat);
$options = array('thermostat_id' => intval($this->getId()));
if ($_stop) {
$options['stop'] = intval(1);
Expand All @@ -624,6 +628,9 @@ public function reschedule($_next = null, $_stop = false, $_smartThermostat = fa
$options['smartThermostat'] = intval(1);
$options['next'] = $_smartThermostat;
}
if($_next == null){
return;
}
$cron = cron::byClassAndFunction(__CLASS__, 'pull', $options);
if (is_object($cron)) {
$cron->remove(false);
Expand All @@ -633,7 +640,7 @@ public function reschedule($_next = null, $_stop = false, $_smartThermostat = fa
$cron->setFunction('pull');
$cron->setOption($options);
$_next = strtotime($_next);
$cron->setTimeout($this->getConfiguration('cycle', 60) + 10);
$cron->setTimeout($this->getConfiguration('cycle') + 10);
$cron->setSchedule(cron::convertDateToCron($_next));
$cron->setOnce(1);
$cron->save();
Expand Down Expand Up @@ -887,7 +894,7 @@ public function preSave() {
throw new Exception(__('Le temps de chauffe minimal doit être compris entre 0% et 90%', __FILE__));
}
if ($this->getConfiguration('cycle') === '') {
$this->setConfiguration('cycle', 60);
$this->setConfiguration('cycle', 59);
}
if ($this->getConfiguration('smart_start') === '') {
$this->setConfiguration('smart_start', 1);
Expand Down Expand Up @@ -1581,7 +1588,12 @@ public function cool($_repeat = false) {

public function stopThermostat($_repeat = false, $_suspend = false) {
if (!$_repeat && $this->getCmd(null, 'status')->execCmd() == __('Arrêté', __FILE__)) {
return;
$power = $this->getCmd(null, 'power');
if (is_object($power) && $power->execCmd() > 0) {
$_repeat = true;
}else{
return;
}
}
log::add(__CLASS__, 'debug', $this->getHumanName() . ' ' . __('Action stop', __FILE__));
$consigne = $this->getCmd(null, 'order')->execCmd();
Expand Down
2 changes: 2 additions & 0 deletions core/i18n/de_DE.json
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,8 @@
"je relance le calcul avec consigne + delta\/2": "Ich starte die Berechnung neu mit Sollwert + Delta \/ 2",
"Durée du cycle": "Zykluszeit",
"Durée du cycle trop courte, aucun lancement": "Zykluszeit zu kurz, kein Start",
"Je dois refroidir mais avant je chauffais, je stop tout avant": "Ich muss abkühlen, aber bevor ich aufheize, höre ich vorher alles auf",
"Je dois chauffer mais avant je refroidissait, je stop tout avant": "Ich muss aufheizen, aber bevor ich abgekühlt bin, höre ich vorher alles auf",
"Attention le thermostat est suspendu à cause d'une fenêtre ouverte depuis": "Bitte beachten Sie, dass der Thermostat aufgrund eines geöffneten Fensters ausgeschaltet ist",
"Attention la température intérieure est en dessous du seuil autorisé": "Bitte beachten Sie, dass die Innentemperatur unter dem zulässigen Schwellenwert liegt",
"Attention la température intérieure est au dessus du seuil autorisé": "Bitte beachten Sie, dass die Innentemperatur über dem zulässigen Schwellenwert liegt",
Expand Down
2 changes: 2 additions & 0 deletions core/i18n/en_US.json
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,8 @@
"je relance le calcul avec consigne + delta\/2": "I restart the calculation with setpoint + delta \/ 2",
"Durée du cycle": "Cycle time",
"Durée du cycle trop courte, aucun lancement": "Cycle time too short, no launch",
"Je dois refroidir mais avant je chauffais, je stop tout avant": "I have to cool down but before I was heating up, I stop everything before",
"Je dois chauffer mais avant je refroidissait, je stop tout avant": "I have to heat up but before I cooled down, I stop everything before",
"Attention le thermostat est suspendu à cause d'une fenêtre ouverte depuis": "Please note that the thermostat is suspended due to a window that has been open for",
"Attention la température intérieure est en dessous du seuil autorisé": "Please note the interior temperature is below the authorized threshold",
"Attention la température intérieure est au dessus du seuil autorisé": "Please note the interior temperature is above the authorized threshold",
Expand Down
2 changes: 2 additions & 0 deletions core/i18n/es_ES.json
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,8 @@
"je relance le calcul avec consigne + delta\/2": "Reinicio el cálculo con setpoint + delta \/ 2",
"Durée du cycle": "Tiempo del ciclo",
"Durée du cycle trop courte, aucun lancement": "El tiempo de ciclo es demasiado corto, no se inicia",
"Je dois refroidir mais avant je chauffais, je stop tout avant": "Me tengo que enfriar pero antes me calentaba, paro todo antes",
"Je dois chauffer mais avant je refroidissait, je stop tout avant": "Tengo que calentar pero antes de enfriar, paro todo antes",
"Attention le thermostat est suspendu à cause d'une fenêtre ouverte depuis": "Tenga en cuenta que el termostato está suspendido debido a una ventana que ha estado abierta durante",
"Attention la température intérieure est en dessous du seuil autorisé": "Tenga en cuenta que la temperatura interior está por debajo del umbral autorizado",
"Attention la température intérieure est au dessus du seuil autorisé": "Tenga en cuenta que la temperatura interior está por encima del umbral autorizado",
Expand Down
2 changes: 2 additions & 0 deletions core/i18n/fr_FR.json
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,8 @@
"je relance le calcul avec consigne + delta\/2": "je relance le calcul avec consigne + delta\/2",
"Durée du cycle": "Durée du cycle",
"Durée du cycle trop courte, aucun lancement": "Durée du cycle trop courte, aucun lancement",
"Je dois refroidir mais avant je chauffais, je stop tout avant": "Je dois refroidir mais avant je chauffais, je stop tout avant",
"Je dois chauffer mais avant je refroidissait, je stop tout avant": "Je dois chauffer mais avant je refroidissait, je stop tout avant",
"Attention le thermostat est suspendu à cause d'une fenêtre ouverte depuis": "Attention le thermostat est suspendu à cause d'une fenêtre ouverte depuis",
"Attention la température intérieure est en dessous du seuil autorisé": "Attention la température intérieure est en dessous du seuil autorisé",
"Attention la température intérieure est au dessus du seuil autorisé": "Attention la température intérieure est au dessus du seuil autorisé",
Expand Down
2 changes: 2 additions & 0 deletions core/i18n/id_ID.json
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,8 @@
"je relance le calcul avec consigne + delta\/2": "je relance le calcul avec consigne + delta\/2",
"Durée du cycle": "Durée du cycle",
"Durée du cycle trop courte, aucun lancement": "Durée du cycle trop courte, aucun lancement",
"Je dois refroidir mais avant je chauffais, je stop tout avant": "Je dois refroidir mais avant je chauffais, je stop tout avant",
"Je dois chauffer mais avant je refroidissait, je stop tout avant": "Je dois chauffer mais avant je refroidissait, je stop tout avant",
"Attention le thermostat est suspendu à cause d'une fenêtre ouverte depuis": "Attention le thermostat est suspendu à cause d'une fenêtre ouverte depuis",
"Attention la température intérieure est en dessous du seuil autorisé": "Attention la température intérieure est en dessous du seuil autorisé",
"Attention la température intérieure est au dessus du seuil autorisé": "Attention la température intérieure est au dessus du seuil autorisé",
Expand Down
2 changes: 2 additions & 0 deletions core/i18n/it_IT.json
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,8 @@
"je relance le calcul avec consigne + delta\/2": "je relance le calcul avec consigne + delta\/2",
"Durée du cycle": "Durée du cycle",
"Durée du cycle trop courte, aucun lancement": "Durée du cycle trop courte, aucun lancement",
"Je dois refroidir mais avant je chauffais, je stop tout avant": "Je dois refroidir mais avant je chauffais, je stop tout avant",
"Je dois chauffer mais avant je refroidissait, je stop tout avant": "Je dois chauffer mais avant je refroidissait, je stop tout avant",
"Attention le thermostat est suspendu à cause d'une fenêtre ouverte depuis": "Attention le thermostat est suspendu à cause d'une fenêtre ouverte depuis",
"Attention la température intérieure est en dessous du seuil autorisé": "Attention la température intérieure est en dessous du seuil autorisé",
"Attention la température intérieure est au dessus du seuil autorisé": "Attention la température intérieure est au dessus du seuil autorisé",
Expand Down
2 changes: 2 additions & 0 deletions core/i18n/ja_JP.json
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,8 @@
"je relance le calcul avec consigne + delta\/2": "je relance le calcul avec consigne + delta\/2",
"Durée du cycle": "Durée du cycle",
"Durée du cycle trop courte, aucun lancement": "Durée du cycle trop courte, aucun lancement",
"Je dois refroidir mais avant je chauffais, je stop tout avant": "Je dois refroidir mais avant je chauffais, je stop tout avant",
"Je dois chauffer mais avant je refroidissait, je stop tout avant": "Je dois chauffer mais avant je refroidissait, je stop tout avant",
"Attention le thermostat est suspendu à cause d'une fenêtre ouverte depuis": "Attention le thermostat est suspendu à cause d'une fenêtre ouverte depuis",
"Attention la température intérieure est en dessous du seuil autorisé": "Attention la température intérieure est en dessous du seuil autorisé",
"Attention la température intérieure est au dessus du seuil autorisé": "Attention la température intérieure est au dessus du seuil autorisé",
Expand Down
2 changes: 2 additions & 0 deletions core/i18n/pt_PT.json
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,8 @@
"je relance le calcul avec consigne + delta\/2": "Eu reinicio o cálculo com setpoint + delta\/2",
"Durée du cycle": "Duração do ciclo",
"Durée du cycle trop courte, aucun lancement": "Duração do ciclo muito curta, nenhum lançamento",
"Je dois refroidir mais avant je chauffais, je stop tout avant": "Tenho que esfriar, mas antes de esquentar, paro tudo antes",
"Je dois chauffer mais avant je refroidissait, je stop tout avant": "Tenho que esquentar, mas antes de esfriar, paro tudo antes",
"Attention le thermostat est suspendu à cause d'une fenêtre ouverte depuis": "Observe que o termostato está suspenso devido a uma janela que esteve aberta por",
"Attention la température intérieure est en dessous du seuil autorisé": "Observe que a temperatura interior está abaixo do limite autorizado",
"Attention la température intérieure est au dessus du seuil autorisé": "Observe que a temperatura interior está acima do limite autorizado",
Expand Down
2 changes: 2 additions & 0 deletions core/i18n/ru_RU.json
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,8 @@
"je relance le calcul avec consigne + delta\/2": "je relance le calcul avec consigne + delta\/2",
"Durée du cycle": "Durée du cycle",
"Durée du cycle trop courte, aucun lancement": "Durée du cycle trop courte, aucun lancement",
"Je dois refroidir mais avant je chauffais, je stop tout avant": "Je dois refroidir mais avant je chauffais, je stop tout avant",
"Je dois chauffer mais avant je refroidissait, je stop tout avant": "Je dois chauffer mais avant je refroidissait, je stop tout avant",
"Attention le thermostat est suspendu à cause d'une fenêtre ouverte depuis": "Attention le thermostat est suspendu à cause d'une fenêtre ouverte depuis",
"Attention la température intérieure est en dessous du seuil autorisé": "Attention la température intérieure est en dessous du seuil autorisé",
"Attention la température intérieure est au dessus du seuil autorisé": "Attention la température intérieure est au dessus du seuil autorisé",
Expand Down
2 changes: 2 additions & 0 deletions core/i18n/tr.json
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,8 @@
"je relance le calcul avec consigne + delta\/2": "je relance le calcul avec consigne + delta\/2",
"Durée du cycle": "Durée du cycle",
"Durée du cycle trop courte, aucun lancement": "Durée du cycle trop courte, aucun lancement",
"Je dois refroidir mais avant je chauffais, je stop tout avant": "Je dois refroidir mais avant je chauffais, je stop tout avant",
"Je dois chauffer mais avant je refroidissait, je stop tout avant": "Je dois chauffer mais avant je refroidissait, je stop tout avant",
"Attention le thermostat est suspendu à cause d'une fenêtre ouverte depuis": "Attention le thermostat est suspendu à cause d'une fenêtre ouverte depuis",
"Attention la température intérieure est en dessous du seuil autorisé": "Attention la température intérieure est en dessous du seuil autorisé",
"Attention la température intérieure est au dessus du seuil autorisé": "Attention la température intérieure est au dessus du seuil autorisé",
Expand Down
7 changes: 7 additions & 0 deletions docs/de_DE/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@
>
>Zur Erinnerung: Wenn keine Informationen zum Update vorhanden sind, bedeutet dies, dass es sich nur um die Aktualisierung von Dokumentation, Übersetzung oder Text handelt

- Es wurde ein Fehler behoben, der ungültige Crons erstellte
- Fehlerbehebung, wenn es 2 Bestellungen gleichzeitig gab (Danke @phpvarious)

# 01.03.2024

- Vorbereitung auf Jeedom 4.4

# 19.12.2023

- Möglichkeit der Eingabe negativer Werte für Offset-Befehle in Bezug auf interne Beiträge
Expand Down
7 changes: 7 additions & 0 deletions docs/en_US/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@
>
>As a reminder if there is no information on the update, it means that it only concerns the updating of documentation, translation or text

- Fixed a bug that creates invalid crons
- Bug fix if there were 2 orders at the same time (thanks @phpvarious)

# 03/01/2024

- Preparing for jeedom 4.4

# 12/19/2023

- Possibility of entering negative values for Offsets commands relating to internal contributions
Expand Down
7 changes: 7 additions & 0 deletions docs/es_ES/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@
>
>Como recordatorio si no hay información sobre la actualización, significa que solo se refiere a la actualización de documentación, traducción o texto

- Se corrigió un error que crea crons no válidos
- Corrección de error si había 2 pedidos al mismo tiempo (gracias @phpvarious)

# 01/03/2024

- Preparándose para el apuro 4.4

# 19/12/2023

- Posibilidad de ingresar valores negativos para los comandos de Compensaciones relacionados con contribuciones internas
Expand Down
5 changes: 5 additions & 0 deletions docs/fr_FR/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@
>
>Pour rappel s'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte

# 19/02/2024

- Correction d'un bug qui crée des crons invalide
- Correction de bug si il y avait 2 ordres en meme temps (merci @phpvarious)

# 03/01/2024

- Préparation pour jeedom 4.4
Expand Down
4 changes: 4 additions & 0 deletions docs/i18n/de_DE.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@
"changelog.md": {
"Changelog Thermostat": "Changelog Thermostat",
"Pour rappel s'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte": "Zur Erinnerung: Wenn keine Informationen zum Update vorhanden sind, bedeutet dies, dass es sich nur um die Aktualisierung von Dokumentation, Übersetzung oder Text handelt",
"Correction d'un bug qui crée des crons invalide": "Es wurde ein Fehler behoben, der ungültige Crons erstellte",
"Correction de bug si il y avait 2 ordres en meme temps (merci @phpvarious": "Fehlerbehebung, wenn es 2 Bestellungen gleichzeitig gab (Danke @phpvarious",
"03\/01\/2024": "01.03.2024",
"Préparation pour jeedom 4.4": "Vorbereitung auf Jeedom 4.4",
"19\/12\/2023": "19.12.2023",
"Possibilité de saisir des valeurs négatives pour les commandes Offsets relatives aux apports internes": "Möglichkeit der Eingabe negativer Werte für Offset-Befehle in Bezug auf interne Beiträge",
"27\/04\/2023": "27.04.2023",
Expand Down
4 changes: 4 additions & 0 deletions docs/i18n/en_US.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@
"changelog.md": {
"Changelog Thermostat": "Changelog Thermostat",
"Pour rappel s'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte": "As a reminder if there is no information on the update, it means that it only concerns the updating of documentation, translation or text",
"Correction d'un bug qui crée des crons invalide": "Fixed a bug that creates invalid crons",
"Correction de bug si il y avait 2 ordres en meme temps (merci @phpvarious": "Bug fix if there were 2 orders at the same time (thanks @phpvarious",
"03\/01\/2024": "03\/01\/2024",
"Préparation pour jeedom 4.4": "Preparing for jeedom 4.4",
"19\/12\/2023": "12\/19\/2023",
"Possibilité de saisir des valeurs négatives pour les commandes Offsets relatives aux apports internes": "Possibility of entering negative values for Offsets commands relating to internal contributions",
"27\/04\/2023": "04\/27\/2023",
Expand Down
4 changes: 4 additions & 0 deletions docs/i18n/es_ES.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@
"changelog.md": {
"Changelog Thermostat": "Changelog Thermostat",
"Pour rappel s'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte": "Como recordatorio si no hay información sobre la actualización, significa que solo se refiere a la actualización de documentación, traducción o texto",
"Correction d'un bug qui crée des crons invalide": "Se corrigió un error que crea crons no válidos",
"Correction de bug si il y avait 2 ordres en meme temps (merci @phpvarious": "Corrección de error si había 2 pedidos al mismo tiempo (gracias @phpvarious",
"03\/01\/2024": "01\/03\/2024",
"Préparation pour jeedom 4.4": "Preparándose para el apuro 4.4",
"19\/12\/2023": "19\/12\/2023",
"Possibilité de saisir des valeurs négatives pour les commandes Offsets relatives aux apports internes": "Posibilidad de ingresar valores negativos para los comandos de Compensaciones relacionados con contribuciones internas",
"27\/04\/2023": "27\/04\/2023",
Expand Down
4 changes: 4 additions & 0 deletions docs/i18n/fr_FR.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
"Changelog Thermostat": "Changelog Thermostat",
"IMPORTANT": "IMPORTANT",
"Pour rappel s'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte": "Pour rappel s'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte",
"Correction d'un bug qui crée des crons invalide": "Correction d'un bug qui crée des crons invalide",
"Correction de bug si il y avait 2 ordres en meme temps (merci @phpvarious": "Correction de bug si il y avait 2 ordres en meme temps (merci @phpvarious",
"03\/01\/2024": "03\/01\/2024",
"Préparation pour jeedom 4.4": "Préparation pour jeedom 4.4",
"19\/12\/2023": "19\/12\/2023",
"Possibilité de saisir des valeurs négatives pour les commandes Offsets relatives aux apports internes": "Possibilité de saisir des valeurs négatives pour les commandes Offsets relatives aux apports internes",
"27\/04\/2023": "27\/04\/2023",
Expand Down
Loading
Loading