Variable pour lancer scénario 30 mins avant une alarme

bonjour, j’ai besoin de lancer un scénario 30 minutes avant le début d’une alarme google

j’ai trouver comme expression : time_op(#[chambre][GH Chambre][Alarme 1]#,-30)

mais ça ne fonctionne pas , ça me donne comme résultat -1

l’expression #[chambre][GH Chambre][Alarme 1]# me donne comme valeur :

20-04-2020 07:00

la date empêche donc l’expression time_op de fonctionner correctement

merci par avance de votre aide

Bonsoir,
A priori tu as quand même besoin de comparer ton expression à quelque chose.
Il faudrait plutôt écrire :
SI #time# >= time_op(#[chambre][GH Chambre][Alarme 1]#,-30)

Edit: je n’avais pas vu la fin de ton post. Effectivement, le format de ton expression doit être du genre HHMM

oui j’ai la date qui viens polluer le résultat mais je n’est pas d’autre commande possible pour « extraire » l’heure de la prochaine alarme du google home sans la date avec

a moins que je passe par la 1er expression pour avoir la date et l’heure, et ensuite une seconde pour utiliser uniquement l’heure afin d 'utiliser cette fois la valeur avec -30

mais honnêtement pas de mon niveau je ne vois pas comment faire

Es-tu obligé de récupérer l’heure via ton GH?
Comment est déterminée cette alarme?
Jeedom peut te fournir l’heure…
Sinon, tu peux retravailler ta chaine de caractère pour ne conserver que ce qui t’intéresse en tapant :

formatTime(#[chambre][GH Chambre][Alarme 1]#)

Salut,

Faut faire ça en bloc code avec récupération dans une variable par exemple… le format de retour est toujours exactement sous cette forme?

J’avais déjà mis un signet pour regarder demain :wink:

1 « J'aime »

j’ai d’abord envisagé de passer par un virtuel réveil, mais pas pratique j’ai tellement l’habitude d’interagir avec les google home que régler mon réveil chaque jours sur jeedom n’est pas des plus pratique j’ai testé sur plusieurs jours sans conviction.

Le but et le soir de demander a google de me réveiller a X heure avan d’aller dormir, et donc de lancer le matin le scenario de réveil en fonction ( ce scénario lance une simulation d’aube sur des bandeaux led, l’allumage des lumières, tv ect…) d’ou le besoin du démarrage 30 minutes avant le réveil c’est la durée de la simulation d’aube.

j’avais envisager d’utiliser l’heure de mon réveille iphone mais etant sur IOS pas possible.

@Salvialf merci ^^, oui le retour est toujours sous la forme JJ-MOIS-ANNEE HH:MINS

j’avance de plus en plus dans la maitrise des scénarios (celui-ci est d’ailleurs une usine a gaz travailler depuis des jours) mais les expressions sont pas mon fort et en bloc code alors la encore moins je suis admiratif des blocs code présent sur le forum

ah oui bonne idée, mais ça ne passe pas

  • formatTime(#[chambre][GH Chambre][Alarme 1]#)

Résultat

Je vais évaluer : « 20h-0 »
Résultat : 20h-0

Si ça te dit post ici une rapide explication et copie d’écran du scénario des fois que je puisse en passer une partie directement en code

formatTime ça passe une heure de ce format 0700 à ce format 07h00

1 « J'aime »

le scénario est lancé par une verif a 5h tout les jours de l’alarme présente sur google

il lance l’allumage du bandeau led sur différentes couleurs pour simuler l’aube, et termine ensuite par lancer un scénario plus Classic de routine matinale



il lance ensuite le scénario suivant a la fin

1 « J'aime »

au besoin j’ai trouvé quelque commandes différentes de récupérations de l’alarme google

mais toujours le même formats

En y réfléchissant le bloc code n’est pas indispensable, tu peux utiliser la fonction substr() pour récupérer l’heure avec éventuellement un str_replace() si besoin pour enlever les 2 points :

Je vais quand même essayer de regarder en bloc code car ça devrait grandement simplifier ton scénario

1 « J'aime »

merci beaucoup pour ton temps et ton retour, je regarde des demain plus attentivement les deux fonctions proposé et leurs applications pour tester

Encore mieux:

time_op(date('Hi',strtotime(#[chambre][GH Chambre][Alarme 1]#)),-30)

J’suis encore long à la détente ce soir :pensive:

str_replace(":", "", substr(#[chambre][GH Chambre][Alarme 1]#, -1, 5) )
devrait te sortir ton heure de réveil formaté correctement.

Je ferai un petit virtuel avec la formule en calcul et un petit cron dessus la nuit pour récupérer l’heure et soir la sticker en info soit en variable, que tu n’aura plus qu’à utiliser dans ton scénario.
L’intérêt étant que le jour où tu passes sur Alexa tu n’a pas tous tes scenario a reprendre mais uniquement ton virtuel.

1 « J'aime »

Ah j’étais pas trop à côté de la plaque merci :wink:

L’opération sur la date me paraît plus approprié non?

date('Hi',strtotime('#[chambre][GH Chambre][Alarme 1]#'))

J’ignorais que jeedom digerait les strtotime !!

Toi t’as bon, moi c’est de la bricole (qui doit fonctionner, cela dit …)

Résultat

Je vais évaluer : 2330
Résultat : 2330

il me prend plus l’heure de l’alarme qui est a 7H00 :confused:

J’ai testé sur le tel avec le retour de ta commande et le testeur m’a renvoyé 0630.

Essaye d’enlever les apostrophes autour de la commande pour voir ?

Essayes juste ça sans le time_op aussi

date('Hi',strtotime(#[chambre][GH Chambre][Alarme 1]#))

time_op(date(‹ Hi ›,strtotime(#[chambre][GH Chambre][Alarme 1]#)),-30)

Résultat

Je vais évaluer : 630
Résultat : 630

yessss bingo , me reste a mettre ça dans mon bloc SI et voir demain matin le résultat ^^

je retient ton idée de virtuel @axelpg qui effectivement me permettrais d’exploiter plus facilement le résultat

edit : je dit des bêtises c’est pas un bloque Si qu’il me faut en début de scenario mais un bloc A :confused:

Tu obtiens le même retour avec cette expression:

date('Hi',strtotime(#[chambre][GH Chambre][Alarme 1]#))