Calculight

Calculight est un plugin qui permet de fournir des informations calculées sur plusieurs capteurs.

Le script a été elaboré par opa95 pour répondre au besoin lié à l'utilisation de plusieurs capteurs :

Merguez07 en a fait un plugin qui permet d'affecter facilement les capteurs à partir de leur nom et d'obtenir les opérations de base.

Installation du plugin

N|Solid

Depuis le store eedomus, cliquez sur le bouton « Créer » situé sous l'icone du plugin.

Cela vous donnera ensuite accès à l'interface d'installation du périphérique qu'il vous faudra paramétrer.

N|Solid

En 1 par défaut le périphérique sera nommé "Calculight"

En 2 n'oubliez pas de lui affecter une pièce si vous voulez trouver facilement votre périphérique

En 3 renseignez l'unité désiré pour le calcul voulu

En 4 choisir vos capteurs. Vous pouvez en choisir 8 lors de l'installation mais vous pourrez en mettre plus par la suite

En 5 renseigner l'opération que vous désirez faire

En 6 cliquez, enfin, sur le bouton « Créer ».

Présentation du périphérique

Le script fournit le résultat de diverses opérations provenant de divers capteurs définis par leur identifiant (id1,id2,...idn). Il peut utiliser la valeur brute du capteur et une valeur corrigée par un gain et un offset lié à chaque capteur :

ValeurCorrigée= (valeurBrute x gain) - offset.

Les opérations effectuées sont :

Les cinq premières opérations sont toujours effectuées et les deux premières (somme, moyenne) toujours accessibles.

Les six dernières opérations peuvent ne pas être affichées pour alléger le résultat.

Les opérations med et tri peuvent être exclues (traitement plus rapide). De plus, le résultat peut être : - simplement calculé (mode=get), - sauvé pour éviter un recalcul ultérieur (mode=save) et - relu sans recalcul (mode=load ou clear).

Requêtes

Le résultat de notre calcul est obtenu par les requêtes dont les url sont les suivantes :

http://localhost/script/?exec=calculight.php&periphIds=[VAR1] (requête simplifiée)

ou

http://localhost/script/?exec=calculight.php&periphIds=[VAR1]&adjust=[VAR2]&mode=[VAR3] (requête complète)

Variables

Resultats :

Le script affiche les résutats de la requête sous forme XML dont les données pourront ensuite être exploitées par l'XPATH.

Forme du XML minimale (forme minimale : [VAR2] vide et [VAR 3] ops) :


<?xml version="1.0" encoding="UTF-8"?>
<root>
  <time>2021-10-26 12:06:09</time>
  <gmt>1635242769</gmt>
  <result>23</result>
  <somme>23</somme>
  <sommeBrute>23</sommeBrute>
  <moyenne>11.5</moyenne>
  <nombre>2</nombre>
  <mode>GET:mem0</mode>
</root>

Forme du XML par défaut (forme étendue : [VAR2] et [VAR 3] vides) :


<?xml version="1.0" encoding="UTF-8"?>
<root>
  <time>2021-10-26 20:05:20</time>
  <gmt>1635271520</gmt>
  <result>23</result>
  <somme>23</somme>
  <sommeBrute>23</sommeBrute>
  <moyenne>11.5</moyenne>
  <nombre>2</nombre>
  <mode>:mem0</mode>
  <min>
    <value>23</value>
    <rawValue>23</rawValue>
    <change>2021-10-24 10:46:18</change>
    <gmt>1635065178</gmt>
    <num>2</num>
    <numTri>2</numTri>
    <id>736884</id>
    <name>Temp CH Info</name>
  </min>
  <max>
    <value>23</value>
    <rawValue>23</rawValue>
    <change>2021-10-24 10:46:18</change>
    <gmt>1635065178</gmt>
    <num>2</num>
    <numTri>2</numTri>
    <id>736884</id>
    <name>Temp CH Info</name>
  </max>
  <last>
    <value>23</value>
    <rawValue>23</rawValue>
    <change>2021-10-24 10:46:18</change>
    <gmt>1635065178</gmt>
    <num>2</num>
    <numTri>2</numTri>
    <id>736884</id>
    <name>Temp CH Info</name>
  </last>
  <med>
    <num>1 2</num>
    <numTri>1.5</numTri>
    <value>11.5</value>
    <rawValue>11.5</rawValue>
    <id>2035791 736884</id>
    <change>0</change>
    <name>Temp DS18B20 n°1 ou Temp DHT22 [Invisible] / Temp CH Info</name>
    <gmt>0</gmt>
  </med>
  <vals>
    <val>
      <value></value>
      <rawValue></rawValue>
      <change></change>
      <gmt></gmt>
      <num>1</num>
      <numTri>1</numTri>
      <id>2035791</id>
      <name>Temp DS18B20 n°1 ou Temp DHT22 [Invisible]</name>
    </val>
    <val>
      <value>23</value>
      <rawValue>23</rawValue>
      <change>2021-10-24 10:46:18</change>
      <gmt>1635065178</gmt>
      <num>2</num>
      <numTr>2</numTri>
      <id>736884</id>
      <name>Temp CH Info </name>
    </val>
  </vals>
</root>

XPATH :

exemple de combinaison d'xpath :

la moyenne sans valeurs extrêmes