La période de noël approchant et ayant une prise connectée, je me suis dis pourquoi ne pas programmer l’allumage et l’extinction des guirlandes !!! Alors oui, c’est un peu superficiel compte tenu de la période, mais bon
Dans l’idée, je voudrais que tous les ans du 1er décembre de l’année N au 05 janvier de l’année N+1, la guirlande fonctionne selon le scénario suivant :
Du lundi au vendredi :
Allumage du lever du soleil => 8h30
Allumage du coucher du soleil => 23h00
Le déclencheur Samedi / Dimanche
Le soucis, c’est que dans le cron, je n’ai pas trouvé comment intégrer cette notion coucher/lever de soleil variable…
Je suis donc parti sur un scénario l’allumage lundi/vendredi et samedi/dimanche sauf que je me retrouve encore bloqué… Comment intégrer cette notion de jour de semaine. J’ai essayé le formalisme du cron avec la fonction « A » mais ça ne fonctionne pas. J’ai compris après essai, qu’une heure précise était attendu.
Bref, je me retrouve dans une impasse et mon manque de connaissance se fait clairement sentir.
Le 1er avec en déclencheur programmé le 1er décembre et 5 janvier
Ensuite bloc SI qui teste la date
Si 1er activer 2eme scénario
Si 5janvier désactiver 2eme scénario
Le 2eme scénario programmé a 4h00 (du matin tous les jours)
SI Jour=samedi OU dimanche
ALORS
…A 9h00 FAIRE ALLUMER
…A 23h00 FAIRE ETEINDRE
SINON A LEVER SOLEIL FAIRE ALLUMER
…A 8h30 ETEINDRE
…A COUCHER DU SOLEIL ALLUMER
…A 23H00 Eteindre
Donc a 4h00 du mat, tu regardes si c’est samedi ou dimanche et tu programmes allumage et extinction sinon c’est forcement la semaine et idem tu programmes
Tu as mis un ET entre les 2 conditions, or c’est impossible que l’heure soit comprises a la fois entre le lever du soleil et 8h30 et le coucher du soleil et 23h00 !
Alors, j’ai fais des essais pour voir si mes scénarios sont cohérents (En faisant des déclencheurs en lien avec l’heure)… Et ben ça ne fonctionne pas !
J’en déduis que mes scénarios ne sont pas bons, les voici :
En les faisant, j’ai un question complémentaire qui s’est pointée pour le déclencheur et le cron de décembre à janvier. J’ai réussi à trouver, par exemple du 05/01 au 01/12 mais pas l’inverse. Sur un « testeur » de cron (https://crontab.guru/), cela m’indique qu’il y a une erreur si je fais du 01/12 au 05/01… Une idée ?
Une question, par curiosité, le choix du déclencheur à 4h00 du matin est arbitraire ou bien il y a une raison (changement d’heure par exemple ?)
Comme le scénario se declenche que le 1 décembre et le 5 janvier
On teste si on est le premier decembre et on active le scénario 2
Sinon on est le 5 janvier forcément vu le déclencheur et on désactive !
Le scénario 2 doit être activé et désactivé ce qui est différent de démarré comme tu le fais
A 4h00 du matin, par habitude pour les changements d’heure et autres plugin qui calculent lever / coucher du soleil
Enfin tu as le testeur d’expression pour tester tes SI dans les scénarios et les logs pour voir ce qui ne va pas dans ce que tu fais
Démarrer un scénario désactivé ne fonctionne pas puisqu’il est désactivé !
Une fois activé il se déclenchera suivant ses déclencheurs ou de suite si tu le démarres a la main ou depuis un scénario
C’est bien ce que j’en avais déduis sur mon post précédent
Pour la syntaxe du premier scénario, je l’ai pris sur d’autres sujets qui avait un besoin similaire. J’ai fais des recherches pour connaitre la source et la signification, mais je n’ai rien trouvé.
En parallèle, j’ai fais des essais calés sur la période actuelle et la lumière s’allume et s’éteint à la bonne heure.
En synthèse, à l’exception du déclencheur qui mauvais et que je vais modifier, tout est ok.
Yes, je sauvegarde et teste systématiquement le scénario pour vérifier que ça fonctionne
Finalement je rencontre un soucis que je ne comprends pas.
Voici le log de lancement :
------------------------------------
[2023-12-04 04:00:03][SCENARIO] -- Start : Scenario execute automatiquement sur programmation.
[2023-12-04 04:00:03][SCENARIO] - Exécution du sous-élément de type [condition] : if #sjour# = "Samedi" ou #sjour# = "Dimanche"
[2023-12-04 04:00:03][SCENARIO] Evaluation de la condition : ["Lundi" = "Samedi" ou "Lundi" = "Dimanche"] = Faux
[2023-12-04 04:00:03][SCENARIO] - Exécution du sous-élément de type [action] : else
[2023-12-04 04:00:03][SCENARIO] Exécution d'un bloc élément : 36
[2023-12-04 04:00:03][SCENARIO] - Exécution du sous-élément de type [condition] : at 0610
[2023-12-04 04:00:03][SCENARIO] Evaluation de la condition : [0610] = 610
[2023-12-04 04:00:03][SCENARIO] Tâche : 36 programmée à : 2023-12-04 06:10:00
[2023-12-04 04:00:03][SCENARIO] Exécution d'un bloc élément : 37
[2023-12-04 04:00:03][SCENARIO] - Exécution du sous-élément de type [condition] : at 0830
[2023-12-04 04:00:03][SCENARIO] Evaluation de la condition : [0830] = 830
[2023-12-04 04:00:03][SCENARIO] Tâche : 37 programmée à : 2023-12-04 08:30:00
[2023-12-04 04:00:03][SCENARIO] Exécution d'un bloc élément : 38
[2023-12-04 04:00:03][SCENARIO] - Exécution du sous-élément de type [condition] : at #[Maison][Lever Coucher soleil][Valeur_coucher]#
[2023-12-04 04:00:03][SCENARIO] Evaluation de la condition : [1700] = 1700
[2023-12-04 04:00:03][SCENARIO] Tâche : 38 programmée à : 2023-12-04 17:00:00
[2023-12-04 04:00:03][SCENARIO] Exécution d'un bloc élément : 39
[2023-12-04 04:00:03][SCENARIO] - Exécution du sous-élément de type [condition] : at 2300
[2023-12-04 04:00:03][SCENARIO] Evaluation de la condition : [2300] = 2300
[2023-12-04 04:00:03][SCENARIO] Tâche : 39 programmée à : 2023-12-04 23:00:00
[2023-12-04 04:00:03][SCENARIO] Fin correcte du scénario
------------------------------------
[2023-12-04 06:10:05][SCENARIO] ************Lancement sous tâche**************
[2023-12-04 06:10:05][SCENARIO] - Exécution du sous-élément de type [action] : do
[2023-12-04 06:10:05][SCENARIO] Exécution de la commande [Cellier][Prise][On]
[2023-12-04 06:10:07][SCENARIO] ************FIN sous tâche**************
------------------------------------
[2023-12-04 08:30:06][SCENARIO] ************Lancement sous tâche**************
[2023-12-04 08:30:06][SCENARIO] - Exécution du sous-élément de type [action] : do
[2023-12-04 08:30:07][SCENARIO] Exécution de la commande [Cellier][Prise][Off]
[2023-12-04 08:30:08][SCENARIO] ************FIN sous tâche**************
------------------------------------
[2023-12-04 09:00:07][SCENARIO] ************Lancement sous tâche**************
[2023-12-04 09:00:07][SCENARIO] - Exécution du sous-élément de type [action] : do
[2023-12-04 09:00:07][SCENARIO] Exécution de la commande [Cellier][Prise][On]
[2023-12-04 09:00:09][SCENARIO] ************FIN sous tâche**************
------------------------------------
Le soucis réside dans le lancement à 9h00. Vu que nous sommes lundi, le lancement doit avoir lieu à 6h10 et s’arrêter à 8h30 pour reprendre au coucher du soleil. Mais sans je comprenne pourquoi, cela redémarre à 9h00.
J’ai pas trop suivi le sujet mais le problème vient d’un déclencheur.
Si ton scénario a tourné dimanche après 9h, par exemple à 10h05 (au pif), comme tu demandes une programmation à 9h et que 9h est déjà passé, il programme le prochain 9h possible c’est à dire le lendemain, lundi à 9h.
La tournure de ton message laisse à penser un certain agacement, alors je vais considérer qu’il était dit à l’oral avec le sourire, ça m’évitera de devoir répondre sèchement également.
J’ai clairement copié collé le scénario que tu m’as indiqué, tout comme le déclencheur suite à la mise en place du système ce week end. Je n’ai pas cherché à réinventer la poudre sinon je n’aurai pas poster sur le forum.
L’obstination est plutôt de penser que je n’en fais qu’à ma tête alors qu’à aucun moment je n’ai cherché à imposer quoique ce soit.
Cela te parait tellement évident lorsque tu le rédiges que tu estimes que cela le sera pour l’autre, or ce n’était pas le cas pour moi !
Bonjour,
Un scénario tout simple avec cette condition et un déclencheur à 17h00:
le si : (#[Info][Jours Ferrier][Jour férié]# == 1 && #[Info][Vacances][Vacances (statut)]# == 1) || #[Info][Divers][Weekend]# == 1
Et en fonction des résultats, les deux plages horaires distinctes, fonctionne parfaitement depuis 3 ans…
Thierry