Bonjour Ă tous,
souvent il a été demandé comment faire un historique des événements qui surviennent sur l’IPX800 V4. La réponse était toujours « faire un PUSH » sur une condition « OnEvent »
voici, pour ceux qui en ont besoin, la manière de le mettre en place :
Dans un dossier web de votre synology, raspberry, ou web hébergé (FAI, …), collez ce code dans un fichier onEvent.php
<?php
//url attendues :
//http://ipSyno/DossierWeb/monScript.php?time=$TS&type=SV&val=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//http://ipSyno/DossierWeb/monScript.php?time=$TS&type=EV&val=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//http://ipSyno/DossierWeb/monScript.php?time=$TS&type=ED&val=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//http://ipSyno/DossierWeb/monScript.php?time=$TS&type=SR&val=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
$type=$_GET["type"];
if ($type=="SV" || $type=="EV"){
$nbcar=128;
}
if ($type=="ED" || $type=="SR"){
$nbcar=56;
}
$message="";
for ($i = 0; $i < $nbcar; $i++) {
$message=$message . substr($_GET["val"],$i,1) . ";";
}
$monHisto=fopen('./Histo' . $type . '.csv', 'a+');
fputs($monHisto, $_GET["time"] . ";" . $type . ";" . $message ."\n");
fclose($monHisto);
echo "ok " . $type;
?>
Donnez les droits Lecture/Ecriture à l’utilisateur SYSTEM
sur IPX800, créer ces 4 scènes
- ONEVENT(« Entrées physiques ») ON PUSH(preset=ED)
- ONEVENT(« Sorties physiques ») ON PUSH(preset=SR)
- ONEVENT(« Entrées virtuelles ») ON PUSH(preset=EV)
- ONEVENT(« Sorties virtuelles ») ON PUSH(preset=SV)
créer ces 4 preset de PUSH
ED:
serveur : ip synology
Url ON : /monDossierWeb/onEvent.php?time=$TS&type=ED&val=$D
SR:
serveur : ip synology
Url ON : /monDossierWeb/onEvent.php?time=$TS&type=SR&val=$R
EV:
serveur : ip synology
Url ON : /monDossierWeb/onEvent.php?time=$TS&type=EV&val=$VI
SV:
serveur : ip synology
Url ON : /monDossierWeb/onEvent.php?time=$TS&type=SV&val=$VO
adaptez l’url vers votre fichier onEvent.php
le script créera 4 fichiers csv comportant le timeStamp et les valeurs de chaque entrée ou sortie. Il suffira d’ouvrir le fichier avec un tableur.
Exemple de fichier généré pour les sorties virtuelles :
En ouvrant le fichier dans un tableur, les changements d’états sont visibles très facilement
Dans l’exemple, c’est SV6 qui génère le ON Event par ses changements successifs d’état
Pour information, SV6 est configurée avec un Tb de 30 secondes. Nous remarquons que les horodatages des changements ON->OFF sont espacés de 30s. Le fait que l’IPX800 pousse son propre timeStamp ($TS) augmente la précision des historiques.
Pour ceux qui connaissent, les règles de mise en forme conditionnelle peuvent aider pour mettre en exergue les changements d’état et donc faciliter l’analyse des données.
cdt