voila 
<?
// script créé par Madoma73 pour eedomus
// pour gérer des compteurs
// Version 1   / 17 Juillet 2014		/ 1ère version disponible
// paramètres de configuration
$action = getArg('action');
$compteurType=getArg('type');
$compteurPeriphId=getArg('id');
$TimeNow=microtime(true);
// Définition du noms des variables en fct de l'ID du périphérique compteur
$DateName='LastKnownDate'.$compteurPeriphId;
$PreviousTimeName='StartTime'.$compteurPeriphId;
$CompteurValueName='CompteurValue'.$compteurPeriphId;
$CompteurStateName='CompteurState'.$compteurPeriphId;
//Chargement des variables    
$LastKnownDate=loadVariable($DateName);
$CompteurValue=loadVariable($CompteurValueName);
$CompteurState=loadVariable($CompteurStateName);
$PreviousTime=LoadVariable($PreviousTimeName);
$InitialValue=$CompteurValue;
sdk_header('text/xml');
$xmloutput="<root>";
// gestion de la date en fonction du type de compteur
switch(strtolower($compteurType))
{
	case 'quotidien':
		$CurrentDate = date('d');
    break;
  case 'mensuel':
		$CurrentDate = date('m');
	  break;
  case 'annuel':
		$CurrentDate = date('Y');
	  break;
}
$xmloutput .="<LastKnownDate>".$LastKnownDate."</LastKnownDate>";
$xmloutput .="<CurrentDate>".$CurrentDate."</CurrentDate>";
$xmloutput .="<PreviousValue>".$InitialValue."</PreviousValue>";
//comparaison de date pour savoir si il faut reseter le compteur
if ($LastKnownDate <> $CurrentDate) 
{
 $CompteurValue=0;
 saveVariable($DateName,$CurrentDate);
}
// gestion des actions
switch(strtolower($action))
{
	case 'start':
    saveVariable($PreviousTimeName,$TimeNow);
    $CompteurState=1;
    $xmloutput .="<action>";
    $xmloutput .="start counting";
    $xmloutput .="</action>";
    $xmloutput .="</root>";
    echo $xmloutput;
    break;
    
	case 'stop':
		//Calcul du temps à ajouter
    $CompteurState=0;
    $TimeElapsed=round($TimeNow-$PreviousTime,0);
    //$TimeToAdd=date("s", $TimeElapsed);
    $CompteurValue = $CompteurValue+ $TimeElapsed;
    $xmloutput .="<action>";
    $xmloutput .="stop counting:".$TimeToAdd."s";
    $xmloutput .="</action>";  
    $xmloutput .="<NewValue>".$CompteurValue."</NewValue>";
    $xmloutput .="</root>";
    echo $xmloutput;
    
    //par securite, sauvegarde du temps courant dans la variable.
    saveVariable($PreviousTimeName,$TimeNow);
    break;
    
  case 'reset':
		$CompteurValue=0;
    $CompteurState=0;
    $xmloutput .="<action>";
    $xmloutput .="reset done";
    $xmloutput .="</action>";
    $xmloutput .="</root>";
    echo $xmloutput;
	  break;
    
  case 'read':
    //Calcul du temps à ajouter
    if ($CompteurState)
    {
      $TimeElapsed=round($TimeNow-$PreviousTime,0);
      //$TimeToAdd=date("s", $TimeElapsed);
      $CompteurValue = $CompteurValue + $TimeElapsed;
      $xmloutput .="<action>";
      $xmloutput .="count still on going";
      $xmloutput .="</action>";
      // on continue à compter:
      saveVariable($PreviousTimeName,$TimeNow);
    }
    
    $xmloutput .="<value>".$CompteurValue."</value>";
    $xmloutput .="</root>";
    echo $xmloutput;
	  break;
    
  default:
    $xmloutput .="<action>";
    $xmloutput .=strtolower($action)." is an unknown action";
    $xmloutput .="</action>";
    $xmloutput .="</root>";
    echo $xmloutput;
	  break;
}
saveVariable($CompteurStateName,$CompteurState);
// Mise à jour du compteur
if ($CompteurValue<>$InitialValue)
{
  saveVariable($CompteurValueName,$CompteurValue);
  
}
?>
			

 
   )
)