[TUTO] EDF Conso Heure/Jour/Semain/Mois/Année

Partagez ici vos astuces et idées d'utilisation d'eedomus

Re: [TUTO] EDF Conso Heure/Jour/Semain/Mois/Année

Messagepar eric63 » 25 Août 2015 18:09

Merci benj70. C'est impeccable.
eric63
 
Messages : 129
Inscription : 16 Avr 2014

Re: [TUTO] EDF Conso Heure/Jour/Semain/Mois/Année

Messagepar seraphinou » 25 Août 2015 18:14

bonsoir
a quoi correspond c'est erreur quand je fait tester

Protocol http not supported or disabled in libcurl

cdt
Passione d'informatique et de domotique depuis pas mal de temps,
je possede
1 eedomus+ -1synology ds 713+-1 ecodevice-1wes-2 compteurs eau a impulsion-5 wallplug fibaro-4 fgms-001-1 qubino fil pilote-1 fibaro universel-4 sondes oregon thgr 810- etc
seraphinou
 
Messages : 238
Inscription : 20 Juil 2014

Re: [TUTO] EDF Conso Heure/Jour/Semain/Mois/Année

Messagepar benj70b » 25 Août 2015 20:04

comme ecrit avant, tu dois avoir un espace avant le http://... il faut l'enlever ;)
Eedomus + | Domoticz | Mosquitto | Node Red | deCONZ | EspEasy | Conbee II | Rfxcom | Esp32 | Esp8266 | Alexa | Harmony

[Store] : deCONZ - Actionneurs & Capteurs / Domoticz Events / MiLight v4 & v6 / Sonoff Mini / Etats de batteries
benj70b
 
Messages : 294
Inscription : 20 Jan 2014
Localisation : 89

Re: [TUTO] EDF Conso Heure/Jour/Semain/Mois/Année

Messagepar dplein » 25 Août 2015 20:09

bolzano a écrit:C'est à dire ?

Si tu n'as qu'un périphérique qui te remonte ton nombre de kwh total il faut utiliser son API pour les calculs du tuto. (Dans le tuto il y a la partie somme HC+HP qui est inutile dans ton cas)


Je parlais de mon owl cm160.. :D :D . Par contre, je ne pourrais pas brancher ma box sur le compteur car ils ne sont pas aux mêmes endroits...
Irradié.... RAC v2
dplein
 
Messages : 1683
Inscription : 28 Oct 2012
Localisation : Lorraine

Re: [TUTO] EDF Conso Heure/Jour/Semain/Mois/Année

Messagepar seraphinou » 25 Août 2015 21:53

bonsoir
je reviens vers vous car je ressai de mettre en place ce tuto
mais ca ne vas toujours pas
des que je creer les premier capteur les messages d'erreur pleuve
voila un resultat
si vous pouvez m'aider
cdt

Image

Image
Passione d'informatique et de domotique depuis pas mal de temps,
je possede
1 eedomus+ -1synology ds 713+-1 ecodevice-1wes-2 compteurs eau a impulsion-5 wallplug fibaro-4 fgms-001-1 qubino fil pilote-1 fibaro universel-4 sondes oregon thgr 810- etc
seraphinou
 
Messages : 238
Inscription : 20 Juil 2014

Re: [TUTO] EDF Conso Heure/Jour/Semain/Mois/Année

Messagepar bolzano » 25 Août 2015 22:19

Le script a bien été chargé dans http://ipbox/script et le nom du fichier *.php respecté dans VAR1 ?
EEdomus+ (03/2015) / FGR-221 (x7) / ZMNHJA2 (x1) / ZMNHJD1 (x5) / ZMNHAA2 (x1) / FGSD-002 (x3) / Aeotec ZW078 (x1) / Zipato miniKeypad / FGMS-001 x2 / HSM02 (x1) / FGK101 (x2) / Alexa / Google Home
bolzano
 
Messages : 684
Inscription : 01 Déc 2014

Re: [TUTO] EDF Conso Heure/Jour/Semain/Mois/Année

Messagepar benj70b » 25 Août 2015 23:03

comme l'indique bolzano, il semble que le script php ne soit pas chargé sur la box ;)
Eedomus + | Domoticz | Mosquitto | Node Red | deCONZ | EspEasy | Conbee II | Rfxcom | Esp32 | Esp8266 | Alexa | Harmony

[Store] : deCONZ - Actionneurs & Capteurs / Domoticz Events / MiLight v4 & v6 / Sonoff Mini / Etats de batteries
benj70b
 
Messages : 294
Inscription : 20 Jan 2014
Localisation : 89

Re: [TUTO] EDF Conso Heure/Jour/Semain/Mois/Année

Messagepar seraphinou » 26 Août 2015 05:14

bonjour les gars

le fichier 2B2i_values2.php est bien charger dans la box ,quand je l'execute la reponse est 1
et je n'ai absolument pas touche au nom du fichier
et l'hortographe est bonne aussi dans le var1

Image

la va falloir de l'aide svp

merci a vous
chris
Passione d'informatique et de domotique depuis pas mal de temps,
je possede
1 eedomus+ -1synology ds 713+-1 ecodevice-1wes-2 compteurs eau a impulsion-5 wallplug fibaro-4 fgms-001-1 qubino fil pilote-1 fibaro universel-4 sondes oregon thgr 810- etc
seraphinou
 
Messages : 238
Inscription : 20 Juil 2014

Re: [TUTO] EDF Conso Heure/Jour/Semain/Mois/Année

Messagepar benj70b » 26 Août 2015 07:56

Etrange, peux tu faire executer sur le script et m'indiquer le retour que tu as ?
Eedomus + | Domoticz | Mosquitto | Node Red | deCONZ | EspEasy | Conbee II | Rfxcom | Esp32 | Esp8266 | Alexa | Harmony

[Store] : deCONZ - Actionneurs & Capteurs / Domoticz Events / MiLight v4 & v6 / Sonoff Mini / Etats de batteries
benj70b
 
Messages : 294
Inscription : 20 Jan 2014
Localisation : 89

Re: [TUTO] EDF Conso Heure/Jour/Semain/Mois/Année

Messagepar seraphinou » 26 Août 2015 08:05

Bonjour
Quand j exécuté le script
Ça m écris "1". Dans la page
Cdt
Passione d'informatique et de domotique depuis pas mal de temps,
je possede
1 eedomus+ -1synology ds 713+-1 ecodevice-1wes-2 compteurs eau a impulsion-5 wallplug fibaro-4 fgms-001-1 qubino fil pilote-1 fibaro universel-4 sondes oregon thgr 810- etc
seraphinou
 
Messages : 238
Inscription : 20 Juil 2014

Re: [TUTO] EDF Conso Heure/Jour/Semain/Mois/Année

Messagepar seraphinou » 26 Août 2015 16:59

bonsoir
voila en piece jointe

Image

cdt
Passione d'informatique et de domotique depuis pas mal de temps,
je possede
1 eedomus+ -1synology ds 713+-1 ecodevice-1wes-2 compteurs eau a impulsion-5 wallplug fibaro-4 fgms-001-1 qubino fil pilote-1 fibaro universel-4 sondes oregon thgr 810- etc
seraphinou
 
Messages : 238
Inscription : 20 Juil 2014

Re: [TUTO] EDF Conso Heure/Jour/Semain/Mois/Année

Messagepar benj70b » 26 Août 2015 22:02

Franchement aucune raison que ca retour 1 normalement ca retourne

Code : Tout sélectionner
<values>
<action/>
<ids/>
<options>
<opts/>
</options>
<error>action inconnu</error>
</values>


essaie de supprimer le script et de le remettre, voici une copie du code

Code : Tout sélectionner
<?php
   
/*
action      : [get]
Parametre   : ids=IDAPI[,...,IDAPI]

action      : [addhisto]
Parametre   : ids=IDAPI[,...,IDAPI]
           opt=[minitems=2],[maxitems=2],prefix=['']
          
action      : [gethisto]
Parametre   : ids=IDAPI[,...,IDAPI]
           opt=[minitems=2],prefix=['']

action      : [clearhisto]
Parametre   : ids=IDAPI[,...,IDAPI]
          
action       : [datepart]

*/   

$action = getArg('action', false, '');   // action a faire
$ids = getArg('ids', false, '');      // liste des id
$options = getArg('opt', false, '');   // options

$doecho = true;
$arrayids = explode(',',$ids);
$arrayTemp = explode(',',$options);
$arrayopts = array();

foreach ($arrayTemp as $optItemAndVal)
{
   $optArrayItem = explode('=',$optItemAndVal);
   if (count($optArrayItem) == 2)
   {
      $arrayopts[$optArrayItem[0]] = $optArrayItem[1];
      $xmlopts.= '<'.$optArrayItem[0].'>'.$optArrayItem[1].'</'.$optArrayItem[0].'>'."\n";
   }   
}

switch ($action)
{
   case 'get':
   case 'addhisto':
   case 'gethisto':
   case 'clearhisto':   
      $xmlval = sdk_ActionValues($action, $arrayids , $arrayopts);
      break;
   case 'datepart':
      $xmlval = sdk_DatePart();
      break;
   case 'dumphisto':
      $prefix = $arrayopts['prefix'];
      $periphId = $arrayids[0];
      $var = loadVariable($prefix.'SaveArray'.$periphId);
      var_dump($var);      
      $doecho = false;
      break;      
   default:
      $xmlval = ' <error>action inconnu</error>'."\n";   
   
   
      
}

// construction xml en retour
if ($doecho)
{

   sdk_header('text/xml');
   $xml = '<?xml version="1.0" encoding="utf8" ?>'."\n";
   $xml .= '<values>'."\n";   
   $xml .= ' <action>'.$action.'</action>'."\n";   
   $xml .= ' <ids>'.$ids.'</ids>'."\n";   
   $xml .= ' <options>'."\n";   
   $xml .= ' <opts>'.$options.'</opts>'."\n";   
   $xml .= $xmlopts;
   $xml .= ' </options>'."\n";   
   $xml .= $xmlval;
   $xml .= '</values>';

   echo $xml;
}
   
   
function sdk_ActionValues($action, $arrayids, $arrayopts)   
{
   
   $ret = '';
   $ret2 ='';   
   $maxitems = $arrayopts['maxitems'];
   $minitems = $arrayopts['minitems'];
   $prefix = $arrayopts['prefix'];
   
   if ($maxitems == '' or $maxitems < 2) $maxitems = 2;
   if ($minitems == '' or $minitems < 2) $minitems = 2;
   if ($minitems > $maxitems) $maxitems = $minitems;
   
   foreach ($arrayids as $periphId)
   {         
      $ret .= '<periph id="'.$periphId.'">'."\n";
      
      $value = getValue($periphId);   
      $valValue = $value['value'];      
      $valLastChange = $value['change'];         
      $valDuration = time() - strtotime($valLastChange);
      
      $ret .= ' <value>'.$valValue.'</value>'."\n";
      $ret .= ' <change>'.$valLastChange.'</change>'."\n";
      $ret .= ' <duration>'.$valDuration.'</duration>'."\n";
      
      if ($action == 'clearhisto')
      {
         saveVariable($prefix.'SaveArray'.$periphId, '');                     
      }
      
      
      if ($action == 'addhisto' || $action == 'gethisto')
      {
         
         $prevData = loadVariable($prefix.'SaveArray'.$periphId);      
         $newSaveVal = array('value' => $valValue, 'change' => $valLastChange, 'datesave' => date('Y-m-d H:i:s'));         
         if ($prevData == '')
         {
            $prevData = array();
            $prevData[0]=$minitems;
            for ($i=1; $i<=$minitems ; $i++)            
            {
               $prevData[$i]=$newSaveVal;               
            }
            saveVariable($prefix.'SaveArray'.$periphId, $prevData);                                          
         }
         
         $nbvalues = count($prevData) - 1;   
         if ($nbvalues > 0 && $nbvalues < $minitems)
         {
            for ($i = $nbvalues ; $i < $minitems  ; $i++)
            {
               $prevData[$i+1] = $prevData[$i];
            }
            saveVariable($prefix.'SaveArray'.$periphId, $prevData);                                          
            $nbvalues = count($prevData) - 1;            
         }
         
         if ($action == 'addhisto')
         {                     
            $newData = array();
            $newData[1] = $newSaveVal;
            
            for ($i = 1; $i<$maxitems && $i<=$nbvalues ; $i++)
            {                                 
               $newData[$i+1] = $prevData[$i];            
            }
            
            $newData[0]=count($newData) - 1;
            saveVariable($prefix.'SaveArray'.$periphId, $newData);                     
         }
            
      }
               
            
      if ($action == 'addhisto' || $action == 'gethisto')
      {
         $prevData = loadVariable($prefix.'SaveArray'.$periphId);      
         if ($prevData != '')
         {
            $prevDate= time();
            for ($i=0; $i < count($prevData)-1; $i++)
            {                                                
               $oldSaveVal = $prevData[$i+1];               
               $duration = $prevDate - strtotime($oldSaveVal['change']);
               $ValCurrent = $oldSaveVal['value'];
               
               $ret2 .= '<histo id="'.$i.'">'."\n";
               $ret2 .= ' <value>'.$oldSaveVal['value'].'</value>'."\n";
               $ret2 .= ' <change>'.$oldSaveVal['change'].'</change>'."\n";
               $ret2 .= ' <datesave>'.$oldSaveVal['datesave'].'</datesave>'."\n";         
               $ret2 .= ' <duration>'.$duration.'</duration>'."\n";                        
               $ret2 .= '</histo>'."\n";
               
               $prevDate = strtotime($oldSaveVal['change']);
               $ValPrevious = $ValCurrent;
            }
         }
      }
      
      
      $ret .= $ret2;      
      $ret .= '</periph>'."\n";   
   }
   return $ret;
}   



function sdk_DatePart()   
{
   
   $now = time();
   $ret = '<datepart>'."\n";   
   $ret .= ' <second>'.date('s', $now).'</second>'."\n";
   $ret .= ' <minute>'.date('i', $now).'</minute>'."\n";
   $ret .= ' <hour>'.date('H', $now).'</hour>'."\n";
   $ret .= ' <day>'.date('d', $now).'</day>'."\n";
   $ret .= ' <dayofweek>'.date('w', $now).'</dayofweek>'."\n";
   $ret .= ' <dayofyear>'.date('z', $now).'</dayofyear>'."\n";   
   $ret .= ' <week>'.date('W', $now).'</week>'."\n";
   $ret .= ' <month>'.date('m', $now).'</month>'."\n";
   $ret .= ' <year>'.date('Y', $now).'</year>'."\n";   
   $ret .= ' <timenum>'.date('His', $now).'</timenum>'."\n";   
   $ret .= ' <time>'.date('H:i:s', $now).'</time>'."\n";   
   $ret .= ' <date>'.date('Y-m-d', $now).'</date>'."\n";   
   $ret .= ' <full>'.date('Y-m-d H:i:s', $now).'</full>'."\n";   
   $ret .= '</datepart>'."\n";   
   
   return $ret;
}
?>
Eedomus + | Domoticz | Mosquitto | Node Red | deCONZ | EspEasy | Conbee II | Rfxcom | Esp32 | Esp8266 | Alexa | Harmony

[Store] : deCONZ - Actionneurs & Capteurs / Domoticz Events / MiLight v4 & v6 / Sonoff Mini / Etats de batteries
benj70b
 
Messages : 294
Inscription : 20 Jan 2014
Localisation : 89

Re: [TUTO] EDF Conso Heure/Jour/Semain/Mois/Année

Messagepar seraphinou » 27 Août 2015 05:31

bonjour


voila j'ai remis le code que tu as envoye
ca a l'air d'etre mieux
je viens de creer juste un capteur http
datetime hour
voila le resultat que j'ai quand je le teste
peut tu me dire si c'est bon que je puisse continuer
merci a toi
chris

Image
Passione d'informatique et de domotique depuis pas mal de temps,
je possede
1 eedomus+ -1synology ds 713+-1 ecodevice-1wes-2 compteurs eau a impulsion-5 wallplug fibaro-4 fgms-001-1 qubino fil pilote-1 fibaro universel-4 sondes oregon thgr 810- etc
seraphinou
 
Messages : 238
Inscription : 20 Juil 2014

Re: [TUTO] EDF Conso Heure/Jour/Semain/Mois/Année

Messagepar seraphinou » 27 Août 2015 18:18

bonsoir me revoila avec un nouveau probleme

reponse quand je test les date time
Image

reponse quand je test Relevé kWH - Total

Image

Image

peripherique ecodevice

Image

Image

avez vous une idee d'ou provient l'erreur
merci a vous
cdt
Passione d'informatique et de domotique depuis pas mal de temps,
je possede
1 eedomus+ -1synology ds 713+-1 ecodevice-1wes-2 compteurs eau a impulsion-5 wallplug fibaro-4 fgms-001-1 qubino fil pilote-1 fibaro universel-4 sondes oregon thgr 810- etc
seraphinou
 
Messages : 238
Inscription : 20 Juil 2014

Re: [TUTO] EDF Conso Heure/Jour/Semain/Mois/Année

Messagepar benj70b » 27 Août 2015 21:21

je ne sais pas, mais y'a un truc étrange car le retour n'est pas au format xml, au début il y a un message ajouté et c'est pas dans mon script !

<br/> <b> Warning</>: cannot....


je pense que tu devrais ouvrir un ticket au support, les scripts ne fonctionnent pas correctement sur ta box.

Juste par curiosité, essaie avec un autre navigateur... m'enfin j'y crois pas trop :?
Eedomus + | Domoticz | Mosquitto | Node Red | deCONZ | EspEasy | Conbee II | Rfxcom | Esp32 | Esp8266 | Alexa | Harmony

[Store] : deCONZ - Actionneurs & Capteurs / Domoticz Events / MiLight v4 & v6 / Sonoff Mini / Etats de batteries
benj70b
 
Messages : 294
Inscription : 20 Jan 2014
Localisation : 89

Re: [TUTO] EDF Conso Heure/Jour/Semain/Mois/Année

Messagepar seraphinou » 28 Août 2015 04:33

bonjour
j'ai essaye avec un autre navigateur c'est pareil
il me vient une idee
est ce que pour essayer ce script je pourrais le faire tourner sur mon synology voir si ca fonctionne
et quelle commande http il faudrais pour le faire fonctionner



j'ai ouvert un ticket a la team

des que j'ai reponse je vous tiens au courant

cdt
Passione d'informatique et de domotique depuis pas mal de temps,
je possede
1 eedomus+ -1synology ds 713+-1 ecodevice-1wes-2 compteurs eau a impulsion-5 wallplug fibaro-4 fgms-001-1 qubino fil pilote-1 fibaro universel-4 sondes oregon thgr 810- etc
seraphinou
 
Messages : 238
Inscription : 20 Juil 2014

Re: [TUTO] EDF Conso Heure/Jour/Semain/Mois/Année

Messagepar benj70b » 28 Août 2015 11:36

ça ne fonctionnera pas sur ton synology, l'historisation des valeurs est spécifique a l'eedomus ;)

merci pour le retour
Eedomus + | Domoticz | Mosquitto | Node Red | deCONZ | EspEasy | Conbee II | Rfxcom | Esp32 | Esp8266 | Alexa | Harmony

[Store] : deCONZ - Actionneurs & Capteurs / Domoticz Events / MiLight v4 & v6 / Sonoff Mini / Etats de batteries
benj70b
 
Messages : 294
Inscription : 20 Jan 2014
Localisation : 89

Re: [TUTO] EDF Conso Heure/Jour/Semain/Mois/Année

Messagepar seraphinou » 28 Août 2015 11:51

Voilà lare monde de la team

pour votre script "DateTime - Day" c'est le contenu du XML qui est invalide, plus précisément la ligne "<?xml version="1.0" encoding="utf8" ?>"
Si vous la supprimer cela devrait être OK


Que doije faire
Je comprend plus rien
Me faut de l aide la
Merci à vous
Chris
Passione d'informatique et de domotique depuis pas mal de temps,
je possede
1 eedomus+ -1synology ds 713+-1 ecodevice-1wes-2 compteurs eau a impulsion-5 wallplug fibaro-4 fgms-001-1 qubino fil pilote-1 fibaro universel-4 sondes oregon thgr 810- etc
seraphinou
 
Messages : 238
Inscription : 20 Juil 2014

Re: [TUTO] EDF Conso Heure/Jour/Semain/Mois/Année

Messagepar benj70b » 28 Août 2015 11:58

je regarde de mon coté ;)
Eedomus + | Domoticz | Mosquitto | Node Red | deCONZ | EspEasy | Conbee II | Rfxcom | Esp32 | Esp8266 | Alexa | Harmony

[Store] : deCONZ - Actionneurs & Capteurs / Domoticz Events / MiLight v4 & v6 / Sonoff Mini / Etats de batteries
benj70b
 
Messages : 294
Inscription : 20 Jan 2014
Localisation : 89

Re: [TUTO] EDF Conso Heure/Jour/Semain/Mois/Année

Messagepar benj70b » 28 Août 2015 12:03

j'ai supprimé la ligne, le nouveau code est la :

Code : Tout sélectionner
<?php
   
/*
action      : [get]
Parametre   : ids=IDAPI[,...,IDAPI]

action      : [addhisto]
Parametre   : ids=IDAPI[,...,IDAPI]
           opt=[minitems=2],[maxitems=2],prefix=['']
          
action      : [gethisto]
Parametre   : ids=IDAPI[,...,IDAPI]
           opt=[minitems=2],prefix=['']

action      : [clearhisto]
Parametre   : ids=IDAPI[,...,IDAPI]
          
action       : [datepart]

*/   

$action = getArg('action', false, '');   // action a faire
$ids = getArg('ids', false, '');      // liste des id
$options = getArg('opt', false, '');   // options

$doecho = true;
$arrayids = explode(',',$ids);
$arrayTemp = explode(',',$options);
$arrayopts = array();

foreach ($arrayTemp as $optItemAndVal)
{
   $optArrayItem = explode('=',$optItemAndVal);
   if (count($optArrayItem) == 2)
   {
      $arrayopts[$optArrayItem[0]] = $optArrayItem[1];
      $xmlopts.= '<'.$optArrayItem[0].'>'.$optArrayItem[1].'</'.$optArrayItem[0].'>'."\n";
   }   
}

switch ($action)
{
   case 'get':
   case 'addhisto':
   case 'gethisto':
   case 'clearhisto':   
      $xmlval = sdk_ActionValues($action, $arrayids , $arrayopts);
      break;
   case 'datepart':
      $xmlval = sdk_DatePart();
      break;
   case 'dumphisto':
      $prefix = $arrayopts['prefix'];
      $periphId = $arrayids[0];
      $var = loadVariable($prefix.'SaveArray'.$periphId);
      var_dump($var);      
      $doecho = false;
      break;      
   default:
      $xmlval = ' <error>action inconnu</error>'."\n";   
   
   
      
}

// construction xml en retour
if ($doecho)
{

   sdk_header('text/xml');   
   $xml .= '<values>'."\n";   
   $xml .= ' <action>'.$action.'</action>'."\n";   
   $xml .= ' <ids>'.$ids.'</ids>'."\n";   
   $xml .= ' <options>'."\n";   
   $xml .= ' <opts>'.$options.'</opts>'."\n";   
   $xml .= $xmlopts;
   $xml .= ' </options>'."\n";   
   $xml .= $xmlval;
   $xml .= '</values>';

   echo $xml;
}
   
   
function sdk_ActionValues($action, $arrayids, $arrayopts)   
{
   
   $ret = '';
   $ret2 ='';   
   $maxitems = $arrayopts['maxitems'];
   $minitems = $arrayopts['minitems'];
   $prefix = $arrayopts['prefix'];
   
   if ($maxitems == '' or $maxitems < 2) $maxitems = 2;
   if ($minitems == '' or $minitems < 2) $minitems = 2;
   if ($minitems > $maxitems) $maxitems = $minitems;
   
   foreach ($arrayids as $periphId)
   {         
      $ret .= '<periph id="'.$periphId.'">'."\n";
      
      $value = getValue($periphId);   
      $valValue = $value['value'];      
      $valLastChange = $value['change'];         
      $valDuration = time() - strtotime($valLastChange);
      
      $ret .= ' <value>'.$valValue.'</value>'."\n";
      $ret .= ' <change>'.$valLastChange.'</change>'."\n";
      $ret .= ' <duration>'.$valDuration.'</duration>'."\n";
      
      if ($action == 'clearhisto')
      {
         saveVariable($prefix.'SaveArray'.$periphId, '');                     
      }
      
      
      if ($action == 'addhisto' || $action == 'gethisto')
      {
         
         $prevData = loadVariable($prefix.'SaveArray'.$periphId);      
         $newSaveVal = array('value' => $valValue, 'change' => $valLastChange, 'datesave' => date('Y-m-d H:i:s'));         
         if ($prevData == '')
         {
            $prevData = array();
            $prevData[0]=$minitems;
            for ($i=1; $i<=$minitems ; $i++)            
            {
               $prevData[$i]=$newSaveVal;               
            }
            saveVariable($prefix.'SaveArray'.$periphId, $prevData);                                          
         }
         
         $nbvalues = count($prevData) - 1;   
         if ($nbvalues > 0 && $nbvalues < $minitems)
         {
            for ($i = $nbvalues ; $i < $minitems  ; $i++)
            {
               $prevData[$i+1] = $prevData[$i];
            }
            saveVariable($prefix.'SaveArray'.$periphId, $prevData);                                          
            $nbvalues = count($prevData) - 1;            
         }
         
         if ($action == 'addhisto')
         {                     
            $newData = array();
            $newData[1] = $newSaveVal;
            
            for ($i = 1; $i<$maxitems && $i<=$nbvalues ; $i++)
            {                                 
               $newData[$i+1] = $prevData[$i];            
            }
            
            $newData[0]=count($newData) - 1;
            saveVariable($prefix.'SaveArray'.$periphId, $newData);                     
         }
            
      }
               
            
      if ($action == 'addhisto' || $action == 'gethisto')
      {
         $prevData = loadVariable($prefix.'SaveArray'.$periphId);      
         if ($prevData != '')
         {
            $prevDate= time();
            for ($i=0; $i < count($prevData)-1; $i++)
            {                                                
               $oldSaveVal = $prevData[$i+1];               
               $duration = $prevDate - strtotime($oldSaveVal['change']);
               $ValCurrent = $oldSaveVal['value'];
               
               $ret2 .= '<histo id="'.$i.'">'."\n";
               $ret2 .= ' <value>'.$oldSaveVal['value'].'</value>'."\n";
               $ret2 .= ' <change>'.$oldSaveVal['change'].'</change>'."\n";
               $ret2 .= ' <datesave>'.$oldSaveVal['datesave'].'</datesave>'."\n";         
               $ret2 .= ' <duration>'.$duration.'</duration>'."\n";                        
               $ret2 .= '</histo>'."\n";
               
               $prevDate = strtotime($oldSaveVal['change']);
               $ValPrevious = $ValCurrent;
            }
         }
      }
      
      
      $ret .= $ret2;      
      $ret .= '</periph>'."\n";   
   }
   return $ret;
}   



function sdk_DatePart()   
{
   
   $now = time();
   $ret = '<datepart>'."\n";   
   $ret .= ' <second>'.date('s', $now).'</second>'."\n";
   $ret .= ' <minute>'.date('i', $now).'</minute>'."\n";
   $ret .= ' <hour>'.date('H', $now).'</hour>'."\n";
   $ret .= ' <day>'.date('d', $now).'</day>'."\n";
   $ret .= ' <dayofweek>'.date('w', $now).'</dayofweek>'."\n";
   $ret .= ' <dayofyear>'.date('z', $now).'</dayofyear>'."\n";   
   $ret .= ' <week>'.date('W', $now).'</week>'."\n";
   $ret .= ' <month>'.date('m', $now).'</month>'."\n";
   $ret .= ' <year>'.date('Y', $now).'</year>'."\n";   
   $ret .= ' <timenum>'.date('His', $now).'</timenum>'."\n";   
   $ret .= ' <time>'.date('H:i:s', $now).'</time>'."\n";   
   $ret .= ' <date>'.date('Y-m-d', $now).'</date>'."\n";   
   $ret .= ' <full>'.date('Y-m-d H:i:s', $now).'</full>'."\n";   
   $ret .= '</datepart>'."\n";   
   
   return $ret;
}
?>
Eedomus + | Domoticz | Mosquitto | Node Red | deCONZ | EspEasy | Conbee II | Rfxcom | Esp32 | Esp8266 | Alexa | Harmony

[Store] : deCONZ - Actionneurs & Capteurs / Domoticz Events / MiLight v4 & v6 / Sonoff Mini / Etats de batteries
benj70b
 
Messages : 294
Inscription : 20 Jan 2014
Localisation : 89

PrécédentSuivant

Retour vers Mes usages

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 10 invité(s)