Jippy
Novembre 15, 2023, 6:09
1
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 }}'
Jippy
Novembre 16, 2023, 7:47
3
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 ?
Jippy:
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
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 }}'