Mon problème
J’essaie de faire affiche le résultat d’un calcul effectué dans un message de notification avec cette automatisation. Les éléments calculé sont fournis par le déclencheur.
J’ai testé différentes syntaxe et après autant d’échecs je me demande si c’est possible. Est-ce que je devrait pas calculer ma valeur à part, la stocker dans une variable et afficher la variable dans la notification ? Si oui je ne sais pas comment m’y prendre
alias: Flipr, test calcul
description: ""
trigger:
- platform: state
entity_id:
- sensor.spa_flipr_red_ox
to: null
condition:
- condition: template
value_template: |
{{ trigger.from_state.state < trigger.to_state.state }}
action:
- service: notify.mobile_app_huawei
data:
message: >-
Désinfection en cours. Calcul simple, {{ (trigger.to_state.state) -
(trigger.from_state.state) }}
mode: single
Salut,
faudrait déjà voir quelles sont les valeurs des états fournis par cette intégration.
C’est peut-être une histoire de type de données.
Très bonne remarque. Ce sont bien des données numérique. Elles sont bien prise en compte par la condition qui me sert de filtre
Je me rend compte que j’ai oublié de partager le msg d’erreur et le log
L’erreur :
Error rendering data template: TypeError: unsupported operand type(s) for -: ‹ str › and ‹ str ›
Et le log
this:
entity_id: automation.flipr_test_calcul
state: 'on'
attributes:
id: '1693663585346'
last_triggered: '2023-09-02T14:28:49.750510+00:00'
mode: single
current: 0
friendly_name: Flipr, test calcul
last_changed: '2023-09-02T14:07:48.398676+00:00'
last_updated: '2023-09-02T14:28:49.759443+00:00'
context:
id: 01H9B4QSYPVVJEAN6MR29TV303
parent_id: 01H9B4QSYMDCZH6C5QEXEP16W7
user_id: null
trigger:
id: '0'
idx: '0'
alias: null
platform: state
entity_id: sensor.spa_flipr_red_ox
from_state:
entity_id: sensor.spa_flipr_red_ox
state: '714.0'
attributes:
state_class: measurement
unit_of_measurement: mV
attribution: Flipr Data
icon: mdi:water-opacity
friendly_name: Désinfection Red OX
last_changed: '2023-09-02T14:28:49.748684+00:00'
last_updated: '2023-09-02T14:28:49.748684+00:00'
context:
id: 01H9B4QSYMDCZH6C5QEXEP16W7
parent_id: null
user_id: null
to_state:
entity_id: sensor.spa_flipr_red_ox
state: '718.0'
attributes:
state_class: measurement
unit_of_measurement: mV
attribution: Flipr Data
icon: mdi:water-opacity
friendly_name: Désinfection Red OX
last_changed: '2023-09-02T15:28:52.738121+00:00'
last_updated: '2023-09-02T15:28:52.738121+00:00'
context:
id: 01H9B85RG2PBG9DT5QKPJJ77YT
parent_id: null
user_id: null
for: null
attribute: null
description: state of sensor.spa_flipr_red_ox
AH ben c’est tout de même un souci de type de données, « str » ça veut dire « string », donc chaine de caractères. Tu ne peux pas soustraire 2 chaines de caractères entre elles.
Comme ce sont des nombres à virgule on dirait tu peux essayer quelque chose comme ça:
{{ (trigger.to_state.state) | float - (trigger.from_state.state) | float }}
Le | float
tente de convertir la valeur en nombre à virgule.
2 « J'aime »
Argh j’avais interprété str par store (enregistrement)… en effet ça ne pouvais pas fonctionner
Je modifie mon test et il n’y a plus qu’a attendre quelques heures que l’appareil renvoi une nouvelle valeur.
Je suis confiant… et impatient de voir le résultat
Je valide, au réveil j’ai constaté que j’ai été spamé toute la nuit par des notifications avec des calculs réussi
Merci je continue à avancer, le reste c’est de l’algèbre
1 « J'aime »