Como configurar o Telegram e interagir com as próprias notificações (via Home Assistant)

Agora consegui. Eu reiniciei o HA e mandei uma mensagem pelo web.telegram.org e consegui ver o ID. Mas é o mesmo que eu já estava utilizando. Acredito que o conflito era porque o HA estava em uso e ao mesmo tempo mandei a mensagem direto para o bot (na web) e mostrou aquela mensagem.

Mas ao reiniciar testei a primeira notificação e funcionou. Muito obrigado pelo seu vídeo, sou do Brasil e não tem nenhuma comunidade tão boa como essa aqui sobre HA. Agora vou verificar as possibilidades de notificação.

Olá, agora estou recebendo notificações, mas não funcionou o evento de retornar a resposta pelo bot.

Automação

- alias: luz_rua_acesa
  trigger:
    - platform: state
      entity_id: switch.sonoff_10006198f1
      to: 'on'
  action:
    - service: notify.telegramgrupo
      data:
        message: 'Luz da rua foi ligada'
        data:
          inline_keyboard:
            - "Deseja apagar:/sim_apagar_luz_rua"  

- alias: apagar_luz_rua
  hide_entity: false
  trigger:
    platform: event
    event_type: telegramgrupo_callback
    event_data:
      data: '/sim_apagar_luz_rua'
  action:
    - service: switch.turn_off
      entity_id: switch.sonoff_10006198f1

O que tem de errado?

Coloca por baixo do Alias initital_state: true reinincia o HA e tenta de novo.

Ou seja:

- alias: luz_rua_acesa
  initial_state: true
  trigger:
    - platform: state
      entity_id: switch.sonoff_10006198f1
      to: 'on'
  action:
    - service: notify.telegramgrupo
      data:
        message: 'Luz da rua foi ligada'
        data:
          inline_keyboard:
            - "Deseja apagar:/sim_apagar_luz_rua"  

- alias: apagar_luz_rua
  initial_state: true
  hide_entity: false
  trigger:
    platform: event
    event_type: telegramgrupo_callback
    event_data:
      data: '/sim_apagar_luz_rua'
  action:
    - service: switch.turn_off
      entity_id: switch.sonoff_10006198f1

Apareceu esse erro:

Error sending message: Forbidden: bot can't initiate conversation with a user. Args: (xxxx, 'Luz da rua foi ligada'), kwargs: {'parse_mode': 'Markdown', 'disable_notification': False, 'disable_web_page_preview': None, 'reply_to_message_id': None, 'reply_markup': <telegram.inline.inlinekeyboardmarkup.InlineKeyboardMarkup object at 0x6b14d130>, 'timeout': None}

Penso que tens o event_type mal exprimenta telegram_callback
exprimenta enviar isso individualmente. Mais lá em cima tens ume exemplo, copia por favor.

1 Curtiu

Perfeito. Exatamente isso. Muito obrigado, me ajudou muito, estou começando e ainda preciso aprender muito.

1 Curtiu

Boa noite,

Eu tentei com sucesso obter os códigos para configurar o telegram.

Mas quando adaptei um teste com parte do código do Rodolfo nada acontece

Eu coloquei o código abaixo todo no configuration.yaml

# Example configuration.yaml entry for the Telegram Bot
telegram_bot:
  - platform: polling
    api_key: 823899558:AAxxxxxxxH3Gi2XiLIWYerSEuieMe_Q
    allowed_chat_ids:
      - 54xxxxx17

# Example configuration.yaml entry for the notifier

notify:
  - name: telegram
    platform: telegram
    chat_id: 54xxxxx17
    
    alias: 'automação 1'
    trigger:
          platform: state
          entity_id: light.gateway_light_7811dcf797c8
          to: 'on'
    action:
          - service: notify.telegram
            data:
              title: "Alerta"
              message: "A luz da sala acendeu"

O que estarei a fazer de errado.

Agradeço desde já a vossa ajuda.

Francisco

@faquaresma quando publicares código deves sublinhar o texto que queres transformar em código e clicar no icone </>. Deverá existir um espaço antes e outro depois do bloco de código para que funcione correctamente. O código em Yaml é muito sensível aos espaçamentos e sem o código devidamente formatado não te poderemos ajudar. Além disso, existem regras no fórum que devem ser cumpridas e que podes ler nos nossos Termos do Serviço/Regras e na FAQ .

Vê um exemplo:

1 Curtiu

@j_assuncao , entretanto ao gravar vi que não tinha ficado correcto e já editei

Obrigado

1 Curtiu

Não dá para perceber se tens isso tudo num ficheiro ou em vários. Mas o que te posso dizer é que a automação está mal formatada. O YAML utiliza espaçamentos em múltiplos de 2.

Olá,

Eu tinha o código todo no ficheiro configuration.yaml, mas entretanto vendo a informação do compontente usi a criação do automatismo que temos no configuration do HASSIO e criei a partir de lá uma automação que foi parar ao ficheiro automations.yaml.

Mas mesmo assim continua a não enviar nada.

Para despistar se o serviço está ok usei a ferramenta para testar o serviço no developer tools e executando o serviço com uma mensagem recebo no meu telegram o texto que escrevi.

o código que foi escrito via HASSIO no automations é o abaixo

- id: '1557275814932'
  alias: Teste
  trigger:
  - entity_id: light.yeelight_color1_7c49eb13be61
    from: 'OFF'
    platform: state
    to: 'ON'
  condition: []
  action:
  - data:
      message: A Porta foi Aberta
    service: notify.telegram

O que poderá estar mal nesta automação ?

Obrigado

Assim fica mais compreensível. Mas deixa ver se entendo, se acender uma luz diz que a porta está aberta??? Qe relação tem a luz com a porta?

Tirando isso, verifica o seguinte:

  • Confirma se os estados da lampada são mesmo ON e OFF,
  • Tirar from: 'OFF' pois só te interessa saber que a lampada acende e não qual é o estado anterior,
  • Substitui as '' por "" em to: 'ON'

Olá @j_assuncao,

Obrigado pelo teu feedback.

Eu coloquei uma lâmpada para os testes mas o objectivo é depois ter lá o device dao sensor da porta.

Logo vou tentar as alterações que indicaste.

Obrigado uma vez mais.

Francisco

1 Curtiu

Testa lá…

- alias: Teste
  trigger:
    platform: state
    entity_id: light.yeelight_color1_7c49eb13be61
    from: 'off'
    to: 'on'
  action:
    service: notify.telegram
    data:
      message: A Porta foi Aberta

penso que um dos problemas está em por ON e OFF em letra grande

e desde ja mesmos sabendo que o yaml nao se importa com ordem de entrada, penso que deveria sempre organizar ordem de entrada de código de uma forma que seja mas fácil interpretar…
ex:
plataforma->entidade->estados->acção–>serviço-> etc…

Obrigado @j_assuncao e @Encarnacao as vossas dicas ajudaram a ultrapassar os erros que tinha…

Agora que já consigo fazer o minimo das notificiações vou partir para esta aventura da interacção.

Obrigado uma vez mais !!!

1 Curtiu

E onde estava o erro? Publica por favor o código que funcionou para que outros que tenham o mesmo problema possam também saber a solução.

1 Curtiu

Olá @j_assuncao,

Tens toda a razão.

Coloco abaixo o código que resultou .

Eu utilizei a funcionalida disponível na configuração do Hassio para criar as automações e apaguei tudo o que tinha criado no ficheiro configuration.yaml.

Na criação da automação usei as dicas do @Encarnacao e coloquei os valores do estados em minusculas .

O que eu verifico e não alterei é que a forma como o código gerado pelo automatismo não fica ordenado pelo forma que seria considerado mais lógico.

- id: '1557353869835'
  alias: Automação Luz Gateway
  trigger:
  - entity_id: light.gateway_light_7811dcf797c8
    from: 'off'
    platform: state
    to: 'on'
  action:
  - data:
      message: A luz Gateway está ligada
    service: notify.telegram

Já criei mais automações para notificar via Telegram e a disposição do código é idêntico ao código que coloquei acima.

Obrigado

Francisco Quaresma

1 Curtiu

Olá pessoal. Já há algum tempo que consulto o forum, no entanto só hoje senti necessidade de criar uma conta. Preciso da ajuda da malta mais experiente.
Estou e tentar criar a minha primeira automação com notificação via Telegram;

Com muita pesquisa aqui no forum consegui meter a automação a funcionar, no entanto não estou a conseguir que seja enviada a respectiva notificação via telegram.

Aqui vai o código:

 - alias: liga leds tv
    initial_state: true
    trigger:
      platform: time
      at: '21:02:00'
    action:
      - service: light.turn_on
        data_template:
          entity_id: light.leds_tv
          brightness: 100
          color_name: white
      - service: notify.telegram
        data:
          title: "Mensagem"
          message: 'Os Leds da TV foram ligados'

  - alias: desliga leds tv
    initial_state: true
    trigger:
      platform: time
      at: '00:30:00'
    action:
      - service: light.turn_off
        data_template:
          entity_id: light.leds_tv

No configuration tenho o seguinte:

telegram_bot:
  - platform: polling
    api_key: xxxxxxx
    allowed_chat_ids:
      - yyyyyy

notify:
  - name: notify_telegram
    platform: telegram
    chat_id: yyyyyy

o que estou eu a fazer de errado?

Obrigado desde já

Olhando de forma rápida tu deste o nome ao notify de notify_telegram… e no service estás a chamar notify.telegram em vez de notify.notify_telegram

2 Curtiram

era isso mesmo que estava agora a reparar… my bad…
Já corrigi e testei… e já está a funcionar :laughing:

Muito obrigado pela ajuda :wink:

1 Curtiu

Copyright © 2017-2021. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade