Calculs sur Heure Pleine / Heure Creuse et Tarifications / Coûts

Perso j’ai les infos dans l’application EDF sur la page d’accueil

Re, moi j’ai pas de telle info ( Cdiscount Energie ) pas aussi sophistiqué leurs site

Sinon j’ai fait les modif
j’ai arrondi à 00h00 et 08h00 pour le calcul des heures HP/HC
et remis les les deux lignes que j’avais supp.

Ensuite , a mon avis le site Enedis dois encore etre down enfin presque car j’ai ceci en debug.

[2021-02-27 20:01:31][DEBUG] : [MAISON][Compteur Linky] Interrogation des serveurs Enedis
[2021-02-27 20:01:31][DEBUG] : [MAISON][Compteur Linky][Consommation Jour] Données déjà enregistrées pour le 26/02/2021
[2021-02-27 20:01:31][DEBUG] : [MAISON][Compteur Linky][Consommation Puissance max] Données déjà enregistrées pour le 26/02/2021
[2021-02-27 20:01:32][DEBUG] : [MAISON][Compteur Linky][Consommation horaire] Erreur sur la récupération des données : no_data_found no measure found for this usage point

Oui le site est toujours HS.

Sinon si vraiment tu as juste un créneau de 00h à 08h, tu devrais changer cette partie.

$conso_hier_hc = (history::getStatistique($id_commande_ConsoHoraire, $date_valeurs, $debut_hp)["sum"] + history::getStatistique($id_commande_ConsoHoraire, $debut_hc, $date_JourEt1_minuit)["sum"] ) /2;

En

$conso_hier_hc = (history::getStatistique($id_commande_ConsoHoraire, $date_valeurs, $debut_hp)["sum"] ) /2;

Et là ça devrait être pas mal.

Merci bcp Mick74

Bon j’ai modifié la ligne 104 du script par celle que tu me donnes, je te tiens au courant de l’évolution …
:crossed_fingers: :+1:

Hello all, pour info ce matin il y a eu la mise à jour des données horaires d’enedis, si vous voulez voir ce que ça a donné :slight_smile:

D’ailleurs @Mikael, si tu supprimes le compteur, le recrée pour avoir toutes les données sur 7 jours, modifie la date de dernier lancement validé du scénario (la variable - 7 jours) et relance le scénario, ça devrait tout te calculer nickel :slight_smile:
Là tes données que tu avais, devaient déjà être historisées, donc pas bonnes pour les calculs (groupées en 1h et pas 30mn), en faisant ça tu auras 7 jours de données en format 30mn.

Hello

Le script ( code ) à l’air d’avoir fonctionné car toutes mes valeurs Enedis sont à jour

Pourtant mon virtuelle reste à 0

Et les modifs. que tu m’as suggéré hier on étais faite




Il y a un problème dans les messages, « Dernière collecte horaire EDF présente : », ne montre pas la date après les : . Ça veut dire que la variable des données horaires de l’objet Linky n’est pas bonne dans ton code.

C’est ici qu’il y a quelque chose qui va pas :
$commande_ConsoHoraire = cmd::byString("#[MAISON][Compteur Linky][Consommation horaire]#");

@mick74 En train de tester ton scénario

[2021-02-28 13:30:23][SCENARIO] Start : Scenario lance manuellement.
[2021-02-28 13:30:23][SCENARIO] Exécution du sous-élément de type [action] : code
[2021-02-28 13:30:23][SCENARIO] Exécution d'un bloc code
[2021-02-28 13:30:23][SCENARIO] Attention: 7 jours a updater
[2021-02-28 13:30:23][SCENARIO] Ajout du 2021-02-21
[2021-02-28 13:30:23][SCENARIO] Ajout du 2021-02-22
[2021-02-28 13:30:23][SCENARIO] Ajout du 2021-02-23
[2021-02-28 13:30:23][SCENARIO] Ajout du 2021-02-24
[2021-02-28 13:30:23][SCENARIO] Ajout du 2021-02-25
[2021-02-28 13:30:23][SCENARIO] Ajout du 2021-02-26
[2021-02-28 13:30:23][SCENARIO] Ajout du 2021-02-27
[2021-02-28 13:30:23][SCENARIO] Fin correcte du scénario

Mais le virtuel n’est pas mis à jour.

Sur l’historique Linky, on voit les trous dans le relevé horaire et aussi je pense une anomalie sur le dernier jour qui doit regroupé plusieurs jours. :

mais alerte donnée nul .

S’il affiche ça dans le centre de message, c’est qu’il est dans la condition où il a fait le calcul des heures pleines mais que le résultat est null et donc ne fait pas la suite. Il y a donc un souci probable dans tes variables, ou que tu es dans un cas spécifique. Il faut surement adapter le code.

Quand c’est bon cela doit ressembler à ça dans les logs du scénario :

Hello

on dirais la même erreur que moi [consommation horaire] NULL

La mienne [DONNEE HORAIRE NON PRESENTE]…

Non c’est pas la même chose.

Ok

je dépouille le script, le virtuel, les variables je vois rien qui pourrais me provoqué cette erreur …
Un truc de fou , lol

A moins que j’ai pas les yeux en face des trous



Moi j’ai trouvé mon soucis.

J’ai les heures creuses de 00:00 à 8:00
si pour EDF_HC_Start j’ai 00:00
alors

------------------------------------
[2021-02-28 14:50:51][SCENARIO] Start : Scenario lance manuellement.
[2021-02-28 14:50:51][SCENARIO] Exécution du sous-élément de type [action] : code
[2021-02-28 14:50:51][SCENARIO] Exécution d'un bloc code
[2021-02-28 14:50:51][SCENARIO] Attention: 7 jours a updater
[2021-02-28 14:50:51][SCENARIO] Ajout du 2021-02-21
[2021-02-28 14:50:51][SCENARIO] Ajout du 2021-02-22
[2021-02-28 14:50:51][SCENARIO] Ajout du 2021-02-23
[2021-02-28 14:50:51][SCENARIO] Ajout du 2021-02-24
[2021-02-28 14:50:51][SCENARIO] Ajout du 2021-02-25
[2021-02-28 14:50:51][SCENARIO] Ajout du 2021-02-26
[2021-02-28 14:50:51][SCENARIO] Ajout du 2021-02-27
[2021-02-28 14:50:51][SCENARIO] Fin correcte du scénario

si je teste EDF_HC_Start = 23:00

------------------------------------
[2021-02-28 14:51:32][SCENARIO] Start : Scenario lance manuellement.
[2021-02-28 14:51:32][SCENARIO] Exécution du sous-élément de type [action] : code
[2021-02-28 14:51:32][SCENARIO] Exécution d'un bloc code
[2021-02-28 14:51:32][SCENARIO] Attention: 7 jours a updater
[2021-02-28 14:51:32][SCENARIO] Ajout du 2021-02-21
[2021-02-28 14:51:32][SCENARIO] conso_hier_hp = 7.53
[2021-02-28 14:51:32][SCENARIO] conso_hier_hc = 1.87
[2021-02-28 14:51:32][SCENARIO] tarif_hier_hp = 1.126488
[2021-02-28 14:51:32][SCENARIO] tarif_hier_hc = 0.172975
[2021-02-28 14:51:32][SCENARIO] tarif_hier = 1.299463
[2021-02-28 14:51:32][SCENARIO] conso_mois_hc = 1.87
[2021-02-28 14:51:32][SCENARIO] conso_mois_hp = 7.53
[2021-02-28 14:51:32][SCENARIO] moyenne_conso_jour_hc = 1.870000
[2021-02-28 14:51:32][SCENARIO] moyenne_conso_jour_hp = 7.530000
[2021-02-28 14:51:32][SCENARIO] jour_restant_mois = 7
[2021-02-28 14:51:32][SCENARIO] estimation_conso_mois_hc = 14.96
[2021-02-28 14:51:32][SCENARIO] estimation_conso_mois_hp = 60.24
[2021-02-28 14:51:32][SCENARIO] estimation_conso_mois = 75.2
[2021-02-28 14:51:32][SCENARIO] estimation_prix_mois_hc = 1.3838
[2021-02-28 14:51:32][SCENARIO] estimation_prix_mois_hp = 9.011904
[2021-02-28 14:51:32][SCENARIO] estimation_prix_mois_global = 23.895704
[2021-02-28 14:51:32][SCENARIO] Ajout du 2021-02-22
[2021-02-28 14:51:32][SCENARIO] conso_hier_hp = 8.105
[2021-02-28 14:51:32][SCENARIO] conso_hier_hc = 3.35
[2021-02-28 14:51:32][SCENARIO] tarif_hier_hp = 1.212508
[2021-02-28 14:51:32][SCENARIO] tarif_hier_hc = 0.309875
[2021-02-28 14:51:32][SCENARIO] tarif_hier = 1.522383
[2021-02-28 14:51:32][SCENARIO] conso_mois_hc = 5.22
[2021-02-28 14:51:32][SCENARIO] conso_mois_hp = 15.64
[2021-02-28 14:51:32][SCENARIO] moyenne_conso_jour_hc = 2.610000
[2021-02-28 14:51:32][SCENARIO] moyenne_conso_jour_hp = 7.820000
[2021-02-28 14:51:32][SCENARIO] jour_restant_mois = 6
[2021-02-28 14:51:32][SCENARIO] estimation_conso_mois_hc = 20.88
[2021-02-28 14:51:32][SCENARIO] estimation_conso_mois_hp = 62.56
[2021-02-28 14:51:32][SCENARIO] estimation_conso_mois = 83.44
[2021-02-28 14:51:32][SCENARIO] estimation_prix_mois_hc = 1.9314
[2021-02-28 14:51:32][SCENARIO] estimation_prix_mois_hp = 9.358976
[2021-02-28 14:51:32][SCENARIO] estimation_prix_mois_global = 24.790376
[2021-02-28 14:51:32][SCENARIO] Ajout du 2021-02-23
[2021-02-28 14:51:32][SCENARIO] conso_hier_hp = 5.81
[2021-02-28 14:51:32][SCENARIO] conso_hier_hc = 2
[2021-02-28 14:51:32][SCENARIO] tarif_hier_hp = 0.869176
[2021-02-28 14:51:32][SCENARIO] tarif_hier_hc = 0.185
[2021-02-28 14:51:32][SCENARIO] tarif_hier = 1.054176
[2021-02-28 14:51:32][SCENARIO] conso_mois_hc = 7.22
[2021-02-28 14:51:32][SCENARIO] conso_mois_hp = 21.45
[2021-02-28 14:51:32][SCENARIO] moyenne_conso_jour_hc = 2.406667
[2021-02-28 14:51:32][SCENARIO] moyenne_conso_jour_hp = 7.150000
[2021-02-28 14:51:32][SCENARIO] jour_restant_mois = 5
[2021-02-28 14:51:32][SCENARIO] estimation_conso_mois_hc = 19.253335
[2021-02-28 14:51:32][SCENARIO] estimation_conso_mois_hp = 57.2
[2021-02-28 14:51:32][SCENARIO] estimation_conso_mois = 76.453335
[2021-02-28 14:51:32][SCENARIO] estimation_prix_mois_hc = 1.7809334875
[2021-02-28 14:51:32][SCENARIO] estimation_prix_mois_hp = 8.55712
[2021-02-28 14:51:32][SCENARIO] estimation_prix_mois_global = 23.8380534875
[2021-02-28 14:51:32][SCENARIO] Ajout du 2021-02-24
[2021-02-28 14:51:32][SCENARIO] conso_hier_hp = 18.445
[2021-02-28 14:51:32][SCENARIO] conso_hier_hc = 4.025
[2021-02-28 14:51:32][SCENARIO] tarif_hier_hp = 2.759372
[2021-02-28 14:51:32][SCENARIO] tarif_hier_hc = 0.3723125
[2021-02-28 14:51:32][SCENARIO] tarif_hier = 3.1316845
[2021-02-28 14:51:32][SCENARIO] conso_mois_hc = 11.25
[2021-02-28 14:51:32][SCENARIO] conso_mois_hp = 39.90
[2021-02-28 14:51:32][SCENARIO] moyenne_conso_jour_hc = 2.812500
[2021-02-28 14:51:32][SCENARIO] moyenne_conso_jour_hp = 9.975000
[2021-02-28 14:51:32][SCENARIO] jour_restant_mois = 4
[2021-02-28 14:51:32][SCENARIO] estimation_conso_mois_hc = 22.5
[2021-02-28 14:51:32][SCENARIO] estimation_conso_mois_hp = 79.8
[2021-02-28 14:51:32][SCENARIO] estimation_conso_mois = 102.3
[2021-02-28 14:51:32][SCENARIO] estimation_prix_mois_hc = 2.08125
[2021-02-28 14:51:32][SCENARIO] estimation_prix_mois_hp = 11.93808
[2021-02-28 14:51:32][SCENARIO] estimation_prix_mois_global = 27.51933
[2021-02-28 14:51:32][SCENARIO] Ajout du 2021-02-25
[2021-02-28 14:51:32][SCENARIO] conso_hier_hp = 20.03
[2021-02-28 14:51:32][SCENARIO] conso_hier_hc = 17.115
[2021-02-28 14:51:32][SCENARIO] tarif_hier_hp = 2.996488
[2021-02-28 14:51:32][SCENARIO] tarif_hier_hc = 1.5831375
[2021-02-28 14:51:32][SCENARIO] tarif_hier = 4.5796255
[2021-02-28 14:51:32][SCENARIO] conso_mois_hc = 28.37
[2021-02-28 14:51:32][SCENARIO] conso_mois_hp = 59.93
[2021-02-28 14:51:32][SCENARIO] moyenne_conso_jour_hc = 5.674000
[2021-02-28 14:51:32][SCENARIO] moyenne_conso_jour_hp = 11.986000
[2021-02-28 14:51:32][SCENARIO] jour_restant_mois = 3
[2021-02-28 14:51:32][SCENARIO] estimation_conso_mois_hc = 45.392
[2021-02-28 14:51:32][SCENARIO] estimation_conso_mois_hp = 95.888
[2021-02-28 14:51:32][SCENARIO] estimation_conso_mois = 141.28
[2021-02-28 14:51:32][SCENARIO] estimation_prix_mois_hc = 4.19876
[2021-02-28 14:51:32][SCENARIO] estimation_prix_mois_hp = 14.3448448
[2021-02-28 14:51:32][SCENARIO] estimation_prix_mois_global = 32.0436048
[2021-02-28 14:51:32][SCENARIO] Ajout du 2021-02-26
[2021-02-28 14:51:32][SCENARIO] Ajout du 2021-02-27
[2021-02-28 14:51:32][SCENARIO] conso_hier_hp = 70.71
[2021-02-28 14:51:32][SCENARIO] conso_hier_hc = 35.3
[2021-02-28 14:51:32][SCENARIO] tarif_hier_hp = 10.578216
[2021-02-28 14:51:32][SCENARIO] tarif_hier_hc = 3.26525
[2021-02-28 14:51:32][SCENARIO] tarif_hier = 13.843466
[2021-02-28 14:51:32][SCENARIO] conso_mois_hc = 63.67
[2021-02-28 14:51:32][SCENARIO] conso_mois_hp = 130.64
[2021-02-28 14:51:32][SCENARIO] moyenne_conso_jour_hc = 10.611667
[2021-02-28 14:51:32][SCENARIO] moyenne_conso_jour_hp = 21.773333
[2021-02-28 14:51:32][SCENARIO] jour_restant_mois = 1
[2021-02-28 14:51:32][SCENARIO] estimation_conso_mois_hc = 74.281667
[2021-02-28 14:51:32][SCENARIO] estimation_conso_mois_hp = 152.413333
[2021-02-28 14:51:32][SCENARIO] estimation_conso_mois = 226.695
[2021-02-28 14:51:32][SCENARIO] estimation_prix_mois_hc = 6.8710541975
[2021-02-28 14:51:32][SCENARIO] estimation_prix_mois_hp = 22.8010346168
[2021-02-28 14:51:32][SCENARIO] estimation_prix_mois_global = 43.1720888143
[2021-02-28 14:51:32][SCENARIO] Fin correcte du scénario

Donc mon problème vient du fait que les heures creuses commence à minuit.

Bonjour à tous,
Je tiens à félicité @mick74 et les autres pour ce super scénario
Je viens de tester avec plusieurs lecture et suis arrivé à mes fins
Vraiment génial
Je n’ai pas de compteur de nuit et vous mets une capture de mon résultat
J’ai juste un doute sur la Conso Mois HP, Tarif Jour HP et Moyenne Conso Jour HP
Variable

Bonne journée

1 « J'aime »

Pour info : [Scénario pour Plugin Enedis] [Tuto] Calculs sur Heure Pleine / Heure Creuse et Tarifications / Coûts - #43 par mick74

Merci pour ton retour :slight_smile:

En fait vu que les statistiques se basent sur les données horaires et non sur les données du jour (pour avoir des stats sur les HP et HC), si on n’a pas correctement les données qui sont mises à jour coté Enedis, on se retrouve avec des trous et donc les données ne peuvent pas être très représentatives… Du coup tant qu’il n’y aura pas une gestion du côté du plugin-enedis pour reprendre les trous en cas de 1 ou 2 jours de coupures, les données ne seront pas correctes malheureusement… mais bon ça permet d’avoir des indications :slight_smile:

J’ai tester la modifications :

		### Lancement du calcul des données pour x jours

		for($n=($nb_jour_a_updater-1); $n >= 0; $n--){

			$date_valeurs = date('Y-m-d H:i:s', strtotime("yesterday - $n days 00:01"));
			$date_JourEt1_minuit = date('Y-m-d H:i:s', strtotime("today - $n days 00:00"));
			$scenario->setLog("Ajout du ".date('Y-m-d', strtotime("yesterday - $n days")));
			$jour_restant_mois = scenarioExpression::time_diff("now - $n days", "first day of next month",d);


		## NOTE: la valeur de la minute 0 ne doit pas être prise => ajout de 1mn
		$debut_hp = date('Y-m-d H:i:s', strtotime("yesterday - $n days $debut_heure_pleine +1 minute"));
		$debut_hc = date('Y-m-d H:i:s', strtotime("yesterday - $n days $debut_heure_creuse + 1 minute"));
		
		if ($nb_plages_horaires == 1) {
			$conso_hier_hp = history::getStatistique($id_commande_ConsoHoraire, $debut_hp, $debut_hc)["sum"] /2;
		}else{
			$debut_hp2 = date('Y-m-d H:i:s', strtotime("yesterday - $n days $debut_heure_pleine2 +1 minute"));
			$debut_hc2 = date('Y-m-d H:i:s', strtotime("yesterday - $n days $debut_heure_creuse2 +1 minute"));
			## Heures pleines =  Minuit j-1 => $debut_hc + $debut_hp => $debut_hc2 + $debut_hp2 => minuit
			$conso_hier_hc = (history::getStatistique($id_commande_ConsoHoraire, $date_valeurs, $debut_hp)["sum"] ) /2;
		}
		
		## Si donnée horaire à 0, envoyer un message dans le centre de message, sinon continuer
		if ($conso_hier_hp == 0) {

			$title = 'Erreur Récupération données EDF';
			$message = 'Données de consommation horaire null pour le '.date('Y-m-d', strtotime("yesterday - $n days"));
			message::add($title, $message);
			
		} else {
			if ($nb_plages_horaires == 1) {
				$conso_hier_hc = (history::getStatistique($id_commande_ConsoHoraire, $date_valeurs, $debut_hp)["sum"] ) /2;
			} else {
				## Heures creuses = $debut_hc => $debut_hp + $debut_hc2 => $debut_hp2
				$conso_hier_hc = (history::getStatistique($id_commande_ConsoHoraire, $date_valeurs, $debut_hp)["sum"] ) /2;
			}
			$tarif_hier_hp = $conso_hier_hp * $tarif_heure_pleine;
			$tarif_hier_hc = $conso_hier_hc * $tarif_heure_creuse;
			$tarif_hier = $tarif_hier_hp + $tarif_hier_hc;

j’ai toujours l’erreur que je teste avec 00:00 ou 01:00 avec 23:00 pas de soucis.

Le problème est ici:

Je suppose que tu as des erreurs dans le centre de message.

Pour les 2 variables:

$debut_hp = date('Y-m-d H:i:s', strtotime("yesterday - $n days $debut_heure_pleine +1 minute"));
$debut_hc = date('Y-m-d H:i:s', strtotime("yesterday - $n days $debut_heure_creuse + 1 minute"));

Tu peux les afficher dans le scénario pour comprendre leur valeur exact et essayer d’adapter.

$scenario->setLog("Début des HP: ".$debut_hp." et des HC: ".$debut_hc);

Cela permettra de comprendre exactement les intervalles de temps qu’il prend pour faire son sum de valeurs.

------------------------------------
[2021-02-28 16:03:13][SCENARIO] Start : Scenario lance manuellement.
[2021-02-28 16:03:13][SCENARIO] Exécution du sous-élément de type [action] : code
[2021-02-28 16:03:13][SCENARIO] Exécution d'un bloc code
[2021-02-28 16:03:13][SCENARIO] Attention: 7 jours a updater
[2021-02-28 16:03:13][SCENARIO] Ajout du 2021-02-21
[2021-02-28 16:03:13][SCENARIO] Début des HP: 2021-02-21 08:01:00 et des HC: 2021-02-21 00:01:00
[2021-02-28 16:03:13][SCENARIO] Ajout du 2021-02-22
[2021-02-28 16:03:13][SCENARIO] Début des HP: 2021-02-22 08:01:00 et des HC: 2021-02-22 00:01:00
[2021-02-28 16:03:13][SCENARIO] Ajout du 2021-02-23
[2021-02-28 16:03:13][SCENARIO] Début des HP: 2021-02-23 08:01:00 et des HC: 2021-02-23 00:01:00
[2021-02-28 16:03:13][SCENARIO] Ajout du 2021-02-24
[2021-02-28 16:03:13][SCENARIO] Début des HP: 2021-02-24 08:01:00 et des HC: 2021-02-24 00:01:00
[2021-02-28 16:03:13][SCENARIO] Ajout du 2021-02-25
[2021-02-28 16:03:13][SCENARIO] Début des HP: 2021-02-25 08:01:00 et des HC: 2021-02-25 00:01:00
[2021-02-28 16:03:13][SCENARIO] Ajout du 2021-02-26
[2021-02-28 16:03:13][SCENARIO] Début des HP: 2021-02-26 08:01:00 et des HC: 2021-02-26 00:01:00
[2021-02-28 16:03:13][SCENARIO] Ajout du 2021-02-27
[2021-02-28 16:03:13][SCENARIO] Début des HP: 2021-02-27 08:01:00 et des HC: 2021-02-27 00:01:00
[2021-02-28 16:03:13][SCENARIO] Fin correcte du scénario

et en effet j’ai bien l’erreur dans le centre de message :

Erreur Récupération données EDF	Données de consommation horaire null

Du coup tu vois qu’il y a bien un problème. Il peut pas remonter dans le temps :slight_smile:
Il faut donc dans le cas d’un créneau qui n’est pas à cheval entre 2 jours, gérer le calcul différemment.

Sur l’exemple :

[2021-02-28 16:03:13][SCENARIO] Ajout du 2021-02-21
[2021-02-28 16:03:13][SCENARIO] Début des HP: 2021-02-21 08:01:00 et des HC: 2021-02-21 00:01:00

HC devrait être au 02-22 à 00:01:00 et non pas au 21.

Il faut donc adapter la variable en conséquence vu que l’heure de début n’est pas à la veille, il faudrait donc la mettre à today et pas yesterday.

Ce scénario est bien sûr à adapter, il doit pouvoir être simple et pas forcément prendre en compte tous les divers cas de créneaux horaires, sinon il ferait 500 lignes. Il faut donc jouer un peu avec les variables.

Après au fur et à mesure on peut mettre « des cas » dans le message principal, mais il faut bien penser qu’il doit être adapté à sa situation :slight_smile:

1 « J'aime »