[RESOLU] Alarme CRON & scénario

#1

Bonjour,

J’ai voulu créer un scénario qui se déclenche lorsqu’une alarme cron est activée, mais ça ne veut pas fonctionner, je ne sais pourquoi.

Voilà mon scénario :

 trigger:
  title: test
  condition_template: alarm == 24
  active: 1
  code: alarm
  user: 1
conditions: []
actions:
  - code: deviceType.exec
    params:
      devicetype: '2'
      value: '1'

ainsi que mon arlarme cron :
1 22 * * 1-5

Et lorsque cela se déclenche (ici à 22h01), dans les logs j’obtiens:

0|gladys   | Scenario : Trigger : New event : alarm
0|gladys   | Scenario : Trigger : Found 3 launchers with code alarm.
0|gladys   | Scenario : Trigger : Condition not verified.
0|gladys   | Scenario : Trigger : Condition not verified.
0|gladys   | Scenario : Trigger : Condition not verified.

Alors que, comme vous pouvez le voir, il n’y a pas de condition dans mon scénario… Donc c’est bizarre
Par contre quand je mets une alarme cron du style */10 * * * * cela fonctionne bien toutes les 10 minutes, mais avec une heure fixe cela ne fonctionne pas.

Merci d’avance!

#2

Bonjour @samumeur,

Tu veux bien activer ton alarme cron tous les jours à 22h01 ? Si oui tu peux juste mettre

cron : 1 22 * * *

#3

Histoire d’aider pour le futur :
https://crontab.guru

1 Like
#4

Bonjour!

Je vous remercie déjà pour vos réponses rapides :slight_smile:

En effet, je veux la lancer tous les jours à une heure fixe (7h20, le 22h01 c’était pour mon test) et le 1-5 permet de dire du lundi au vendredi uniquement. Mais même sans ça cela ne marche pas.

J’ai déjà passé mon alarme dans crontab et cela fonctionne bien, il m’affiche bien la bonne alarme, et gladys la repère plus ou moins bien puisque des logs s’affichent au bon moment. Mais l’action ne s’effectue pas

#5

Salut @samumeur,

De ce que je comprends,

signifie que Gladys à trouvé 3 scénarii qui se déclenche avec une alarme.

signifie qu’aucun des 3 scénarii trouvés ne se déclenche sur l’alarme 24.

Tu peux faire créer une script avec :

gladys.utils.sql("SELECT * FROM gladys.alarm WHERE id =24;")
.then((response) => {
    console.log(response);
})
.catch((err) => console.log(err)); 

Dans la console, il t’affichera les info de l’alarme si elle existe.
S’il ne trouve rien, modifie la requête en virant WHERE id =24.
Tu peux nous mettre le résultat ici si tu as un problème d’interprétation.

#6

Bonjour,

c’est bien ça oui, j’en ai refait une:
0|gladys | Event : create : new Event with code : alarm
0|gladys | Scenario : Trigger : New event : alarm
0|gladys | Scenario : Trigger : Found 2 launchers with code alarm.
0|gladys | Scenario : Trigger : Condition not verified.
0|gladys | Scenario : Trigger : Condition not verified.

Donc l’alarme se déclenche bien,

0|gladys   | [ RowDataPacket {
0|gladys   |     name: 'f',
0|gladys   |     datetime: null,
0|gladys   |     time: null,
0|gladys   |     dayofweek: -1,
0|gladys   |     cronrule: '17 41 * * 1-5',
0|gladys   |     autoWakeUp: 0,
0|gladys   |     active: 1,
0|gladys   |     isWakeUp: 0,
0|gladys   |     user: 1,
0|gladys   |     id: 26,
0|gladys   |     createdAt: 2018-10-12T15:35:14.000Z,
0|gladys   |     updatedAt: 2018-10-12T15:35:14.000Z } ]

elle existe bien,

trigger:
  title: te
  condition_template: alarm == 26
  active: 1
  code: alarm
  user: 1
conditions: []
actions:
  - code: deviceType.exec
    params:
      devicetype: '1'
      value: '1'

Et elle est bien référencée dans le scénario

#7

Et du coup @samumeur , ça marche ?

#8

Bonjour, désolé je n’étais pas trop dispo du week-end

Non du coup ça ne fonctionne toujours pas, elle s’active bien, mais ça me met toujours condition not verified.

Pourtant la seule condition est la vérification de l’id, qui correspond bien… je ne comprends pas :confused:

#9

Sans vouloir mettre en doute ce que tu dis, tu pourrais nous faire un screen de ta page device et devicetype ?

#10

Bonjour,

Oui bien sûr:

voici le device en question

Avec d’autres styles d’alarmes (une alarme qui se déclenche toutes les 10min : */10 * * * *) le device s’allume bien, mais c’est juste avec celle-ci : 17 41 * * 1-5 cela ne fonctionne pas. Quelqu’un utiliserait une alarme qui se déclenche à heure fixe, pour être sûr que je ne me trompe pas niveau syntaxe? Même si je ne pense pas puisqu’on voit bien qu’il y a une entrée dans les logs au bon moment et que sur crontab.guru cela me met bien l’heure demandée.

#11

Merci, et juste la page device, également. As-tu toujours le même message dans les logs ?

#12

Heu… c’est pas plutôt 41 17 * * 1-5 ?

#13

Si heure et minute inversé

*    *    *    *    *    *
┬    ┬    ┬    ┬    ┬    ┬
│    │    │    │    │    │
│    │    │    │    │    └ day of week (0 - 7) (0 or 7 is Sun)
│    │    │    │    └───── month (1 - 12)
│    │    │    └────────── day of month (1 - 31)
│    │    └─────────────── hour (0 - 23)
│    └──────────────────── minute (0 - 59)
└───────────────────────── second (0 - 59, OPTIONAL)
#14

Heu… question de noob… un scénario sans condition ? C’est possible ?

#15

Ah mais là, c’est un poil compliqué, car la première fois, le cron était bon, mais pas le n° de l’alarm, et la deuxième fois, c’était l’inverse !
Bravo et bien vu !
et oui, @Boimb, c’est possible :slight_smile:

#16

En effet, pour celui là j’ai été trop vite, j’ai inversé les deux. Mais dans le 1er cas j’avais bien mis dans le bon ordre :

1 22 * * 1-5

Je ne suis pas chez moi actuellement, donc je vous dirai quoi ce soir

@piznel l’id de l’alarme était bon il me semble, mais étant donné que j’avais supprimé et recréé l’alarme, l’id était passé de 24 à 26.

Dans tous les cas, je vais tout recréer proprement ce soir pour en être sûr que je n’ai pas fait d’erreur d’inattention :stuck_out_tongue:
Merci pour vos réponses en tout cas, je fais une màj ce soir

2 Likes
#17

Pas de soucis, je trouve même ça assez drôle quelque part ! Comme quoi, c’est pas si simple de vouloir aider :slight_smile:
L’important, c’est que ça fonctionne pour toi.
A suivre alors !

#18

Re bonjour!

Alors, j’ai recréé une alarme :

0|gladys   | Scheduled alarm test, with id 28
0|gladys   | [ RowDataPacket {
0|gladys   |     name: 'test',
0|gladys   |     datetime: null,
0|gladys   |     time: null,
0|gladys   |     dayofweek: -1,
0|gladys   |     cronrule: '45 20 * * 1-5',
0|gladys   |     autoWakeUp: 0,
0|gladys   |     active: 1,
0|gladys   |     isWakeUp: 0,
0|gladys   |     user: 1,
0|gladys   |     id: 28,
0|gladys   |     createdAt: 2018-10-15T18:39:34.000Z,
0|gladys   |     updatedAt: 2018-10-15T18:39:34.000Z } ]

qui correspond à 20h45 donc.

Ensuite, mon scénario a été édité comme tel :

trigger:
  title: te
  condition_template: alarm == 28
  active: 1
  code: alarm
  user: 1
conditions: []
actions:
  - code: deviceType.exec
    params:
      devicetype: '1'
      value: '1'

Et résultat… rien :frowning:
Rien dans les logs, c’est bizarre parce qu’avant j’avais au moins une entrée dedans.

#19

Je viens de tester chez moi, en créant une alarme du même type que toi, avec juste l’heure de différente, pour allumer un lampe.
J’ai du coup un scénario exactement comme toi, à l’alarme et id près.
Et ça a marché.
Tu as quelle version de Gladys ?

#20

La dernière version, en 3.9

Tu pourrais me faire un select * from ton alarme pour voir si la mienne s’est bien configurée?
Je l’ai créée via gladys donc il n’y a pas de raison que ça ne soit pas le cas mais bon, on sait jamais