je cherche comment lancer un script toutes les 2 minutes dans un intervalle de temps, genre 21:50-22:10.
Rien trouvé de folichon avec la crontab (à part si on peut mettre 2 lignes genre 50,52,54,56,58 21 * * * et 00,02,04,06,08,10 22 * * *) mais dans ce cas, comment se passer de l’assistant cron ?
Question subsidiaire : peut-on conserver une valeur pour s’en servir plus tard ? Genre, j’envoie un ordre d’arrêt à mes chauffages à telle heure et je les rallume à telle heure, sans rallumer ceux qui étaient déjà éteints, donc conservation d’état.
Le plus simple est de démarrer ton scénario à 21h50
De commencer à tester si l’heure actuelle est supérieure à 22h10 et de faire un stop si c’est le cas.
Ensuite tu fais tes actions puis une action Dans à la fin pour relancer le scénario dans 2mn.
Pour la question subsidiaire, et bien le mieux c’est de vérifier l’état avant de faire le On.
Si tu n’as pas de commande d’état alors utilise des variables pour stocker les états.
ce n’est pas possible via un cron
2 solutions,
soit dans ton scenario, tu commences par un SI time_between(#time#,2150,2210)
soit tu crées un scenario tierce que tu lances 1 fois par jour ( par exemple à 1h du mat’ ) et qui fait un :
A 2150 activation scenario XX
A 2210 desactivation scenario XX
ton scenario XX ayant un cron */2 * * * *
Oui, via une variable ou un virtuel
… Mais peut-etre que tu pourrais expliquer ton besoin precis plutot que de demander à trouver des solutions sur des solutions que tu aurais dèjà imaginé
Ben non, parce qu’il est forcément off (puisque j’ai envoyé un ordre d’arrêt inconditionnel)
C’est donc stocker l’état avant d’arrêter pour le retester lors de l’allumage.
C’est simple, j’ai un contrat edf « tempo », donc lorsque je passe en heure pleine rouge, je vais arrêter mes chauffages de dalle (à 6h00 du matin).
Lorsque je repasse en heure creuse (à 22:00), je souhaite rallumer uniquement les dalles qui étaient en route à 5:59, donc conserver cet état pour le reprendre le soir.
C’est du luxe, je sais, mais c’est pour voir si c’est possible…
Il faut que tu regardes attentivement cette page de la Doc tu apprendra bcp et pourras plus facilement venir poser des questions en ayant déjà fait des choses et donc mettre des captures d’écran
[2024-09-25 21:58:02][SCENARIO] **-- Début :** Scenario execute automatiquement sur programmation.
[2024-09-25 21:58:03][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Maison][Tempo_RTE][Maintenant]#=='HCJB'
[2024-09-25 21:58:03][SCENARIO] Evaluation de la condition : ["HPJB"=='HCJB'] = Faux
[2024-09-25 21:58:03][SCENARIO] - Exécution du sous-élément de type [action] : else
[2024-09-25 21:58:03][SCENARIO] Fin correcte du scénario ------------------------------------
[2024-09-25 22:00:03][SCENARIO] **-- Début :** Scenario execute automatiquement sur programmation.
[2024-09-25 22:00:04][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Maison][Tempo_RTE][Maintenant]#=='HCJB'
[2024-09-25 22:00:04][SCENARIO] Evaluation de la condition : ["HCJB"=='HCJB'] = Vrai
[2024-09-25 22:00:04][SCENARIO] - Exécution du sous-élément de type [action] : then
[2024-09-25 22:00:04][SCENARIO] Exécution de la commande [Maison][Th_Bureau_RDC][Etat thermostat] avec comme option(s) : {"background":"0","slider":1}
[2024-09-25 22:00:04][SCENARIO] Exécution de la commande [Maison][Th_Séjour][Etat thermostat] avec comme option(s) : {"background":"0","slider":1}
[2024-09-25 22:00:04][SCENARIO] Fin correcte du scénario ------------------------------------
[2024-09-25 22:02:02][SCENARIO] **-- Début :** Scenario execute automatiquement sur programmation.
[2024-09-25 22:02:03][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Maison][Tempo_RTE][Maintenant]#=='HCJB'
[2024-09-25 22:02:03][SCENARIO] Evaluation de la condition : ["HCJB"=='HCJB'] = Vrai
[2024-09-25 22:02:03][SCENARIO] - Exécution du sous-élément de type [action] : then
[2024-09-25 22:02:03][SCENARIO] Exécution de la commande [Maison][Th_Bureau_RDC][Etat thermostat] avec comme option(s) : {"background":"0","slider":1}
[2024-09-25 22:02:03][SCENARIO] Exécution de la commande [Maison][Th_Séjour][Etat thermostat] avec comme option(s) : {"background":"0","slider":1}
[2024-09-25 22:02:03][SCENARIO] Fin correcte du scénario
Je verrai demain matin s’ils auront été éteints au passage en HP avec le script inverse.
Par contre, je ne suis pas sur que tu utilises la bonne méthode la …
Si je comprends bien ce que tu fais ta demande de planifier en cron de 21h50 à 22h10 est la pour « guetter » régulièrement le passage de HP aux HC.
En fait, si c’est réellement pour ça, il est largement plus simple et efficace de faire en sorte que ton scénario ne soit pas programmé mais provoqué.
En mettant en déclencheur la commande #[Maison][Tempo_RTE][Maintenant]# dès que cette dernière changera d’état ton scénario sera automatiquement exécuté.
C’est clairement plus simple et plus efficace que de boucler toutes les 2 minutes 10 minutes avant et 10 minutes après l’heure supposée de bascule.
Du coup, plutot qu’un scenario et un cron entre 21h50 et 22H10 (j’ai pas trop compris pourquoi tu ne planifie pas tout simplement à 22h00, mais passons )
Lorsque tu arretes une dalle à 6h, tu fais suivre l’arrêt d’une commande A
A 2200 redemarrer la dalle
AInsi, seules les dalles que tu auras arretées redemarreront
Pas de cron, pas de variables, tout est géré à 6h du mat’
Ben non, parce que je les arrête de manière inconditionnelle. Je vais voir si je conserve l’état avant coupure. Ce n’est pas gênant pour l’instant si je ne le fais pas.
Alors ca, j’en doute, si contractuellement, les heures tempo sont de 6h à 22h, j’imagine mal qu’ils (EDF) puissent decaller de 5 ou 10min avant ou après… Et ton NTP et le leurs doivent être synchro à quelque dixième de seconde pres, c’est l’intérêt d’un NTP
Justement, si tu as accès à l’état A avant coupure, plutôt que de le conserver dans une variable et de le rappeler à 22h, tu planifies une commande :
A 2200 retour à l'etat A
Pas de souci, je t’ai posé la question hier à 19h12, tu m’as répondu hier à 19h22