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.