Récupération du calcul d'un scénario =0

Bonjour,

Je suis relativement néophyte sur Jeedom au regard de toutes les réalisations avancées que l’on peux trouver. J’essaye donc petit à petit de développer mon système qui me sert principalement d’automatisme pour le chauffage (et le suivi de conso électrique), le pilotage des volets ou encore la gestion des lumières.

C’est sur le 1er point que je sèche et pour lequel je sollicite de l’aide : le suivi de la consommation électrique.

Après avoir dupliqué le scénario de gestion proposé sur Youdom (Suivez votre consommation avec Zlinky et jeedom - youdom), j’essaye désespérément de récupérer l’info $delta du scénario de conso journalière pour que son calcul soit visible sur mon Dashboard.
Les logs du scénario (et les graphiques de l’onglet Vue) génère bien le calcul de la variable de conso (jour J - hier) :

, mais j’aimerai en ressortir une valeur utilisable sur le Dashboard en ne m’arrêtant pas à l’affichage graphique sur une courbe.
Mon manque d’aisance et de compréhension à la lecture de la doc Jeedom (scénario, virtuels, …) ne me font probablement pas faire les bons choix. J’arrive en effet à faire remonter une valeur qui est systématiquement 0 (via Virtuel notamment).
J’ai lu un certain nombre de forums au sujet de ce besoin, mais n’arrive pas à l’appliquer dans mon cas précis.

L’un(e) d’entre vous aurait il une solution pas trop complexe pour ce problème ?

Bonjour @BennnNn

N’hésite pas à montrer ton scénario et pas juste le log

Dans ton cas, créer un virtuel de type numérique qui accueillera la valeur
Dans le scénario, utiliser la fonction évent (événement) et renseigner le virtuel et la valeur à envoyer.

Un point à vérifier, c’est un bloc code, est-ce que la valeur delta et remontée comme tag au scénario ?
Norbert

1 « J'aime »

Salut,

Si tu as tout fais en bloc code autant rester dessus.

Tu as donc du créer une commande info (sur un équipement issue du plugin virtuel) et c’est celle-ci que tu veux alimenter avec le contenu de $delta

Sur la ligne 16 sous $delta=... ajoute cmd::byString('#[Aucun][Equipement][delta]#')->event($delta); en remplaçant ce qui est entre # par le nom de ta commande virtuelle.

1 « J'aime »

Merci pour ton retour @ngrataloup,
Voici le code en question :

$cmdIdCompteurIndex = 1606; // Id de la commande du compteur INDEX (Equipement Zlinky) [a personnaliser]

$cmdIdCompteurHisto = 1603; // Id de la commande d’historisation de la conso journalière (Equipement Virtuel) [a personnaliser]

$debutJourVeille = date(« Y-m-d 00:00:00 », strtotime(« Yesterday »)); // Hier à 00h00

$finJourVeille = date(« Y-m-d 23:59:59 », strtotime(« Yesterday »)); // Hier à 23h59

$debutJourJ = date(« Y-m-d 00:00:00 », strtotime(« Today »)); // Ajourd’hui à 00h00

$finJourJ = date(« Y-m-d 23:59:59 », strtotime(« Today »)); // Aujourd’hui à 23h59

$indexJourVeille = history::getStatistique($cmdIdCompteurIndex, $debutJourVeille, $finJourVeille)[« min »]; // On cherche l’index le plus bas dans l’historique sur J-1

$indexJourJ = history::getStatistique($cmdIdCompteurIndex, $debutJourJ, $finJourJ)[« min »]; // On cherche l’index le plus bas dans l’historique sur J

$scenario->setLog("Index hier : ".$indexJourVeille); // On ajoute l’index de la veille aux logs du scénario

$scenario->setLog("Index aujourd’hui : ".$indexJourJ); // On ajoute l’index du jour aux logs du scénario

$delta = ($indexJourJ-$indexJourVeille); // Calcul du delta entre l’index de la veille au matin et celui de ce matin qui donnera la conso de la journée d’hier

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

$histoconsojour = cmd::byId($cmdIdCompteurHisto);

$histoconsojour->addHistoryValue($delta,$finJourVeille); // Historisation du calcul du delta comme conso de la journée d’hier

(il est présenté sur cette page : Suivez votre consommation avec Zlinky et jeedom - youdom)

Je vais regarder pour utiliser cette fonction « Event ». En revanche, je ne sais pas répondre à ta question si la valeur remonte comme un tag ou comme une variable du calcul.

Merci beaucoup, ça fonctionne parfaitement !, voici le code maintenant :

$cmdIdCompteurHisto = 1603; // Id de la commande d'historisation de la conso journalière (Equipement Virtuel) [a personnaliser]

$debutJourVeille = date("Y-m-d 00:00:00", strtotime("Yesterday")); // Hier à 00h00
$finJourVeille = date("Y-m-d 23:59:59", strtotime("Yesterday")); // Hier à 23h59
$debutJourJ = date("Y-m-d 00:00:00", strtotime("Today")); // Ajourd'hui à 00h00
$finJourJ = date("Y-m-d 23:59:59", strtotime("Today")); // Aujourd'hui à 23h59

$indexJourVeille = history::getStatistique($cmdIdCompteurIndex, $debutJourVeille, $finJourVeille)["min"]; // On cherche l'index le plus bas dans l'historique sur J-1
$indexJourJ = history::getStatistique($cmdIdCompteurIndex, $debutJourJ, $finJourJ)["min"]; // On cherche l'index le plus bas dans l'historique sur J

$scenario->setLog("Index hier : ".$indexJourVeille); // On ajoute l'index de la veille aux logs du scénario
$scenario->setLog("Index aujourd'hui : ".$indexJourJ); // On ajoute l'index du jour aux logs du scénario

$delta = ($indexJourJ-$indexJourVeille); // Calcul du delta entre l'index de la veille au matin et celui de ce matin qui donnera la conso de la journée d'hier
$delta = cmd::byString('#[Maison][TEST][Test HC]#')->event($delta);

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

$histoconsojour = cmd::byId($cmdIdCompteurHisto);
$histoconsojour->addHistoryValue($delta,$finJourVeille); // Historisation du calcul du delta comme conso de la journée d'hier
saisissez ou collez du code ici

Problème résolu, merci :grinning:

1 « J'aime »

Parfait, tu peux cliquer sur le bouton Solution de mon post dans ce cas :wink:

Hello @BennnNn

Mon 1er post c’est le bon car la solution est inscrite en dessous de ta question d’origine. Donc si tu ne choisi pas celle-ci, ça ne veut rien dire.

A+

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