Peut on mettre des IF THEN ELSE dans un Blueprint

Bonjour
je voudrais mettre un test IF THEN ELSE dans un blueprint
est ce possible ?
C’est possible dans une automation, mais je n’y arrive pas dans le blueprint.
Il se charge, mais lorsqu’on tente de l’appeler, il sort l’erreur suivante :

Le code du blue print est le suivant :
Merci de votre aide …je bute


action:
- alias: lecture du compteur d'entree
  variables:
    entity_energy: !input 'entity_energy'
    my_energy:  '{{states(entity_energy)}}'
 

- alias: differenciation HP/HC
- if:
  - condition: state
    entity_id: input_select.tarif_elec
    state: HP
  then:
  - variables:
    energy_hc : 0.001  
    energy_hp : '{{((my_energy) | round(3))}}'
  else:
  - variables: 
    energy_hc : '{{((my_energy) | round(3))}}'
    energy_hp : 0.002  
   
 

- alias: écrit valeur HC
  service: input_number.set_value
  target:
    entity_id: !input 'entity_value_hc'
  data:
    value: '{{energy_hc}}'


- alias: écrit valeur HP
  service: input_number.set_value
  target:
    entity_id: !input 'entity_value_hp'
  data:
    value: '{{energy_hp}}'

Bj

oui tu peux , mais la ton souci on dirais plutot une erreur de syntaxe .
je vois pas, choose:
essai cela

action:
  - alias: lecture du compteur d'entree
    variables:
      entity_energy: !input 'entity_energy'
      my_energy:  '{{states(entity_energy)}}'

  - alias: differenciation HP/HC
    choose:
      - conditions:
          - condition: state
            entity_id: input_select.tarif_elec
            state: HP
        sequence:
          - variables:
              energy_hc: 0.001
              energy_hp: '{{ my_energy | round(3) }}'
      - conditions:
          - condition: not
            conditions:
              - condition: state
                entity_id: input_select.tarif_elec
                state: HP
        sequence:
          - variables:
              energy_hc: '{{ my_energy | round(3) }}'
              energy_hp: 0.002

  - alias: écrit valeur HC
    service: input_number.set_value
    target:
      entity_id: !input 'entity_value_hc'
    data:
      value: '{{ energy_hc }}'

  - alias: écrit valeur HP
    service: input_number.set_value
    target:
      entity_id: !input 'entity_value_hp'
    data:
      value: '{{ energy_hp }}'

Bonjour
Merci beaucoup, cette solution fonctionne.
Les IF ne peuvent peut etre pas etre mis dans un BluePrint…!
Ce langage yaml est pour moi, bien opaque !

Il me reste un bug : dans l’exemple ; j’affecte mes variables energy_hc et energy_hp soit avec my_energy soit avec une constante (0.001, ou 0.002).

L’affectation de la constante, n’est pas correcte, elle retourne null au moment du input_number.set_value

J’ai déja essayé de mettre des guillemets, des parenthèses mais en vain.
Une idée ?

tu devrais les stocké a mon avis avec un script.

script:
  set_energy_values:
    sequence:
      - service: script.create_energy_values
        data_template:
          energy_hc: '{{ energy_hc }}'
          energy_hp: '{{ energy_hp }}'

  create_energy_values:
    sequence:
      - service: script.turn_on
        target:
          entity_id: script.energy_values
        data_template:
          energy_hc: '{{ energy_hc }}'
          energy_hp: '{{ energy_hp }}'

eu un inptuy


  set_input_number_value:
    sequence:
      - service: input_number.set_value
        target:
          entity_id: '{{ entity_id }}'
        data_template:
          value: '{{ value }}'

ensuite essai d’aller chercher les valeurs

qui au final devrait de faire un truc machin chose comme cela !

yaml
action:
  - alias: lecture du compteur d'entrée
    variables:
      entity_energy: !input 'entity_energy'
      my_energy: '{{states(entity_energy)}}'

  - alias: différenciation HP/HC
    choose:
      - conditions:
          - condition: state
            entity_id: input_select.tarif_elec
            state: HP
        sequence:
          - service: script.set_energy_values
            data:
              energy_hc: 0.001
              energy_hp: '{{ my_energy | round(3) }}'
      - conditions:
          - condition: not
            conditions:
              - condition: state
                entity_id: input_select.tarif_elec
                state: HP
        sequence:
          - service: script.set_energy_values
            data:
              energy_hc: '{{ my_energy | round(3) }}'
              energy_hp: 0.002

  - alias: écriture valeur HC
    service: script.set_input_number_value
    data:
      entity_id: !input 'entity_value_hc'
      value: '{{ states.script.energy_values.attributes.energy_hc }}'

  - alias: écriture valeur HP
    service: script.set_input_number_value
    data:
      entity_id: !input 'entity_value_hp'
      value: '{{ states.script.energy_values.attributes.energy_hp }}'