Calcul de tendances de consommations, comparaison de périodes

« @ajja17orange, j’ai essayé le code dans un scénario mais j’ai un probleme avec les debut et fin d’injection, elles ne remontent pas »

Impeccable ça fonctionne @ajja17orange. Merci

si tu veux mettre des dates au format « expression php »

$dateDebut = 'first day of January';
$dateDebutSTR = date("Y-m-d H:i:s", strtotime($dateDebut)); 	

la 1er ligne peut être remplacé par aussi

$cmdId= cmd::byString("#[Teleinfo][EDF][BASE]#")->getId();
1 « J'aime »

grâce à vos différents commentaires, j’ai réussi à faire ce que je voulais, comparer une conso sur deux périodes.
J’y suis arrivé grâce à un bloc code dans un scénario

//Semaine en cours

$Max_dateDebut = 'yesterday';
$Max_dateDebutSTR = date("Y-m-d H:i:s", strtotime($Max_dateDebut));
$Max_dateFin = 'now';
$Max_dateFinSTR = date("Y-m-d H:i:s", strtotime($Max_dateFin)); 
$Min_dateDebut = 'monday this week';
$Min_dateDebutSTR = date("Y-m-d H:i:s", strtotime($Min_dateDebut));
$Min_dateFin = 'tuesday this week0:00';
$Min_dateFinSTR = date("Y-m-d H:i:s", strtotime($Min_dateFin)); 

$cmdId = "#[Energies][Ecodevice_EDF][Index (base)]#";

$value_max = scenarioExpression::maxBetween($cmdId,$Max_dateDebutSTR,$Max_dateFinSTR);
$value_min = scenarioExpression::minBetween($cmdId,$Min_dateDebutSTR,$Min_dateFinSTR);
$conso_sem_en_cours = round(($value_max - $value_min)/1000,1);

$scenario->setLog('Conso semaine en cours = '.$value_max.' - '.$value_min.' = '.$conso_sem_en_cours.'KWh');

//Semaine précédente

$Max_dateDebut = 'now - 8 days';
$Max_dateDebutSTR = date("Y-m-d H:i:s", strtotime($Max_dateDebut));
$Max_dateFin = 'now -7 days';
$Max_dateFinSTR = date("Y-m-d H:i:s", strtotime($Max_dateFin)); 
$Min_dateDebut = 'tuesday last week';
$Min_dateDebutSTR = date("Y-m-d H:i:s", strtotime($Min_dateDebut));
$Min_dateFin = 'wednesday last week0:00';
$Min_dateFinSTR = date("Y-m-d H:i:s", strtotime($Min_dateFin)); 

$cmdId = "#[Energies][Ecodevice_EDF][Index (base)]#";

$value_max2 = scenarioExpression::maxBetween($cmdId,$Max_dateDebutSTR,$Max_dateFinSTR);
$value_min2 = scenarioExpression::minBetween($cmdId,$Min_dateDebutSTR,$Min_dateFinSTR);
$conso_sem_precedente = round(($value_max2 - $value_min2)/1000,1);

$scenario->setLog('Conso semaine précedente = '.$value_max2.' - '.$value_min2.' = '.$conso_sem_precedente.'KWh');

//Comparaison des deux conso
$ecart = round($conso_sem_en_cours - $conso_sem_precedente,1);
$ecart_pourcentage = round((($conso_sem_en_cours - $conso_sem_precedente)/$conso_sem_precedente)*100,0);
if ($ecart > 0) {
		$scenario->setLog('Ecart de +'.$ecart.'KWh');
		$scenario->setLog('Ecart de +'.$ecart_pourcentage.'%');
} else {
		$scenario->setLog('Ecart de '.$ecart.'KWh');
		$scenario->setLog('Ecart de -'.$ecart_pourcentage.'%');
}

$scenario->setData('Ecart_Conso_Semaine',$ecart);
$scenario->setData('Ecart_Conso_Semaine%',$ecart_pourcentage);

Merci de votre aide

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.