Pessoal, peguei a primeira parte do tutorial do nossa grande amigo Douglas
Montei a primeira parte em cima do dele.
Para utilizar o telegram no Home Assistant você não precisa instalar nenhum componente ou add-on.
Você pode ver mais detalhes na página oficial do home assistant
Telegram
Instructions on how to add Telegram notifications to Home Assistant.
Porém você precisará seguir os passos abaixo.
Primeiro você precisa abrir o seu telegram na plataforma que achar melhor (android, web, iphone…)
Com o telegram aberto, procurem o bot chamado BotFather como na imagem abaixo:
Criando um bot
Feito isso, será necessário criar um novo bot para você. Então clique na opção /newbot .
1) Irá vir uma pergunta questionando qual o nome do seu bot. Você digita um nome apropriado para você.
Exemplos: Watson, Home Assistant, Morpheus, MyBot, etc…
2) A segunda pergunta é o nome de usuário. Perceba que deverá acompanhar a palavra “ bot ” no final do username.
Exemplos: watsom_bot, homeassistant_bot, morpheus_bot, mybot, etc…
Logo em seguida você receberá as informações de finalizado junto com o token para acesso via API.
Copie esse código e salve em um documento, bloco de notas para ser utilizado mais para frente.
Após criar seu bot, você precisará procurar seu bot nos seus contatos do Telegram. Você irá procurar pelo mesmo nome que você deu no “username”. E clicar para falar com ele. Irá abrir a tela de conversa com um botão START, clique nesse botão.
3) Será necessário resgastar o “chat_id”. Para você obter essa informação você precisará copíar o token gerado anterior, copiar a url a seguinte URL https://api.telegram.org/bot YOUR_API_TOKEN /getUpdates e trocar a parte “YOUR_API_TOKEN” pelo token que você gerou do seu bot criado.
Exemplo: http://api.telegram.org/bot578745016:AAFvUqqEPEjeBgW40IhwO_TZgGJS3QitdXQ/getUpdates
E colocar no seu navegador (chrome, firefox, ie, safari…). O resultado se tudo ocorrer bem deve ser esse:
4) Agora volte ao telegram, e no seu bot digite qualquer coisa para ele. Exemplo: Olá meu bot.
Volte para a url da api com seu token e atualize a página. Irá mostrar o valor do chat_id. Copie conforme a imagem abaixo e guarde num documento ou bloco de notas.
esse é o chat_id
O Chat ID e o ID do seu Bot, guarde-o
Pessoal, essa parte é importante, se você quer ter somente o telegram enviando mensagem, deixar polling, se você quer que envie e receba, precisa deixar webhooks.
Criar um grupo por exemplo chamado CASA, colocar seu homeassistant_bot nele (ficando você é o seu bot no grupo)
Procurar o BOT “Group ID”, dar um /start, adicione ele no grupo criado e pegue o ID do Grupo.
Tendo seu user ID (Bot: GetIds Bot) e seu Group Id (Bot: Group ID), e so seguir os passos:
Outro ponto importante, a API do telegram aceita porta 80, 88, 443 e 8443.
Se você tem essas portas mapeadas , maravilha, se não precisa criar o mapeamento, ai sugiro 8443.
No meu caso eu tenho externo 8123 e interno 443 (NGIX), então criei mais um mapeamento 8443 para 443.
Além disso, você precisa “SETAR” seu webhook, no endereço abaixo
https://api.telegram.org/botSUAAPEIKEY/setWebhook?url=https://suaurl.duckdns.org:8443/api/telegram_webhooks
Configurando o arquivo configuration.yaml
# Example configuration.yaml entry for the Telegram Bot
telegram_bot:
# TELEGRAM - NOT EXPOSED
# - platform: polling
# api_key: APIKEY
# allowed_chat_ids:
# - USERID
# - -GROUPID
# TELEGRAM - EXPOSED
- platform: webhooks
api_key: APIKEY
url: https://suaurl.duckdns.org:8443
allowed_chat_ids:
- USERID
- -GROUPID
trusted_networks:
- 127.0.0.1/32 # LOCALHOST NGIX
- 172.30.33.4 # TELEGRAM API
# Example configuration.yaml entry for the notifier
notify:
- name: NOTIFIER_NAME #nome que achar melhor
platform: telegram
chat_id: CHAT_ID_2 #aqui você coloca o chat_id que você pegou após conversar com o bot.
OBS.
O PYTHON tem um bug, você precisa deixar no webhooks tanto seu USERID e seu GROUPID, pois está na programação AND e não OR, assim que resolver podem deixar 1 somente.
Exemplo de automação para notificar quando o seu HA é iniciado
Vale lembrar o seguinte:
automation:
# alias = Nome da sua automação "LAMPADA LIGADA"
- alias: 'Teste de telegram'
# trigger = São os gatilhos que definem quando sua automação irá ser executada
trigger:
platform: homeassistant
event: start
# action = São as ações que sua automação irá executar ao iniciar
action:
service: notify.NOTIFIER_NAME # aqui você coloca o nome que você definiu no notify no campo "name" na configuração anterior.
data_template:
message: "Você quer desligar a lampada?"
data:
inline_keyboard:
- 'Desligar:/lightOff'
- alias: 'LAMPADA - DESLIGAR - TELEGRAM' #NOME QUE DESEJAR
initial_state: true
trigger:
platform: event
event_type: telegram_callback
event_data:
data: '/lightOff'
action:
- service: notify.telegram
data:
message: 'Ok, lampada desligada.'
- service: light.turn_off
entity_id: light.entidade
- service: light.turn_off
entity_id: light.entidade2
Com isso configurado você poderá agora usar o serviço do Telegram CALLBACK em suas automações, testes, scripts, etc.
Para identificar problemas:
-Olhar o homeassistant.log
-Ferramentas desenvolvedor, eventos, escutar o telegram_callback
Dessa forma você vai conseguir ver se está chegando ai a chamada do webhook, se não tem erro na config ou se algum ip está sendo barrado.
Abraços
Tadeu