Integração com Home Assistant - Alertas de casa inteligente
Conecte o Home Assistant ao Echobell para alertas instantâneos de casa inteligente: segurança, movimento, temperatura e eventos de automação como notificações push ou chamadas telefônicas.
O Home Assistant é uma poderosa plataforma de automação residencial de código aberto que coloca o controle local e a privacidade em primeiro lugar. Ao integrar o Echobell com o Home Assistant, você pode receber notificações instantâneas e até chamadas telefônicas quando eventos importantes acontecem na sua casa inteligente — seja um alerta de segurança, uma temperatura acima do limite ou um gatilho de automação.
Este guia mostra como configurar o Echobell para receber notificações das suas automações do Home Assistant usando webhooks ou o serviço RESTful Notify.
Pré-requisitos
Antes de começar, verifique se você tem:
- O app Echobell / Google Play instalado no seu dispositivo móvel
- Um canal ativo no Echobell (crie um no app, caso ainda não tenha)
- Uma instância do Home Assistant em execução (versão 2023.1 ou mais recente é recomendada)
- Acesso à configuração do seu Home Assistant
Método 1: usando gatilhos de webhook (recomendado)
O método por webhook é a abordagem mais flexível, permitindo enviar dados personalizados e usar variáveis de modelo nas suas notificações.
Obtenha a URL do webhook do Echobell
- Abra o app Echobell e vá até o seu canal
- Toque no canal para ver os detalhes
- Encontre a URL do Webhook na seção "Triggers"
- Copie a URL — ela terá este formato:
https://hook.echobell.one/t/<channel-token>
Crie uma automação no Home Assistant
No Home Assistant, você pode acionar notificações do Echobell usando o serviço rest_command. Primeiro, adicione o comando REST ao seu configuration.yaml:
rest_command:
echobell_notify:
url: "https://hook.echobell.one/t/<channel-token>"
method: POST
content_type: "application/json"
payload: '{"title": "{{ title }}", "message": "{{ message }}"}'Substitua YOUR_TOKEN pelo token real do seu webhook do Echobell.
Depois de adicionar isso, reinicie o Home Assistant para carregar a nova configuração.
Use em automações
Agora você pode chamar esse serviço a partir de qualquer automação. Veja um exemplo que notifica você quando uma porta é aberta:
automation:
- alias: "Door Open Alert"
trigger:
- platform: state
entity_id: binary_sensor.front_door
to: "on"
action:
- service: rest_command.echobell_notify
data:
title: "Security Alert"
message: "Front door opened at {{ now().strftime('%H:%M') }}"Configure os modelos de notificação
Nas configurações do seu canal do Echobell, configure os modelos de notificação para exibir os dados do webhook:
- Modelo de título:
{{title}} - Modelo de corpo:
{{message}}
Agora, quando a automação for acionada, você receberá uma notificação com o título e a mensagem personalizados.
Método 2: usando a plataforma RESTful Notify
Para uma abordagem mais integrada, você pode configurar o Echobell como um serviço de notificação no Home Assistant.
Configuração
Adicione o seguinte ao seu configuration.yaml:
notify:
- name: echobell
platform: rest
resource: https://hook.echobell.one/t/<channel-token>
method: POST_JSON
data:
title: "{{ title }}"
message: "{{ message }}"
Substitua YOUR_TOKEN pelo token do seu webhook do Echobell e reinicie o Home Assistant.
Usando o serviço de notificação
Agora você pode usar o Echobell como qualquer outro serviço de notificação:
automation:
- alias: "Low Battery Alert"
trigger:
- platform: numeric_state
entity_id: sensor.phone_battery
below: 20
action:
- service: notify.echobell
data:
title: "Low Battery Warning"
message: "Phone battery is at {{ states('sensor.phone_battery') }}%"
Casos de uso avançados
Monitoramento de temperatura com alertas críticos
Use os tipos de notificação para enviar alertas críticos de temperatura como chamadas:
rest_command:
echobell_critical:
url: "https://hook.echobell.one/t/<channel-token>"
method: POST
content_type: "application/json"
payload: '{"temperature": "{{ temperature }}", "location": "{{ location }}", "severity": "critical"}'
No seu canal do Echobell, defina o tipo de notificação como "Chamada" e use este modelo:
- Título:
Critical Temperature Alert - Corpo:
{{location}} temperature is {{temperature}}°C - Immediate attention required!
Integração com sistema de segurança
Configure um monitoramento de segurança completo:
automation:
- alias: "Security Breach Detection"
trigger:
- platform: state
entity_id:
- binary_sensor.motion_detector_1
- binary_sensor.motion_detector_2
- binary_sensor.window_sensor
to: "on"
condition:
- condition: state
entity_id: alarm_control_panel.home_alarm
state: "armed_away"
action:
- service: rest_command.echobell_notify
data:
title: "🚨 Security Alert"
message: "{{ trigger.to_state.attributes.friendly_name }} detected activity while system armed"
sensor: "{{ trigger.entity_id }}"
timestamp: "{{ now().isoformat() }}"
Notificações de eletrodomésticos inteligentes
Monitore os ciclos dos eletrodomésticos e seja avisado quando eles terminarem:
automation:
- alias: "Washing Machine Complete"
trigger:
- platform: state
entity_id: sensor.washing_machine_power
to: "0"
for:
minutes: 3
action:
- service: notify.echobell
data:
title: "Washing Machine Done"
message: "Your laundry is ready to be moved to the dryer"
Monitoramento ambiental
Acompanhe a qualidade do ar, a umidade ou outros fatores ambientais:
automation:
- alias: "High CO2 Alert"
trigger:
- platform: numeric_state
entity_id: sensor.living_room_co2
above: 1000
action:
- service: rest_command.echobell_notify
data:
title: "Air Quality Warning"
message: "CO2 level in living room is {{ states('sensor.living_room_co2') }} ppm. Consider ventilating."
Usando condições para filtragem inteligente
Você pode usar as condições do Echobell para filtrar notificações com base em critérios específicos. Por exemplo, notificar apenas em determinados horários ou quando os valores ultrapassarem um limite:
Defina uma condição no seu canal do Echobell:
severity == "critical" || (hour >= 22 || hour <= 7)
Isso só envia notificações se a severidade for crítica OU se for de madrugada (das 22h às 7h).
Na sua automação do Home Assistant, inclua os dados relevantes:
action:
- service: rest_command.echobell_notify
data:
title: "Temperature Alert"
message: "Freezer temperature: {{ states('sensor.freezer_temp') }}°C"
severity: "{% if states('sensor.freezer_temp') | float > -10 %}critical{% else %}normal{% endif %}"
hour: "{{ now().hour }}"
Enviando dados de sensores
Você pode enviar quaisquer dados de sensores do Home Assistant para as suas notificações do Echobell:
rest_command:
echobell_sensor_update:
url: "https://hook.echobell.one/t/<channel-token>"
method: POST
content_type: "application/json"
payload: >
{
"sensor_name": "{{ sensor_name }}",
"current_value": "{{ current_value }}",
"unit": "{{ unit }}",
"state": "{{ state }}",
"timestamp": "{{ timestamp }}"
}
Trabalhando com cabeçalhos HTTP
O Echobell consegue acessar os cabeçalhos HTTP das requisições de webhook. Isso é útil para autenticação ou rastreamento:
rest_command:
echobell_with_headers:
url: "https://hook.echobell.one/t/<channel-token>"
method: POST
headers:
X-Home-Assistant-Instance: "{{ instance_name }}"
X-Automation-ID: "{{ automation_id }}"
content_type: "application/json"
payload: '{"message": "{{ message }}"}'
No seu modelo do Echobell, acesse os cabeçalhos com:
{{header["x-home-assistant-instance"]}}
Depuração e testes
Teste o seu webhook
Use as Ferramentas do Desenvolvedor → Serviços do Home Assistant para testar a sua configuração:
- Selecione
rest_command.echobell_notify - Informe os dados de teste:
title: "Test Notification"
message: "This is a test from Home Assistant"
- Clique em "Chamar serviço"
- Verifique a notificação no seu app Echobell
Verifique os logs do Home Assistant
Se as notificações não estiverem chegando, verifique os logs do Home Assistant:
# In Home Assistant, go to:
Settings → System → Logs
# Or check the log file:
config/home-assistant.log
Procure erros relacionados a rest_command ou a requisições HTTP para hook.echobell.one.
Verifique a URL do webhook
Confirme se a URL do seu webhook está correta:
- Ela deve começar com
https://hook.echobell.one/t/ - O token deve estar incluído
- Sem espaços ou caracteres extras
Considerações de desempenho
Limitação de taxa
Os webhooks do Echobell estão sujeitos a limitação de taxa para evitar abusos. Para sensores de alta frequência:
- Evite acionar a cada atualização do sensor
- Use
fornos gatilhos para aplicar um debounce:
trigger:
- platform: numeric_state
entity_id: sensor.temperature
above: 30
for:
minutes: 5 # Only trigger after 5 minutes above threshold
Agrupamento de atualizações
Para vários eventos relacionados, considere agrupá-los em uma única notificação:
automation:
- alias: "Daily Home Summary"
trigger:
- platform: time
at: "09:00:00"
action:
- service: rest_command.echobell_notify
data:
title: "Morning Home Summary"
message: >
Temperature: {{ states('sensor.temperature') }}°C
Humidity: {{ states('sensor.humidity') }}%
Energy today: {{ states('sensor.daily_energy') }} kWh
Windows open: {{ expand(states.binary_sensor) | selectattr('state', 'eq', 'on') | selectattr('attributes.device_class', 'eq', 'window') | list | count }}
Boas práticas de segurança
Proteja a URL do seu webhook
- Nunca envie URLs de webhook para repositórios públicos
- Use os secrets do Home Assistant para dados sensíveis
- Troque os tokens dos webhooks periodicamente
Usando secrets no configuration.yaml:
# secrets.yaml
echobell_webhook: "https://hook.echobell.one/t/<channel-token>"
# configuration.yaml
rest_command:
echobell_notify:
url: !secret echobell_webhook
method: POST
content_type: "application/json"
payload: '{"title": "{{ title }}", "message": "{{ message }}"}'
Limite as informações sensíveis
Tenha cuidado com os dados que você inclui nas notificações:
# Good - General information
message: "Motion detected in living room"
# Avoid - Sensitive details
message: "Security code: 1234, camera feed: http://..."
Solução de problemas comuns
As notificações não chegam
- Verifique a conectividade de rede: confirme que a sua instância do Home Assistant consegue acessar a internet
- Confira a URL do webhook: copie e cole com atenção, incluindo o token
- Verifique o app Echobell: confirme que você está inscrito no canal
- Revise os logs do Home Assistant: procure erros HTTP ou tempos limite esgotados
Erros de modelo
Se os modelos não estiverem sendo renderizados corretamente:
- Teste os modelos em Ferramentas do Desenvolvedor → Modelo
- Confirme que os nomes das variáveis são iguais no Home Assistant e no Echobell
- Procure erros de digitação na sintaxe do modelo:
{{variable}}e não{{ variable}}
A automação não é acionada
- Confira as condições do gatilho no Home Assistant
- Teste a automação manualmente pelas Ferramentas do Desenvolvedor
- Verifique se os estados das entidades correspondem à configuração do seu gatilho
- Revise os traces da automação para depurar
Exemplo: configuração completa de um sistema de segurança
Veja um exemplo completo integrando vários sensores de segurança:
# configuration.yaml
rest_command:
echobell_security:
url: !secret echobell_security_webhook
method: POST
content_type: "application/json"
payload: >
{
"event_type": "{{ event_type }}",
"location": "{{ location }}",
"sensor": "{{ sensor }}",
"timestamp": "{{ timestamp }}",
"alarm_state": "{{ alarm_state }}"
}
# automations.yaml
- alias: "Security Event Handler"
trigger:
- platform: state
entity_id:
- binary_sensor.front_door
- binary_sensor.back_door
- binary_sensor.garage_door
- binary_sensor.motion_hallway
- binary_sensor.motion_living_room
to: "on"
action:
- service: rest_command.echobell_security
data:
event_type: "{{ 'door' if 'door' in trigger.entity_id else 'motion' }}"
location: "{{ trigger.to_state.attributes.friendly_name }}"
sensor: "{{ trigger.entity_id }}"
timestamp: "{{ now().strftime('%Y-%m-%d %H:%M:%S') }}"
alarm_state: "{{ states('alarm_control_panel.home_alarm') }}"
No Echobell, defina os seus modelos:
- Título:
Security Alert: {{event_type | upper}} - Corpo:
{{location}} activated at {{timestamp}} (Alarm: {{alarm_state}})
Próximos passos
Agora que você integrou o Echobell com o Home Assistant:
- Explore os tipos de notificação para diferentes prioridades de alerta
- Aprenda sobre condições para filtrar notificações de forma inteligente
- Conheça as variáveis de modelo para formatar mensagens de forma avançada
- Leia sobre as boas práticas de webhook para uma integração ideal