Deixo aqui a parte da automação que tenho que se refere ao CoverFlex. Também uso outras notificações para saldos de contas, quando possível, mas deixei de fora. Também costumo enviar os movimentos para uma folha de Google Sheets através do HA, mas também deixei essa parte de fora.
Fica aqui só então a referente ao CoverFlex:
alias: "Movimentos Financeiros"
description: ""
triggers:
- entity_id:
- sensor.telemovel_xxxxx_last_notification
id: last_notification
trigger: state
to: null
conditions:
- condition: template
value_template: |-
{{
'pagamento' in states('sensor.telemovel_xxxxx_last_notification')|lower or
'recebeu' in states('sensor.telemovel_xxxxx_last_notification')|lower or
'compra' in states('sensor.telemovel_xxxxx_last_notification')|lower or
'carregamento' in states('sensor.telemovel_xxxxx_last_notification')|lower
}}
actions:
- variables:
texto: "{{ states('sensor.telemovel_xxxxx_last_notification')|lower }}"
app: "{{ state_attr('sensor.telemovel_xxxxx_last_notification','package')}}"
- choose:
- conditions:
- alias: Notificação CoverFlex
condition: template
value_template: "{{ app in ['com.coverflex']}}"
sequence:
- action: input_number.set_value
metadata: {}
data:
value: |-
{% if 'compra' in texto %}
{{ 0 - (texto |regex_findall_index('€(\d+.\d{2})')|float(default=0)) }}
{% elif 'carregamento' in texto %}
{% if 'alimentação' in texto %}
{{ (texto |regex_findall_index('€(\d+.\d{2})')|float(default=0)) }}
{% elif 'benefícios' in texto %}
{{ (texto |regex_findall_index('€(\d+.\d{2})')|float(default=0)) }}
{% else %}
0
{% endif %}
{% else %}
0
{% endif %}
target:
entity_id: input_number.movimentos_financeiros
- if:
- condition: template
value_template: >-
{{
states('input_number.movimentos_financeiros')|float(default=0)
>
states('input_number.financas_coverflex_beneficios_saldo')|float(default=0)
}}
then:
- action: input_number.set_value
metadata: {}
data:
value: >-
{{
states('input_number.financas_coverflex_alimentacao_saldo')|float(default=0)
+
states('input_number.movimentos_financeiros')|float(default=0)
}}
target:
entity_id: input_number.financas_coverflex_alimentacao_saldo
else:
- if:
- condition: template
value_template: "{{ 'farm' in texto or 'phar' in texto }}"
then:
- action: input_number.set_value
metadata: {}
data:
value: >-
{{
states('input_number.financas_coverflex_beneficios_saldo')|float(default=0)
+
states('input_number.movimentos_financeiros')|float(default=0)
}}
target:
entity_id: input_number.financas_coverflex_alimentacao_saldo
else:
- action: input_number.set_value
metadata: {}
data:
value: >-
{{
states('input_number.financas_coverflex_alimentacao_saldo')|float(default=0)
+
states('input_number.movimentos_financeiros')|float(default=0)
}}
target:
entity_id: input_number.financas_coverflex_alimentacao_saldo
mode: queued
max: 10