Skip to content

Commit

Permalink
Double gauges (Puissance & Intensité)
Browse files Browse the repository at this point in the history
- Ajout de la seconde gauge (paramétrable, activé par défaut)
- Paramétrage des seuils des gauges
- Bugfix Calendrier (correction de l'affichage du bouton sans image)
  • Loading branch information
BmdOnline committed Feb 9, 2014
1 parent 50ccd73 commit 787fba0
Show file tree
Hide file tree
Showing 9 changed files with 325 additions and 115 deletions.
98 changes: 87 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@
- change : Ajout d'icônes pour illustrer les boutons de navigation. (BmdOnline)

* Graphiques
- change : Affichage de double gauge (puissance & intensité). (energy01 & BmdOnline)
* Une option permet de n'afficher que la puissance.
- change : Paramétrage des seuils limites des gauges dans le fichier "config.php". (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)
Expand Down Expand Up @@ -128,23 +131,39 @@ Voir [Graphique Conso Electrique Téléinfo EDF avec Highcharts (v2)](http://pen
###Version 1
Voir [Graphique Conso Electrique Téléinfo EDF avec Highcharts](http://penhard.anthony.free.fr/?p=111)

###Gauge instantanée
#### Donnée à afficher
Il est possible d'afficher une ou deux gauges.
Dans le cas d'une seule gauge affichée, c'est la puissance qui est sélectionnée.
Dans le cas de deux gauges, l'intensité s'affichera à côté.

L'option se situe dans le fichier "config.php" :
```php
$config["doubleGauge"] = true; // true : affiche intensité en plus de la puissance
```

#### Rafraichissement automatique
Il est possible d'activer ou désactiver le rafraichissement automatique des gauges.

L'option se situe dans le fichier "config.php" :
```php
$config["refreshAuto"] = true; // active le rafraichissement automatique
$config["refreshDelay"] = 120; // relancé toutes les 120 secondes
```

###Templates
Actuellement, 2 modèles de mise en page sont proposés pour chacun des affichages (desktop & mobile).
Par défaut, les templates ne sont pas activés. L'affichage utilise des fichiers HTML préparés.

#### Gestion par fichiers HTML
Des fichiers sont proposés pour chacun des modes d'affichage.

Pour changer de modèle, il faut adapter le fichier "teleinfo.php" :
Pour changer de modèle, il faut adapter le fichier "config.php" :
```php
} else {
header("Vary: User-Agent");
if ($mobile) {
readfile("tpl/teleinfo.tabs.mobile.html");
} else {
readfile("tpl/teleinfo.tabs.html");
}
}
$config["useTemplate"] = false; // utilise les templates pour afficher les page HTML (utilise RainTPL)
(...)
$config["notemplate"]["desktop"] = "tpl/teleinfo.tabs.html";
$config["notemplate"]["mobile"] = "tpl/teleinfo.tabs.mobile.html";
```

* Pour la vesion desktop, les fichiers :
Expand All @@ -157,7 +176,15 @@ Pour changer de modèle, il faut adapter le fichier "teleinfo.php" :
#### Gestion par templates
Le moteur de template utilisé est RainTPL. Il est possible de modifier les pages en utilisant la syntaxe adéquate.

Pour changer de modèle, il faut remplacer le contenu du répertoire "tpl/files"...
Pour changer de modèle, il faut adapter le fichier "config.php" :
```php
$config["useTemplate"] = true; // utilise les templates pour afficher les page HTML (utilise RainTPL)
$config["template"]["desktop"] = "teleinfo";
$config["template"]["mobile"] = "teleinfo.mobile";
(...)
```

Il faut également remplacer le contenu du répertoire "tpl/files"...
* Pour la vesion desktop, depuis :
- tpl/files/desktop - lineaire
- tpl/files/desktop - onglets
Expand All @@ -174,7 +201,56 @@ Remarque :
Pour le bon fonctionnement du programme, il faut choisir un template desktop ET un template mobile.
Par défaut, le programme est réglé sur les templates avec onglets.

###Thèmes
###Apparence
####Couleur des graphiques
Chaque donnée affiché en graphique a une couleur paramétrable.

Pour changer les couleurs, il faut adapter le fichier "config.php" :
```php
// 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é
);
```

####Aspect des gauges
Les différents seuils des gauges sont paramétrables ainsi que les couleurs associées.

Pour régler ces seuils, il faut adapter le fichier "config.php" :
```php
// couleurs des bandes des gauges
$teleinfo["BANDS"] = array(
"W" => array(
300 => "#55BF3B", // de 0 à 300
1000 => "#DDDF0D", // de 300 à 1000
3000 => "#FFA500", // de 1000 à 3000
10000 => "#DF5353" // supérieur à 3000
),
"I" => array(
5 => "#55BF3B", // de 0 à 5
10 => "#DDDF0D", // de 5 à 10
20 => "#FFA500", // de 10 à 20
100 => "#DF5353" // supérieur à 20
)
);
```


####Thèmes
Actuellement, 3 thèmes sont proposés (classique, clair & sombre).
Pour en changer, il faut modifier le fichier "tpl/inc.lib.html", en spécifiant respectivement :
```php
Expand Down
24 changes: 21 additions & 3 deletions config.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@
/*********************************/
/* Paramètres du programme */
/*********************************/
$config["refreshAuto"] = true; // active le rafraichissement automatique
$config["refreshDelay"] = 120; // relancé toutes les 120 secondes
$config["refreshAuto"] = true; // active le rafraichissement automatique
$config["refreshDelay"] = 120; // relancé toutes les 120 secondes
$config["doubleGauge"] = true; // true : affiche intensité en plus de la puissance

$config["usetemplate"] = false; // utilise les templates pour afficher les page HTML (utilise RainTPL)

$config["useTemplate"] = false; // utilise les templates pour afficher les page HTML (utilise RainTPL)
$config["template"]["desktop"] = "teleinfo";
$config["template"]["mobile"] = "teleinfo.mobile";
$config["notemplate"]["desktop"] = "tpl/teleinfo.tabs.html";
Expand Down Expand Up @@ -143,6 +145,22 @@
"I" => "blue" // Intensité
);

// couleurs des bandes des gauges
$teleinfo["BANDS"] = array(
"W" => array(
300 => "#55BF3B", // de 0 à 300
1000 => "#DDDF0D", // de 300 à 1000
3000 => "#FFA500", // de 1000 à 3000
10000 => "#DF5353" // supérieur à 3000
),
"I" => array(
5 => "#55BF3B", // de 0 à 5
10 => "#DDDF0D", // de 5 à 10
20 => "#FFA500", // de 10 à 20
100 => "#DF5353" // supérieur à 20
)
);

/*********************/
/* Données EDF */
/*********************/
Expand Down
24 changes: 21 additions & 3 deletions config.sample.date.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@
/*********************************/
/* Paramètres du programme */
/*********************************/
$config["refreshAuto"] = true; // active le rafraichissement automatique
$config["refreshDelay"] = 120; // relancé toutes les 120 secondes
$config["refreshAuto"] = true; // active le rafraichissement automatique
$config["refreshDelay"] = 120; // relancé toutes les 120 secondes
$config["doubleGauge"] = true; // true : affiche intensité en plus de la puissance

$config["usetemplate"] = false; // utilise les templates pour afficher les page HTML (utilise RainTPL)

$config["useTemplate"] = false; // utilise les templates pour afficher les page HTML (utilise RainTPL)
$config["template"]["desktop"] = "teleinfo";
$config["template"]["mobile"] = "teleinfo.mobile";
$config["notemplate"]["desktop"] = "tpl/teleinfo.tabs.html";
Expand Down Expand Up @@ -143,6 +145,22 @@
"I" => "blue" // Intensité
);

// couleurs des bandes des gauges
$teleinfo["BANDS"] = array(
"W" => array(
300 => "#55BF3B", // de 0 à 300
1000 => "#DDDF0D", // de 300 à 1000
3000 => "#FFA500", // de 1000 à 3000
10000 => "#DF5353" // supérieur à 3000
),
"I" => array(
5 => "#55BF3B", // de 0 à 5
10 => "#DDDF0D", // de 5 à 10
20 => "#FFA500", // de 10 à 20
100 => "#DF5353" // supérieur à 20
)
);

/*********************/
/* Données EDF */
/*********************/
Expand Down
24 changes: 21 additions & 3 deletions config.sample.ftimestp.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@
/*********************************/
/* Paramètres du programme */
/*********************************/
$config["refreshAuto"] = true; // active le rafraichissement automatique
$config["refreshDelay"] = 120; // relancé toutes les 120 secondes
$config["refreshAuto"] = true; // active le rafraichissement automatique
$config["refreshDelay"] = 120; // relancé toutes les 120 secondes
$config["doubleGauge"] = true; // true : affiche intensité en plus de la puissance

$config["usetemplate"] = false; // utilise les templates pour afficher les page HTML (utilise RainTPL)

$config["useTemplate"] = false; // utilise les templates pour afficher les page HTML (utilise RainTPL)
$config["template"]["desktop"] = "teleinfo";
$config["template"]["mobile"] = "teleinfo.mobile";
$config["notemplate"]["desktop"] = "tpl/teleinfo.tabs.html";
Expand Down Expand Up @@ -143,6 +145,22 @@
"I" => "blue" // Intensité
);

// couleurs des bandes des gauges
$teleinfo["BANDS"] = array(
"W" => array(
300 => "#55BF3B", // de 0 à 300
1000 => "#DDDF0D", // de 300 à 1000
3000 => "#FFA500", // de 1000 à 3000
10000 => "#DF5353" // supérieur à 3000
),
"I" => array(
5 => "#55BF3B", // de 0 à 5
10 => "#DDDF0D", // de 5 à 10
20 => "#FFA500", // de 10 à 20
100 => "#DF5353" // supérieur à 20
)
);

/*********************/
/* Données EDF */
/*********************/
Expand Down
24 changes: 21 additions & 3 deletions config.sample.timestp.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@
/*********************************/
/* Paramètres du programme */
/*********************************/
$config["refreshAuto"] = true; // active le rafraichissement automatique
$config["refreshDelay"] = 120; // relancé toutes les 120 secondes
$config["refreshAuto"] = true; // active le rafraichissement automatique
$config["refreshDelay"] = 120; // relancé toutes les 120 secondes
$config["doubleGauge"] = true; // true : affiche intensité en plus de la puissance

$config["usetemplate"] = false; // utilise les templates pour afficher les page HTML (utilise RainTPL)

$config["useTemplate"] = false; // utilise les templates pour afficher les page HTML (utilise RainTPL)
$config["template"]["desktop"] = "teleinfo";
$config["template"]["mobile"] = "teleinfo.mobile";
$config["notemplate"]["desktop"] = "tpl/teleinfo.tabs.html";
Expand Down Expand Up @@ -143,6 +145,22 @@
"I" => "blue" // Intensité
);

// couleurs des bandes des gauges
$teleinfo["BANDS"] = array(
"W" => array(
300 => "#55BF3B", // de 0 à 300
1000 => "#DDDF0D", // de 300 à 1000
3000 => "#FFA500", // de 1000 à 3000
10000 => "#DF5353" // supérieur à 3000
),
"I" => array(
5 => "#55BF3B", // de 0 à 5
10 => "#DDDF0D", // de 5 à 10
20 => "#FFA500", // de 10 à 20
100 => "#DF5353" // supérieur à 20
)
);

/*********************/
/* Données EDF */
/*********************/
Expand Down
41 changes: 26 additions & 15 deletions json.php
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?php
setlocale(LC_ALL , "fr_FR" );
date_default_timezone_set("Europe/Paris");
error_reporting(E_ERROR);
error_reporting(E_WARNING);

// Adapté du code de Domos, dont il ne doit plus rester grand chose !
// cf . http://vesta.homelinux.net/wiki/teleinfo_papp_jpgraph.html
Expand Down Expand Up @@ -97,8 +97,8 @@ function instantly () {
$demain = $row["DEMAIN"];
$date_deb = $row["TIMESTAMP"];
$Isousc = floatval(str_replace(",", ".", $row["ISOUSC"]));
$valP = floatval(str_replace(",", ".", $row["PAPP"]));
$valI = floatval(str_replace(",", ".", $row["IINST1"]));
$val["W"] = floatval(str_replace(",", ".", $row["PAPP"]));
$val["I"] = floatval(str_replace(",", ".", $row["IINST1"]));
};
mysql_free_result($result);

Expand All @@ -108,18 +108,30 @@ function instantly () {
$nbenreg = mysql_num_rows($result);
if ($nbenreg > 0) {
$row = mysql_fetch_array($result);
$maxP = max($valP, $row["PAPP"]);
$maxI = max($valI, $row["IINST1"]);
$max["W"] = max($val["W"], $row["PAPP"]);
$max["I"] = max($val["I"], $row["IINST1"]);
};
mysql_free_result($result);

$datetext = strftime("%c",$date_deb);
//$datetext = strftime("%c",$date_deb);
$datetext = date("d/m G:i", $date_deb);

$seuils["W"] = array (
'min' => 0,
'max' => ceil($max["W"] / 500) * 500, // Arrondi à 500 "au dessus"
);

$seuilsP = array (
$seuils["I"] = array (
'min' => 0,
'max' => ceil($maxP / 500) * 500, // Arrondi à 500 "au dessus"
'max' => ceil($max["I"] / 5) * 5, // Arrondi à 5 "au dessus"
);

$series["W"] = "Watts";
if ($config["doubleGauge"]) {
// Ajoute la série Intensité
$series["I"] = "Ampères";
}

// Subtitle pour la période courante
$subtitle = "Option tarifaire : <b>".$optarifStr." (".$Isousc." A)</b><br />";
$subtitle .= "Période tarifaire : <b>".$ptecStr."</b><br />";
Expand All @@ -130,10 +142,8 @@ function instantly () {
default :
break;
}
$subtitle .= "Puissance Max : <b>".intval($maxP)." W</b><br />";
$subtitle .= "Intensité Max : <b>".intval($maxI)." A</b><br />";
// Puissance / Max
// Intensité / Max
$subtitle .= "Puissance Max : <b>".intval($max["W"])." W</b><br />";
$subtitle .= "Intensité Max : <b>".intval($max["I"])." A</b><br />";

$instantly = array(
'title' => "Consommation du $datetext",
Expand All @@ -142,9 +152,10 @@ function instantly () {
'ptec' => array($ptec => $ptecStr),
'demain' => $demain,
'debut' => $date_deb*1000, // $date_deb_UTC,
'W_name' => "Watts",
'W_data'=> $valP,
'W_seuils' => $seuilsP,
'series' => $series,
'data'=> $val,
'seuils' => $seuils,
'bands' => $teleinfo["BANDS"],
'refresh_auto' => $config["refreshAuto"],
'refresh_delay' => $config["refreshDelay"]
);
Expand Down
Loading

0 comments on commit 787fba0

Please sign in to comment.