Utilisation de l'heure en déclencheur

Bonjour,

j’ai crée un virtuel pour activer ou désactiver une fonction réveil (avec la lumière du soleil = les volets roulants)
reveil visu
L’activation ou la désactivation sert simple a la grasse matinée :slight_smile:

Premier petits soucis que je n’arrive pas à régler; le format de l’heure. J’aimerais afficher les minutes en 00 et non h0 , h1.

Puis j’aimerais l’implanté dans un scénario. J’ai pensé à utiliser le temps comme déclencheur. Mais je sais pas si c’est la bonne méthode.

Puis je voulais être aiguillé vers des topics qui parle de réveil avec une enceinte pour lancer une playlist spotify doucement au réveil ou une radio par exemple. Cela m’intéresse beaucoup :slight_smile:

Merci d’avance

1 « J'aime »

Salut ,

L’info numérique ID 371 essayer en mettant min 00 max 59 —> sauvegarder.
Pour le scénario :

Si État ==1 —> action

Et pour Spotify il faut aussi une action dans le scénario pour lancer la musique.

Un peu de lecture :slight_smile:

Bonjour

pour les minutes sur 2 caractères

remolacer dans la commande 374 la commande info minutes apres le ‹ h › par une fonction ternaire :

([commande info minutes] < 10 ? '0'.[commande info minutes] : [commande un info minutes])

Je suis sur téléphone donc je n’arrive pas à faire les guillemets simple autour du zéro après le ? Il faut bien un guillemet avant et après le zéro EDIT c’est corrigé

il suffit d’utiliser le formatage avec la touche </> pour ne pas avoir ce problème :wink:

2 « J'aime »

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