Depuis quelques mois, j’ai un scénario qui se lance tous les jours à 2h00 (Cron).
La config du scénario est la suivante :
Tous les jours du lundi au vendredi :
. *Action1/ A 7h30 : Ouverture du volet
. *Action2/ A Coucher du soleil -2h : Fermeture partielle du volet
. *Action3/ A Coucher du soleil +30min : Fermeture complète du volet.
Du coup, ça donne ça :
La commande : time_op(#[Maison][Météo][Coucher du soleil]#,-120) retourne en ce moment 1934, ce qui correspond bien à l’heure du coucher du soleil -2h.
Je me l’envoie par notification au déclenchement de la condition A, et je reçois bien 1934.
LE PROBLEME est que l’Action n°2 s’exécute tous les jours à heure fixe (23h).
Pour information, ça fonctionnait très bien il y a quelques semaines, je ne saurai dire quand est ce que le problème est apparu.
Salut,
Si tu utilises le plugin weather, il y a un souci avec les heures de lever et coucher du soleil qui passent quelque fois à 1h du matin (lever et coucher)
Utilise le plugin héliotrope à la place.
Ou plus simple, le faire soi même en php (via un bloc code) pour ne dépendre d’aucun plugin.
Ca se fait en quelques lignes.
Chez moi j’ai un scénario éphéméride qui est lancé chaque jour à minuit et met à jour un virtuel avec l’heure du lever et coucher du soleil du jour. Mais sinon on peut aussi le mettre directement dans le scénario en question.
J’ai préféré le scénario ephemeride pour mutualiser la donnée avec tous mes scénarios qui pourraient en avoir besoin.
$scenario->setLog('Récupération de la latitude et longitude à partir des paramètres de Jeedom');
$latitude = config::bykey('info::latitude');
$longitude = config::bykey('info::longitude');
$scenario->setLog('Récupération du calendrier solaire du jour');
$sun_info = date_sun_info(time(), $latitude, $longitude);
$leverSoleil = $sun_info['sunrise'];
$coucherSoleil = $sun_info['sunset'];
cmd::byString('#[Maison][v_ephemeride][leverSoleilJ]#')->event(date('Gi',$leverSoleil));
cmd::byString('#[Maison][v_ephemeride][coucherSoleilJ]#')->event(date('Gi',$coucherSoleil));
Bonjour,
C’est une très mauvaise idée d’utiliser un plugin comme weather qui dépend d’un site externe pour avoir l’heure de lever ou de coucher du soleil. Ces heures se calculent en local.
Cherchez le forum et utilisez un plugin comme héliotrope ou un bloc code.
Sinon attendez vous à être réveillé à nouveau dans le futur par des comportements erratiques de volets. C’est inévitable.
au fait, le plugin weather retourne bien 2134, j’enlève ensuite 2h avec time_op(), ce qui fait 1934, et c’est exactement ce que me retour la notification tel que décrit dans ma capture d’écran.
Du coup, comment se fait il que :
l’action : A time_op(#[Maison][Météo][Coucher du soleil]#,-120), se déclenche à 23h00 pile, tous les jours,
et
l’action qui se déclenche à la condition A, qui consiste à afficher le résultat de la même commande ci-dessus, retourne 1934 ???
L’analyse que j’en fait et qui doit correspondre au bug :
1 - les scenarios travaillent me semblent-il à la seconde (2 modifs de déclencheur dans la même seconde = 1 déclenchement)
2 - tu as (bug) une heure de coucher à 01:00. Du coup, le scenario se déclenche, planifie ton A à 23:00
3 - dans la même seconde ou pendant que le scenario tourne encore (pas de relance), l’heure de coucher repasse à 21:34, Ton scenario NE SE RELANCE PAS, mais l’heure de coucher est bien modifiée.
4 - à 23:00 (correspond au A), ton scenario se lance et notifie 19:34, qui correspond à l’heure du coucher actuelle - 2h
Tu peux historiser ta commande #[Maison][Météo][Coucher du soleil]# pour voir toutes les valeurs prises, tu auras ainsi le fin mot de l’histoire
Et +1 pour un calcul interne des heures de coucher/lever