Déclencher un calcul simple à partir d'une action

Bonjour,

Très débutant, j’essaye de réaliser la chose suivante.

J’ai besoin de savoir combien il reste de pellets dans mon reservoir de poele.
Ce dont je dispose :
J’ai une information sur le nombre de brulé (lifetime)
Je sais que si je recharge un sac, j’ai 15 Kg dans le réservoir.

Objectif : Quand je clic sur un bouton, j’aimerai avoir une tuile avec une valeur de 15Kg. CEtte valeur doit diminuer au fur et à mesure que je brûle des pellets.

Ce que j’ai testé
J’ai crée une entrée numérique pour laquelle, j’ai saisi manuellement le nombre de pellets brulés (lifetime) + 15Kg appelé « compteur pellet »
J’ai crée un template sensor où je calcule : « compteur pellet - nombre de pellets brulés (lifetime) ».

Je cherche donc à augmenter ma valeur compteur pellet de 15 à chaque fois que je clique sur le bouton (rechargement du poele).

Bon, c’est une solution que j’utilisais sur jeedom mais il y a peut être plus simple sur HA.
Merci pour votre aide car là, je sèche !!

Salut !
Je pense que tu peux essayer quelque chose avec un input number :thinking:
J’imagine la situation suivante :
-creer un input number avec Max: 15

  • créer une automation qui a chaques changement d’état de l’entité pelée brûlé lifetime va appelé l’action decrement sur l’input number de la valeure de l’entité brûlé lifetime
  • quand tu recharges un sac de 15kg, soit tu remet le input number a 15 manuelle, soit tu crée un bouton, qui, lorsque tu cliques dessus va réinitialiser l’input number

Voilà une piste, j’espère que ça peux t’aider :blush:

1 « J'aime »

Si je comprend bien:

  • tu as une conso « globale » (lifetime)
  • tu as créé un input number (compteur pellet) que tu as initialisé à +15kg
  • tu as créé un sensor (compteur - lifetime) qui finit par devenir negative si tu ne peux pas « recharger » ton calcul en même temp que ton poele.

Que cherches tu vraiment?

  • avoir un bouton qui vaille 15 au rechargement et descende progressivement vers 0 jusqu’au prochain rechargement ou ça repasse à 15?
  • ajouter 15kg a chaque fois que tu appuie (et donc avoir une valeur qui peut valoir >15kg si le bac n’était pas vide)

Dans les deux cas ça peut se faire de plusieurs façon:

  • Directement avec le dashboard avec une syntaxe type template
  • dans un script que tu appelles via le dasboard (ou via un bouton a coté du poêle lorsque tu recharges…)

Perso je ferai comme dit par @Frosh un input_number qui soit la representation du niveau de pellet dans le poele. Et j’ajouterai:

  • un mécanisme (automatisation par exemple) qui retire la consommation au fur et a mesure (en utilisant lifetime comme trigger pour réduire la quantité de l’input_number de la valeur consommée)
  • un mécanisme de rechargement qui ajoute 15 a la valeur ou remet la valeur à 15 suivant le mode de fonctionnement souhaité. (via script, automation ou dashboard, tout est faisable)

Avec ce mécanisme tu pourras même faire des alertes sur le niveau de l’input number et des notifications (penser à remettre des pellets) sous un certain seuil à determiner…

Sur ton dashboard, tu affiches l’input number (le niveau de pelet) et tu actives le script (rechargement) sur l’appui sur le bouton. ça peut se faire dans quasi toutes les cartes existantes…

1 « J'aime »

Merci à tous les 2 de vous pencher sur ma demande.

@BBE a bien résumé ce qu’il me faut.
La solution 1 est celle que j’aimerai :

avoir un bouton qui vaille 15 au rechargement et descende progressivement vers 0 jusqu’au prochain rechargement ou ça repasse à 15?

Maintenant, tu proposes 2 mécanismes et c’est bien là où j’ai besoin d’aide…
Mécanisme 1

un mécanisme (automatisation par exemple) qui retire la consommation au fur et a mesure (en utilisant lifetime comme trigger pour réduire la quantité de l’input_number de la valeur consommée)

Pour l’instant j’ai un template de type sensor qui me fait ce calcul. Mais je ne sais pas à quelle régularité se fait la mise à jour du template. Est-ce immédiat ?

Mécanisme 2

un mécanisme de rechargement qui ajoute 15 a la valeur ou remet la valeur à 15 suivant le mode de fonctionnement souhaité. (via script, automation ou dashboard, tout est faisable)

Là encore je sèche. un script ou un automatisme ira très bien mais comment faire ? Je dois choisir quoi dans action ? J’ai essayé plusieurs trucs je n’y arrive pas (entrée> entrée numérique ou nombre>définir. Il s’agit ici de rajouter 15 à l’entrée « input_number.compteur_pellets »

Partons du principe que tu crées une entité input-number.niveau-pellet
Partons du principe que tu as défini son niveau min à 0 et son max à 15

c’est pour ça que @Frosh et moi proposons une automatisation:
En fonction de comment est fait « lifetime » tu n’en dit pas beaucoup, c’est difficile de deviner

  • un trigger: « quand lifetime change » (si c’est par exemple tous les 0.1kg consommé…)
  • une action: décrement input_number.niveau-pellet (de 0.1kg par exemple, a ajuster en fonction du comportement de « lifetime »)
action: input_number.decrement
data:
  amount: 0.1
target:
  entity_id: input_number.niveau-pellet

Ainsi tu maitrises le rythme de maj: à chaque changement de la conso, tu réduits la quantité dispo

non. il s’agit la de remettre à 15 l’entité input_number.niveau-pellet.

La encore dans un script/automatisation tu as une action set_value:

action: input_number.set_value
metadata: {}
data:
  value: 15
target:
  entity_id: input_number.niveau_pellet

ça c’est comme ça:

action: input_number.increment
metadata: {}
data:
  amount: 15
target:
  entity_id: input_number.compteur_pellets

mais si tu as 5 kg restant, ça va « déborder »…

Et pour le faire j’ai juste ouvert un nouveau script et regardé dans l’UI… rien de bien sorcier:

et @Frosh avait déjà tout dit dans sa réponse…

alias: Nouveau script
sequence:
  - action: input_number.decrement
    metadata: {}
    data:
      amount: 0.1
    target:
      entity_id: input_number.temperature_reduit_hiver
  - action: input_number.set_value
    metadata: {}
    data:
      value: 15
    target:
      entity_id: input_number.temperature_reduit_hiver
  - action: input_number.increment
    metadata: {}
    data:
      amount: 15
    target:
      entity_id: input_number.temperature_reduit_hiver

Oui, c’est ce qu’il me fallait. Il est vraiment difficile de savoir où chercher l’info. LA doc est énorme :slight_smile:

Pour le reste je n’ai pas tout compris mais ce n’est pas grave car je n’en aurai pas besoin.

Pour être plus précis « lifetime » est une information qui remonte directement de mon poele via l’addon Palazatti.
Donc, lorsque le poele consomme, la donnée lifetime sera automatiquement modifiée et par la même la donnée pellet restant.
Ainsi je peux élaborer des automastismes :

  • être informer lorsque le réservoir est vide
  • et surtout ne pas démarrer si le réservoir est vide.

Un grand merci pour ton aide.