Temporisation sur capteur de présence Xiaomi dans alarme (perso)

j’ai déjà essayé au lieu du stop de faire : Scénario, le sélectionner et faire arrêter cela fait la même chose que le STOP, il ne s’arrête pas.

Alors la seule idée que j’ai est de revoir le fonctionnement de ton scénario.

Que veux-tu faire exactement ?

Quand j’active mon alarme je test mes capteurs et je suis juste embeté avec les capteurs de présence qui ne se remette à 0 avant un délais.
Il ne se reset qu’au bout de 90 secondes au moins le DANS me permettait d’activer mon alarme tranquillement au bout de 5 minutes, et grâce au DANS je pouvais tester durant les 2 premiers minutes que le capteur se remette bien à 0 si c’est le cas, l’alarme termine de s’activer sinon il arrête car un capteur détecte quelqu’un ou a un problème…

J’ai toujours pas compris…

Si j’ai bien compris ça ferait :
Je fait des actions…

Dans x minutes
( Si les capteurs sont à 0 alors j’active sinon j’zctive Pas)

Et du coup le sleep et le stop depuis le dans servent à rien non?

Je ne voudrais pas insister mais pourquoi n’étudie pas le sujet que je t’ai indiqué ?
Il te permettra d’arrêter tous les scénarios que tu veux même si ton scénario est à revoir.

1 « J'aime »

J’avais pas lu le 2eme :sweat_smile:

Sauf que ça supprime le cron donc ça arrêtera pas un scénario en cours…

Non mais toutes les instances des scénarios programmés dans le cron.
Maintenant, est-ce que cela convient ???

Exactement je confirme cela ne fonctionne pas.
ID de mon scénario : 48
$idScenario = ‹ 48 ›;
$crons = cron::searchClassAndFunction(‹ scenario ›, ‹ doIn ›, ‹ « scenario_id »: › . $idScenario . ‹ , ›);
if (is_array($crons)) {
foreach ($crons as $cron) {
if($cron->getPID() == getmypid()){
continue;
}
$cron->remove();
}
}

Comme indiqué par @Poumi ça ne stop pas le cron et pas mon scénario…

Je suis deg de pas pouvoir dire stop au scénario car cela fonctionnait exactement comme je voulais…

Pour te résumer le besoin:

Le scénario déclenche un dans 2 minutes puit fais des actions
Au milieu des actions il y a un sleep de 5 minutes

Le sous-scénario du dans est donc exécuté pendant ce sleep et il veut arrêter le scénario principal depuis celui-ci.

Question, c’est un peu brut je l’admet mais si je le désactive le scénario et réactive après ça ne l’arrêtera pas ?

Tu as résumé dans un language plus clair mais c’est exactement ça :wink:

Je t’assure que ça stoppé les scénarios dans le cron.
Ça a été testé a plusieurs reprises

je viens le faire il a continue a s’exécuter, mon alarme c’est activé au bout des 5 minutes

C’est peut-être parce que quelque chose d’autre le relance.
Toujours pas de log?

Mais ce n’est pas ce qu’il veut faire… il veut stopper un scénario en cours d’execution Pas supprimer une programmation

1 « J'aime »

Si voici les logs :

2020-09-01 21:07:02][SCENARIO] ************Lancement sous tâche**************
[2020-09-01 21:07:02][SCENARIO] Exécution du sous-élément de type [action] : do
[2020-09-01 21:07:02][SCENARIO] Exécution d'un bloc élément : 421
[2020-09-01 21:07:02][SCENARIO] Exécution du sous-élément de type [condition] : if
[2020-09-01 21:07:02][SCENARIO] Evaluation de la condition : [1 == 1] = Vrai
[2020-09-01 21:07:02][SCENARIO] Exécution du sous-élément de type [action] : then
[2020-09-01 21:07:02][SCENARIO] Exécution d'un bloc élément : 418
[2020-09-01 21:07:02][SCENARIO] Exécution du sous-élément de type [condition] : if
[2020-09-01 21:07:02][SCENARIO] Evaluation de la condition : [1 == 1  ] = Vrai
[2020-09-01 21:07:02][SCENARIO] Exécution du sous-élément de type [action] : then
[2020-09-01 21:07:02][SCENARIO] Exécution de la commande [Salon][Google Home][Custom Cmd] avec comme option(s) : {"background":"0","title":"Attention impossible d'activer l'alarme car le capteur de pr\u00e9sence de l'\u00e9tage est activ\u00e9.","message":"cmd=tts|value=\"Attention impossible d'activer l'alarme car le capteur de pr\u00e9sence de l'\u00e9tage est activ\u00e9.\"|sleep=2|vol=70"}
[2020-09-01 21:07:02][SCENARIO] Exécution de la commande [Systèmes][Telegram][Tous] avec comme option(s) : {"background":"0","title":"","message":"Attention impossible d'activer l'alarme car le capteur de pr\u00e9sence de l'\u00e9tage est activ\u00e9 \u00e0 21h07 le 1\/9\/2020."}
[2020-09-01 21:07:03][SCENARIO] Pause de 9 seconde(s)
[2020-09-01 21:07:12][SCENARIO] Exécution d'un bloc élément : 419
[2020-09-01 21:07:12][SCENARIO] Exécution du sous-élément de type [condition] : if
[2020-09-01 21:07:12][SCENARIO] Evaluation de la condition : [0 == 1] = Faux
[2020-09-01 21:07:12][SCENARIO] Exécution du sous-élément de type [action] : else
[2020-09-01 21:07:12][SCENARIO] Exécution d'un bloc élément : 420
[2020-09-01 21:07:12][SCENARIO] Exécution du sous-élément de type [condition] : if
[2020-09-01 21:07:12][SCENARIO] Evaluation de la condition : [1 == 1  ] = Vrai
[2020-09-01 21:07:12][SCENARIO] Exécution du sous-élément de type [action] : then
[2020-09-01 21:07:12][SCENARIO] Exécution de la commande [Salon][Google Home][Custom Cmd] avec comme option(s) : {"background":"0","title":"Attention impossible d'activer l'alarme car le capteur de pr\u00e9sence du salon est activ\u00e9.","message":"cmd=tts|value=\"Attention impossible d'activer l'alarme car le capteur de pr\u00e9sence du salon est activ\u00e9.\"|sleep=2|vol=70"}
[2020-09-01 21:07:12][SCENARIO] Exécution de la commande [Systèmes][Telegram][Tous] avec comme option(s) : {"background":"0","title":"","message":"Attention impossible d'activer l'alarme car le capteur de pr\u00e9sence du salon est activ\u00e9 \u00e0 21h07 le 1\/9\/2020."}
[2020-09-01 21:07:12][SCENARIO] Pause de 9 seconde(s)
[2020-09-01 21:07:21][SCENARIO] Exécution de la commande [Salon][Google Home][Custom Cmd] avec comme option(s) : {"background":"0","title":"","message":"cmd=tts|value=\"Activation de l'alarme arr\u00eat\u00e9e \"|sleep=2|vol=50"}
[2020-09-01 21:07:21][SCENARIO] Pause de 5 seconde(s)
[2020-09-01 21:07:26][SCENARIO] Exécution de la commande [Systèmes][Telegram][Tous] avec comme option(s) : {"background":"0","title":"","message":"Activation de l'alarme arr\u00eat\u00e9e \u00e0 21h07 le 1\/9\/2020."}
[2020-09-01 21:07:27][SCENARIO] Exécution de la commande [Salon][Lum_Salon][Off]
[2020-09-01 21:07:27][SCENARIO] Exécution de la commande [Maison][Timer_Alarme][Stop]
[2020-09-01 21:07:27][SCENARIO] Exécution d'un bloc élément : 425
[2020-09-01 21:07:27][SCENARIO] Exécution du sous-élément de type [action] : code
[2020-09-01 21:07:27][SCENARIO] Exécution d'un bloc code
[2020-09-01 21:07:27][SCENARIO] ************FIN sous tâche**************
------------------------------------
[2020-09-01 21:05:01][SCENARIO] Start : Lancement provoque.
[2020-09-01 21:05:01][SCENARIO] Exécution du sous-élément de type [condition] : if
[2020-09-01 21:05:01][SCENARIO] Evaluation de la condition : [0 == 0  ET 0 == 0] = Vrai
[2020-09-01 21:05:01][SCENARIO] Exécution du sous-élément de type [action] : then
[2020-09-01 21:05:01][SCENARIO] Exécution d'un bloc élément : 258
[2020-09-01 21:05:01][SCENARIO] Exécution du sous-élément de type [condition] : if
[2020-09-01 21:05:01][SCENARIO] Evaluation de la condition : [0 == 1] = Faux
[2020-09-01 21:05:01][SCENARIO] Exécution du sous-élément de type [action] : else
[2020-09-01 21:05:01][SCENARIO] Exécution d'un bloc élément : 417
[2020-09-01 21:05:01][SCENARIO] Exécution du sous-élément de type [condition] : in
[2020-09-01 21:05:01][SCENARIO] Evaluation de la condition : [2] = 2
[2020-09-01 21:05:01][SCENARIO] Tâche : 417 programmée à : 2020-09-01 21:07:01 (+ 2 min)
[2020-09-01 21:05:01][SCENARIO] Exécution de la commande [Salon][Google Home][Custom Cmd] avec comme option(s) : {"background":"0","title":"","message":"cmd=tts|value=\"Alarme activ\u00e9e dans 5 minutes\"|sleep=2|vol=50"}
[2020-09-01 21:05:01][SCENARIO] Pause de 5 seconde(s)
[2020-09-01 21:05:06][SCENARIO] Exécution de la commande [Systèmes][Telegram][Tous] avec comme option(s) : {"background":"0","title":"","message":"Alarme activ\u00e9e dans 5 minutes \u00e0 21h05 le 1\/9\/2020."}
[2020-09-01 21:05:06][SCENARIO] Pause de 10 seconde(s)
[2020-09-01 21:05:16][SCENARIO] Exécution de la commande [Salon][Google Home][Volume niveau] avec comme option(s) : {"background":"0","slider":30}
[2020-09-01 21:05:16][SCENARIO] Pause de 1 seconde(s)
[2020-09-01 21:05:17][SCENARIO] Exécution de la commande [Maison][Timer_Alarme][Run]
[2020-09-01 21:05:17][SCENARIO] Pause de 300 seconde(s)
[2020-09-01 21:10:17][SCENARIO] Exécution de la commande [Maison][Alarme_Totale][On]
[2020-09-01 21:10:18][SCENARIO] Exécution de la commande [Systèmes][Telegram][Tous] avec comme option(s) : {"background":"0","title":"","message":"Alarme activ\u00e9e \u00e0 21h10 le 1\/9\/2020."}
[2020-09-01 21:10:18][SCENARIO] Exécution de la commande [Salon][Google Home][Custom Cmd] avec comme option(s) : {"background":"0","title":"","message":"cmd=tts|value=\"Alarme activ\u00e9e\"|sleep=2|vol=50"}
[2020-09-01 21:10:18][SCENARIO] Pause de 5 seconde(s)
[2020-09-01 21:10:23][SCENARIO] Exécution de la commande [Salon][Camera][Allumer]
[2020-09-01 21:10:23][SCENARIO] Exécution de la commande [Salon][Google Home][Custom Cmd] avec comme option(s) : {"background":"0","title":"","message":"cmd=tts|value=\"La Cam\u00e9ra Foscam du salon est allum\u00e9e avec l'alarme.\"|sleep=1|vol=50"}
[2020-09-01 21:10:23][SCENARIO] Pause de 8 seconde(s)
[2020-09-01 21:10:31][SCENARIO] Exécution de la commande [Salon][Google Home][Stop]
[2020-09-01 21:10:31][SCENARIO] Pause de 1 seconde(s)
[2020-09-01 21:10:32][SCENARIO] Exécution de la commande [Maison][Timer_Alarme][Stop]
[2020-09-01 21:10:32][SCENARIO] Fin correcte du scénario

Si c’est ça, ok, ça ne marchera pas.

Ça pourrait fonctionner ça ?

« Question, c’est un peu brut je l’admet mais si je le désactive le scénario et réactive après ça ne l’arrêtera pas ? »

Pas à ma connaissance, mais je n’ai jamais testé.

Je pense que désactiver va empêcher les prochaines exécutions, pas arrêter celle en cours

J’aurais vu une structure comme ça pour le code…