Eu estava procurando uma forma de enviar minha lista de compras do HA para o chat do telegram de uma forma bem formatada e bonitinha kkk, e depois de muito apanhar e sofrer resolvi esta questão e hoje estou compartilhando com voces o código da solução que eu usei aqui e me atende super bem!
1 - O que foi feito?
Criei uma lista de tarefas com o nome de “Lista de compras”:
2 - Criei um script que busca os itens da lista de compras (entidade “todo.lista_de_compras” ) e envia uma mensagem formatada com html.
Resultado final de como é enviado no telegram:
3 - Segue o código que eu utilizei neste script:
alias: Enviar Lista de Compras no Telegram
sequence:
- data:
entity_id: todo.lista_de_compras
response_variable: resposta
action: todo.get_items
- variables:
itens: "{{ resposta['todo.lista_de_compras']['items'] }}"
data_hora: "{{ now().strftime('%d/%m/%Y às %H:%M') }}"
itens_ativos: >-
{% for item in itens if item.status == 'needs_action' %}{{ '\n' }} • {{
item.summary }} {% else %} • Nenhum item pendente. {% endfor %}
itens_concluidos: >-
{% for item in itens if item.status == 'completed' %}{{ '\n' }}
{{item.summary}} {% else %} • Lista Vazia. {% endfor %}
- data:
message: >-
🛒 <b>Lista de Compras</b>
⏱️ <b>{{ data_hora }}</b> {{ '\n\n' }} <b>📌 Itens a comprar:</b> {{
'\n' }} {{ itens_ativos }} {{ '\n\n' }} <b>✅ Itens já Comprados:</b> {{
'\n' }} <s>{{ itens_concluidos }}</s>
parse_mode: html
action: telegram_bot.send_message
mode: single
Onde:
- Ação
todo.get_items
: obtém todos os itens da lista “lista_de_compras”. - O resultado é salvo na variável
resposta
. itens
: extrai os itens da lista da variávelresposta
.data_hora
: pega a data e hora atual formatada.itens_ativos
: lista os itens com status'needs_action'
(ainda não comprados).itens_concluidos
: lista os itens com status'completed'
(já comprados).- Envia uma mensagem formatada para o Telegram.
- Usa HTML para deixar o texto com negrito e tachado (
<b>
,<s>
).
Agora é só chamar este script em alguma automação/cena/comando que irá enviar ao telegram a lista de compras.
Ex: Aqui eu criei zonas no mapa da minha cidade, onde tem os supermercados que costumamos ir, e quando adentramos essas zonas por GPS (app HA do celular) ele dispara a execução deste script e já envia automaticamente a lista de compras no grupo do telegram.
É bem simples, mas espero que ajude alguem de alguma forma ou em algum outro projeto!