Comment attribuer une valeur à une Commande (d'un Virtuel)

Bonjour à Tous,

Mon objectif est d’afficher, par exemple dans un widget, une valeur calculée et d’apprendre à le faire.
Avec plus de détail, je voudrais juste afficher, la valeur progressive de la consommation électrique en cours SANS l’historiser. Je saurais le faire en passant par une historisation de la valeur calculée progressivement, mais ça chargerait l’historique pour rien.

Je ne sais pas si je m’y prends bien. Pour cela :

  • j’ai créé un virtuel contenant plusieurs Commandes dont une est « Afficher » mais « PAS Historiser » et qui est référencée par l’ID 612
  • j’ai créé un scénario contenant un Bloc Code dans lequel je calcul, dans une variable $delta par exemple, la valeur que je veux afficher

Mais je ne connais pas la syntaxe à respecter pour « envoyer » la valeur de $delta dans le résultat de la Commande ayant pour ID 612

Merci d’avance pour votre aide.
Marc

Voici le code de mon scénario :

##############################
$cmdIdCompteurIndex = 313; // Id de la commande du compteur INDEX BASE (Equipement Zlinky)
$cmdIdCompteurHEC = 612; // Id de la commande Conso heure en cours du virtuel Energies

$dateNow = date("Y-m-d H:i:m", strtotime("now"));
$debutHeure = date("Y-m-d H:00:00", strtotime("0 Hour")); // Début heure en cours
$finHeure = date("Y-m-d H:00:00", strtotime("+1 Hour")); // Fin Heure en cours

$indexDebut = history::getStatistique($cmdIdCompteurIndex, $debutHeure, $finHeure)["min"]; // On cherche l'index le plus bas dans l'historique sur Heure
$indexFin = history::getStatistique($cmdIdCompteurIndex, $debutHeure, $finHeure)["max"]; // On cherche l'index le plus haut dans l'historique sur l'Heure en cours

$scenario->setLog("Heure exécution : ".$dateNow); // On ajoute l'heure d'exécution aux logs du scénario
$scenario->setLog("Heure début : ".$debutHeure); // On ajoute l'heure de début aux logs du scénario
$scenario->setLog("Index heure début : ".$indexDebut); // On ajoute l'index de l'heure de début aux logs du scénario
$scenario->setLog("Heure fin : ".$finHeure); // On ajoute l'index de l'heure précédente aux logs du scénario
$scenario->setLog("Index heure fin : ".$indexFin); // On ajoute l'index de l'heure aux logs du scénario

$delta = ($indexFin-$indexDebut); // Calcul du delta entre l'index de fin de l'heure en cours et l'index de début de l'heure en cours qui donnera la conso de l'heure en cours

$scenario->setLog("Delta : ".$delta); // On ajoute le delta entre les deux index aux logs du scénario

//$histoconsoheure = cmd::byId($cmdIdCompteurHEC);
//$histoconsoheure->addHistoryValue($delta,$finHeurePreced); // Historisation du calcul du delta comme conso de l'heure précédente
##############################

Hello, as tu déja jeter un oeil sur la page Jeedom v4 Petits codes entre amis | Jeedom by KiboOst
La tu trouve la partie

Cela devrait correspondre à ta demande.

Mathieu

2 « J'aime »

Pour information, quand tu veux poster du code, le mieux est de le mettre en forme avec

dans l’interface d’édition.

Mathieu

Bonjour
Un event dans une information virtuelle où tu décoches « historique » (dans la configuration de l’info = les roue crantée en bout de ligne)
Vous pouvez également laisser l’historique mais sur 1 ou 7 jours
Ca fera pas de mal…

1 « J'aime »

Merci bien à vous deux Mathieu et Henri,

C’est bon, j’ai ajouté :
cmd::byid($cmdIdCompteurHEC)->event($delta);

Bon dimanche

1 « J'aime »

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

Bonjour,

  • vous « likez » le demande de formatage du code de @m_arth mais vous ne corrigez pas votre post dont le code était illisible; pourquoi? J’ai corrigé…
  • on coche le post donnant la solution et pas sa propre confirmation. J’ai corrigé.