Récupérer une valeur de la table cron

Bonjour;
J’ai un virtuel qui déclenche un scenario pour une dérogation sur mon scenario de chauffage.
Par exemple, je peux désactiver le scenario de chauffe jusqu’à 4h du matin.
J’aimerais afficher le résultat de la commande parce que parfois il y a des ratés.

Dans le virtuel j’aimerais avoir l’heure de réactivation qui se trouve dans la table cron dans le champ « option ». Typiquement je le trouve avec une requête comme ça :

SELECT * FROM `cron` WHERE `option` LIKE '%scenario_id":x,%'

Je n’ai pas vu de variable dans la doc qui renvoie cette info, il y a une info scenario(x) qui indique son statut, le -1 indique qu’il est désactivé mais pas l’heure de réactivation.

Une idée de comment faire ? Merci.

Bonsoir,

Je ne vois pas trop mais peut-être que l’on trouverait une autre solution. Ceci dis j’ai pas compris.

Peux-tu tenter de réexpliquer ? Des captures ?

Depuis un virtuel tu désactives un scénario (qui normalement tourne de façon périodique).
Et tu dis que parfois, en actionnant ton virtuel pour réactive le scénario, celui-ci ne se réactive pas ?

J’ai regardé rapidement avec ta requête mais je ne vois pas bien où tu trouve une heure de réactivation ?

Bonjour,

Pareil pas compris le besoin mais ne jamais écrire de requête sql manuellement. Il n’y a JAMAIS de raisons de faire cela.; il faut au minimum utiliser les class prévue pour ça.

moi non plus je n’ai pas compris, « des ratés ».

j’utilise beaucoup l’activation/désactivation des scénarios par programmation agenda ou d’autres scénarios, sans jamais avoir de faux positifs ou négatifs. j’utilise même ça via des blocs php.

il y a peut être un cas où il peut peut être y avoir un « loupé » c’est quand le scénario se déroule et qu’il contient des DANS ou A , je ne suis pas certain qu’il suspende les futurs déclenchements de sous-tâches, il faudrait regarder le code du core de plus près. peut être que quelqu’un a déjà fait le test.

pour suivre l’exécution et les changements d’état, tu as déjà un super système qui permet de savoir si les choses se déroulent ou pas en cliquant le bouton pour avoir le tracking sur la timeline. je trouve que c’est bien fait et très visuel pour suivre les changements d’état ou de déclenchements des scénarios.

Ok je réexplique alors :smile:
J’ai un scenario « Ch SS » (programmé */15 4-5,11-13,17-19 * * *) qui allume/éteint mon sèche serviette à 3 périodes de la journée, 4h 11h et 17h.

Mais parfois pour x raison je ne souhaite pas qu’il s’allume par exemple sur la période 17h.
J’ai donc un autre scénario « dérogation » qui désactive le scénario « Ch SS » pour la période concernée (ou l’active de force aussi) et le relance via un bloc A à la période suivante.

Et pour gérer facilement cela sur mobile etc, j’ai fait un virtuel avec ces options.
dero

Seulement je veux une confirmation que c’est effectué, parce que parfois le doigt rippe etc.
Or le seul moyen dispo c’est le statut comme ici en bas qui dit qu’il est désactivé mais ne me dit pas pour quelle période ou à quelle heure il reprend alors que cette info est dans la table cron.
Il ya une commande remove_inat qui permet de la supprimer mais aucune pour la vérifier et l’afficher simplement.
Voilà.

Alors il faut utiliser les capacités du plugin virtuel et associer une commande info aux différentes actions.

En appuyant sur l’un des boutons, la commande info sera mise à jour et t’indiquera donc visuellement que tu as bien cliqué et sur quoi.

Tu peux utiliser aussi une liste de choix plutôt que des boutons.

Autre possibilité : comme tu utilises un scénario A qui désactivé celui qui tourne de façon programmé, dans le scénario A tu utilises la fonction event pour envoyer la valeur de ton choix dans une commande information de ton virtuel. Ça nécessite d’utiliser des tag pour savoir quel est le bouton qui a été appuyé mais c’est formateur :blush:

EDIT :
Par exemple, avec 3 boutons, une liste et une commande info qui récupère ce que l’on a choisi avec le bouton ou avec la liste
image

Si tu utilises la liste, les boutons ne servent plus à rien bien sûr mais il faut changer la façon de déclencher ton scénario qui désactive ou active l’autre

Merci, j’ai pris la 1ère solution.
Ca ne montre pas l’enregistrement de la table mais au moins ça montre le bouton appuyé.

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