. */ /* * ***************************Includes********************************* */ require_once dirname(__FILE__) . '/../../../../core/php/core.inc.php'; require_once dirname(__FILE__) . '/../../core/php/conso.inc.php'; class conso extends eqLogic { /* * *************************Attributs****************************** */ public static function listePluginsConso(){ //Morceaux de code récupere du plugin AlexaApi de Sigalou $liste = array(); try {$test = plugin::byId('consoWidget'); if ($test->isActive()) array_push($liste, "consoWidget");} catch(Exception $e) {} try {$test = plugin::byId('suiviCO2'); if ($test->isActive()) array_push($liste, "suiviCO2");} catch(Exception $e) {} return $liste; } public static function cron15() { conso::CreateRefreshCmd(); } public static function CreateRefreshCmd() { /*$sql = "update cmd set name = replace(name,'Hivers','Hiver') where eqType = 'conso' and name like '%hivers%'"; DB::Prepare($sql, array(), DB::FETCH_TYPE_ROW);*/ $jour_glissant = config::byKey('jour_glissant','conso', false); $periode_moins = config::byKey('periode_moins','conso', false); $periode_saisons = config::byKey('periode_saisons','conso', false); $eqLogics = eqLogic::byType('conso'); foreach ($eqLogics as $eqLogic) { /*if ($eqLogic->getConfiguration('type') == 'water' or $eqLogic->getConfiguration('type') == 'oil' or $eqLogic->getConfiguration('type') == 'gaz') { $sql = "delete from cmd where eqType = 'conso' and name like '%Abonnement en cours HC%' and eqLogic_id =".$eqLogic->getId(); log::add('conso', 'debug', 'Delete commande Abonnement en cours HC pour eau, gaz, fioul:'.$sql); DB::Prepare($sql, array(), DB::FETCH_TYPE_ROW); $sql = "update cmd set name = 'Abonnement en cours' where eqType = 'conso' and name like '%Abonnement en cours HP%' and eqLogic_id =".$eqLogic->getId(); log::add('conso', 'debug', 'Renomme Abonnement en cours HP en Abonnement en cours pour eau, gaz, fioul:'.$sql); DB::Prepare($sql, array(), DB::FETCH_TYPE_ROW); $sql = "delete from cmd where eqType = 'conso' and (name like '%HP%' or name like '%HC%') and eqLogic_id =".$eqLogic->getId(); DB::Prepare($sql, array(), DB::FETCH_TYPE_ROW); log::add('conso', 'debug', 'Delete commande %HC% pour eau, gaz, fioul:'.$sql); $sql = "update cmd set name = replace(name,' TOTAL','') where eqType = 'conso' and name like '%TOTAL%' and eqLogic_id =".$eqLogic->getId(); DB::Prepare($sql, array(), DB::FETCH_TYPE_ROW); log::add('conso', 'debug', 'Enlève TOTAL aux commandes pour eau, gaz, fioul:'.$sql); }*/ $Unite = (($eqLogic->getConfiguration('type') == 'water' or $eqLogic->getConfiguration('type') == 'oil') ? 'm3' : ($eqLogic->getConfiguration('type') == 'gaz' ? 'dm3' : 'kWh')); if ($jour_glissant) { $conso_Jm31 = conso_teleinfo::getJm31Conso($eqLogic->getId()); $conso_Jm15 = conso_teleinfo::getJm15Conso($eqLogic->getId()); $conso_Jm7 = conso_teleinfo::getJm7Conso($eqLogic->getId()); if ($eqLogic->getConfiguration('type') == 'water' or $eqLogic->getConfiguration('type') == 'oil' or $eqLogic->getConfiguration('type') == 'gaz') { $TabJ_Glissant = array( 'consommationJm31'=>array('Libelle'=>'Conso J-31', 'Unite'=>$Unite, 'Value' => array('TOTAL' =>$conso_Jm31['total'] )), 'consommationJm15'=>array('Libelle'=>'Conso J-15', 'Unite'=>$Unite, 'Value' => array('TOTAL' =>$conso_Jm15['total'] )), 'consommationJm7'=>array('Libelle'=>'Conso J-7', 'Unite'=>$Unite, 'Value' => array('TOTAL' =>$conso_Jm7['total'] )), 'prixJm31'=>array('Libelle'=>'Prix J-31', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_Jm31['total_ht'] )), 'prixJm15'=>array('Libelle'=>'Prix J-15', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_Jm15['total_ht'] )), 'prixJm7'=>array('Libelle'=>'Prix J-7', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_Jm7['total_ht'] )), 'prixJm31TTC'=>array('Libelle'=>'Prix J-31 TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_Jm31['total_ttc'] )), 'prixJm15TTC'=>array('Libelle'=>'Prix J-15 TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_Jm15['total_ttc'] )), 'prixJm7TTC'=>array('Libelle'=>'Prix J-7 TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_Jm7['total_ttc'] )) ); } else { $TabJ_Glissant = array( 'consommationJm31'=>array('Libelle'=>'Conso J-31', 'Unite'=>$Unite, 'Value' => array('HP' =>$conso_Jm31['hp'],'HC' => $conso_Jm31['hc'] ,'TOTAL' =>$conso_Jm31['total'] )), 'consommationJm15'=>array('Libelle'=>'Conso J-15', 'Unite'=>$Unite, 'Value' => array('HP' =>$conso_Jm15['hp'],'HC' => $conso_Jm15['hc'] ,'TOTAL' =>$conso_Jm15['total'] )), 'consommationJm7'=>array('Libelle'=>'Conso J-7', 'Unite'=>$Unite, 'Value' => array('HP' =>$conso_Jm7['hp'],'HC' => $conso_Jm7['hc'] ,'TOTAL' =>$conso_Jm7['total'] )), 'prixJm31'=>array('Libelle'=>'Prix J-31', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_Jm31['total_hp'],'HC' => $conso_Jm31['total_hc'] ,'TOTAL' =>$conso_Jm31['total_ht'] )), 'prixJm15'=>array('Libelle'=>'Prix J-15', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_Jm15['total_hp'],'HC' => $conso_Jm15['total_hc'] ,'TOTAL' =>$conso_Jm15['total_ht'] )), 'prixJm7'=>array('Libelle'=>'Prix J-7', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_Jm7['total_hp'],'HC' => $conso_Jm7['total_hc'] ,'TOTAL' =>$conso_Jm7['total_ht'] )), 'prixJm31TTC'=>array('Libelle'=>'Prix J-31 TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_Jm31['total_hp_ttc'],'HC' => $conso_Jm31['total_hc_ttc'] ,'TOTAL' =>$conso_Jm31['total_ttc'] )), 'prixJm15TTC'=>array('Libelle'=>'Prix J-15 TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_Jm15['total_hp_ttc'],'HC' => $conso_Jm15['total_hc_ttc'] ,'TOTAL' =>$conso_Jm15['total_ttc'] )), 'prixJm7TTC'=>array('Libelle'=>'Prix J-7 TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_Jm7['total_hp_ttc'],'HC' => $conso_Jm7['total_hc_ttc'] ,'TOTAL' =>$conso_Jm7['total_ttc'] )) ); } } else { $TabJ_Glissant = array(); } if ($periode_moins) { $conso_AvtHier = conso_teleinfo::getDayBeforeYesterdayConso($eqLogic->getId()); $conso_Sm2 = conso_teleinfo::getSm2Conso($eqLogic->getId()); $conso_Sm1 = conso_teleinfo::getSm1Conso($eqLogic->getId()); $conso_Mm2 = conso_teleinfo::getMm2Conso($eqLogic->getId()); $conso_Mm1 = conso_teleinfo::getMm1Conso($eqLogic->getId()); $conso_Am2 = conso_teleinfo::getYm2Conso($eqLogic->getId()); $conso_Am1 = conso_teleinfo::getYm1Conso($eqLogic->getId()); if ($eqLogic->getConfiguration('type') == 'water' or $eqLogic->getConfiguration('type') == 'oil' or $eqLogic->getConfiguration('type') == 'gaz') { $TabP_Moins = array( 'consommationAvantHier'=>array('Libelle'=>'Conso avant Veille', 'Unite'=>$Unite, 'Value' => array('TOTAL' =>$conso_AvtHier['total'] )), 'consommationSm2'=>array('Libelle'=>'Conso S-2', 'Unite'=>$Unite, 'Value' => array('TOTAL' =>$conso_Sm2['total'] )), 'consommationSm1'=>array('Libelle'=>'Conso S-1', 'Unite'=>$Unite, 'Value' => array('TOTAL' =>$conso_Sm1['total'] )), 'consommationMm2'=>array('Libelle'=>'Conso M-2', 'Unite'=>$Unite, 'Value' => array('TOTAL' =>$conso_Mm2['total'] )), 'consommationMm1'=>array('Libelle'=>'Conso M-1', 'Unite'=>$Unite, 'Value' => array('TOTAL' =>$conso_Mm1['total'] )), 'consommationAm2'=>array('Libelle'=>'Conso A-2', 'Unite'=>$Unite, 'Value' => array('TOTAL' =>$conso_Am2['total'] )), 'consommationAm1'=>array('Libelle'=>'Conso A-1', 'Unite'=>$Unite, 'Value' => array('TOTAL' =>$conso_Am1['total'] )), 'prixAvantHier'=>array('Libelle'=>'Prix avant Veille', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_AvtHier['total_ht'] )), 'prixSm2'=>array('Libelle'=>'Prix S-2', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_Sm2['total_ht'] )), 'prixSm1'=>array('Libelle'=>'Prix S-1', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_Sm1['total_ht'] )), 'prixMm2'=>array('Libelle'=>'Prix M-2', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_Mm2['total_ht'] )), 'prixMm1'=>array('Libelle'=>'Prix M-1', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_Mm1['total_ht'] )), 'prixAm2'=>array('Libelle'=>'Prix A-2', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_Am2['total_ht'] )), 'prixAm1'=>array('Libelle'=>'Prix A-1', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_Am1['total_ht'] )), 'prixAvantHierTTC'=>array('Libelle'=>'Prix avant Veille TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_AvtHier['total_ttc'] )), 'prixSm2TTC'=>array('Libelle'=>'Prix S-2 TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_Sm2['total_ttc'] )), 'prixSm1TTC'=>array('Libelle'=>'Prix S-1 TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_Sm1['total_ttc'] )), 'prixMm2TTC'=>array('Libelle'=>'Prix M-2 TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_Mm2['total_ttc'] )), 'prixMm1TTC'=>array('Libelle'=>'Prix M-1 TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_Mm1['total_ttc'] )), 'prixAm2TTC'=>array('Libelle'=>'Prix A-2 TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_Am2['total_ttc'] )), 'prixAm1TTC'=>array('Libelle'=>'Prix A-1 TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_Am1['total_ttc'] )), ); } else { $TabP_Moins = array( 'consommationAvantHier'=>array('Libelle'=>'Conso avant Veille', 'Unite'=>$Unite, 'Value' => array('HP' =>$conso_AvtHier['hp'],'HC' => $conso_AvtHier['hc'] ,'TOTAL' =>$conso_AvtHier['total'] )), 'consommationSm2'=>array('Libelle'=>'Conso S-2', 'Unite'=>$Unite, 'Value' => array('HP' =>$conso_Sm2['hp'],'HC' => $conso_Sm2['hc'] ,'TOTAL' =>$conso_Sm2['total'] )), 'consommationSm1'=>array('Libelle'=>'Conso S-1', 'Unite'=>$Unite, 'Value' => array('HP' =>$conso_Sm1['hp'],'HC' => $conso_Sm1['hc'] ,'TOTAL' =>$conso_Sm1['total'] )), 'consommationMm2'=>array('Libelle'=>'Conso M-2', 'Unite'=>$Unite, 'Value' => array('HP' =>$conso_Mm2['hp'],'HC' => $conso_Mm2['hc'] ,'TOTAL' =>$conso_Mm2['total'] )), 'consommationMm1'=>array('Libelle'=>'Conso M-1', 'Unite'=>$Unite, 'Value' => array('HP' =>$conso_Mm1['hp'],'HC' => $conso_Mm1['hc'] ,'TOTAL' =>$conso_Mm1['total'] )), 'consommationAm2'=>array('Libelle'=>'Conso A-2', 'Unite'=>$Unite, 'Value' => array('HP' =>$conso_Am2['hp'],'HC' => $conso_Am2['hc'] ,'TOTAL' =>$conso_Am2['total'] )), 'consommationAm1'=>array('Libelle'=>'Conso A-1', 'Unite'=>$Unite, 'Value' => array('HP' =>$conso_Am1['hp'],'HC' => $conso_Am1['hc'] ,'TOTAL' =>$conso_Am1['total'] )), 'prixAvantHier'=>array('Libelle'=>'Prix avant Veille', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_AvtHier['total_hp'],'HC' => $conso_AvtHier['total_hc'] ,'TOTAL' =>$conso_AvtHier['total_ht'] )), 'prixSm2'=>array('Libelle'=>'Prix S-2', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_Sm2['total_hp'],'HC' => $conso_Sm2['total_hc'] ,'TOTAL' =>$conso_Sm2['total_ht'] )), 'prixSm1'=>array('Libelle'=>'Prix S-1', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_Sm1['total_hp'],'HC' => $conso_Sm1['total_hc'] ,'TOTAL' =>$conso_Sm1['total_ht'] )), 'prixMm2'=>array('Libelle'=>'Prix M-2', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_Mm2['total_hp'],'HC' => $conso_Mm2['total_hc'] ,'TOTAL' =>$conso_Mm2['total_ht'] )), 'prixMm1'=>array('Libelle'=>'Prix M-1', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_Mm1['total_hp'],'HC' => $conso_Mm1['total_hc'] ,'TOTAL' =>$conso_Mm1['total_ht'] )), 'prixAm2'=>array('Libelle'=>'Prix A-2', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_Am2['total_hp'],'HC' => $conso_Am2['total_hc'] ,'TOTAL' =>$conso_Am2['total_ht'] )), 'prixAm1'=>array('Libelle'=>'Prix A-1', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_Am1['total_hp'],'HC' => $conso_Am1['total_hc'] ,'TOTAL' =>$conso_Am1['total_ht'] )), 'prixAvantHierTTC'=>array('Libelle'=>'Prix avant Veille TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_AvtHier['total_hp_ttc'],'HC' => $conso_AvtHier['total_hc_ttc'] ,'TOTAL' =>$conso_AvtHier['total_ttc'] )), 'prixSm2TTC'=>array('Libelle'=>'Prix S-2 TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_Sm2['total_hp_ttc'],'HC' => $conso_Sm2['total_hc_ttc'] ,'TOTAL' =>$conso_Sm2['total_ttc'] )), 'prixSm1TTC'=>array('Libelle'=>'Prix S-1 TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_Sm1['total_hp_ttc'],'HC' => $conso_Sm1['total_hc_ttc'] ,'TOTAL' =>$conso_Sm1['total_ttc'] )), 'prixMm2TTC'=>array('Libelle'=>'Prix M-2 TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_Mm2['total_hp_ttc'],'HC' => $conso_Mm2['total_hc_ttc'] ,'TOTAL' =>$conso_Mm2['total_ttc'] )), 'prixMm1TTC'=>array('Libelle'=>'Prix M-1 TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_Mm1['total_hp_ttc'],'HC' => $conso_Mm1['total_hc_ttc'] ,'TOTAL' =>$conso_Mm1['total_ttc'] )), 'prixAm2TTC'=>array('Libelle'=>'Prix A-2 TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_Am2['total_hp_ttc'],'HC' => $conso_Am2['total_hc_ttc'] ,'TOTAL' =>$conso_Am2['total_ttc'] )), 'prixAm1TTC'=>array('Libelle'=>'Prix A-1 TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_Am1['total_hp_ttc'],'HC' => $conso_Am1['total_hc_ttc'] ,'TOTAL' =>$conso_Am1['total_ttc'] )), ); } } else { $TabP_Moins = array(); } if ($periode_saisons) { $conso_hiver = conso_teleinfo::getWinterConso($eqLogic->getId()); $conso_printemps = conso_teleinfo::getSpringConso($eqLogic->getId()); $conso_ete = conso_teleinfo::getSummerConso($eqLogic->getId()); $conso_automne = conso_teleinfo::getAutumnConso($eqLogic->getId()); if ($eqLogic->getConfiguration('type') == 'water' or $eqLogic->getConfiguration('type') == 'oil' or $eqLogic->getConfiguration('type') == 'gaz') { $TabP_Saisons = array( 'consommationHivers'=>array('Libelle'=>'Conso Hiver', 'Unite'=>$Unite, 'Value' => array('TOTAL' =>$conso_hiver['total'] )), 'consommationPrintemps'=>array('Libelle'=>'Conso Printemps', 'Unite'=>$Unite, 'Value' => array('TOTAL' =>$conso_printemps['total'] )), 'consommationEte'=>array('Libelle'=>'Conso Ete', 'Unite'=>$Unite, 'Value' => array('TOTAL' =>$conso_ete['total'] )), 'consommationAutomne'=>array('Libelle'=>'Conso Automne', 'Unite'=>$Unite, 'Value' => array('TOTAL' =>$conso_automne['total'] )), 'prixHivers'=>array('Libelle'=>'Prix Hiver', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_hiver['total_ht'] )), 'prixPrintemps'=>array('Libelle'=>'Prix Printemps', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_printemps['total_ht'] )), 'prixEte'=>array('Libelle'=>'Prix Ete', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_ete['total_ht'] )), 'prixAutomne'=>array('Libelle'=>'Prix Automne', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_automne['total_ht'] )), 'prixHiversTTC'=>array('Libelle'=>'Prix Hiver TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_hiver['total_ttc'] )), 'prixPrintempsTTC'=>array('Libelle'=>'Prix Printemps TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_printemps['total_ttc'] )), 'prixEteTTC'=>array('Libelle'=>'Prix Ete TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_ete['total_ttc'] )), 'prixAutomneTTC'=>array('Libelle'=>'Prix Automne TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_automne['total_ttc'] )), ); } else { $TabP_Saisons = array( 'consommationHivers'=>array('Libelle'=>'Conso Hiver', 'Unite'=>$Unite, 'Value' => array('HP' =>$conso_hiver['hp'],'HC' => $conso_hiver['hc'] ,'TOTAL' =>$conso_hiver['total'] )), 'consommationPrintemps'=>array('Libelle'=>'Conso Printemps', 'Unite'=>$Unite, 'Value' => array('HP' =>$conso_printemps['hp'],'HC' => $conso_printemps['hc'] ,'TOTAL' =>$conso_printemps['total'] )), 'consommationEte'=>array('Libelle'=>'Conso Ete', 'Unite'=>$Unite, 'Value' => array('HP' =>$conso_ete['hp'],'HC' => $conso_ete['hc'] ,'TOTAL' =>$conso_ete['total'] )), 'consommationAutomne'=>array('Libelle'=>'Conso Automne', 'Unite'=>$Unite, 'Value' => array('HP' =>$conso_automne['hp'],'HC' => $conso_automne['hc'] ,'TOTAL' =>$conso_automne['total'] )), 'prixHivers'=>array('Libelle'=>'Prix Hiver', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_hiver['total_hp'],'HC' => $conso_hiver['total_hc'] ,'TOTAL' =>$conso_hiver['total_ht'] )), 'prixPrintemps'=>array('Libelle'=>'Prix Printemps', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_printemps['total_hp'],'HC' => $conso_printemps['total_hc'] ,'TOTAL' =>$conso_printemps['total_ht'] )), 'prixEte'=>array('Libelle'=>'Prix Ete', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_ete['total_hp'],'HC' => $conso_ete['total_hc'] ,'TOTAL' =>$conso_ete['total_ht'] )), 'prixAutomne'=>array('Libelle'=>'Prix Automne', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_automne['total_hp'],'HC' => $conso_automne['total_hc'] ,'TOTAL' =>$conso_automne['total_ht'] )), 'prixHiversTTC'=>array('Libelle'=>'Prix Hiver TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_hiver['total_hp_ttc'],'HC' => $conso_hiver['total_hc_ttc'] ,'TOTAL' =>$conso_hiver['total_ttc'] )), 'prixPrintempsTTC'=>array('Libelle'=>'Prix Printemps TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_printemps['total_hp_ttc'],'HC' => $conso_printemps['total_hc_ttc'] ,'TOTAL' =>$conso_printemps['total_ttc'] )), 'prixEteTTC'=>array('Libelle'=>'Prix Ete TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_ete['total_hp_ttc'],'HC' => $conso_ete['total_hc_ttc'] ,'TOTAL' =>$conso_ete['total_ttc'] )), 'prixAutomneTTC'=>array('Libelle'=>'Prix Automne TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_automne['total_hp_ttc'],'HC' => $conso_automne['total_hc_ttc'] ,'TOTAL' =>$conso_automne['total_ttc'] )), ); } } else { $TabP_Saisons = array(); } $conso_jour = conso_teleinfo::getDayConso($eqLogic->getId()); // jour $conso_hier = conso_teleinfo::getYesterdayConso($eqLogic->getId()); // hier $conso_semaine = conso_teleinfo::getWeekConso($eqLogic->getId()); //semaine en cours $conso_mois = conso_teleinfo::getMonthConso($eqLogic->getId()); // mois en cours $conso_annee = conso_teleinfo::getYearConso($eqLogic->getId()); //année en cours $abonementArray = conso::DetailAboCmd($eqLogic->getId()); //Abonnement $abonement = $abonementArray[0]; //Abonnement if ($eqLogic->getConfiguration('type') == 'water' or $eqLogic->getConfiguration('type') == 'oil' or $eqLogic->getConfiguration('type') == 'gaz') { $TabCmd = array( 'consommationHier'=>array('Libelle'=>'Conso Veille', 'Unite'=>$Unite, 'Value' => array('TOTAL' =>$conso_hier['total'] )), 'consommationJour'=>array('Libelle'=>'Conso Jour', 'Unite'=>$Unite, 'Value' => array('TOTAL' =>$conso_jour['total'] )), 'consommationSemaine'=>array('Libelle'=>'Conso Semaine', 'Unite'=>$Unite, 'Value' => array('TOTAL' =>$conso_semaine['total'] )), 'consommationMois'=>array('Libelle'=>'Conso Mois', 'Unite'=>$Unite, 'Value' => array('TOTAL' =>$conso_mois['total'] )), 'consommationAnnee'=>array('Libelle'=>'Conso Annee', 'Unite'=>$Unite, 'Value' => array('TOTAL' =>$conso_annee['total'] )), 'prixHier'=>array('Libelle'=>'Prix Veille', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_hier['total_ht'] )), 'prixJour'=>array('Libelle'=>'Prix Jour', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_jour['total_ht'] )), 'prixSemaine'=>array('Libelle'=>'Prix Semaine', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_semaine['total_ht'] )), 'prixMois'=>array('Libelle'=>'Prix Mois', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_mois['total_ht'] )), 'prixAnnee'=>array('Libelle'=>'Prix Annee', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_annee['total_ht'] )), 'prixHierTTC'=>array('Libelle'=>'Prix Veille TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_hier['total_ttc'] )), 'prixJourTTC'=>array('Libelle'=>'Prix Jour TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_jour['total_ttc'] )), 'prixSemaineTTC'=>array('Libelle'=>'Prix Semaine TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_semaine['total_ttc'] )), 'prixMoisTTC'=>array('Libelle'=>'Prix Mois TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_mois['total_ttc'] )), 'prixAnneeTTC'=>array('Libelle'=>'Prix Annee TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('TOTAL' =>$conso_annee['total_ttc'] )), 'abonnementEnCours'=>array('Libelle'=>'Abonnement en cours', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' => $abonement['prix_hp'])) ); } else { $TabCmd = array( 'consommationHier'=>array('Libelle'=>'Conso Veille', 'Unite'=>$Unite, 'Value' => array('HP' =>$conso_hier['hp'],'HC' => $conso_hier['hc'] ,'TOTAL' =>$conso_hier['total'] )), 'consommationJour'=>array('Libelle'=>'Conso Jour', 'Unite'=>$Unite, 'Value' => array('HP' =>$conso_jour['hp'],'HC' => $conso_jour['hc'] ,'TOTAL' =>$conso_jour['total'] )), 'consommationSemaine'=>array('Libelle'=>'Conso Semaine', 'Unite'=>$Unite, 'Value' => array('HP' =>$conso_semaine['hp'],'HC' => $conso_semaine['hc'] ,'TOTAL' =>$conso_semaine['total'] )), 'consommationMois'=>array('Libelle'=>'Conso Mois', 'Unite'=>$Unite, 'Value' => array('HP' =>$conso_mois['hp'],'HC' => $conso_mois['hc'] ,'TOTAL' =>$conso_mois['total'] )), 'consommationAnnee'=>array('Libelle'=>'Conso Annee', 'Unite'=>$Unite, 'Value' => array('HP' =>$conso_annee['hp'],'HC' => $conso_annee['hc'] ,'TOTAL' =>$conso_annee['total'] )), 'prixHier'=>array('Libelle'=>'Prix Veille', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_hier['total_hp'],'HC' => $conso_hier['total_hc'] ,'TOTAL' =>$conso_hier['total_ht'] )), 'prixJour'=>array('Libelle'=>'Prix Jour', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_jour['total_hp'],'HC' => $conso_jour['total_hc'] ,'TOTAL' =>$conso_jour['total_ht'] )), 'prixSemaine'=>array('Libelle'=>'Prix Semaine', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_semaine['total_hp'],'HC' => $conso_semaine['total_hc'] ,'TOTAL' =>$conso_semaine['total_ht'] )), 'prixMois'=>array('Libelle'=>'Prix Mois', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_mois['total_hp'],'HC' => $conso_mois['total_hc'] ,'TOTAL' =>$conso_mois['total_ht'] )), 'prixAnnee'=>array('Libelle'=>'Prix Annee', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_annee['total_hp'],'HC' => $conso_annee['total_hc'] ,'TOTAL' =>$conso_annee['total_ht'] )), 'prixHierTTC'=>array('Libelle'=>'Prix Veille TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_hier['total_hp_ttc'],'HC' => $conso_hier['total_hc_ttc'] ,'TOTAL' =>$conso_hier['total_ttc'] )), 'prixJourTTC'=>array('Libelle'=>'Prix Jour TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_jour['total_hp_ttc'],'HC' => $conso_jour['total_hc_ttc'] ,'TOTAL' =>$conso_jour['total_ttc'] )), 'prixSemaineTTC'=>array('Libelle'=>'Prix Semaine TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_semaine['total_hp_ttc'],'HC' => $conso_semaine['total_hc_ttc'] ,'TOTAL' =>$conso_semaine['total_ttc'] )), 'prixMoisTTC'=>array('Libelle'=>'Prix Mois TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_mois['total_hp_ttc'],'HC' => $conso_mois['total_hc_ttc'] ,'TOTAL' =>$conso_mois['total_ttc'] )), 'prixAnneeTTC'=>array('Libelle'=>'Prix Annee TTC', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' =>$conso_annee['total_hp_ttc'],'HC' => $conso_annee['total_hc_ttc'] ,'TOTAL' =>$conso_annee['total_ttc'] )), 'abonnementEnCours'=>array('Libelle'=>'Abonnement en cours', 'Unite'=>config::byKey('Devise', 'conso'), 'Value' => array('HP' => $abonement['prix_hp'], 'HC' => $abonement['prix_hc'])) ); } $TabCmd = $TabCmd + $TabJ_Glissant + $TabP_Moins + $TabP_Saisons; //Chaque commande foreach ($TabCmd as $CmdKey => $Cmd){ //Chaque Value //$conso['total_abo'] //$conso['total_hp_ttc'] //$conso['total_hc_ttc'] foreach ($Cmd['Value'] as $key => $value){ $Cmdconso = $eqLogic->getCmd(null, $CmdKey.$key); if (!is_object($Cmdconso) ) { $Cmdconso = new consoCmd(); if ($eqLogic->getConfiguration('type') == 'water' or $eqLogic->getConfiguration('type') == 'oil' or $eqLogic->getConfiguration('type') == 'gaz') { $Cmdconso->setName($Cmd['Libelle']); } else { $Cmdconso->setName($Cmd['Libelle'].' '.$key); } $Cmdconso->setEqLogic_id($eqLogic->getId()); $Cmdconso->setType('info'); $Cmdconso->setSubType('numeric'); $Cmdconso->setLogicalId($CmdKey.$key); //$Cmdconso->setEventOnly(1); $Cmdconso->setIsVisible(0); $Cmdconso->setDisplay('generic_type','GENERIC_INFO'); $Cmdconso->setTemplate('dashboard', 'badge'); $Cmdconso->setTemplate('mobile', 'badge'); $Cmdconso->setUnite($Cmd['Unite']); $Cmdconso->save(); } else { if ($Cmdconso->getUnite() <> $Cmd['Unite']) { $Cmdconso->setUnite($Cmd['Unite']); $Cmdconso->save(); //log::add('conso', 'debug',' maj unité : ' . $eqLogic->getId(). ' '.$Cmd['Libelle'] ); } $Cmdconso->setCollectDate(date('Y-m-d H:i:s')); $Cmdconso->event($value); } } } } } static function DetailAbo() { $price = conso_price::CurrentPrice(); } static function DetailAboCmd($id_ecq) { $time = new DateTime(); $price = conso_teleinfo::GetCalculPrice($time->format('Y-m-d'), $time->format('Y-m-d'),"jours", false, false, false, false, $id_ecq); return $price; } static function RemoveHistorique($_backup) { if (file_exists($_backup)) { unlink($_backup); } else { throw new Exception('Impossible de trouver le fichier : ' . $_backup); } } static function listBackup($path = false) { if (!$path) { if (substr(config::byKey('path', 'conso'), 0, 1) != '/') { $backup_dir = dirname(__FILE__) . '/../../' . config::byKey('path', 'conso'); } else { $backup_dir = config::byKey('path', 'conso'); } } else { $backup_dir = $path; } $backups = ls($backup_dir, '*', false, array('files', 'quiet', 'datetime_asc')); $return = array(); foreach ($backups as $backup) { $return[$backup] = $backup; } return $return; } static function InsertTrame($day = false) { if($cons = eqLogic::byType('conso')){ foreach ($cons as $conso) { log::add('conso_trame', 'debug',' ===Equipement dans boucle : ' . $conso->getId() .'====='); if ($conso->getIsEnable() == 1) { log::add('conso_trame', 'debug',' ===Equipement : ' . $conso->getId() .'====='); foreach ($conso->getConfiguration('confconso') as $confConso) { $error = 0; $timestamp = time(); $rec_time = date('H:i:s'); if ($conso->getConfiguration('consoyesterday')) { //Gestion maj sur jour j-1 $rec_date = date('Y-m-d', strtotime("-1 day")); $timestamp = strtotime($rec_date . ' ' . $rec_time); } else { $rec_date = date('Y-m-d'); } $hchp_unity = ''; if ($conso->getConfiguration('type') == 'water' or $conso->getConfiguration('type') == 'oil' or $conso->getConfiguration('type') == 'gaz') { $pulse = jeedom::evaluateExpression($confConso['compteur']); log::add('conso_trame', 'info', '===Type Eau==='); $values = array( 'id_equipement' => $conso->getId() ); $sql = 'SELECT MAX(hchp) as old FROM conso_current WHERE id_equipement = :id_equipement '; $values = array('id_equipement' => $conso->getId()); $result = DB::Prepare($sql, $values, DB::FETCH_TYPE_ROW); $papp = (int)$pulse - (int)$result['old']; //if($pulse==0) return; $trame = new conso_teleinfo(); $trame->settimestamp($timestamp); $trame->setrec_date($rec_date); $trame->setrec_time($rec_time); $trame->sethchp($pulse); $trame->sethchc($pulse); $trame->setptec('');//$ptec $trame->setinst1(0); $trame->setpapp($papp); $trame->setimax1(0); $trame->setid_equipement($conso->getId()); if ($conso->getConfiguration('type') == 'oil' or $conso->getConfiguration('type') == 'gaz') { $temp = jeedom::evaluateExpression($confConso['temp']); $trame->settemp((float)$temp); } else { $trame->settemp(0); } log::add('conso_trame', 'debug',' Enregistrement ->eq_id : ' . $conso->getId() . ' timestamp : ' . $timestamp . ' rec_date : ' . $rec_date .' rec_time :' . $rec_time . ' papp : ' .$papp .' pulse : '.$pulse.' $papp = (int)$pulse - (int)$result[old]' . $papp.' = '.(int)$pulse.' - '.(int)$result['old'].' ' ); $trame->save(false ,false,false,'',$confConso); sleep(2);//!!!!obligatoire !!!! } else { log::add('conso_trame', 'info', '===Type Elec==='); $hchp = jeedom::evaluateExpression($confConso['hchp']); $hchc = jeedom::evaluateExpression($confConso['hchc']); $hchp2 = jeedom::evaluateExpression($confConso['hchp2']); $hchc2 = jeedom::evaluateExpression($confConso['hchc2']); $hchp3 = jeedom::evaluateExpression($confConso['hchp3']); $hchc3 = jeedom::evaluateExpression($confConso['hchc3']); $int1 = jeedom::evaluateExpression($confConso['int1']); $temp = jeedom::evaluateExpression($confConso['temp']); $papp = jeedom::evaluateExpression($confConso['papp']); $hchp_unity = (isset($confConso['hchp_unity']) ? $confConso['hchp_unity'] : 1000); /********************************************/ /******************************************/ //Insertion des valeurs dans un log pour ne sauvegarder que les variations /********************************************/ /******************************************/ $variation_detecte = false; $mode_variation = config::byKey('mode_variation','conso',false); if($mode_variation){ log::add('conso', 'debug', $conso->getId() .' Configuration - VARIATION : Insère si Conso > Conso précedente'); $path = log::getPathToLog('Conso_Configuration');//recuperation des valeurs dans le log $tab_configuration = @file($path);//== Récupérer données dans le tableau //log::add('conso', 'debug', $conso->getId() .' Log Conso_Configuration:'. $path. ' '. $tab_configuration ); if($tab_configuration!==false){//verifier si le fichier existe log::add('conso', 'debug', $conso->getId() .' Log Conso_Configuration existe' ); $trouve_trame = false; foreach($tab_configuration as $config => $value){ $pos_debut = strpos($value,"|")+1; $pos_fin = strpos(substr($value,$pos_debut,-1),"|"); //$chaine = substr($value,strpos($value,"|")+4, strpos($value,"|")-strlen($value)); $value = substr(substr($value,$pos_debut,-1),0,$pos_fin); //log::add('conso', 'debug', $conso->getId() .' value:'.$value ); $val = explode('_',$value); $logType = $val[0]; $LogId = ''; $logValue = ''; if (count($val)> 1) { $LogId = $val[1]; } if (count($val)> 2) { $logValue = $val[2]; } $var_hp = false; $var_hc = false; $var_hp2 = false; $var_hc2 = false; $var_hp3 = false; $var_hc3 = false; //il faut extraite les valeurs du bon equipement if($LogId == (int)$conso->getId()){ $trouve_trame = true; $text=fopen($path,'r') or die("Fichier manquant"); $contenu=file_get_contents($path); if($logType=='HP'){ //comparaison log::add('conso', 'debug', $conso->getId() .' HP new:'.$hchp.' HP old:'.$logValue ); $var_hp = (int)$hchp > (int)$logValue ? true: false; } if($logType=='HC'){ //comparaison log::add('conso', 'debug', $conso->getId() .' HC new:'.$hchc.' HC old:'.$logValue ); $var_hc = (int)$hchc > (int)$logValue ? true: false; } if($logType=='HP2'){ //comparaison log::add('conso', 'debug', $conso->getId() .' HP2 new:'.$hchp2.' HP2 old:'.$logValue ); $var_hp2 = (int)$hchp2 > (int)$logValue ? true: false; } if($logType=='HC2'){ //comparaison log::add('conso', 'debug', $conso->getId() .' HC2 new:'.$hchc2.' HC2 old:'.$logValue ); $var_hc2 = (int)$hchc2 > (int)$logValue ? true: false; } if($logType=='HP3'){ //comparaison log::add('conso', 'debug', $conso->getId() .' HP3 new:'.$hchp3.' HP3 old:'.$logValue ); $var_hp3 = (int)$hchp3 > (int)$logValue ? true: false; } if($logType=='HC3'){ //comparaison log::add('conso', 'debug', $conso->getId() .' HC3 new:'.$hchc3.' HC3 old:'.$logValue ); $var_hc3 = (int)$hchc3 > (int)$logValue ? true: false; } if($var_hc || $var_hp || $var_hc2 || $var_hp2 || $var_hc3 || $var_hp3){ $ModHp=str_replace('HP_'.$conso->getId().'_'.$logValue, 'HP_'.$conso->getId().'_'.$hchp,$contenu); $ModHc=str_replace('HC_'.$conso->getId().'_'.$logValue, 'HC_'.$conso->getId().'_'.$hchc,$ModHp); $ModHp2=str_replace('HP2_'.$conso->getId().'_'.$logValue, 'HP2_'.$conso->getId().'_'.$hchp2,$ModHc); $ModHc2=str_replace('HC2_'.$conso->getId().'_'.$logValue, 'HC2_'.$conso->getId().'_'.$hchc2,$ModHp2); $ModHp3=str_replace('HP3_'.$conso->getId().'_'.$logValue, 'HP3_'.$conso->getId().'_'.$hchp3,$ModHc2); $contenuMod=str_replace('HC3_'.$conso->getId().'_'.$logValue, 'HC3_'.$conso->getId().'_'.$hchc3,$ModHp3); $text2=fopen($path,'w+') or die("Fichier manquant"); fwrite($text2,$contenuMod); fclose($text2); $variation_detecte = true; log::add('conso', 'debug', $conso->getId() .' Variation du '.$logType.' detectée.'); }else{ log::add('conso', 'debug',$conso->getId(). ' Aucune Variation '.$logType.' detectée.'); } } } if(!$trouve_trame){//Creation de la trame si elle nexiste pas . conso_teleinfo::DeleteLineConfiguration($conso->getId());//Supprimer la valeur dans le log Conso_Configuration log::add('Conso_Configuration', 'info', '|HP_'.$conso->getId().'_'.$hchp.'|'); log::add('Conso_Configuration', 'info', '|HC_'.$conso->getId().'_'.$hchc.'|'); log::add('Conso_Configuration', 'info', '|HP2_'.$conso->getId().'_'.$hchp2.'|'); log::add('Conso_Configuration', 'info', '|HC2_'.$conso->getId().'_'.$hchc2.'|'); log::add('Conso_Configuration', 'info', '|HP3_'.$conso->getId().'_'.$hchp3.'|'); log::add('Conso_Configuration', 'info', '|HC3_'.$conso->getId().'_'.$hchc3.'|'); } }else{//Creation de la trame si elle nexiste pas . $variation_detecte = true; log::add('conso', 'debug', $conso->getId() .' Log Conso_Configuration n\'existe pas' ); conso_teleinfo::DeleteLineConfiguration($conso->getId());//Supprimer la valeur dans le log Conso_Configuration log::add('Conso_Configuration', 'info', '|HP_'.$conso->getId().'_'.$hchp.'|'); log::add('Conso_Configuration', 'info', '|HC_'.$conso->getId().'_'.$hchc.'|'); log::add('Conso_Configuration', 'info', '|HP2_'.$conso->getId().'_'.$hchp2.'|'); log::add('Conso_Configuration', 'info', '|HC2_'.$conso->getId().'_'.$hchc2.'|'); log::add('Conso_Configuration', 'info', '|HP3_'.$conso->getId().'_'.$hchp3.'|'); log::add('Conso_Configuration', 'info', '|HC3_'.$conso->getId().'_'.$hchc3.'|'); } log::add('conso', 'debug', $conso->getId() .' mode variation:'. $mode_variation. ' Variation détectée:'. $variation_detecte ); if($mode_variation && !$variation_detecte ) $error = 1; // si aucune variation detecté ne pas enregistrer } /*Si il a un parent alors on doit recuperer l element du parent*/ $ptec = false; $parent_id = $conso->getConfiguration('parent_id', false); while (!$ptec) { log::add('conso', 'debug', 'Equipement : ' . $conso->getId(). ' Parent après lecture:' . $Parent_id); if ($parent_id !== false && $parent_id != '') { $eqLogicsParent = eqLogic::byId((int)$parent_id); log::add('conso', 'debug', 'Equipement : ' . $conso->getId(). ' Parent:' . $eqLogicsParent->getId()); /*securite si equipement parent est doit supprimer car il existe dans la liste mais se s'affiche pas*/ if($eqLogicsParent===false){ log::add('conso', 'debug', 'Equipement : ' . $conso->getId(). ' Parent est false'); $conso->setConfiguration('parent_id',''); $conso->save(); /*si le parent est desactiver on recupere ses valeurs */ $ptec = jeedom::evaluateExpression($confConso['ptec']); $imax1 = jeedom::evaluateExpression($confConso['imax1']); }else{ if ($eqLogicsParent->getIsEnable() == 1) { log::add('conso', 'debug', 'Equipement : ' . $conso->getId(). ' Parent est Enable'); foreach ($eqLogicsParent->getConfiguration('confconso') as $ParentconfConso) { log::add('conso_trame', 'debug', 'il existe un parent sur l equipement : ' . $eqLogicsParent->getId()); $ptec = jeedom::evaluateExpression($ParentconfConso['ptec']); $imax1 = jeedom::evaluateExpression($ParentconfConso['imax1']); //log::add('conso_trame', 'debug', 'les valeurs du parent sont : hchp_unity : '.$hchp_unity.' ptec : ' . $ptec . '---inst1 : ' . $int1 . '----papp : ' . $papp . '---imax : ' . $imax1 . '---temp : ' . $temp); } } else { log::add('conso', 'debug', 'Equipement : ' . $conso->getId(). ' Parent est disable'); /*si le parent est desactiver on recupere ses valeurs */ $ptec = jeedom::evaluateExpression($confConso['ptec']); $imax1 = jeedom::evaluateExpression($confConso['imax1']); } } } else { /*Si pas de parent on recupere ses valeurs*/ $ptec = jeedom::evaluateExpression($confConso['ptec']); $imax1 = jeedom::evaluateExpression($confConso['imax1']); } IF (!$ptec) { /* Recherche parent niveau -1*/ if ($eqLogicsParent) { $parent_id = $eqLogicsParent->getConfiguration('parent_id', false); } else { $ptec = 'HP'; } } } log::add('conso', 'debug', 'Equipement : ' . $conso->getId(). ' PTEC fin:' . $ptec); /*Si Consommation type Fibaro Uniquement la consommation qui fonctionne comme un index Attention si coupure de courant alors la consommation peux revenir a 0 Il faut donc gérer ce cas ? */ $isconso = false; $ispower = false; if ($conso->getConfiguration('onlyconso')) { $isconso = true; log::add('conso_trame', 'debug', '(' . $conso->getId() . ') Mode Je n ai que la consommation de mon equipement activé.'); } if ($conso->getConfiguration('onlypower')) { $ispower = true; log::add('conso_trame', 'debug', '(' . $conso->getId() . ') Mode Je n ai que la puissance de mon équipement activé.'); } /*Si c est une consommation on peux alors la calculer si besoin*/ if (!is_numeric($hchp) && !$isconso && !$ispower) { log::add('conso_trame', 'error', '(' . $conso->getId() . ') Erreur merci de renseigner le champs hchp ou il n est pas de type numerique (Index heure pleine'.($conso->getConfiguration('type_abo') == "TEMPO")?'bleu':''.') valeur trouvée : '.$hchp); $error = 1; } if (!is_numeric($hchc) && ($conso->getConfiguration('type_abo') == "HCHP" || $conso->getConfiguration('type_abo') == "TEMPO") && !$ispower && !$isconso && $conso->getConfiguration('type') != 'water' && $conso->getConfiguration('type') != 'oil' && $conso->getConfiguration('type') != 'gaz') { log::add('conso_trame', 'error', '(' . $conso->getId() . ') Erreur merci de renseigner le champs hchc (Index heure creuse'.($conso->getConfiguration('type_abo') == "TEMPO")?'bleu':''.') pour votre abonnement'); $error = 1; } if (!is_numeric($hchp2) && $conso->getConfiguration('type_abo') == "TEMPO" && !$ispower && !$isconso && $conso->getConfiguration('type') != 'water' && $conso->getConfiguration('type') != 'oil' && $conso->getConfiguration('type') != 'gaz') { log::add('conso_trame', 'error', '(' . $conso->getId() . ') Erreur merci de renseigner le champs hchp2 (Index heure pleine blanc) pour votre abonnement'); $error = 1; } if (!is_numeric($hchc2) && $conso->getConfiguration('type_abo') == "TEMPO" && !$ispower && !$isconso && $conso->getConfiguration('type') != 'water' && $conso->getConfiguration('type') != 'oil' && $conso->getConfiguration('type') != 'gaz') { log::add('conso_trame', 'error', '(' . $conso->getId() . ') Erreur merci de renseigner le champs hchc2 (Index heure creuse blanc) pour votre abonnement'); $error = 1; } if (!is_numeric($hchp3) && $conso->getConfiguration('type_abo') == "TEMPO" && !$ispower && !$isconso && $conso->getConfiguration('type') != 'water' && $conso->getConfiguration('type') != 'oil' && $conso->getConfiguration('type') != 'gaz') { log::add('conso_trame', 'error', '(' . $conso->getId() . ') Erreur merci de renseigner le champs hchp2 (Index heure pleine rouge) pour votre abonnement'); $error = 1; } if (!is_numeric($hchc3) && $conso->getConfiguration('type_abo') == "TEMPO" && !$ispower && !$isconso && $conso->getConfiguration('type') != 'water' && $conso->getConfiguration('type') != 'oil' && $conso->getConfiguration('type') != 'gaz') { log::add('conso_trame', 'error', '(' . $conso->getId() . ') Erreur merci de renseigner le champs hchc2 (Index heure creuse rouge) pour votre abonnement'); $error = 1; } if (!$ptec) { // log::add('conso', 'error', 'Erreur merci de renseigner le champs ptec (Tranche tarifaire) par defaut il sera sur HP'); $ptec = 'HP'; /* HP par defaut ( le statut est quelque fois remonté uniquement au changement d'état */ //return; } if (!$int1) { $int1 = 0; // log::add('conso', 'error', 'Erreur merci de renseigner le champs int1 (Intensité instantanée)'); // return; } if (!$temp) { $temp = 0; // log::add('conso', 'error', 'Erreur merci de renseigner le champs int1 (Intensité instantanée)'); // return; } /*desactive le papp non obligatoire */ /* if (!is_numeric($papp)) { log::add('conso_trame', 'error', '(' . $conso->getId() . ') Erreur merci de renseigner le champs papp ( ou mettre 0 ) , il doit etre de type numerique valeur trouvée : '.$papp); $error = 1; }*/ if ((int)$papp < 0) { log::add('conso_trame', 'debug', '(' . $conso->getId() . ') La puissance est < 0 , pas d\'enregistrement dans la base de données. '); } if (!$imax1) { $imax1 = 0; } /*Securite pour traiter les differents type*/ $ptec = str_replace('"', "", $ptec); $ptec = str_replace('.', "", $ptec); if ($ptec <> 'HPJB' and $ptec <> 'HCJB' and $ptec <> 'HPJW'and $ptec <> 'HCJW' and $ptec <> 'HPJR' and $ptec <> 'HCJR') { $pos = strpos($ptec, 'HC'); if ($pos !== false) { $ptec = 'HC'; } else { $ptec = 'HP'; } } if ($error == 0) { log::add('conso_trame', 'debug',' Enregistrement ->eq_id : ' . $conso->getId() . ' timestamp : ' . $timestamp . ' rec_date : ' . $rec_date . ' rec_time :' . $rec_time . ' ptec : ' . $ptec . ' hp : ' . $hchp . ' hc : ' . $hchc . ' hp2 : ' . $hchp2 . ' hc2 : ' . $hchc2 . ' hp3 : ' . $hchp3 . ' hc3 : ' . $hchc3 . ' papp : ' . $papp . ' imax1 :' . $imax1 . ' inst1 : ' . $int1 . ' temp : ' . $temp); $trame = new conso_teleinfo(); $trame->settimestamp($timestamp); $trame->setrec_date($rec_date); $trame->setrec_time($rec_time); $trame->sethchp($hchp); $trame->sethchc($hchc); $trame->sethchp2($hchp2); $trame->sethchc2($hchc2); $trame->sethchp3($hchp3); $trame->sethchc3($hchc3); $trame->setptec($ptec);//$ptec $trame->setinst1((float)$int1); $trame->setimax1((float)$imax1); $trame->setid_equipement($conso->getId()); $trame->settemp((float)$temp); //$trame->setadco($adco); $trame->setpapp($papp); $trame->save($ispower, $isconso, $day,$hchp_unity,$confConso); }else{ log::add('conso_trame', 'debug','Pas d\'enregistrement'); } log::add('conso_trame', 'debug','--------------------------------------------------'); sleep(2);//!!!!obligatoire !!!! } } } else { // log::add('conso', 'debug', 'Equipement desactivé'); } } } log::add('conso_trame', 'info', ''); return; } public static function getPower($id) { $eqLogics = eqLogic::byId($id); $parent_id = $eqLogics->getConfiguration('parent_id', false); if ($parent_id !== false && $parent_id != '') { $eqLogicsParent = eqLogic::byId((int)$parent_id); /*securite si equipement parent est supprimé il existe dans la liste mais n affiche pas aucun*/ if($eqLogicsParent===false){ $eqLogics->setConfiguration('parent_id',''); $eqLogics->save(); $power = $eqLogics->getConfiguration('abo_power'); }else{ $power = $eqLogicsParent->getConfiguration('abo_power'); } } else { $power = $eqLogics->getConfiguration('abo_power'); } return $power; } public static function getPowerPerso($id) { $eqLogics = eqLogic::byId($id); $powerperso = $eqLogics->getConfiguration('abo_equipement'); return $powerperso; } public static function getPowerPersoStatus($id) { $eqLogics = eqLogic::byId($id); $powerpersoStatus = $eqLogics->getConfiguration('puissance'); return $powerpersoStatus; } public static function getAbo($id) { $eqLogics = eqLogic::byId($id); $parent_id = $eqLogics->getConfiguration('parent_id', false); if ($parent_id !== false && $parent_id != '') { $eqLogicsParent = eqLogic::byId((int)$parent_id); $type_abo = (!$eqLogicsParent ? 'HCHP' : $eqLogicsParent->getConfiguration('type_abo')); } else { $type_abo = (!$eqLogics ? 'HCHP' : $eqLogics->getConfiguration('type_abo')); } return $type_abo; } public static function getType($id) { $eqLogics = eqLogic::byId($id); $parent_id = $eqLogics->getConfiguration('parent_id', false); if ($parent_id !== false && $parent_id != '') { $eqLogicsParent = eqLogic::byId((int)$parent_id); $type = (!$eqLogicsParent ? 'electricity' : $eqLogicsParent->getConfiguration('type')); } else { $type = (!$eqLogics ? 'electricity' : $eqLogics->getConfiguration('type')); } return $type; } public static function UpdateTable() { log::add('conso', 'debug', 'Synchronisation du Jour.'); conso_teleinfo::crontabJour(); // conso_teleinfo::crontabSemaine(); } public static function UpdateOldDay() { log::add('conso', 'debug', 'Synchronisation de tous les jours'); conso_teleinfo::crontabAllJour(); } public static function Eraseconso_teleinfo() { log::add('conso', 'debug', 'Epuration automatique table conso_teleinfo'); $epurteleinfo = config::byKey('Epur_teleinfo','conso', false); if ($epurteleinfo) { conso_teleinfo::crontabEpur(); } } public static function StartDeamon() { log::add('conso_trame', 'debug', 'Lancement du Deamon Insert Trame'); self::InsertTrame(); } public static function ReStartDeamon() { log::add('conso', 'debug', 'Relance le cron StartDeamon'); $cron = cron::byClassAndFunction('conso', 'StartDeamon'); if (is_object($cron)) { $cron->stop(); } if ($cron->running()) { log::add('conso_deamon', 'debug', 'Stop le deamon StartDeamon'); $cron->stop(); } if ($cron->running()) { log::add('conso_deamon', 'debug', 'Stop le deamon encore !!! StartDeamon'); $cron->stop(); } log::add('conso_deamon', 'debug', 'Start le deamon yeahh !! StartDeamon'); $cron->start(); return; } /* * ***********************Methode static*************************** */ /* * Fonction exécutée automatiquement toutes les minutes par Jeedom public static function cron() { } */ /* * Fonction exécutée automatiquement toutes les heures par Jeedom public static function cronHourly() { } */ //Fonction exécutée automatiquement tous les jours par Jeedom public static function cronDaily() { log::add('conso_trame', 'debug', '---------Lancement du cronDaily-----------'); self::InsertTrame(true); } /* * *********************Méthodes d'instance************************* */ public function preUpdate() { /*Recuperer les données du parents sil elles existes*/ $parent_id = $this->getConfiguration('parent_id', false); if ($parent_id !== false && $parent_id != '') { $eqLogicsParent = eqLogic::byId((int)$parent_id); $this->setConfiguration('abo_power', $eqLogicsParent->getConfiguration('abo_power')); $this->setConfiguration('type_abo', $eqLogicsParent->getConfiguration('type_abo')); $this->setConfiguration('type', $eqLogicsParent->getConfiguration('type')); } } public function preInsert() { } public function postInsert() { } public function preSave() { } public function postSave() { } public static function deamon_info() { $return = array(); $return['log'] = ''; $return['state'] = 'nok'; $cron = cron::byClassAndFunction('conso', 'StartDeamon'); if (is_object($cron) && $cron->running()) { $return['state'] = 'ok'; } $return['launchable'] = 'ok'; return $return; } public static function deamon_start($_debug = false) { self::deamon_stop(); //$deamon_info = self::deamon_info(); // if ($deamon_info['launchable'] != 'ok') { // throw new Exception(__('Veuillez vérifier la configuration', __FILE__)); // } $cron = cron::byClassAndFunction('conso', 'StartDeamon'); if (!is_object($cron)) { throw new Exception(__('Tache cron introuvable', __FILE__)); } log::add('conso_trame', 'debug', 'Lancement du Deamon'); $cron->run(); } public static function deamon_stop() { $cron = cron::byClassAndFunction('conso', 'StartDeamon'); if (is_object($cron)) { log::add('conso_trame', 'debug', 'Arrete du Deamon'); $cron->halt(); //throw new Exception(__('Tache cron introuvable', __FILE__)); // retour utilisateur// } } static public function CronIsInstall() { log::add('conso', 'debug', 'Verification des cron'); $cron = cron::byClassAndFunction('conso', 'StartDeamon'); if (!is_object($cron)) { log::add('conso', 'debug', 'Cron StartDeamon Inexistant il faut le creer'); $cron = new cron(); $cron->setClass('conso'); $cron->setFunction('StartDeamon'); $cron->setEnable(1); $cron->setDeamon(1); $cron->setSchedule('* * * * *'); $cron->setDeamonSleepTime(60); $cron->save(); } else { log::add('conso', 'debug', 'Cron StartDeamon Existe'); } $cron = cron::byClassAndFunction('conso', 'UpdateTable'); if (!is_object($cron)) { log::add('conso', 'debug', 'Cron UpdateTable Inexistant il faut le creer'); $cron = new cron(); $cron->setClass('conso'); $cron->setFunction('UpdateTable'); $cron->setEnable(1); $cron->setDeamon(0); $cron->setSchedule('0 */3 * * *'); $cron->setDeamonSleepTime(180); $cron->save(); } else { log::add('conso', 'debug', 'Cron UpdateTable Existe'); } $cron = cron::byClassAndFunction('conso', 'UpdateOldDay'); if (!is_object($cron)) { log::add('conso', 'debug', 'Cron UpdateOldDay Inexistant il faut le creer'); $cron = new cron(); $cron->setClass('conso'); $cron->setFunction('UpdateOldDay'); $cron->setEnable(1); $cron->setDeamon(0); $cron->setSchedule('30 00 * * *'); $cron->setDeamonSleepTime(60); $cron->save(); } else { log::add('conso', 'debug', 'Cron UpdateOldDay Existe'); } $cron = cron::byClassAndFunction('conso', 'Eraseconso_teleinfo'); if (!is_object($cron)) { log::add('conso', 'debug', 'Cron Eraseconso_teleinfo Inexistant il faut le creer'); $cron = new cron(); $cron->setClass('conso'); $cron->setFunction('Eraseconso_teleinfo'); $cron->setEnable(1); $cron->setDeamon(0); $cron->setSchedule('7 3 1 * *'); $cron->setDeamonSleepTime(60); $cron->save(); } else { log::add('conso', 'debug', 'Cron Eraseconso_teleinfo Existe'); } } public function postUpdate() { log::add('conso', 'debug', 'Mise a jour de l equipement'); self::CronIsInstall(); $plugin = plugin::byId('conso'); if (!is_object($plugin)) { $jsonrpc->makeSuccess(); } $plugin->deamon_start(false, true); } public function preRemove() { } public function postRemove() { } /* * Non obligatoire mais permet de modifier l'affichage du widget si vous en avez besoin public function toHtml($_version = 'dashboard') { } */ /* * **********************Getteur Setteur*************************** */ } class consoCmd extends cmd { /* * *************************Attributs****************************** */ /* * ***********************Methode static*************************** */ /* * *********************Methode d'instance************************* */ /* * Non obligatoire permet de demander de ne pas supprimer les commandes même si elles ne sont pas dans la nouvelle configuration de l'équipement envoyé en JS public function dontRemoveCmd() { return true; } */ public function execute($_options = array()) { return; } /* * **********************Getteur Setteur*************************** */ } ?>