Usage du mode de lissage

Bonjour,

Au risque de paraître stupide, je voudrais poser une question sur un passage de la doc qui ne me paraît pas clair.
J’ai subi des vents tempétueux ces jours-ci et je constatais que mon anémomètre ne montrait dans son historique jamais de valeurs supérieures à plus ou moins 20km/h.
Je me suis rendu compte alors que le mode de lissage était positionné à « Moyenne » par défaut, ceci expliquant cela.
Je me suis référé alors à la doc où il est marqué :

**Historique**

* **Historiser**  : Cochez la case pour que les valeurs de cette commande soient historisées. (Voir  *Analyse→Historique*  )
* **Mode de lissage**  : Mode de  **lissage**  ou d’  **archivage**  permet de choisir la manière d’archiver la donnée. Par défaut, c’est une  **moyenne**  . Il est aussi possible de choisir le  **maximum**  , le  **minimum**  , ou  **aucun**  .  **aucun**  permet de dire à Jeedom qu’il ne doit pas réaliser d’archivage sur cette commande (aussi bien sur la première période des 5 mn qu’avec la tâche d’archivage). Cette option est dangereuse car Jeedom conserve tout : il va donc y avoir beaucoup plus de données conservées.
* **Purger l’historique si plus vieux de**  : Permet de dire à Jeedom de supprimer toutes les données plus vieilles qu’une certaine période. Peut être pratique pour ne pas conserver de données si ça n’est pas nécessaire et donc limiter la quantité d’informations enregistrées par Jeedom.

Si je mets aucun, je comprends que toutes les données sont stockées et que ça en fait beaucoup, déjà est-ce bien ça?
Mais que se passe-t-il si je mets maximum ou minimum?

J’ai fait des essais mais rien de probant.
Sachant que je veux avoir les valeurs de rafales maximales, j’ai mis maximum, c’est un peu mieux mais ça ne dépasse pas 25km/h.
J’ai essayé également aucun et minimal mais là encore, l’effet n’est pas magique.
Pourriez-vous m’éclairer sur ce point, merci?

bonjour
cela dépends du besoin
pour commencé étant une moyenne à toi d’activer ou non la répétition

une valeur avec

un lisage moyen :
chaque 5 min il sera fait une moyenne de toutes les valeurs (periode de 5min)
lisage haut :toutes les 5 min seule les valeurs hautes
lisage bas : inverse

tous les jours à 5 heures un lisage (moy,max,mini) sera fait pour la période d’une heure

une valeur sans lisage
chaque remonté est enregistré sans periode (5mn, 1 heure)

Donc, si je veux les pics de rafale de vent, c’est bien maximum que je dois mettre alors?

oui
mais tu peux très bien mettre aucun et via scénario faire ta popote

pour un compteur je mets aucun
et tous les jours à 4h garde la valeurs haute du 1/4 d’heure

Oui mais si j’ai bien compris, si j’en mets aucun ça va saturer de données la Jeedom et donc ce n’est pas recommandé

je fais le lisage (personnalisé)
pour plus de donnée (1heure étant trop long pour moi) pour 2,3 historique
va faire un tour dans ta bdd avec admirer

L’idée est quand même d’avoir un historique des valeurs hautes de l’anémomètre.
Si Jeedom le fait, pourquoi écrire un scénario?

Ok, je vais jeter un oeil.
Merci pour tes conseils.

voici un exemple de lisage perso

le code est dans un scénario fonction code

ça donne

36825 lignes depuis 1-1-2017
et tu peux voir l’accès bdd calcul en live du widget

faut commencé par faire des tranches décimal, entier afin de réduire
vent à 21 ou 22 km/h aucun intérêt d’archiver
à toi de voir mais j’arrondirai genre 20 25 30 km/h dans le calcul de la valeur

Trop fort.
Faut que je m’y mette mais je vais en avoir pour un moment.
En fait, mon anémomètre fait automatiquement des calculs de moyenne mais incompréhensible à interpréter.
Je vais essayer de le gérer moi-même.
Merci encore.

Bonjour

J’ai modifié ce paramètre sur aucun pour quelques équipements (la conso électrique par exemple), sans voir d’augmentation notable de la conso cpu.
Effectivement, pour certaines données, il n’est pas acceptable d’avoir des moyennes, il faut garder toutes le données brutes.

Pour info mon compteur eau
Tu remplaces AVG par MAX
Pas de décimal,…

$commandes = array("#[Compteur Eau][wemos02_Eau][compteur]#",
);
foreach ($commandes as $commande) {
$commande = str_replace("#", "", $commande);  
  
$sql = "REPLACE INTO `historyArch` (`cmd_id`,`datetime`,`value`)";
$sql = $sql." SELECT `cmd_id`, ";
$sql = $sql." concat( date(`datetime` ) , ' ', sec_to_time(time_to_sec(`datetime` )- time_to_sec(`datetime` )%(15*60))) as created_dt_new,";
$sql = $sql." round(max(`value`),0)";
$sql = $sql." FROM `history` ";
$sql = $sql." WHERE `cmd_id` = '$commande' ";
$sql = $sql." group by created_dt_new";
$scenario->setLog("SQL = $sql");
$result = DB::Prepare($sql, NULL, DB::FETCH_TYPE_ROW);

$sql3 ="DELETE FROM `history`";
$sql3 = $sql3."WHERE `cmd_id` = '$commande'";
$result = DB::Prepare($sql3, NULL, DB::FETCH_TYPE_ROW);

Pour teleinfo voulant gardé pas de lisage pour la journée (conso)
Et un lisage toutes les heures pour J+1 (pour ne pas saturer la bdd)
en attendant de trouver comment optimiser le jour où je m’y repencherai (le code pourrait être simplifier mais pour partage)

$commandes = array("#[Teleinfo][EDF][BASE]#",
);
foreach ($commandes as $commande) {
$commande = str_replace("#", "", $commande);  
  
$sql = "REPLACE INTO `historyArch` (`cmd_id`,`datetime`,`value`)";
$sql = $sql." SELECT `cmd_id`, ";
$sql = $sql." concat( date(`datetime` ) , ' ', sec_to_time(time_to_sec(`datetime` )- time_to_sec(`datetime` )%(60*60))) as created_dt_new,";
$sql = $sql." round(max(`value`),0)";
$sql = $sql." FROM `history` ";
$sql = $sql." WHERE `cmd_id` = '$commande' ";
$sql = $sql." group by created_dt_new";
$scenario->setLog("SQL = $sql");
$result = DB::Prepare($sql, NULL, DB::FETCH_TYPE_ROW);

$sql3 ="DELETE FROM `history`";
$sql3 = $sql3."WHERE `cmd_id` = '$commande'";
$result = DB::Prepare($sql3, NULL, DB::FETCH_TYPE_ROW);
    }

Je mettrai en soirée comment j’ai procédé (en gros)
Creation de virtuel (test)
Copie de l’historique (param source)
Deplacement de la table archive_arch en archive (requêtes admirer)
Et test de requête

Backup de jeedom conseillé

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.