par Aurel64 » 25 Avr 2014 08:47
Ci-joint le fichier que j'ai modifié pour avoir le calcul de l'eau avec mon compteur d'eau a impulsion.
Ton script modifié pour faire le calcul de la conso d'eau :
<?php
include 'compteetconnexion.php';
// Developpeur : gusdelamort pour forum.eedomus.com
// Version : 2.0
// Objectif : Sortir des statistiques d'utilisation
// variable d'entrée : le nom du produit
// option : &energie = 1 permet de founir les statistiques energetiques (si elle existe)
// Bug Connu : RAS
// on se connecte à MySQL
$db = mysql_connect($ipserveurbdd,$compte,$password);
// on sélectionne la base
mysql_select_db($base,$db);
$table = $_GET["table"];
$energie = $_GET["energie"];
$tableenergie = $table.'energie';
$tablestat = $table.'stat';
//les stats sont refait à chaque fois
//on vide donc la table d'historique du peripherique et de ses stats
//$vider = "TRUNCATE TABLE $tableenergie";
//mysql_query ($vider);
//$vider = "TRUNCATE TABLE $tablestat";
//mysql_query ($vider);
// on vide uniquement l'année, les statistiques des années passées sont gardées
$vider = "DELETE FROM $tableenergie WHERE annee = '$annee'";
mysql_query ($vider);
$vider = "DELETE FROM $tablestat WHERE annee = '$annee'";
mysql_query ($vider);
$nombre = "SELECT * FROM $table";
$result = mysql_query($nombre);
$nombre = mysql_num_rows($result);
//on va créer les stats globales
$mois = 1;
while($mois <= 12)
{
$moisteste = 'm'.$mois;
$ajout = "INSERT INTO $tablestat VALUES ('','$annee','$moisteste',0)";
mysql_query ($ajout);
$mois = $mois + 1;
}
$numsemaine = 1;
while($numsemaine <= 52)
{
$semaineteste = 's'.$numsemaine;
$ajout = "INSERT INTO $tablestat VALUES ('','$annee','$semaineteste',0)";
mysql_query ($ajout);
$numsemaine = $numsemaine + 1;
}
$numjour = 1;
while($numjour <= 365)
{
$jourteste = 'j'.$numjour;
$ajout = "INSERT INTO $tablestat VALUES ('','$annee','$jourteste',0)";
mysql_query ($ajout);
$numjour = $numjour + 1;
}
//pour avoir les stats de la semaine
$mois = 1;
$numsemaine = '01';
$consoweek = 0;
$consomois = 0;
$jourcpt = 1;
while($mois <= 12)
{
if ($mois < 10)
{
$moist = '0'.$mois;
}
else
{
$moist = $mois;
}
$statutonmensuel= "SELECT COUNT(*)/4 AS conso_litre FROM $table WHERE date LIKE '$annee-$moist%' AND etat = 'Ouve'";
$statutonmensuel = mysql_query($statutonmensuel);
while($resultat = mysql_fetch_row($statutonmensuel))
{
$utilisationmois = $resultat[0];
}
if ($utilisationmois != NULL)
{
$moisteste = 'm'.$mois;
$udpatedureemois = "UPDATE $tablestat SET `valeur` = $utilisationmois WHERE `type` LIKE '$moisteste' AND annee = '$annee'";
$resultupdatemois= mysql_query($udpatedureemois);
}
$nbrjourdumois = cal_days_in_month(CAL_GREGORIAN, $mois, $annee);
$jourtraite = 1;
while($jourtraite <= $nbrjourdumois)
{
$timestamp = mktime(0, 0, 0, $mois, $jourtraite, $annee);
$jour = date('w', $timestamp);
// permet de savoir quel jour on est, le dimanche est un 0 la semaine se finit donc
if ($mois < 10)
{
$moist = '0'.$mois;
}
else
{
$moist = $mois;
}
if ($jourtraite < 10)
{
$jourtraitet = '0'.$jourtraite;
}
else
{
$jourtraitet = $jourtraite;
}
$statutonjournalier = "SELECT COUNT(*)/4 AS conso_litre FROM $table WHERE date LIKE '$annee-$moist-$jourtraitet%' AND etat = 'Ouve'";
$resultjournalier = mysql_query($statutonjournalier);
while($resultat = mysql_fetch_row($resultjournalier))
{
$utilisationjournaliere = $resultat[0];
$jourteste = 'j'.$jourcpt;
if ($utilisationjournaliere != NULL)
{
//si la somme journaliere est supérieure a 0 on modifie la table
$udpatedureejour = "UPDATE $tablestat SET `valeur` = $utilisationjournaliere WHERE `type` LIKE '$jourteste' AND annee = '$annee'";
$resultupdatejour = mysql_query($udpatedureejour);
}
else
{
$utilisationjournaliere = 0;
}
if ($jour == 0)
{
// c'est un dimanche
$consoweek = $consoweek + $utilisationjournaliere;
$semaineteste = 's'.$numsemaine;
if ($consoweek != 0)
{
$udpatedureesem = "UPDATE $tablestat SET `valeur` = $consoweek WHERE `type` LIKE '$semaineteste' AND annee = '$annee'";
mysql_query($udpatedureesem);
}
//et on repart pour la prochaine semaine
$consoweek = 0;
$numsemaine = $numsemaine + 1;
if ($numsemaine <10)
{
$numsemaine = '0'.$numsemaine;
}
}
else
{
$consoweek = $consoweek + $utilisationjournaliere;
}
}
$consomois = $consomois + $utilisationjournaliere;
$jourtraite = $jourtraite + 1;
$jourcpt = $jourcpt + 1;
}
$moisteste = 'm'.$mois;
$mois = $mois + 1;
$consomois = 0;
}
// on ferme la connexion à mysql
mysql_close();
?>
- Pièces jointes
-
- Table stat eau
- table eau stat.JPG (71.37 Kio) Consulté 30204 fois
-
- Table import eau
- table eau.JPG (77.64 Kio) Consulté 30204 fois