Skip to content

Commit

Permalink
Refonte totale tarification EDF et +++
Browse files Browse the repository at this point in the history
- Nouvelle version du calcul du coût EDF.
- Ajustement de l'échelle de la gauge instantanée
- Quelques ajustements mineurs
- Quelques bugfixes
  • Loading branch information
BmdOnline committed Jan 30, 2014
1 parent 2dcbd06 commit 3437f87
Show file tree
Hide file tree
Showing 8 changed files with 1,168 additions and 329 deletions.
25 changes: 16 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,30 +20,35 @@

###Version 4.2 (dev)
* Interface
- Affiche la prochaine période tarifaire des abonnements Tempo. (BmdOnline)
- change : Affiche la prochaine période tarifaire des abonnements Tempo. (BmdOnline)

* Graphiques
- bugfix : N'affiche plus les 0 des données vides dans le graphique historique. (BmdOnline)
- bugfix : N'affiche plus les décimales (non arrondies) des consommations dans le graphique quotidien. (BmdOnline)
- bugfix : Correction d'un bug dans l'affichage des semaines dans le graphique historique. (BmdOnline)
* La semaine du "30/12/2014" apparaissait "Sem 1 (2013)" au lieu de "Sem 1 (2014)". (BmdOnline)
- change : L'échelle de la gauge instantanée s'ajuste automatiquement. (energy01 & BmdOnline)
- change : Affiche toutes les périodes tarifaires, et pas seulement "Base" ou "HP/HC". (BmdOnline)
- change : Revue de l'affichage de la légende des graphiques quotidien et historique. (BmdOnline)
* N'affiche plus les périodes ne correspondant pas à l'abonnement souscrit.
* N'affiche plus les périodes de l'abonnement souscrit mais n'ayant pas de donnée (graphique historique).
- change : Refonte de l'infobulle du graphique historique. (BmdOnline)
- change : La couleur des séries est configurable dans le fichier "config.php". (BmdOnline)
* Chaque période tarifaire a la même couleur dans tous les graphiques.
- bugfix : N'affiche plus les 0 des données vides dans le graphique historique. (BmdOnline)
- bugfix : N'affiche plus les décimales (non arrondies) des consommations dans le graphique quotidien. (BmdOnline)
- bugfix : Correction d'un bug dans l'affichage des semaines dans le graphique historique. (BmdOnline)
* La semaine du "30/12/2014" apparaissait "Sem 1 (2013)" au lieu de "Sem 1 (2014)". (BmdOnline)

* Moteur / PHP
- bugfix : Affichage des historiques même si la période (courante ou précédente) est vide. (BmdOnline)
- change : Gestion des requêtes MySQL dans un fichier dédié "queries.php". (BmdOnline)
- change : Refonte complète de la gestion des requêtes MySQL. (BmdOnline)
* Gestion des requêtes MySQL dans un fichier dédié "queries.php".
* Le paramétrage est améliorée pour prendre en charge le maximum de configurations possible.
- change : Refonte complète de la gestion des abonnements. (energy01 & BmdOnline)
* Les abonnements autres que "base" ou "HC/HP" sont maintenant gérés : EJP et Tempo (Bleu Blanc Rouge).
* L'abonnement est détecté automatiquement, il n'est plus nécessaire de le spécifier dans le programme.
- change : Refonte complète de la gestion des tarifs. (BmdOnline)
* Les tarifs EDF sont historisés, le calcul du coût tient compte des variations de prix.
* Les taxes sont clairement identifiées.
* Les évolutions de TVA sont également prises en charge.
- change : JSON fournit la prochaine période tarifaire pour traitement éventuel. (BmdOnline)
- bugfix : Meilleure gestion des périodes vides dans le graphique historique. (BmdOnline)

###Version 4.1 (dev)
* Interface
Expand Down Expand Up @@ -192,7 +197,9 @@ Attention à la casse (majuscule / minuscule) !
- [] Optimiser l'utilisation de HighCharts avec le chargement asynchrone :
- Actuellement, le graphique est détruit et recréé. Il faudrait envisager de remplacer les données sans détruire le graphique.
- [] Fiabiliser les passages aux heures hiver/été.
- [] Ajout d'un calendrier à la place du bouton "Aujourd'hui".
- Il existe 2 calendriers JQueryUI et JQueryMobile.
- [x] Prévoir un rafraîchissement automatique, avec temporisation.
- [x] Réutiliser le fichier config.php (régression de la v4).
- [] Gérer dynamique le maximum de la gauge d'intensité.
- [] Meilleure gestion des tarifs.
- [x] Gestion dynamique du maximum de la gauge d'intensité.
- [x] Meilleure gestion des tarifs.
119 changes: 7 additions & 112 deletions config.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
<?php

/***********************/
/* Données MySQL */
/***********************/
Expand All @@ -15,6 +14,10 @@
/* Table TéléInfo */
/************************/

// Quelques informations sur Teleinfo et les formules EDF :
// http://norm.edf.fr/pdf/HN44S812emeeditionMars2007.pdf
// http://www.yadnet.com/index.php?page=protocole-teleinfo

// Ces données permettent au programme de fonctionner avec différentes structures de données
$config_table = array (
// Quelques informations sur la configuration
Expand Down Expand Up @@ -131,117 +134,9 @@
/*********************/
/* Données EDF */
/*********************/
$nbPhasesCompteur = 1; // 1 pour monophasé ou 3 pour triphasé

$refresh_auto = true; // active le rafraichissement automatique
$refresh_delay = 120; // relancé toutes les 120 secondes

// Quelques informations sur Teleinfo et les formules EDF :
// http://norm.edf.fr/pdf/HN44S812emeeditionMars2007.pdf
// http://www.yadnet.com/index.php?page=protocole-teleinfo

// Revoie les tarifs, avec hitorique
function getTarifs($optarif) {
// prix du kWh :
switch($optarif) {
// Tarif de base
case "BASE" :
$tab_prix[mktime(0,0,0,01,01,2012)] = array(
"date" => "1/01/2012",
"AboAnnuel" => 12*(5.36+1.92/2)*1.055, // Abonnement + CTA, TVA 5.5%
"periode" => array(
"BASE" => (0.0812+0.009+0.009)*1.196 // kWh + CSPE + TCFE, TVA 19.6%
)
);
$tab_prix[mktime(0,0,0,07,23,2012)] = array(
"date" => "23/07/2012",
"AboAnnuel" => 12*(5.47+1.96/2)*1.055, // Abonnement + CTA, TVA 5.5%
"periode" => array(
"BASE" => (0.0828+0.0105+0.009)*1.196 // kWh + CSPE + TCFE, TVA 19.6%
)
);
$tab_prix[mktime(0,0,0,01,01,2013)] = array( // Augmentation CSPE + TCFE
"date" => "01/01/2013",
"AboAnnuel" => 12*(5.47+1.96/2)*1.055, // Abonnement + CTA, TVA 5.5%
"periode" => array(
"BASE" => (0.0828+0.0135+0.00905)*1.196 // kWh + CSPE + TCFE, TVA 19.6%
)
);
$tab_prix[mktime(0,0,0,05,01,2013)] = array( // Augmentation CTA
"date" => "01/05/2013",
"AboAnnuel" => 12*(5.47+2.43/2)*1.055, // Abonnement + CTA, TVA 5.5%
"periode" => array(
"BASE" => (0.0828+0.0135+0.00905)*1.196 // kWh + CSPE + TCFE, TVA 19.6%
)
);
$tab_prix[mktime(0,0,0,08,28,2013)] = array( // Augmentation Abonnement + CTA + kWh
"date" => "28/08/2013",
"AboAnnuel" => 12*(5.56+2.51/2)*1.055, // Abonnement + CTA, TVA 5.5%
"periode" => array(
"BASE" => (0.0883+0.0135+0.00905)*1.196 // kWh + CSPE + TCFE, TVA 19.6%
)
);
break;

// Tarif Heures Creuses / Heures pleines
case "HC.." :
$tab_prix[mktime(0,0,0,01,01,2012)] = array(
"date" => "1/01/2012",
"AboAnnuel" => 112.87, // Abonnement + CTA, TVA 5.5%
"periode" => array(
"HP" => 0.1312,
"HC" => 0.0895
)
);
$tab_prix[mktime(0,0,0,07,23,2012)] = array(
"date" => "23/07/2012",
"AboAnnuel" => 12*(9.07+1.92/2)*1.055, // Abonnement + CTA, TVA 5.5%
"periode" => array(
"HP" => 0.1353,
"HC" => 0.0926
)
);
$tab_prix[mktime(0,0,0,08,01,2013)] = array(
"date" => "01/08/2013",
"AboAnnuel" => 137.01*1.055, // Abonnement + CTA, TVA 5.5%
"periode" => array(
"HP" => 0.1467,
"HC" => 0.1002
)
);
break;

// Tarif Tempo
case "BBR" :
//case "BBRX" : // A priori, la trame téléinfo renvoie BBR.
$tab_prix[mktime(0,0,0,07,23,2012)] = array(
"date" => "23/07/2012",
"AboAnnuel" => 12*(8.84+1.92/2)*1.055, // Abonnement + CTA, TVA 5.5%
"periode" => array(
"HPJB" => 0.0869,
"HCJB" => 0.0725,
"HPJW" => 0.1234,
"HCJW" => 0.1036,
"HPJR" => 0.5081,
"HCJR" => 0.1933
)
);
break;

// Tarif EJP (a définir)
case "EJP." :
$tab_prix[mktime(0,0,0,07,23,2012)] = array(
"date" => "23/07/2012",
"AboAnnuel" => 12*(8.84+1.92/2)*1.055, // Abonnement + CTA, TVA 5.5%
"periode" => array(
"HN" => 0,
"HPM" => 0
)
);
break;
};
$config["nbPhasesCompteur"] = 1; // 1 pour monophasé ou 3 pour triphasé

return $tab_prix;
}
$config["refreshAuto"] = true; // active le rafraichissement automatique
$config["refreshDelay"] = 120; // relancé toutes les 120 secondes

?>
142 changes: 142 additions & 0 deletions config.sample.date.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
<?php
/***********************/
/* Données MySQL */
/***********************/
$db_connect = array (
"serveur" => "localhost",
"base" => "teleinfo",
"table" => "tbTeleinfo",
"login" => "teleinfo",
"pass" => "teleinfo"
);

/************************/
/* Table TéléInfo */
/************************/

// Quelques informations sur Teleinfo et les formules EDF :
// http://norm.edf.fr/pdf/HN44S812emeeditionMars2007.pdf
// http://www.yadnet.com/index.php?page=protocole-teleinfo

// Ces données permettent au programme de fonctionner avec différentes structures de données
$config_table = array (
// Quelques informations sur la configuration
"type_date" => "date", // "date" ou "timestamp" selon le type de stockage de la date
// Nom des champs de la table.
// Clé = nom interne au programme : NE PAS MODIFIER
// Valeur = nom du champ dans la table téléinfo
// Adapter les valeurs du tableau si le nom du champ est différent
"table" => array (
"DATE" => "DATE", // => vaut soit "DATE", soit "TIMESTAMP"
"OPTARIF" => "OPTARIF", // option tarifaire souscrite
"ISOUSC" => "ISOUSC", // intensité souscrite
"BASE" => "BASE", // BASE
"HP" => "HCHP", // HCHP
"HC" => "HCHC", // HCHC
"HPJB" => "BBRHPJB", // BBRHPJB
"HPJW" => "BBRHPJW", // BBRHPJW
"HPJR" => "BBRHPJR", // BBRHPJR
"HCJB" => "BBRHCJB", // BBRHCJB
"HCJW" => "BBRHCJW", // BBRHCJW
"HCJR" => "BBRHCJR", // BBRHCJR
"HN" => "EJPHN", // EJPN
"HPM" => "EJPHPM", // EJPHPM
"PTEC" => "PTEC", // période tarifaire en cours
"DEMAIN" => "DEMAIN", // prévision du lendemain (formule Tempo)
"IINST1" => "IINST1", // => vaut soit "IINST1" soit "INST1"
"PAPP" => "PAPP" // puissance apparente
)
);

/**************************/
/* Données TéléInfo */
/**************************/

// Liste des valeurs possibles pour le champ "OPTARIF"
// Clé = valeur OPTARIF reçue par le signal Teleinfo
// Valeur = nom interne au programme : NE PAS MODIFIER
// Adapter les clés du tableau si le contenu du champ est différent
$teleinfo["OPTARIF"] = array(
"BASE" => "BASE",
"HC.." => "HC",
"BBR" => "BBR",
"EJP." => "EPJ"
);

// Liste des valeurs possibles pour le champ "PTEC"
// Clé = valeur PTEC reçue par le signal Teleinfo
// Valeur = nom interne au programme : NE PAS MODIFIER
// Adapter les clés du tableau si le contenu du champ est différent
$teleinfo["PTEC"] = array(
"TH.." => "BASE",
"HP" => "HP",
"HC" => "HC",
"HPJB" => "HPJB",
"HPJW" => "HPJW",
"HPJR" => "HPJR",
"HCJB" => "HCJB",
"HCJW" => "HCJW",
"HCJR" => "HCJR",
"HN.." => "HN",
"PM.." => "HPM"
);

// Liste des periodes, pour chaque option tarifaire
$teleinfo["PERIODES"] = array(
"BASE" => array ("BASE"),
"HC" => array ("HP", "HC"),
"BBR" => array ("HPJB", "HPJW", "HPJR", "HCJB", "HCJW", "HCJR"),
"EJP" => array ("HN", "HPM")
);

// Description des offres et des périodes EDF
$teleinfo["LIBELLES"] = array(
"OPTARIF" => array (
"BASE" => "EDF Bleu option Base",
"HC" => "EDF Bleu options Base + Heures Creuses",
"BBR" => "EDF Bleu Blanc Rouge (Tempo)",
"EPJ" => "EDF EJP (Effacement des Jours de Pointe)"
),
"PTEC" => array (
"BASE" => "Heures de Base",
"HP" => "Heures Pleines",
"HC" => "Heures Creuse",
"HPJB" => "Heures Pleines Jours Bleus",
"HPJW" => "Heures Pleines Jours Blancs",
"HPJR" => "Heures Pleines Jours Rouges",
"HCJB" => "Heures Creuses Jours Bleus",
"HCJW" => "Heures Creuses Jours Blancs",
"HCJR" => "Heures Creuses Jours Rouges",
"HN" => "Heures Normales",
"HPM" => "Heures de Pointe Mobile"
)
);

// couleurs de chacune des séries des graphiques
$teleinfo["COULEURS"] = array(
"MIN" => "green", // Seuil de consommation minimale sur la période
"MAX" => "red", // Seuil de consommation maximale sur la période
"PREC" => "#DB843D", // Période précédente
"BASE" => "#2f7ed8",
"HP" => "#c42525",
"HC" => "#2f7ed8",
"HPJB" => "#2f7ed8",
"HPJW" => "#8bbc21",
"HPJR" => "#910000",
"HCJB" => "#77a1e5",
"HCJW" => "#a6c96a",
"HCJR" => "#c42525",
"HN" => "#2f7ed8",
"HPM" => "#c42525",
"I" => "blue" // Intensité
);

/*********************/
/* Données EDF */
/*********************/
$config["nbPhasesCompteur"] = 1; // 1 pour monophasé ou 3 pour triphasé

$config["refreshAuto"] = true; // active le rafraichissement automatique
$config["refreshDelay"] = 120; // relancé toutes les 120 secondes

?>
Loading

0 comments on commit 3437f87

Please sign in to comment.