Ma version de Jeedom est la dernière en date 4.3.23 et j’utilise le plugin Poele agua IOT qui me permet de piloter mon poêle à pellets.
Le plugin de @lefilliatre fonctionne très bien et me permet, outre le pilotage, de connaitre les différents états de mon poêle : 0 Eteint, 1 Allumage, 2 Charge, 3… et ce jusqu’à 6 nettoyage.
Mon état étant mémorisé, je voulais comptabiliser le nombre de fois où j’allume mon poêle dans la saison ou sur une période donnée et j’ai essayé avec les 2 commandes StateChanges ou StateChangesBetween.
Or je me suis rendu compte que ces deux commandes ne me retournent pas le résultat escompté.
Sur le graphique de l’historique d’hier :
On peut voir que j’ai allumé mon poele peu avant 17h et qu’il a été éteint vers 23h. On voit également que l’état 1 n’est présent qu’une seule fois, quelques secondes après la mise en route.
Or lorsque je fais :
stateChanges(#[Salon][Relax][Etat]#,1,yesterday)
ou
stateChangesBetween(#[Salon][Relax][Etat]#,1,yesterday,now)
J’obtiens 2 alors que de toute évidence je devrais avoir 1
Est-ce moi qui n’utilise pas la bonne méthode pour calculer ?
Est-ce le plugin qui envoie 2 fois l’état dans Jeedom ? Mais si c’est le cas cela ne se voit pas sur la courbe.
Est-il possible d’avoir un détail de l’historique sous forme de texte ou d’export pour tenter de voir s’il y a doublon ?
En indiquant « yesterday » comme cela il est implicite que tu demandes « yesterday 00:00:00 » autrement dit depuis le jeudi 07/03 à minuit (après mercredi donc).
Dézoom ton historique entre mercredi 23h (histoire de voir le passage mercredi/jeudi) et maintenant, il est probable que tu vois 2 passages à 1
J’ai vérifié ce point et ce n’est pas ça.
Car même en écrivant stateChangesBetween(#[Salon][Relax][Etat]#,1,yesterday 16:00,now) ou encore stateChangesBetween(#[Salon][Relax][Etat]#,1,yesterday 16:00,yesterday 18:00) le résultat est toujours 2
J’ai fait le test sur plusieurs jours précédents et c’est récurrent
Edit:
Après vérification je pense que ça doit être lié au plugin qui envoie régulièrement la valeur de l’état dans Jeedom.
J’ai regardé pour la phase de nettoyage qui débute à 22h00 et se termine vers 23h (état 6) stateChangesBetween(#[Salon][Relax][Etat]#,6,yesterday 22:00,yesterday 23:00)
j’obtiens 59 occurrences, soit à peu près 1 par minute, ce qui doit être l’intervalle du plugin.
Même si la valeur de l’état ne change pas, c’est étrange que Jeedom le comptabilise comme plusieurs changements d’état.
Récupère l’id de ta commande #[Salon][Relax][Etat]#
Menu Réglages > Système > Configuration
Onglet OS/DB
Ouvrir sur la partir « Administration Base de données »
Exécutes ces 2 requêtes en changeant l’ID 2000 par celui de ta commande
SELECT * FROM `history` WHERE `cmd_id` = 2000 order by datetime desc
SELECT * FROM `historyArch` WHERE `cmd_id` = 2000 order by datetime desc
En effet la commande fonctionne comme elle le doit.
Par contre l’option « répéter les valeurs identiques » que m’a demandé de vérifier @anon53349806 semble être sans effet.
l’option « répéter les valeurs identiques » a bien le bon comportement, du moins c’est bien comme ceci que fonctionne le core, il n’empêche pas l’ajout en historique mais empêche seulement de lancer les scénarios, listener …
Le plugin doit avoir un cron minute, et doit recréer l’évènement a chaque fois.
C’est possible. Je l’ai taggué à la création du sujet, je verrai bien si il a des éléments de réponse.
Ca me rassure déjà de voir que j’avais bien utilisé la commande
En tout cas merci pour le coup de main et les différents tests suggérés.
Yep on est d’accord donc c’est pour ça que je disais donc que le développeur n’avait pas du utiliser cette fonction pour mettre à jour sa commande mais probablement un event()