Compteur de temps de fonctionnement Poele a granulé

Bonjour a tous

Je me permets de vous ecrire car je souhaiterais effectué un Virtuel/scenario pour effectué un compteur de temps de fonctionnement sur mon poele a granule.

J’explique mon cas: j’ai un poele a granule de marque Ravelli que je pilote via le plugin Thermostat et un contact sec pour la mise en route. L’idée est de comptabiliser le temps de fonctionnement entre deux remplissage de sac de granule.

J’ai en ma possession un bouton On/Off tradfri de chez IKEA en ZIGBEE qui me permettra la remise a zero du compteur lors du remplissage (Et aussi la totalisation des sacs consommés dans l’année et le prix mais ca ce fonctionne bien avec un virtuel)

L’idée est de remonter l’information sur un tablette murale pour indiquer via un message « Remplir poele » avant qu’il ne soit vide.

Auriez vous une idee de comment y parvenir ?

Merci a vous

Bonjour,

  • lastStateDuration(commande,valeur) : Donne la durée en secondes pendant laquelle l’équipement a dernièrement eu la valeur choisie. Retourne -1 si aucun historique n’existe ou si la valeur n’existe pas dans l’historique. Retourne -2 si la commande n’est pas historisée

Donc je pense que je ferais un virtuel avec une commande virtuel qui passe à 0 quand tu appuies sur ton bouton (la phase de remplissage) et avec un retour à 1 au bout d’une minute.

La commande sera donc toujours à 1 sauf 1 minute au moment du remplissage où il sera à 0.

Ensuite avec lastStateDuration(commande,1) tu pourras garder un œil sur le temps depuis le remplissage et te déclencher une alerte quand cette valeur dépasse un certain seuil.

1 « J'aime »

Bon j’ai reussi a faire ce que tu m’as dit et je t’en remercie bien mais maintenant j’ai un compteur qui reviens a 0 a chaque demarrage du poele (logique)

Comment puis je faire pour totaliser le temps de fonctionnement jusqua ce que je le reinitialise via mon bouton ?

désolé je suis un noob dans le domaine mais j’essai lol

Je ne comprends pas trop pourquoi. L’idée c’était qu’il passe à 0 en appuyant sur le bouton et j’ai compris que tu voulais appuyer dessus uniquement lors du remplissage.

J’ai peut être mal compris ?

Montre ce que tu as fait ça aidera

Non, non, tu a très bien compris c’est bien ça l’opération.

Mais mon poele démarre suivant un agenda et le plugin Thermostat.

Exemple: de 05h00 a 10h00, je demande 20°c // De 10h00 a 17h00, je demande 18°c // de 17h00 a 21h00 21°c…

Bref le poele démarre donc (suivant mon exemple) a 05h et ce coupe a 10h et redémarre a 17h jusque 21h

Mon problème est que la fonction lastStateDuration(commande,1) ne decompte qu’a partir du dernier changement d’état (17h) et je n’arrive pas a totaliser le temps de fonctionnement sur, genre, 48h ou 72h pour pouvoir faire un total d’environs 10/12h total de fonctionnement pour pouvoir indique une demande de remplissage du poele et reinitialiser le tout avec mon bouton pour repartir a 0 sur le temps de fonctionnement jusqu’au prochain remplissage.

Compliqué l’affaire lol

Oui mais là apparemment la commande que tu as mise dans la fonction lastStateDuration c’est l’état de fonctionnement. Ce n’est pas ce qu’il faut faire puisque tu voulais connaître le temps depuis le reset avec un bouton.

Il faut donc une commande X info binaire supplémentaire pour gérer ça.
Lors de l’appuie sur le bouton tu passes cette commande X à 0 et tu la paramètres pour revenir à 1 au bout d’une minute.

Montre ton virtuel :wink:

Pour le moment y a que dalle dans mon virtuel, seulement les temps de fonctionnement de mon poele actuellement depuis son dernier démarrage (115,7min)

Hum, mais donc tu veux bien comptabilisé la durée de fonctionnement réel de ton poil puis remettre cette valeur à zéro en appuyant sur ton bouton ?
J’avais pas compris ça

Oui c’est ça, je souhaite comptabiliser le temps de fonctionnement de mon poêle en temps réel et faire une alerte pour le remplir au bout d’un certain temps de fonctionnement (j’ai une tablette au mur et je souhaite indiquer un message du genre « remplir poêle »)

Bon alors du coup il faudrait faire comme ça (exemple) :

  • Le temps de fonctionnement de type :
durationBetween(#commande#,1,#[Dernier reset]#,Now)
  • Le dernier reset qui sera vide pour le moment et de type info/autre

Lors de l’appuie sur le bouton il faudra envoyer dans la commande #[Dernier reset]# :

date('Y-m-d H:i:s')

Soit via un scénario soit depuis la commande avancée de ta commande bouton (action après exécution)

Ainsi lors de l’appuie sur le bouton, la date en cours sera stockée dans #[Dernier reset]# et comme durationbetween va regarder le temps écoulée depuis cette date jusqu’à maintenant, tu auras ta durée depuis le dernier reset