Utilisation de l'heure en déclencheur

ok j’ai corrigé
Tks @tomitomas

Salut,
Sur de votre coup avec le point ?

Salut,

C’est pour concaténer donc ajouter un 0 devant l’info de la commande des minutes (qui est d’origine avec un seul 0)

Je me posais la question du point après le 0 car je ne connaissais pas cette méthode.

Si je fais État == 1 pour lancer le scénario ça va le lancer quand je vais activer mon réveil et non quand il sera l’heure

Je pensais plus à un truc style SI #time# == [reveil] && [etat] == 1

C est bien ce qui est utilisé en php pour concaténer 2 string


sur la partie formatage de l’heure, ya des fonctions qui existent qui permettent de faire plus simple en théorie => tous pleins de posts sur le forum qui en parlent


ca ne fonctionne pas, il faut que les déclencheurs « changent » pour que ca déclenche le scénario. ce n’est pas le cas de #time#

perso je verrai ca autrement, mais ça dépend comment est ce que tu « fonctionnes ».

  1. Si tu considère que ton réveil est forcément réglé avec 0h, alors je ferai un déclencheur programmé : tous les jours à 1h00 (par exemple)
    => tous les jours à 1h ton réveil se met à jour

OU

  1. Si tu veux que le réveil se mette à jour à n’importe quel moment, alors je mettrai plusieurs déclencheurs : etat, minute_info, heure_info
    => si l’un des 3 est modifié, alors le réveil se met à jour

dans les 2 cas, les scénario ressemblerait à :

SI etat ==1
ALORS
  A : heur / minute
     ACTION : lancer musique (ou ce que tu veux faire)
SINON
  action : remove_inat
1 « J'aime »

Salut @tomitomas :wink:
C’est aussi ce que j’écrivais. Je n’avais pas parlé de déclencheur.

Bonjour,

merci à tous pour vos réponses

j’ai réussi à obtenir le bon format en mettant la syntaxe suivante :

formatTime(gmdate( 'Hi', #[Chambre ami et bureau][Réveil avec la lumière du soleil][heure_info]#*3600+#[Chambre ami et bureau][Réveil avec la lumière du soleil][minute_info]#*60))

J’ai activé le réveil et je l’ai programmé pour 06h00.

J’ai ensuite crée un scénario avec Déclenchement Programmé à 23h49 pour tester mais sinon pour 03h00 en fonctionnement standard. Pour le mettre à jour, première méthode conseillé par @tomitomas

Voici le scénario que j’ai mis pour essayé et voir les logs :

------------------------------------
[2022-07-16 23:49:02][SCENARIO] -- Start : Scenario execute automatiquement sur programmation.
[2022-07-16 23:49:02][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Chambre ami et bureau][Réveil avec la lumière du soleil][Etat]# == 1
[2022-07-16 23:49:02][SCENARIO] Evaluation de la condition : [1 == 1  ] = Vrai
[2022-07-16 23:49:02][SCENARIO] - Exécution du sous-élément de type [action] : then
[2022-07-16 23:49:02][SCENARIO] Exécution d'un bloc élément : 88
[2022-07-16 23:49:02][SCENARIO] - Exécution du sous-élément de type [condition] : at #[Chambre ami et bureau][Réveil avec la lumière du soleil][Réveil]#
[2022-07-16 23:49:02][SCENARIO] Evaluation de la condition : ["06h00"] = 06h00
[2022-07-16 23:49:02][SCENARIO] Bloc type A : 88, heure programmée invalide : 06h00
[2022-07-16 23:49:02][SCENARIO] Fin correcte du scénario

Avec cette ligne
Bloc type A : 88, heure programmée invalide : 06h00
je pense que le scénario ne fonctionne pas car 06h00 n’est pas un format qu’il apprécie. Il préférerait surement 0600

En mettant dans le bloc A

#[Chambre ami et bureau][Réveil avec la lumière du soleil][heure_info]#/#[Chambre ami et bureau][Réveil avec la lumière du soleil][minute_info]#

Cela ne fonctionne pas non plus.

Je poursuis mes recherches pour obtenir un format 0600

Merci pour vos lumières !

Merci problème résolu

j’ai crée une info « backréveil » qui récupère l’information du réveil en format 09h00 pour le transformer en 900. Grace à ce topic Transformer proprement format heure: 07 h 36 -> 0736 - #18 par olive

qui en résulte dans les logs :

[2022-07-17 00:20:02][SCENARIO] Start : Scenario execute automatiquement sur programmation.
[2022-07-17 00:20:02][SCENARIO] Exécution du sous-élément de type [condition] : if #[Chambre ami et bureau][Réveil avec la lumière du soleil][Etat]# == 1  
[2022-07-17 00:20:02][SCENARIO] Evaluation de la condition : [1 == 1  ] = Vrai
[2022-07-17 00:20:02][SCENARIO] Exécution du sous-élément de type [action] : then
[2022-07-17 00:20:02][SCENARIO] Exécution d'un bloc élément : 88
[2022-07-17 00:20:02][SCENARIO] Exécution du sous-élément de type [condition] : at #[Chambre ami et bureau][Réveil avec la lumière du soleil][backreveil]#
[2022-07-17 00:20:02][SCENARIO] Evaluation de la condition : [900] = 900
[2022-07-17 00:20:02][SCENARIO] Tâche : 88 programmée à : 2022-07-17 09:00:00
[2022-07-17 00:20:02][SCENARIO] Fin correcte du scénario

Merci encore pour vos réponses, à bientôt :slight_smile:

(Perso je n aime pas trop utiliser les horaires 2h ou 3h, a cause des chgt d horaire qui peuvent parfois foutre la grouille)

5 « J'aime »

Etant donné que réduit le choix du réveil entre 5h et 12h je pense je n’aurais pas de soucis

Hier en faisant mes tests j’ai lancé le scénario pour voir ce que les logs répondait.
J’ai ensuite remis la mise à jour scénario à 3h en réglant les réveils sur OFF.

Mais quelque s’est quand même passé. Les réveils respectifs des deux chambres se sont quand même lancés.

Le scénario est basé sur un réveil doux avec le soleil en ouvrant les volets, les volets des chambres se sont ouvert. Les volets des pièces de vies s’ouvrent également si un des réveils à été programmés et ils se sont ouvert aussi.

J’imagine que si je ne fais pas de test ça n’arrivera plus. Mais y’a t-il un moyen de « clear » des actions enclenchées?

Oui c est deja ce que je t ai indiqué plus haut mais que tu n as pas appliqué :slight_smile:

==>> la partie sinon realise ce que tu demandes

Pour la 1ere image oui
Pour la derniere non

Edit :
non non c est pas bon, j ai lu trop vite !

Le remove_inat supprime TOUS les bloc A du scenario entier, et pas seulement celui de ton bloc SI

Du coup j’ai fais ça

toujours pas bon :slight_smile:

normalement, avec ta config, le cas ne devrait pas se présenter et tu ne devrais pas avoir besoin d’un remove_inat

par précaution, tu peux en ajouter un seul dans un bloc ACTION dédié, tout en haut de ton scénario => 1ere exécution


ya tout un tas de façon d’écrire un scénario, c’est pour ca que je te disais que ca dépendait comment tu allais t’en servir

hyopothèse :

  • déclencheur à 3h du matin
  • heure/minute = 0900 (=> 9h00)
SI etat ==1
ALORS
  A : heure / minute
     ACTION : lancer musique (ou ce que tu veux faire)

ici à 3h du matin, on lance le scénario : on regarde si l’état égale à 1, si oui, alors on programme un « sous-scenario » à heure/minute => 09h00
si entre 3h et 9h, tu changes l’état du réveil pour le faire passer 0, ca ne changera rien, la sous-programmation a déjà été faite, donc à 9h l’action se réalisera


autre possibilité :

A : heure / minute
   SI etat ==1
   ALORS
     ACTION : lancer musique (ou ce que tu veux faire)

ici le scénario s’execute toujours à 3h, mais la seule action qu’il fera c’est de programmer un sous-scénario à heure/minute => 09h00.
à 9h le sous-scénario se lance, il commence par vérifier si l’état est à 1 => il lance l’action, sinon il ne fait rien.

les + :
tu vérifies au dernier moment que les états sont bien ceux que tu attends

les - :
ca programme des sous-scénario potentiellement « pour rien ».
si a 8h50 tu changes l’état du réveil en pensant agir pour le lendemain, c’est perdu , c’est bien le réveil du jour J à 9h qui ne s’executera pas.



bref en résumé :
si tu es sur de ne pas changer l’état de ton réveil entre 3h du mat et l’heure du réveil → supprime tous les remove_inat que tu as mis. Ajoute un bloc Action en tout 1er bloc du scénario, et ajoute une seule action remove_inat comme toute 1ere action

1 « J'aime »

dernière chose …

là tu es en train de me parler de l’heure de l’action du réveil (=> tu as le droit de te lever à l’heure que tu veux :slight_smile: )

moi je te parlais de l’heure du déclencheur qui va activer le scénario => j’évite de mettre un déclencheur entre 2h et 3h pour les histoires de changements d’heure.
je te conseillerai donc de mettre le déclencheur à 1h ou à 4h par exemple

Super merci j’ai tout compris
Les actions qui découlent du blocs A
Le changement d’heure au milieu de la nuit qui peut faire bug le scenario

Mais le remove_inat, je l’ai déjà utilisé dans d’autres scénarios, j’arrive pas trop à cerner comment l’utiliser

c’est ce que j’ai édité plus haut :

un exemple d’utilisation dans mon cas :
tous les matin à 4h je lance un scénario qui programme :

  • la fermeture des volets au couché du soleil
  • l’envoie d’une notif 10min avant la fermeture

dans la notif je peux envoyer une commande « annuler » qui permet de dire que je ne veux pas que les volets se ferment => ca rééxécute le scénario et si cette info « annuler » (par un tag) est positionnée alors je supprime les programmations de fermeture
ca se traduit en début de scénario par :

Si je comprends bien, mon scénario avec toute les actions remove_inat ne sont pas bonne?

Car le bloc SI #[Chambre couple][Programmation du réveil][Etat]# == 1 n’est pas rempli
Donc il va annuler le premier #[Chambre ami et bureau][Programmation du réveil][Etat]# == 1

Le mieux serait de séparer en deux scénarios?

EDIT

Du coup j’ai séparé les scénarios, puisqu’on peut les voir comme deux entités différentes.
le 1


Le 2

Avec un remove_inat en en tête comme tu m’as conseillé.

Je réfléchi aussi à l’hypothèse de mettre le A avant tout pour pouvoir annulé si on est réveillé avant

Citationsi
a 8h50 tu changes l’état du réveil en pensant agir pour le lendemain, c’est perdu , c’est bien le réveil du jour J à 9h qui ne s’executera pas.

En général on programme la veille pour lendemain

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.