Scenario Coucher de soleil

Hello,
Après la correction de mon erreur dans le virtuel, mon scenario fonctionne enfin !!
Merci à tous pour votre aide !!

Bonjour ,
Suite aux différents échange de ce post , j’ai remodelé mes scénarios ( que je trouve bcp plus simple maintenant )

Intégration d’un virtuel pour lever/coucher du soleil
Je n’utilise plus heliotrope ( meme si c’est un tres bon plugin )
scénario allégé mais fonctionnel .

Exemple pour la fermeture des volets , avec tempo de fermeture par pièce ( volontaire de ma part )

clin d’oeil en particulier pour mich0111 , +

Salut,

DANS 30 à la place d’un sleep de 1800 serait mieux :wink:

Bonsoir,

Bon, je ne comprends plus rien !
Hier soir, cela avait fonctionné.
Ce soir, gros fail:

-----------------------------------
[2023-03-03 03:00:20][SCENARIO] Start : Scenario execute automatiquement sur evenement venant de : [Maison][Jour-Nuit][Coucher_Soleil] (1837).
[2023-03-03 03:00:20][SCENARIO] Exécution du sous-élément de type [condition] : at at time_op(#[Maison][Jour-Nuit][Coucher_Soleil]#, rand(10, 20))
[2023-03-03 03:00:20][SCENARIO] Evaluation de la condition : [at 1852] = at 1852
[2023-03-03 03:00:20][SCENARIO] Erreur : Bloc type A : 131, heure programmée invalide : at 1852

Je crois que je vais enlever la commande RAND pour voir si j’arrive à avoir un fonctionnement normal à l’heure exacte…

Bonjour,
J’utilise depuis plusieurs années un scénario avec le coucher du soleil (bloc code de quelques lignes) et des bloc À et cela fonctionne parfaitement . Si tu veux je te fais une capture.

Tant que tu feras un déclenchement provoqué avec une valeur horaire, ca ne marchera pas.
Tu dois faire un scénario avec lancement programmé à heure constante du style 1h00 et, dans ce scénario, avoir le bloc :

A time_op(#lever soleil#, rand(...))
  Execution de tes commandes

Bonjour
le problème ne vient pas du rand !
(Je viens d’essayer, pour être certain, cela fonctionne parfaitement)

[2023-03-04 10:33:11][SCENARIO] -- Start : Scenario lance manuellement.
[2023-03-04 10:33:11][SCENARIO] - Exécution du sous-élément de type [condition] : at time_op(#[-----][Météo -----][Coucher du soleil]#,rand(10,20))
[2023-03-04 10:33:11][SCENARIO] Evaluation de la condition : [1854] = 1854
[2023-03-04 10:33:11][SCENARIO] Tâche :  3799  programmée à :  2023-03-04 18:54:00
[2023-03-04 10:33:11][SCENARIO] Fin correcte du scénario
------------------------------------

Donc il y a des chance que ça vienne de ta formule (du "#[Maison][Jour-Nuit][Coucher_Soleil]# "), c’est comme si, il y avit un « at » dedans
Ton log indique

Quand il devrait indiquer simplement :

Evaluation de la condition : [1852] = 1852

Tu ne veux vraiment pas essayer de prendre le Plugin Weather et utiliser la commande Coucher du soleil ?

PS : Bonjour @mich0111 le scénario c’est lancé avant 18h52, je n’aurait pas utiliser ce déclencheur

, mais là, le problème ne viens pas du déclencheur…

Bonjour,
Mon scénario fonctionne parfaitement avec en déclenchement programmé 4h20 (tous les jours) et time_op(variable(sunset),22) dans le A du scénario

Bonjour Naif,
merci pour ce retour mais… personne ne doute que votre scénario fonctionne parfaitement (et il est classique donc pas de soucis de ce coté)
Le souci de Valyno est l’écriture du A
Et il pensait

(que le problème, venait du Rand)
Comme vous n’utilisez pas de RAND dans votre formule, ça ne l’aide pas beaucoup.
Mais

  1. le problème ne vient pas du rand
  2. Si vous voulez l’aider c’est plutot de lui indiquer comment vous calculez votre variable(sunset), car c’est cette valeur qui pêche dans son scénario. (et comment cette valeur est calculé n’apparaitra pas dans votre capture du scénario. Or c’est de comment vous la calculer dont il a besoin…)

@Henri
Mes variables « sunset » et « sunrise » sont calculées avec un code au début du scénario (merci @ kiboost:
$lat = xxxxxx;
$long = xxxxx ;
$sun_info = date_sun_info(time(), $lat, $long);
$sunrise = date(« Hi », $sun_info[« sunrise »]);
$sunset = date(« Hi », $sun_info[« sunset »]);
$scenario->setData(‹ sunrise ›, $sunrise);
$scenario->setData(‹ sunset ›, $sunset);
et c’est tout

1 « J'aime »

@valyno
je vous conseil donc de soit utiliser le plugin Weather, soir utiliser le code de naif (kiboost) et ainsi avoir une valeur pleinement fonctionnel sous la forme « XXXX » (et non « at XXXX » ou autre)

la suite avec Rand:


Bonne journée

Montre donc ton scénario y compris le bloc code que tu as écrit pour obtenir les heures solaires.
Tu as forcément commis une erreur. A l’exception de l’affection dans le virtuel, mon code est une séquence linux tout ce qu’il y a de plus classique.

Bonsoir,
Merci encore à tous de vous pencher sur mon problème.
Ce soir encore le scenario n’a pas fonctionné, alors qu’il avait fonctionné le 02/03.
Je suis persuadé c’est la commande RAND qui génère l’erreur.
Voici les logs :

------------------------------------
[2023-03-02 03:00:58][SCENARIO] Start : Scenario execute automatiquement sur evenement venant de : [Maison][Jour-Nuit][Coucher_Soleil] (Valeur : 1835).
[2023-03-02 03:00:58][SCENARIO] Exécution du sous-élément de type [condition] : at time_op(#[Maison][Jour-Nuit][Coucher_Soleil]#,rand(1,10))
[2023-03-02 03:00:58][SCENARIO] Evaluation de la condition : [-1] = -1
[2023-03-02 03:00:58][SCENARIO] Erreur : Bloc type A : 131, heure programmée invalide : -1
------------------------------------
[2023-03-02 09:29:15][SCENARIO] Start : Scenario execute automatiquement sur evenement venant de : [Maison][Jour-Nuit][Coucher_Soleil] (1835).
[2023-03-02 09:29:16][SCENARIO] Exécution du sous-élément de type [condition] : at #[Maison][Jour-Nuit][Coucher_Soleil]#
[2023-03-02 09:29:16][SCENARIO] Evaluation de la condition : [1835] = 1835
[2023-03-02 09:29:16][SCENARIO] Tâche : 131 programmée à : 2023-03-02 18:35:00
[2023-03-02 09:29:16][SCENARIO] Fin correcte du scénario
------------------------------------
[2023-03-02 18:35:05][SCENARIO] ************Lancement sous tâche**************
[2023-03-02 18:35:05][SCENARIO] Exécution du sous-élément de type [action] : do
[2023-03-02 18:35:05][SCENARIO] Exécution de la commande [Bureau][Volet Bureau][Fermer]
[2023-03-02 18:35:05][SCENARIO] Exécution de la commande [Salon TV][Volet Salle à Manger][Fermer]
[2023-03-02 18:35:05][SCENARIO] Exécution de la commande [Bibliothèque][Volet Biblio Droite][Fermer]
[2023-03-02 18:35:05][SCENARIO] Exécution de la commande [Bibliothèque][Volet Biblio Gauche][Fermer]
[2023-03-02 18:35:05][SCENARIO] Exécution de la commande [Chambres Parents][Volet Chb Parents Gauche][Fermer]
[2023-03-02 18:35:05][SCENARIO] Exécution de la commande [Chambres Parents][Volet Chb Parents Droite][Fermer]
[2023-03-02 18:35:05][SCENARIO] Exécution de la commande [Salle de bain Parents][Volet Salle Bain][Fermer]
[2023-03-02 18:35:05][SCENARIO] Exécution de la commande [Chambre Nicolas][Volet Bureau][Fermer]
[2023-03-02 18:35:05][SCENARIO] Exécution de la commande [Chambre Nicolas][Volet Chb][Fermer]
[2023-03-02 18:35:05][SCENARIO] Exécution de la commande [Bow Window][Volet VerriereAI][Monter]
[2023-03-02 18:35:06][SCENARIO] Exécution de la commande [Maison][iPhone][Notification] avec comme option(s) : {"background":"0","title":"Maison","message":"Fermeture des volets"}
[2023-03-02 18:35:06][SCENARIO] ************FIN sous tâche**************
------------------------------------
[2023-03-02 18:42:29][SCENARIO] Start : Scenario lance manuellement.
[2023-03-02 18:42:29][SCENARIO] Exécution du sous-élément de type [condition] : at at time_op(#[Maison][Jour-Nuit][Coucher_Soleil]#, rand(10, 20))
[2023-03-02 18:42:29][SCENARIO] Evaluation de la condition : [at 1847] = at 1847
[2023-03-02 18:42:29][SCENARIO] Erreur : Bloc type A : 131, heure programmée invalide : at 1847
------------------------------------
[2023-03-03 03:00:20][SCENARIO] Start : Scenario execute automatiquement sur evenement venant de : [Maison][Jour-Nuit][Coucher_Soleil] (1837).
[2023-03-03 03:00:20][SCENARIO] Exécution du sous-élément de type [condition] : at at time_op(#[Maison][Jour-Nuit][Coucher_Soleil]#, rand(10, 20))
[2023-03-03 03:00:20][SCENARIO] Evaluation de la condition : [at 1852] = at 1852
[2023-03-03 03:00:20][SCENARIO] Erreur : Bloc type A : 131, heure programmée invalide : at 1852
------------------------------------
[2023-03-04 03:00:19][SCENARIO] Start : Scenario execute automatiquement sur evenement venant de : [Maison][Jour-Nuit][Coucher_Soleil] (1838).
[2023-03-04 03:00:19][SCENARIO] Exécution du sous-élément de type [condition] : at at time_op(#[Maison][Jour-Nuit][Coucher_Soleil]#, rand(10, 20))
[2023-03-04 03:00:19][SCENARIO] Evaluation de la condition : [at 1857] = at 1857
[2023-03-04 03:00:19][SCENARIO] Erreur : Bloc type A : 131, heure programmée invalide : at 1857
------------------------------------
[2023-03-04 19:00:18][SCENARIO] Start : Scenario lance manuellement.
[2023-03-04 19:00:18][SCENARIO] Exécution du sous-élément de type [condition] : at #[Maison][Jour-Nuit][Coucher_Soleil]#
[2023-03-04 19:00:18][SCENARIO] Evaluation de la condition : [1838] = 1838
[2023-03-04 19:00:18][SCENARIO] Tâche : 131 programmée à : 2023-03-05 18:38:00
[2023-03-04 19:00:18][SCENARIO] Fin correcte du scénario

Le jour où j’ai modifié le scenario sans inclue la commande RAND, les volets se sont fermés.
Si l’on regarde les logs d’aujourd’hui, on voit le message « heure programmée invalide »’ et l’heure affichée est « at 1857 », cad que le scenario a bien calculé 18:38 + 20 mn en plus choisi aléatoirement mais il a rajouté « at » dans la valeur calculée !
J’ai modifié le sceario en supprimant la commande RAND, et j’ai exécuté manuellement le scenario et il m’a programmé la fermeture des volets pour demain, à 1838 (heure de coucher d’aujourd’hui, logique, le virtuel n’a pas encore calculé la valeur de demain.
On peut voir sur les jours précédents que le scenario trouvait que la valeur randomisée était invalide.
Donc, demain à 18:38, mes volets devraient se fermer à 18:28.
Ensuite je ferai l’essai en modifiant la commande pour ajouter +10mn et voir si cela fonctionne…

Affaire à suivre !

Et si tu passais par une variable intermédiaire pour faire ton calcul.
Ensuite le résultat de cette variable (ou du tag) dans le DANS.
Ça donnerait quoi ?

Parce que, dans le testeur d’expression, le time_op fonctionne. Possible que ce soit incompatible avec le DANS.

Bonsoir,

J’ai rien contre l’ensemble des réponses ici, mais passer par du code, des variables, un virtuel, bientôt on va lui demander de recompiler le noyau de l’os :grin:

Plusieurs réponses, solutions possibles lui on été données avec des directions différentes.
=> Si on voulait le perdre, on ne s’y prendrai pas mieux
=> Et cela ne fonctionne toujours pas

À mon avis, il suffit de programmer un scénario 04h00
Avec un bloc A et le time_op(coucher,+rand(1,10))
Et c’est tout
L’heure du coucher étant issue de plugin météo ou d’heliotrope.

C’est comme cela qu’il doit être préconisé de faire, surtout pour une réponse à ce genre de question.

2 « J'aime »

Et pour compléter, je n’utilise pas le plugin héliotrope et j’utilise weather pour la météo.
Je ne me sers pas de l’heure du coucher du soleil mais du crépuscule et de l’aube civil pour mes automatismes.
A ma connaissance, aucun de ces plugins ne les fournit.

Bonjour,

Héliotrope te fournit même le crépuscule maritime :sweat_smile:

1 « J'aime »

Ok, je l’ignorais.
Pour autant, je ne vois vraiment pas l’intérêt que j’ai à installer un plugin que je remplace par 5-6 lignes de code.
Pour les débutants, je ne dis pas, mais aucun intérêt pour moi.
Après tout, on est pas obligé d’installer tous les plugins, juste ceux dont on a réellement besoin.
Et je corrige, je n’utilise pas weather non plus, Météo France de Lunarok est beaucoup intéressant à mes yeux.
Chacun voit midi à sa porte.

@mich0111
Bonjour,
Votre code m’intéresse mais je ne sais pas comment « l’aboutonné » avec un virtuel et avoir ces infos dans ce dernier