Conseil sur la gestion du thermostat lors d'une absence courte

Hello,
Je viens de finir de paramétrer mon plugin Thermostat pour piloter le chauffage de ma pièce principale (grâce à un capteur de T° ZigBee et deux modules Shelly 1 en fil pilote sur mes radiateurs), et j’en arrive maintenant à optimiser le paramètrage des modes et des périodes de fonctionnement. J’ai ensuite créé 3 modes : Confort et Eco qui ne jouent que sur la valeur de consigne, et Vacances qui baisse la consigne et verrouille le thermostat ; puis j’ai créé 2 scénarios qui alternent entre Confort et Eco au cours de la journée et de la semaine. Jusqu’ici c’est basique.
Il me reste à gérer les absences : pour les vacances l’idée est d’activer simplement le mode quand je pars, puis de repasser en Confort quelques heures avant de rentrer. Ça devrait le faire pour une longue absence, je pense ne pas oublier.
Mais j’aimerais aussi créer un mode Absence courte (genre 4 ou 6h) que je declencherais quand je m’absente pour une durée à peu près définie, et qui rebasculerait tout seul en mode nominal (confort ou eco selon l’heure). Quel serait le meilleur moyen de faire ça ?
J’ai pensé à un nouveau scénario dédié, qui baisse la consigne et verrouille le thermostat, puis via une condition DANS xxx minutes il réactive la consigne nominale. Mais je sais pas si on peut connaître le moment idéal auquel réactiver la consigne pour que la pièce soit chaude au moment souhaité (pour le moment je choisis arbitrairement que pour une absence de 6h je remets la consigne DANS 5h30. Et aussi comment savoir si il faut remettre en Confort ou en Éco selon l’heure de remise en route…

Voilà, un sacré pavé qui vous donne un aperçu de mes multiples interrogations :slight_smile:

Je m’auto-reponds puisque j’ai avancé dans ma configuration.
Je suis finalement passé au plugin Agenda pour gérer la programmation de mon thermostat, qui permet en plus de gérer le smartstart.
Et je me suis créeoun mode « Absence 4h » qui désactive cet agenda, passe le thermostat en mode Eco, puis au bout de 3h30 réactive l’agenda qui lui-même va passer le thermostat dans le mode du moment.
Ce n’est pas exactement ce que je voulais puisque je ne peux pas dire « je reviens dans XX heures » et je ne profite pas du SmartStart, mais ça fonctionne. Je n’ai pas trouvé comment ajouté rapidement un évènement qui « commence maintenant et finit dans XX heudonc res » à l’agenda, ce serait l’idéal.Je vais continuer de fouiller.

Bon je me réponds pour faire avancer le schmilblick (et faire remonter le sujet :stuck_out_tongue: ) : grâce à ce sujet et le code de @Phpvarious j’ai créé un scénario qui permet d’ajouter à l’heure actuelle un évènement ‹ Absence 4h › dans un agenda. Merci à toi ! Je compte déclencher ce scénario via un mode dédié du plugin Modes.

///////// Initialisation des variables  ///////////////
$Date = date('y-m-d');
$Time = date('H:i');
$IdCalendrier = '38';
$titre = 'Absence 4h';
$cmdOn = '#[Salon][Thermostat salon][Eco]#';
$cmdOff = '#[Salon][Thermostat salon][Confort]#';

///////////////////// CODE ///////////////////////////
$dateDebutSQL = date('Y-m-d H:i:s', strtotime($Date . ' ' . $Time . ':00' . ' +2 minutes'));
$scenario->setLog($dateDebutSQL);
$dateFinSQL = date('Y-m-d H:i:s', strtotime($Date . ' ' . $Time . ':00' . ' +240 minutes'));
$scenario->setLog($dateFinSQL);

$values = '{"eventName":"' . $titre . '","icon":"","color":"#2980b9","transparent":"0","text_color":"#ffffff","noDisplayOnDashboard":"0","start":[{"options":{"enable":"1","background":"0"},"cmd":"'.$cmdOn.'"}],"end":[{"options":{"enable":"1","background":"0"},"cmd":"'.$cmdOff.'"}],"in_progress":0}';
$sql = "INSERT INTO `calendar_event` (`eqLogic_id`,`cmd_param`,`startDate`,`endDate`) VALUES ('".$IdCalendrier."','".$values."','".$dateDebutSQL."','".$dateFinSQL."')";
$db = DB::Prepare($sql,array());

Il me reste 2 possibilités pour la suite, et je n’arrive pas me mettre les idées au clair :

  • est-ce que j’ajoute cet évènement dans mon agenda de gestion de thermostat déjà existant pour passer ce thermostat en mode absent pendant 4h ? Mais dans ce cas je ne sais pas ce qui se passe quand 2 évènements se chevauchent…
  • est-ce que j’ajoute cet évènement dans un autre agenda « Absence », et je désactive aussi l’autre Agenda de gestion du thermostat habituel pendant cette durée puis je le réactive à la fin ? Problème : comment ajouter plusieurs Actions de début dans cet évènement via le bloc code du scénario ? J’arrive pas à ajouter plusieurs « cmd » dans le $values. Et est-ce que cette solution permet de profiter du smartstart du plugin Thermostat ?

Bref, j’avance doucement !

Bonsoir,
Plutôt que de toucher à ton agenda qui gère ton thermostat (agenda1) pourquoi ne pas passer plutôt par un agenda que tu actives via ton code qui désactive ton agenda1 et qui le réactive au bout de 4h, et ce même agenda active ton thermostat en mode eco ou via le plugin mode.

Pas trop clair :sleeping::sleeping::sleeping::sweat_smile:

Pour ma part, j’utilise le plugin mode (présent, travail, absent, vacance) chaque mode active et désactive mes agendas qui gère mes thermostats…

2 « J'aime »

Ouep c’est ma solution 2 du coup.
Pour le moment j’ai testé d’ajouter un évènement à l’agenda existant et ça ne marche pas, je pense que les 2 évènements antagonistes en même temps ne peuvent être compris.
J’ai aussi testé un nouvel évènement dans un autre agenda, sans désactiver le premier, et il ne prend pas le dessus. Il faut que j’essaie en désactivant le premier via un Mode comme tu le proposes.
C’est un sacré mic-mac toutes ces ineractions :slight_smile:

oui et surtout quand tu te lances dedans sans feuille de route :sob: pour reprendre derrière un vrai casse-tête :joy:

si tu vas pour cette solution note ce que tu fais comme ça le jour ou tu dois réintervenir dessus in the pocket !

1 « J'aime »

J’ai justement commencé hier à créer un logigramme pour m’y retrouver :stuck_out_tongue:

2 « J'aime »