boulihipp1 a écrit:Je parle du compteur détaillé sur ce topic : viewtopic.php?f=50&t=1872
boulihipp1 a écrit:Tu veux que je te envois le script compteurtemps.php?
<?
// script cr�� par Pierre Pollet 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);
}
?>
boulihipp1 a écrit:http://localhost/script/?exec=compteurT ... n=read&id=<783478>&type=quotidien&eedomus_controller_module_id=783478
URL LAN : http://192.168.0.30/script/?exec=compte ... n=read&id=<783478>&type=quotidien&eedomus_controller_module_id=783478 Editer Editer ce script
Utiliser le résultat XML :
## ERROR : Variable name [LastKnownDate<783478>] must be a string with characters from [a-zA-Z0-9_]
Retour vers Scripts & Périphériques du store
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 28 invité(s)