Mettre à jour la valeur de la commande d'un Virtuel

Bonjour,

Je cherche à savoir rédiger la syntaxe d’une commande qui me permette de mettre à jour la valeur « visible » d’un virtuel.
A force de lire et relire le forum j’ai l’impression qu’il faut que je me dirige vers « EVENT ». Oui, mais je n’arrive pas à trouver comment faire.
J’ai un scénario qui finit par enregistrer dans l’historique sur la commande d’un virtuel une valeur et une date avec ces instructions :

$histoProdPV = cmd::byId($cmdIdCompteurProdPVOpt);
$histoProdPV->addHistoryValue($indexProdPVOpt,$date);

Est-ce que c’est dans ces instructions qu’il faut que j’ajoute un paramètre « event » ?
Ou faut-il que j’ajoute une instruction « event » ? et si oui avec quelle syntaxe ?

Merci pour votre aide, bon dimanche.

Marc

$histoProdPV->event($value);

Bonsoir Jeandhom,

Bon ben non, l’instruction que tu m’as indiqué provoque l’enregistrement d’une seconde ligne dans l’historique de valeur 0, sans doute parce que le $value de la commande du virtuel vaut 0.

Je n’ai sans doute pas été clair… c’est l’inverse que je veux faire, c’est à dire mettre à jour la $value de la commande du virtuel (qui reste désespérément à 0), c’est à dire envoyer la valeur de $indexProdPvOpt dans $value de commande du virtuel.

Je cherche à forcer cette valeur car le cron du virtuel (*****) ne provoque pas sa mise à jour.

Espérant avoir été plus clair.

Hello,

Il a mis $value surement pour aller vite mais il faut indiquer ici la valeur que tu veux envoyer à la commande virtuelle.

$histoProdPV est la commande du virtuelle à mettre à jour

$indexProdPVOpt est la valeur que tu veux envoyer dans la commande virtuelle

$histoProdPV->event($indexProdPVOpt) va permette de faire ça. Au passage l’historique sera mis à jour en prenant la date à laquelle tu as exécuté la fonction event

Bonsoir et merci Bison,

OK, « $histoProdPV->event($indexProdPVOpt) » va mettre à jour la valeur de l’Etat de la commande, mais je ne veux pas de nouvelle ligne dans l’historique car avec « $histoProdPV->addHistoryValue($indexProdPVOpt,$date) » je force l’enregistrement de $indexProdPVOpt à la date de « $date » et non pas à la date d’exécution du bloc code du scénario.

Est-il possible :

  • Soit de faire un « event » sans mise à jour de l’historique… et je garde mon « addHistoryValue »

  • Soit de faire une « event » avec un second argument pour forcer la date de la mise à jour de l’historique à « $date »

Je n’arrive pas à trouver de doc pour comprendre le fonctionnement et la syntaxe du « event ». Peux-tu me diriger ?

$histoProdPV->event($indexProdPVOpt, $date); devrait faire l’affaire (avec $date, la variable qui correspond à la date que tu souhaites).

Il faudra retirer $histoProdPV->addHistoryValue($indexProdPVOpt,$date); evidemment

Super !!! Merci Bison

Donc j’ai juste à remplacer addHistoryValue par event

Un « addHistoryValue » est un « event » qui ne met pas à jour l’« Etat » de la Commande du Virtuel

Où, dans quelle doc, puis-je trouver ces informations ?

Bonne soirée, encore merci.

Marc

C’est un peu ce que l’on reproche régulièrement quand on développe. Il n’y a pas trop de Doc exploitable pour ça.

Une base que tu dois connaître : Jeedom v4 Petits codes entre amis | Jeedom by KiboOst

Sinon c’est : recherche/question sur Community et la dernière solution quand on commence à maîtriser un peu le sujet c’est d’aller voir les fonctions dans le code de Jeedom directement (core).

Pense à fermer le post avec la solution si ça te va :wink:

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