Alertas de Home Assistant en tu iPhone
Home Assistant ya puede enviar notificaciones a tu teléfono: la app Companion instala un servicio notify.mobile_app_…, y en muchas casas no hace falta más.
Honk tiene sentido cuando tu casa no es lo único que te avisa. Las alertas de casa llegan a la misma bandeja de entrada que tus servidores y tus scripts, un sensor que no para de cambiar de estado te avisa una vez, no cuarenta, las horas de silencio se aplican por proyecto y, aun así, una fuga de agua puede despertarte por la noche. Todo lo que sigue usa la integración RESTful Command que ya incluye Home Assistant, así que no hay que instalar nada.
Antes de empezar
- Una cuenta de Honk (por ahora solo con invitación: solicita acceso) y un proyecto para tu casa, por ejemplo «Casa», con una clave de ingesta: en la app web, abre el proyecto y entra en Claves.
- Acceso a los archivos de configuración de Home Assistant.
1. Guarda la clave en secrets.yaml
La clave va en secrets.yaml, precedida de la palabra Bearer. Así nunca aparece en la configuración que compartes ni en las copias que guardas en otro sitio:
# secrets.yaml
honk_bearer: "Bearer honk_…"2. Añade los comandos RESTful
Añade dos comandos a configuration.yaml: honk para texto y honk_image para eventos con imagen. El contenido se construye con to_json, así que las comillas de un mensaje no pueden romper la solicitud:
# configuration.yaml
rest_command:
honk:
url: "https://honk-me.app/v1/messages"
method: POST
content_type: "application/json"
headers:
Authorization: !secret honk_bearer
payload: >-
{{ dict(title=title, message=message, severity=severity | default('light'),
priority=priority | default('normal'), group_key=group_key,
event_type=event_type | default('event'),
source='home-assistant', category='personal') | to_json }}
honk_image:
url: "https://honk-me.app/v1/messages"
method: POST
content_type: "application/json"
headers:
Authorization: !secret honk_bearer
payload: >-
{{ dict(title=title, message=message, severity=severity | default('light'),
group_key=group_key, image_url=image_url,
source='home-assistant', category='personal') | to_json }}Reinicia Home Assistant y pruébalo desde Herramientas para desarrolladores ▸ Acciones:
# Developer tools ▸ Actions, in YAML mode
action: rest_command.honk
data:
title: "Hello from Home Assistant"
message: "If you can read this on your phone, it works."
group_key: home/test3. Una alerta de fuga que agrupa sus repeticiones
Los sensores son inquietos. Si un sensor de fugas pasa de mojado a seco y otra vez a mojado en un minuto, debería ser una alerta, no tres. Da el mismo group_key a todas las alertas sobre lo mismo y envíalas como problem: el primer evento te avisa y las repeticiones llegan como actualizaciones discretas. La segunda automatización envía la recovery cuando la cocina lleva diez minutos seca, y eso cierra el incidente.
# automations.yaml
- alias: "Honk: water leak in the kitchen"
triggers:
- trigger: state
entity_id: binary_sensor.kitchen_leak
to: "on"
actions:
- action: rest_command.honk
data:
title: "Water leak in the kitchen"
message: "The sensor under the sink is wet."
severity: blast
event_type: problem
group_key: home/leak/kitchen
- alias: "Honk: kitchen is dry again"
triggers:
- trigger: state
entity_id: binary_sensor.kitchen_leak
from: "on"
to: "off"
for: "00:10:00"
actions:
- action: rest_command.honk
data:
title: "Kitchen is dry again"
message: "No water for 10 minutes."
severity: beep
event_type: recovery
group_key: home/leak/kitchenUna Bocina sin parar se envía con prioridad Alta y puede abrir una Actividad en directo en la pantalla bloqueada, que sigue ahí hasta mostrar «Recuperado». Para que se salte tus horas de silencio, envíala con priority: urgent y permite los eventos urgentes tanto en la clave de ingesta del proyecto como en tus horas de silencio.
4. Un timbre con foto
El timbre es justo lo contrario: quieres enterarte de cada llamada. Da a cada llamada su propia clave de grupo y adjunta una captura con image_url:
- alias: "Honk: doorbell"
triggers:
- trigger: state
entity_id: binary_sensor.doorbell
to: "on"
actions:
- action: rest_command.honk_image
data:
title: "Someone is at the door"
message: "Front door, {{ now().strftime('%H:%M') }}"
# one group per ring, so every ring pushes
group_key: "home/doorbell/{{ now().timestamp() | int }}"
image_url: "https://example.ui.nabu.casa/api/camera_proxy/camera.front_door?token={{ state_attr('camera.front_door', 'access_token') }}"Es el servidor de Honk quien descarga la imagen, después de recibir el evento, así que la dirección tiene que ser accesible desde internet por HTTPS en el puerto 443. Sirve una dirección de Home Assistant Cloud o tu propio proxy inverso con HTTPS; una dirección homeassistant.local, no. El token del proxy de la cámara cambia cada pocos minutos, pero no importa, porque Honk descarga la imagen en cuestión de segundos. Las imágenes pueden ocupar hasta 1 MB en Free y 5 MB en Pro y Team.
Horas de silencio para la casa
En la app web de Honk, abre el proyecto Casa ▸ Mis notificaciones y configura las horas de silencio, por ejemplo de 22:00 a 07:00. Un Bocinazo suave del lavavajillas espera a la mañana, y al terminar las horas de silencio recibes un solo resumen. Cada persona tiene sus propias horas de silencio, así que los demás en casa pueden elegir las suyas.
Qué añade Honk
La app Companion envía cada notificación por separado. Honk agrupa los avisos de los sensores ruidosos, cierra cada alerta con su recuperación y respeta tus horas de silencio con un resumen por la mañana. Además, tienes acciones en el Apple Watch y una sola bandeja de entrada donde tu casa convive con todo lo demás que gestionas.
Por ahora, Honk funciona solo con invitación: solicita acceso. Todo lo que explica esta guía funciona con el plan Free.