Intégrer une formule mathématique dans une automatisation pour filtration piscine

Bonjour,

Mon problème

Afin d’automatiser la filtration de la piscine, je cherche comment intégrer une formule de calcul simple ou plus complexe dans une automatisation fichier yaml
Pour exemple la théorie dit le temps de filtration est égal à la moitié de la température de l’eau
Je voudrais également que la période de filtration soit dans la plage horaire bas tarif et jamais au delà d’un certain temps.
Je sais cela fait beaucoup dans une seule demande
D’avance merci de votre retour

Salut,

il existe plusieurs blueprint github qui le font très bien,

@+

Il est bien sûr possible de mettre des formules dans les automatisations.
Ci-dessous un exemple d’une automatisation que j’ai chez moi. La durée d’arrosage est calculée en fonction d’une variable qui provient d’une intégration. Ca me permet de n’arroser que la bonne quantité en fonction de la pluie.

alias: Arrosage plantes entrée variable
description: Arrosage plantes entrée variable
triggers:
  - at: "2:00:00"
    trigger: time
conditions:
  - condition: numeric_state
    entity_id: sensor.opensprinkler_water_level
    above: 0
  - condition: state
    entity_id: input_boolean.arrosage_jardinieres
    state:
      - "on"
actions:
  - type: turn_on
    device_id: af73ed5391d5867ca358ed9349dead1d
    entity_id: aae2e2fce7af7ae76b26b6fe14a256b7
    domain: switch
  - delay:
      hours: 0
      minutes: >-
        {{
        float((states("sensor.opensprinkler_water_level")))*float((states("input_number.duree_d_arrosage_plantes_entree")))/100
        }}
      seconds: 0
      milliseconds: 0
  - type: turn_off
    device_id: af73ed5391d5867ca358ed9349dead1d
    entity_id: aae2e2fce7af7ae76b26b6fe14a256b7
    domain: switch
mode: single

@helip ,

Et si tu veut faire des choses compliqué et plus évolutif, tu peut crée des variables dans la/les automatisation que tu peut réutiliser par la suite :

  actions:
  - variables:
      production: >
        {{ ( min ( states('sensor.xxx_today')
          | float(default=0) , states('sensor.xxx_energie_estimee_aujourd_hui')
          | float(default=0) , states('sensor.xxx__energie_estimee_aujourd_hui')
          | float(default=0) ) + min ( states('sensor.xxx__forecast_tomorrow')
          | float(default=30) , states('sensor.xxx__forecast_estimation_de_la_production_d_energie_demain')
          | float(default=30) , states('sensor.xxx__production_d_energie_estimee_demain')
          | float(default=30) ) + states('sensor.xxx__battery_soc') | float(default=0)
        * 0.15 ) }}
 
  - alias: Suivant les 3 prévision d'aujourd'huit & demain 
      recharge de la batterie de X% ou sur enedis 8h ou rien
    choose:
    - conditions:
      - condition: template
        value_template: '{% if production > 30 %}true{% else %}false{% endif %}'
        alias: si prod > 28 , on fait rien
...
...

cf l’article très bien fait : Automatisation #2 : libérer le plein potentiel !

Merci à vous,
Si vous aviez un exemple d’une valeur d’entité diviser par 2 dans un fichier yaml que je me rende compte de la bonne syntaxe
Cdlt

Le plus simple est de tester ta formule dans les outils de développement --> Modèle. Ca te permettra d'être sûr de la syntaxe de ta formule avant de la basculer dans to yaml.
Si je reprends l'exemple du yaml de mon automatisation partagée plus haut, avec la formule dans les outils de développement:


J'ai bien un résultat valide et pas d'erreur, dons ma formule prête à être utilisée.

Merci
Si je comprends bien
Tu multiplies la valeur d’une entité à virgule flottante donc non entier par une autre valeur d’entité
Par contre que signifie state , c’est l’état de la valeur concernée ?

Salut
Jette un coup d’oeil par là : Working with states - Home Assistant pour la partie state et plus généralement par là pour les modèles Templating - Home Assistant