Erreur stateChangesBetween

Bonjour,
Je poste cette demande ici , mais ce n’est peut être pas la place appropriée, si besoins merci de la déplacer.

Je reçois un contact binaire qui m’envoie une impulsion à chaque fois que le compteur d’eau compte 0.5L. Il s’agit d’un capteur de porte AQARA en Zigbee modifié pour cet usage.

Historique sur une journée du signal en question :

Je cherche à compter le nombre d’impulsions par jour, j’ai donc créé un virtuel sur les conseils de @Bison (que je remercie pour son aide) qui contient :
stateChangesBetween(#[Buanderie][CompteurEau][contact]#,1,today 00:00:00, now))

Le problème comme on peut le voir sur l’image ci dessous, c’est que tous les jours, vers 6h50 (en gros quand on recommence à tirer de l’eau en début de journée) le compteur décrémente.
Alors que cela ne devrait pas être possible vu que le signal de base est un binaire.

Je suspecte donc un problème avec la fonction stateChangesBetween.

Merci par avance pour votre aide.

Bonjour,

C’est très étrange en effet, je vois pas bien ce qui peut expliquer ça.

Est-ce que tu peux aller dans Réglage > Systeme > Configuration puis onglet OS/DB puis ouvrir Administration Base de données

Dans commande SQL (en remplaçant 1000 par le numéro de ta commande #[Buanderie][CompteurEau][contact]#) :
SELECT * FROM history WHERE cmd_id = 1000 and datetime like '2024-03-28%' and value = 1

Autre chose : Exécuter ces 2 commandes dans le testeur d’expression :

stateChangesBetween(#[Buanderie][CompteurEau][contact]#,1,today 00:00:00, now))
stateChangesBetween(#[Buanderie][CompteurEau][contact]#,0,today 00:00:00, now))

Puis poster les résultats

Pour la commande SQL j’ai faits ce que tu me demandes, mais je ne vois rien de particulier qui change quand je clique sur exécuter :

Pour le test des expressions :

Merci

Tu peux relancer dans historyArch parce que maintenant les infos ont changé de tables (ce n’était pas le cas hier).

SELECT * FROM historyArch WHERE cmd_id = 290 and datetime like '2024-03-28%' and value = 1

Déjà je ne comprends pas que le nombre de 0 et de 1 ne soit pas identiques sur la journée …

Ca ne serait pas tout simplement du a l’archivage (il passe vers cette heure la). As tu testé de désactiver l’archivage sur la commande binaire et l’autre pour voir ?

Hello,

Mais la commande prend en compte les données « live » et « l’historique ». On aurait tous le problème sur l’une de nos commandes non ?

Je peux pas te dire je dis juste que c’est une possibilité après vous pouvez ne pas tester c’est à vous de voir

Je pose peut être une question bête mais par archivage, tu entends « historiser » je pense ?
Si oui, je viens de décocher la case historiser pour voir.
Mais si c’est le cas , ce comportement me semblerait très bizarre, car cela voudrait dire qu’on ne peut pas historiser un binaire sans pertes de données ?

La question se pose aussi de savoir comment vérifier que c’est ok sans historique…

Merci en tout cas pour ton aide :slight_smile:

Personnellement je ne sais pas comment désactiver un archivage sur une commande binaire et je suppose que Loïc ne parlait pas de l’historique puisqu’en décochant l’historique tu as perdu les données et la commande de stats ne peut plus fonctionner.

Yep je vois pas non plus, @Loic si tu as une idee/suggestion :wink:

Bonjour
Sur l’autre commande l’archivage peut etre mais effectivement ça ne changera rien le soucis vient de l’archivage sur la commande binaire si elle ne repasse jamais à 0.

Je suis pas certain de comprendre ce que je dois faire dans ce cas pour solutionner le probleme.

Désactiver sur tous les commande possible utiliser dans ton calcul ou stockant le résultat l’archivage ça corrigera sûrement pas mais faut déjà tester ça je pense

En fait une fois le calcul fait dans le virtuel il est directement utilisé par le plugin suiviconso.
Je vais essayer en le desactivant.
Merci