je souhaite mettre en place un système de gestion de l’entretien de mon poele a pellets
un entretien nettoyage complet) doit être effectué toutes les 400 heures.
pour cela, j’ai besoin de connaitre :
la durée de fonctionnement depuis le dernier entretien, je prends l’etat 8 remonté par mon equipement.
le soucis c’est que StateDuration ne remonte que le dernier etat, pas le cumul malgres que la commande soit historisée.
ensuite il me faudrait pouvoir , via un bouton, déclarer que l’entretien est effectué et donc remettre un compteur a zéro.
ton état 8 correspond à quoi ? le fonctionnement de ton poêle ?
Si oui, tu fais un scénario qui se déclenche lorsque l’état est différent de 8, et qui pousse dans une variable le state duration du dernier état à 8.
l’opération sur la variable : variable = variable + state duration (incrémente)
Ensuite tu te fait un virtuel qui te remonte les infos voulues (temps de fonctionnement total, restant avant entretien, …) et un bouton de reset de la variable (via un scénario dédié ou le même que précédemment en ajoutant un déclencheur et un bloc IF dédié)
Tu peux peut être même pousser le reset automatique si tu débranche électriquement ton poêle pour l’entretien, et que ce statut est identifiable (connexion wifi?)
C’est tout a fait ça ! l’état 8 correspond au fonctionnement normal
la question est comment déclencher le scénario au changement d’état de 8 vers un autre état ?
il peut passer vers 10 ou un autre, si plus de pellets par exemple…
il faudrait donc déclencher à la sortie du mode 8
le poele passe par plusieurs états lors du démarrage ou de l’extinction donc si on déclenche a chaque changement d’état la variable va s’incrémenter plusieurs fois …
Bonjour @iceman31270
Je viens d’essayer.
Tu créer un virtuel avec:
une information de type Binaire, que tu appelles « Etat égale 8 » avec comme valeur […][…][etat]==8, que tu vas historiciser.
Une autre information de type Numérique, que tu appelles « Temps fonctionnement Poêle », que tu historises, et qui est égale à la variable « Poele Tps de fonctionnement »
Une information « Temps fonctionnement Poêle_En heure » = floor([…][…][Temps fonctionnement Poêle]/60) (tu pourra chercher pour rendre ça plus joli. Notamment avec « FormatTime » voir la doc scnéario)
Un interrupteur qui va s’appeler « Reset compteur »
Apres tu fais un scénario avec 2 déclencheurs:
de type provoqué : Ton interrupteur ==1
de type programmé : toute les heures.
Dans le scénario tu mets juste
Si trigger([…][…][Interrupteur])
----Alors: Variable(Poele Tps de fonctionnement) = 0
----Sinon: Variable(Poele Tps de fonctionnement) = Variable(Poele Tps de fonctionnement) + duration(#[…][…][Etat égale 8]#,1,-1 hour)
SI(n°2) (#time#==900 OU #time#==1200 OU #time#==1900) ET Variable(Poele Tps de fonctionnement) >= (400*60)
---- Alors : Envoyer un message d’alerte
Et voila.
#[…][…][Etat égale 8]# sera égale à 1 quand le poêle fonctionne, sinon l’info vaudra 0.
Toute les heures tu regardes combien de temps la valeur est à 1 et tu l’ajoute à la précédente. Du coup tu calcules le temps de marche…
Si il est 9h ou midi ou 19 et que la variable à dépassé 400 h (ou 400 x 60 minutes), alors tu vas recevoir un message.
Le résultat d’une simulation sur 1/2 h:
avec :
Une liste qui prend les valeurs 1 / 2 / 3
Une info qui prends la valeur 1, quand la liste est à 3