@merguez07, oui ce serait une bonne solution
comment on fait cela ?
jluc2808 a écrit:Comment on fait cela ?
<?php
// V1.0 : Script d'addition des valeurs des consommations electriques instantannée et cumulée
// V1.1 : Simplification du code
// V1.2 : Rajout de commentaires dans les pages Web
// V1.3 : Correction des problèmes d'accents
// V1.4 : compléments OPA95 pour une gestion par période
//*********************************************************************************************************
// Lecture du mode
//*********************************************************************************************************
$mode = getArg("mode"); //lecture mode
//mode=listi : on affiche une page html contenant la liste des peripheriques mesurant la puissance instantanee
//mode=listc : on affiche une page html contenant la liste des peripheriques mesurant la puissance cumuleée
//mode différent de listi et listc: on fait la somme des valeurs des peripheriques concernés
//*********************************************************************************************************
// Etablissement de la liste des peripheriques mesurant la puissance instantanée ou cumulée
//*********************************************************************************************************
if ($mode == 'listi' ||$mode == 'listc' )
{
$url = "http://localhost/api/get?action=periph.list&show_notes=1";
$periph_list = sdk_json_decode(httpQuery($url,'GET')); //liste de tous les peripheriques
$titrei = "Votre liste de périphériques mesurant la puissance instantanée :";
$titrei=utf8_decode($titrei);
$titrec = "Votre liste de périphériques mesurant la puissance cumulée :";
$titrec=utf8_decode($titrec);
$action = "Cocher les périphariques à sélectionner, puis, faire un copier/coller de la sélection vers VAR1";
$action=utf8_decode($action);
//Affichage de la page Web de selection desperipheriques
//code en-tête html
$html .= <<<EOT
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta charset="utf-8">
<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
<style>
body {
font-size: 14px;
font-family: 'Roboto', sans-serif;
}
input[type="text"] {
font-family: 'Roboto', sans-serif;
}
ul {
list-style: symbols;
}
</style>
</head>
EOT;
$html .= "<body><br/><p>";
if ($mode == 'listi'){$html .=$titrei;}
else {$html .=$titrec;
}
$html .= "</p><br/><input id=\"device_list\" type=\"text\" size=\"100\" name=\"device_list\" value=\"\" onclick=\"this.select();\" ><br/>";
$html .= "<ul class=\"elements\"><br/>";
foreach($periph_list["body"] as $device){
$Lunit=strtolower($device['unit']); // on met en minuscule pour eviter les problemes de casse
if ((($mode == 'listi') && ($Lunit == "w" || $Lunit == "kw"))|| (($mode == 'listc') && ($Lunit == "wh" || $Lunit == "kwh"))){
$device_list .= $device['periph_id'].",";
$devices_names .= $device['periph_id']." = ".$device['name']."<br>";
$html .= "<li><input type=\"checkbox\" value=\"".$device['periph_id']."\"> " . $device['periph_id'] . " = " . $device['name'] . "</li><br/>";
}
}
$html .= "</ul>";
$html .= <<<EOT
<script type="text/javascript">
var elems = document.querySelectorAll('.elements input[type="checkbox"]');
[].forEach.call(elems, function(elem) {
elem.addEventListener('change', function (e) {
e.preventDefault();
sync_input();
}, false);
});
function sync_input() {
var elements_activated = [];
[].forEach.call(elems, function(e) {
if(e.checked) {
elements_activated.push(e.getAttribute('value'));
}
});
document.querySelector('#device_list').setAttribute("value", elements_activated.join(', '));
}
sync_input();
</script>
EOT;
$html .="<div style=\"font-weight: bold;color: red;\">" . $action . "</div>";
$html .= "</body><br/></html>";
echo utf8_encode($html);
die();
}
$periphs = getArg("periphIds", $mandatory = true, $default = '');
$tabPeriphs = explode(",", $periphs);
$periph_value = getValue($periph_id, true);
$unit_periph_id=strtolower($periph_value[unit]);
$puiss=0;
$mem = str_replace(',','-','mem'.$periphs);
foreach($tabPeriphs as $periphId) {
$arrValue = getValue($periphId, /*$value_text*/ true);
$unit=strtolower($arrValue[unit]);
$value=$arrValue[value];
if ($unit!=$unit_periph_id){
if (substr($unit, 0, 1)=="k"){
$value=$value*1000;
} else {
$value=$value/1000;
}
}
$puiss=$puiss+$value;
}
$cumul = loadVariable($mem);
if (count($cumul)<2){
foreach (array('jour','jour_1','sem','sem_1','mois','mois_1','annee','annee_1') as $key)
{$cumul[$key] = 0;}
$cumul['date']=time();
}
if (substr($unit_periph_id,strlen($unit_periph_id)-1,1)=="h"){
$puisscum=$puiss;
} else {
$puissinst=$puiss;
}
$year = date('Y');
$month = date('m');
$day = date('d');
$week = date('W');
$savedyear = date('Y',$cumul['date']);
$savedmonth = date('m',$cumul['date']);
$savedday = date('d',$cumul['date']);
$savedweek = date('W',$cumul['date']);
if ($savedday!=$day) {
$cumul['jour_1']= $cumul['jour'];
$cumul['jour']= $puiss;
}
else $cumul['jour'] += $puiss;
if ($savedweek!=$week) {
$cumul['sem_1']= $cumul['sem'];
$cumul['sem']= $puiss;
}
else $cumul['sem'] += $puiss;
if ($savedmonth!=$month) {
$cumul['mois_1']= $cumul['mois'];
$cumul['mois']= $puiss;
}
else $cumul['mois'] += $puiss;
if ($savedyear!=$year) {
$cumul['annee_1']= $cumul['annee'];
$cumul['annee']= $puiss;
}
else $cumul['annee'] += $puiss;
$cumul['date'] = time();
saveVariable($mem,$cumul);
// Affichage des resultats
// Generation du XML
sdk_header('text/xml');
$xml = '<?xml version="1.0" encoding="UTF-8"?>';
$xml .= '<root>';
$xml .= '<Pinst>'.$puissinst.'</Pinst>' ;
$xml .= '<Pcumul>'.$puisscum.'</Pcumul>' ;
$xml .= '<Pjour>'.$cumul['jour'].'</Pjour>' ;
$xml .= '<Psem>'.$cumul['sem'].'</Psem>';
$xml .= '<Pmois>'.$cumul['mois'].'</Pmois>';
$xml .= '<Pannee>'.$cumul['annee'].'</Pannee>';
$xml .= '<Pjour_1>'.$cumul['jour_1'].'</Pjour_1>';
$xml .= '<Psem_1>'.$cumul['sem_1'].'</Psem_1>';
$xml .= '<Pmois_1>'.$cumul['mois_1'].'</Pmois_1>';
$xml .= '<Pannee_1>'.$cumul['annee_1'].'</Pannee_1>';
$xml .= '<Timestamp>'.$cumul['date'].'</Timestamp>';
$xml .= '<Date>'.date('Y-m-d H:i:s',$cumul['date']).'</Date>';
$xml .='</root>';
echo $xml;
?>
merguez07 a écrit:jluc2808 a écrit:omment on fait cela ?
La magie d'OPA95 a opéré. je te laisse tester le code qu'il propose
$mem = str_replace(',','-','mem'.$periphs);
$mem = str_replace(',','-','mem'.str_replace(' ', '',$periphs));
jluc2808 a écrit:après test et correction du php
le résultat est mitigé
<?xml version="1.0" encoding="UTF-8"?><root><Pinst></Pinst><Pcumul>60.35</Pcumul><Pjour>603.5</Pjour><Psem>603.5</Psem><Pmois>603.5</Pmois><Pannee>603.5</Pannee><Pjour_1>0</Pjour_1><Psem_1>0</Psem_1><Pmois_1>0</Pmois_1><Pannee_1>0</Pannee_1><Timestamp>1672092189</Timestamp><Date>2022-12-26 23:03:09</Date></root>
les valeurs Pjour, Psem Pmois Pannee ne font pas le bon cumul
si j'envoi la commande 3 minutes après j'ai
<?xml version="1.0" encoding="UTF-8"?><root><Pinst></Pinst><Pcumul>60.35</Pcumul><Pjour>844.9</Pjour><Psem>844.9</Psem><Pmois>844.9</Pmois><Pannee>844.9</Pannee><Pjour_1>0</Pjour_1><Psem_1>0</Psem_1><Pmois_1>0</Pmois_1><Pannee_1>0</Pannee_1><Timestamp>1672092374</Timestamp><Date>2022-12-26 23:06:14</Date></root>
<?php
// V1.0 : Script d'addition des valeurs des consommations electriques instantannée et cumulée
// V1.1 : Simplification du code
// V1.2 : Rajout de commentaires dans les pages Web
// V1.3 : Correction des problèmes d'accents
// V1.4 : Sommation par jour, semaine,mois,annee
//*********************************************************************************************************
// Lecture du mode
//*********************************************************************************************************
$mode = getArg("mode"); //lecture mode
//mode=listi : on affiche une page html contenant la liste des peripheriques mesurant la puissance instantanee
//mode=listc : on affiche une page html contenant la liste des peripheriques mesurant la puissance cumuleée
//mode différent de listi et listc: on fait la somme des valeurs des peripheriques concernés
//mode raz: remise à zero des mémoires
//*********************************************************************************************************
// Etablissement de la liste des peripheriques mesurant la puissance instantanée ou cumulée
//*********************************************************************************************************
if ($mode == 'listi' ||$mode == 'listc' )
{
$url = "http://localhost/api/get?action=periph.list&show_notes=1";
$periph_list = sdk_json_decode(httpQuery($url,'GET')); //liste de tous les peripheriques
$titrei = "Votre liste de périphériques mesurant la puissance instantanée :";
$titrei=utf8_decode($titrei);
$titrec = "Votre liste de périphériques mesurant la puissance cumulée :";
$titrec=utf8_decode($titrec);
$action = "Cocher les périphériques àsélectionner, puis, faire un copier/coller de la sélection vers VAR1";
$action=utf8_decode($action);
//Affichage de la page Web de selection desperipheriques
//code en-tête html
$html .= <<<EOT
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta charset="utf-8">
<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
<style>
body {
font-size: 14px;
font-family: 'Roboto', sans-serif;
}
input[type="text"] {
font-family: 'Roboto', sans-serif;
}
ul {
list-style: symbols;
}
</style>
</head>
EOT;
$html .= "<body><br/><p>";
if ($mode == 'listi'){$html .=$titrei;}
else {$html .=$titrec;
}
$html .= "</p><br/><input id=\"device_list\" type=\"text\" size=\"100\" name=\"device_list\" value=\"\" onclick=\"this.select();\" ><br/>";
$html .= "<ul class=\"elements\"><br/>";
foreach($periph_list["body"] as $device){
$Lunit=strtolower($device['unit']); // on met en minuscule pour eviter les problemes de casse
if ((($mode == 'listi') && ($Lunit == "w" || $Lunit == "kw"))|| (($mode == 'listc') && ($Lunit == "wh" || $Lunit == "kwh"))){
$device_list .= $device['periph_id'].",";
$devices_names .= $device['periph_id']." = ".$device['name']."<br>";
$html .= "<li><input type=\"checkbox\" value=\"".$device['periph_id']."\"> " . $device['periph_id'] . " = " . $device['name'] . "</li><br/>";
}
}
$html .= "</ul>";
$html .= <<<EOT
<script type="text/javascript">
var elems = document.querySelectorAll('.elements input[type="checkbox"]');
[].forEach.call(elems, function(elem) {
elem.addEventListener('change', function (e) {
e.preventDefault();
sync_input();
}, false);
});
function sync_input() {
var elements_activated = [];
[].forEach.call(elems, function(e) {
if(e.checked) {
elements_activated.push(e.getAttribute('value'));
}
});
document.querySelector('#device_list').setAttribute("value", elements_activated.join(', '));
}
sync_input();
</script>
EOT;
$html .="<div style=\"font-weight: bold;color: red;\">" . $action . "</div>";
$html .= "</body><br/></html>";
echo utf8_encode($html);
die();
}
$periphs = getArg("periphIds", $mandatory = true, $default = '');
$periphs = trim($periphs);
$tabPeriphs = explode(",", $periphs);
$periph_value = getValue($periph_id, true);
$unit_periph_id=strtolower($periph_value[unit]);
$mem = str_replace(',','-','mem'.$periphs);
$now =time();
$cumul = loadVariable($mem);
if ( ($mode=='raz') || (count($cumul)<2) ) {
foreach (array('total','jour','jour_1','sem','sem_1','mois','mois_1','annee','annee_1') as $key)
{$cumul[$key] = 0;}
$cumul['date']=$now;
}
$puiss=0;
foreach($tabPeriphs as $periphId) {
$arrValue = getValue($periphId, /*$value_text*/ true);
$unit=strtolower($arrValue[unit]);
$value=$arrValue['value'];
$timeval = strtotime($arrValue['change']);
if ($unit!=$unit_periph_id){
if (substr($unit, 0, 1)=="k"){
$value=$value*1000;
} else {
$value=$value/1000;
}
}
if ($timeval > $cumul['date']) {
$puiss += $value;
$cumul['total'] += $puiss;
}
}
if (substr($unit_periph_id,strlen($unit_periph_id)-1,1)=="h"){
$puisscum=$puiss;
} else {
// $puissinst=$puiss;
$puissinst=$value;
}
$year = date('Y');
$month = date('m');
$day = date('d');
$week = date('W');
$savedyear = date('Y',$cumul['date']);
$savedmonth = date('m',$cumul['date']);
$savedday = date('d',$cumul['date']);
$savedweek = date('W',$cumul['date']);
if ($savedday!=$day) {
$cumul['jour_1']= $cumul['jour'];
$cumul['jour']= 0;
}
else $cumul['jour'] += $puiss;
if ($savedweek!=$week) {
$cumul['sem_1']= $cumul['sem'];
$cumul['sem']= 0;
}
else $cumul['sem'] += $puiss;
if ($savedmonth!=$month) {
$cumul['mois_1']= $cumul['mois'];
$cumul['mois']= 0;
}
else $cumul['mois'] += $puiss;
if ($savedyear!=$year) {
$cumul['annee_1']= $cumul['annee'];
$cumul['annee']= 0;
}
else $cumul['annee'] += $puiss;
$cumul['date'] = $now;
saveVariable($mem,$cumul);
// Affichage des resultats
// Generation du XML
sdk_header('text/xml');
$xml = '<?xml version="1.0" encoding="UTF-8"?>';
$xml .= '<root>';
$xml .= '<Pinst>'.$puissinst.'</Pinst>' ;
$xml .= '<Pcumul>'.$puisscum.'</Pcumul>' ;
$xml .= '<Total>'.$cumul['total'].'</Total>' ;
$xml .= '<Pjour>'.$cumul['jour'].'</Pjour>' ;
$xml .= '<Psem>'.$cumul['sem'].'</Psem>';
$xml .= '<Pmois>'.$cumul['mois'].'</Pmois>';
$xml .= '<Pannee>'.$cumul['annee'].'</Pannee>';
$xml .= '<Pjour_1>'.$cumul['jour_1'].'</Pjour_1>';
$xml .= '<Psem_1>'.$cumul['sem_1'].'</Psem_1>';
$xml .= '<Pmois_1>'.$cumul['mois_1'].'</Pmois_1>';
$xml .= '<Pannee_1>'.$cumul['annee_1'].'</Pannee_1>';
$xml .= '<Timestamp>'.$cumul['date'].'</Timestamp>';
$xml .= '<Date>'.date('Y-m-d H:i:s',$cumul['date']).'</Date>';
$xml .='</root>';
echo $xml;
?>
<?php
// V1.0 : Script d'addition des valeurs des consommations electrique instantannees et cumulees
// V1.1 : Simplification du code
// V1.2 : Rajout de commentaires dans les pages Web
// V1.3 : Correction des problèmes d'accents
// V1.4 : compléments OPA95 pour une gestion par période
// V1.5 : ajout de reset, set, debug, ajustement de jour/mois/année, suppression des blancs dans $periphs
//*********************************************************************************************************
$mode = getArg("mode");
$debug = getArg("debug", $mandatory = false, $default = false ); // par défaut pas de debug
//mode=listi : on affiche une page html contenant la liste des peripheriques mesurant la puissance instantanee
//mode=listc : on affiche une page html contenant la liste des peripheriques mesurant la puissance instantanee
//mode différent de listi et listc: on fait la somme des valeurs des peripheriques concernes
//*********************************************************************************************************
// Etabli la liste des peripheriques mesurant la puissance instantanee ou cumulee
//*********************************************************************************************************
if ($mode == 'listi' ||$mode == 'listc' ) {
$url = "http://localhost/api/get?action=periph.list&show_notes=1";
$periph_list = sdk_json_decode(httpQuery($url,'GET')); //liste de tous les peripheriques
$titrei = "Votre liste de périphériques mesurant la puissance instantanée :";
$titrei=utf8_decode($titrei);
$titrec = "Votre liste de périphériques mesurant la puissance cumulée :";
$titrec=utf8_decode($titrec);
$action = "Cocher les périphériques à  sélectionner, puis, faire un copier/coller de la sélection vers VAR1";
$action=utf8_decode($action);
//Affichage de la page Web de selection desperipheriques
$html .= <<<EOT
<html>
<head>
<meta charset="utf-8">
<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
<style>
body {
font-size: 14px;
font-family: 'Roboto', sans-serif;
}
input[type="text"] {
font-family: 'Roboto', sans-serif;
}
ul {
list-style: symbols;
}
</style>
</head>
EOT;
if ($mode == 'listi'){
$html .= "<body><p>" . $titrei ."</p>";
} else {
$html .= "<body><p>" . $titrec . "</p>";
}
$html .= "<input id=\"device_list\" type=\"text\" size=\"100\" name=\"device_list\" value=\"\" onclick=\"this.select();\" >";
$html .= "<ul class=\"elements\">";
foreach($periph_list["body"] as $device){
$Lunit=strtolower($device['unit']); // on met en minuscule pour eviter les problemes de casse
if ((($mode == 'listi') && ($Lunit == "w" || $Lunit == "kw"))|| (($mode == 'listc') && ($Lunit == "wh" || $Lunit == "kwh"))){
$device_list .= $device['periph_id'].",";
$devices_names .= $device['periph_id']." = ".$device['name']."<br>";
$html .= "<li><input type=\"checkbox\" value=\"".$device['periph_id']."\"> " . $device['periph_id'] . " = " . $device['name'] . "</li>";
}
}
$html .= "</ul>";
$html .= <<<EOT
<script type="text/javascript">
var elems = document.querySelectorAll('.elements input[type="checkbox"]');
[].forEach.call(elems, function(elem) {
elem.addEventListener('change', function (e) {
e.preventDefault();
sync_input();
}, false);
});
function sync_input() {
var elements_activated = [];
[].forEach.call(elems, function(e) {
if(e.checked) {
elements_activated.push(e.getAttribute('value'));
}
});
document.querySelector('#device_list').setAttribute("value", elements_activated.join(', '));
}
sync_input();
</script>
EOT;
$html .="<div style=\"font-weight: bold;color: red;\">" . $action . "</div>";
$html .= "</body></html>";
echo utf8_encode($html);
die();
}
$periphs = getArg("periphIds", $mandatory = true, $default = '');
$periphs = str_replace(' ','',$periphs); // enlève les blancs
$tabPeriphs = explode(",", $periphs);
$periph_id =getArg('eedomus_controller_module_id');
$periph_value = getValue($periph_id, true);
$unit_periph_id=strtolower($periph_value[unit]);
$puiss=0;
$mem = str_replace(',','-','mem'.$periphs);
foreach($tabPeriphs as $periphId) {
$arrValue = getValue($periphId, /*$value_text*/ true);
$unit=strtolower($arrValue[unit]);
$value=$arrValue[value];
if ($unit!=$unit_periph_id){
if (substr($unit, 0, 1)=="k"){
$value=$value*1000;
} else {
$value=$value/1000;
}
}
$puiss=$puiss+$value;
}
$cumul = loadVariable($mem);
$year = date('Y');
$month = date('m');
$day = date('d');
$week = date('W');
$savedyear = date('Y',$cumul['date']);
$savedmonth = date('m',$cumul['date']);
$savedday = date('d',$cumul['date']);
$savedweek = date('W',$cumul['date']);
$save_cumul_total = $cumul['total'];
$save_cumul_day = $cumul['jour'];
$save_cumul_week = $cumul['sem'];
$save_cumul_month = $cumul['mois'];
$save_cumul_year = $cumul['annee'];
if (count($cumul)<2 || $mode == 'reset' || $mode == 'raz'){
foreach (array('total','total_1','jour','jour_1','sem','sem_1','mois','mois_1','annee','annee_1') as $key)
{$cumul[$key] = 0;}
$cumul['date']=time();
$save_cumul_total = 0;
$save_cumul_day = 0;
$save_cumul_week = 0;
$save_cumul_month = 0;
$save_cumul_year = 0;
}
if (substr($unit_periph_id,strlen($unit_periph_id)-1,1)=="h"){
$puisscum=$puiss;
} else {
$puissinst=$puiss;
}
$cumul['total'] = $puiss;
if ($mode == 'set'){
$save_cumul_total = getArg("total", $mandatory = false, $default = $cumul['total']);
$save_cumul_day = getArg("jour", $mandatory = false, $default = 0);
$save_cumul_week = getArg("sem", $mandatory = false, $default = 0);
$save_cumul_month = getArg("mois", $mandatory = false, $default = 0);
$save_cumul_year = getArg("annee", $mandatory = false, $default = 0);
}
if ($savedday!=$day) {
$cumul['jour_1']= $cumul['jour'];
$cumul['total_1'] = $cumul['total'];
$cumul['jour']= 0;
}
else $cumul['jour'] = $puiss - $save_cumul_total;
if ($savedweek!=$week) {
$cumul['sem_1']= $cumul['sem'];
$cumul['sem']= 0;
}
else $cumul['sem'] += $cumul['jour'];
if ($savedmonth!=$month) {
$cumul['mois_1']= $cumul['mois'];
$cumul['mois']= 0;
}
else $cumul['mois'] += $cumul['jour'];
if ($savedyear!=$year) {
$cumul['annee_1']= $cumul['annee'];
$cumul['annee']= 0;
}
else $cumul['annee'] += $cumul['jour'];
$cumul['date'] = time();
saveVariable($mem,$cumul);
// Affichage des resultats
// Generation du XML
sdk_header('text/xml');
$xml = '<?xml version="1.0" encoding="UTF-8"?>';
$xml .= '<root>';
$xml .= '<Pinst>'.$puissinst.'</Pinst>' ;
$xml .= '<Pcumul>'.$puisscum.'</Pcumul>' ;
$xml .= '<Ptotal>'.$cumul['total'].'</Ptotal>' ;
$xml .= '<Pjour>'.$cumul['jour'].'</Pjour>' ;
$xml .= '<Psem>'.$cumul['sem'].'</Psem>';
$xml .= '<Pmois>'.$cumul['mois'].'</Pmois>';
$xml .= '<Pannee>'.$cumul['annee'].'</Pannee>';
if ($debug) {
$xml .= '<SavePtotal>'.$save_cumul_total.'</SavePtotal>' ;
$xml .= '<SavePjour>'.$save_cumul_day.'</SavePjour>' ;
$xml .= '<SavePsem>'.$save_cumul_week.'</SavePsem>';
$xml .= '<SavePmois>'.$save_cumul_month.'</SavePmois>';
$xml .= '<SavePannee>'.$save_cumul_year.'</SavePannee>';
}
$xml .= '<Ptotal_1>'.$cumul['total_1'].'</Ptotal_1>';
$xml .= '<Pjour_1>'.$cumul['jour_1'].'</Pjour_1>';
$xml .= '<Psem_1>'.$cumul['sem_1'].'</Psem_1>';
$xml .= '<Pmois_1>'.$cumul['mois_1'].'</Pmois_1>';
$xml .= '<Pannee_1>'.$cumul['annee_1'].'</Pannee_1>';
$xml .= '<Timestamp>'.$cumul['date'].'</Timestamp>';
$xml .= '<Date>'.date('Y-m-d H:i:s',$cumul['date']).'</Date>';
$xml .='</root>';
echo $xml;
?>
jluc2808 a écrit:bonjour,
j'ai pas tout testé mais la plupart des commandes fonctionnent
j'ai ajouté en plus du raz le terme reset qui veut dire pareil
et debug pour avoir les données sauvegardées du dernier polling
et la fonction set avec jour / mois / annee / total pour mettre une valeur dans les données correspondantes
note: désolé je ne suis pas là pendant 3 jours donc je pourrais reprendre que le 30/01 si besoin
opa95 a écrit:Bonjour jluc2808jluc2808 a écrit:bonjour,
j'ai pas tout testé mais la plupart des commandes fonctionnent
j'ai ajouté en plus du raz le terme reset qui veut dire pareil
et debug pour avoir les données sauvegardées du dernier polling
et la fonction set avec jour / mois / annee / total pour mettre une valeur dans les données correspondantes
note: désolé je ne suis pas là pendant 3 jours donc je pourrais reprendre que le 30/01 si besoin
J'ai repris ta proposition en rajoutant un stockage horaire et réécrivant certaines parties pour une meilleure maintenabilité.
J'ai complété les informations du mode debug.
Pour les capteurs de type compteur, c'est OK : il permettent en outre d'estimer la puissance correspondante (calcul de Pinst).
Pour le mode "set", je ne sais pas exactement ce que tu souhaites : pour heure, jour, semaine, mois et année; la logique serait qu'une modification de heure devrait réagir automatiquement sur jour, semaine..., une modification sur mois devrait réagir sur année.
Pour total, la modification ne semble pas indispensable, l'intérêt serait de créer une correction permanente liée par exemple à la remise à 0 d'un des capteurs et au désir de maintenir la continuité des valeurs. Actuellement on peut utiliser un pseudo capteur : actionneur renvoyant une valeur fixe à inclure dans la liste des capteurs, mais on pourrait envoyer directement la valeur de correction dans la liste des capteurs (par exemple sous la forme @valeur) ou dans VAR2 (&offset=[VAR2].
Pour les capteurs de type puissance, c'est en cours de test avec recalcul des consommations.
Contacte moi en mp à ton retour
Bonne année
domojabe a écrit:Bonjour Opa95
Je découvre ce développement et je suis très intéressé par la partie cumul... Or celle-ci n'est pas distribué sur la version qui est sur le store (la 1.3).
Quand je cherche à utiliser les scripts cités dans vos derniers échanges avec Jluc j'obtiens diverses erreurs (déjà de syntaxe) et mes connaissances ne me permettent paqs de les corriger.
Penses tu publier une version stable avec les cumuls prochainement ?
Merci d'avance pour ton retour
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 20 invité(s)