Valeur retour d'état dans cmd de plugin ne fonctionne pas

Bonjour
Dans un plugin que je développe, plusieurs commandes infos binaires sont crées automatiquement.
Je les mets à jour via l’API du plugin avec CheckAndUpdateCmd.
J’ai modifié manuellement ces commandes afin d’avoir un retour d’état à 0 au bout de 1 minutes.
Malheureusement ce retour d’état ne fonctionne pas et rien ne se passe au bout d’une minute.
Du coup ma commande reste perpétuellement à 1. (l’api ne fait que la passer à 1)
Est ce normal ou y a t-il une parade ?

Bonjour,

Peux-tu préciser comment? via la configuration avancée de la commande?

Si oui, as-tu un cron qui a été généré pour cette commande?
Cela doit être une ligne comme celle-ci mais à vérifier si dans les détails cela concerne bien ta commande

image

Merci pour le retour
Oui pour l’instant je l’ai créé manuellement via la config avancé (avant de le faire automatiquement dans le code de mon plugin).
A priori dans la liste des CRON (Dans réglages Systèmes Moteur de taches)
Je ne vois pas de CRON qui correspond à class cmd et fonction = returnstate (j’ai qu’un cmdAlert)
Normal qu’il soit pas créé automatiquement ?
pourtant sur mon jeedom j’ai d’autres commandes qui utilisent ce retour d’état

Si, cela devrait, c’est le core qui gère ca surtout si cela a bien été configuré via l’écran « config avancée » de la commande, qui est une modale du core

Sans plus de trace / logs c’est compliqué d’investiguer.
Tu n’as rien dans ton http.error?
tu es sur que la config est bien sauvée? attention de ne pas resauver la liste des commandes sans avoir rafraichi avant si tu as sauvé la modale

non rien dans le http.error
Si je fait un virtuel de test avec le retour d’état, le cron devrait se crééer ?

Oui, n’importe quel plugin puisque c’est le core.

C’est fait dans la méthode checkReturnState de la class cmd et cette méthode est appelée depuis la méthode event.
Ta commande est dans quel mode pour le repeatmanagement?
Si c’est « never » alors c’est la raison je pense, de mémoire, à tester

J’ai essayé avec le virtuel le cron n’est pas créé
Ma commande est réglé par défaut sur le mode NE PAS REPETER

Je relis le code là et effectivement c’est ca

Après pas sur que ca soit logique, c’est p-e un effet de bord du changement sur le repeatmanagement?
Je pense que le checkReturnState devrait être appelé avant et dans tous les cas.
A voir si l’équipe a un avis sur la question

Je viens de refaire le test sur un jeedom 4.2.11 vierge avec un vituel. Le CRON cmd/returnstate n’est pas créé. J’ai ensuite testé en activant la répétition des valeurs.
idem non créé
EDIT :
Idem si j’active d’abord la répétition des valeurs SAVE puis je configure mon return state à 0 au bout d’une minute

Ca je ne reproduis pas, je viens de faire le test:

  • répétition des valeurs désactivé, cron supprimé, je save et le cron n’est pas recréé → le problème?
  • répétition des valeurs désactivé, cron supprimé, change la valeur, je save et le cron est créé → ok
  • répétition des valeurs activé, cron supprimé, je save (même valeur donc) et le cron est créé → ok

Effectivement il faut que la valeur soit changée obligatoirement
Du coup comment je peux faire car dans mon plugin la valeur ne peut pas changée si elle n’est pas repassée à 0 par le return state…
En fait quand j’ai configuré manuellement le returnstate, elle était déjà à 1…

Non, pas si la répétition des valeurs est activée, cf. mon message précédent

J’ai essayé d’activer manuellement la répétition de valeur.
Mais il faut que j’attendes du coup que je reçoive à nouveau 1.
Du coup c’est pas bien logique si ?
J’aurais tendance à dire qu’à partir du moment qu’on active la répétition de valeur, le cron doit systématiquement être créé quelque soit la répétition de valeur