Automatización: alarma sonora al superar 20 W
En nuestro caso el objetivo final es utilizar la pantalla como avisador acústico del cargador UGREEN Nexode Pro X783.
La entidad de Home Assistant que monitorizamos es:
1 | sensor.ugreen_nexode_pro_x783_total_power |
Queremos que se reproduzca alarma.wav cuando la potencia consumida en la carga de nuestro iPhone supere los 20 W.
La condición de funcionamiento es:
- Al sobrepasar los 20 W, se reproduce la alarma.
- Mientras la potencia permanezca por encima de 20 W, no se repite.
- Cuando la potencia baja de 20 W, el disparador queda preparado de nuevo.
- Si vuelve a superar los 20 W, se reproduce otra vez.
La automatización que finalmente tenemos en funcionamiento es:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | alias: Alarma potencia UGREEN X783 description: Aviso sonoro cuando el cargador supera los 20 W. triggers: - trigger: numeric_state entity_id: sensor.ugreen_nexode_pro_x783_total_power above: 20 conditions: [] actions: - action: rest_command.play_elecrow_alarm mode: single |
El disparador numeric_state se ejecuta cuando el valor cruza el umbral establecido. No se ejecuta continuamente mientras la potencia permanece por encima de 20 W.
Resultado y conclusiones
Hemos conseguido integrar la pantalla Elecrow ESP32-P4 Advance Panel de 10,1 pulgadas con una instalación convencional de Home Assistant Container en Raspberry Pi 4, sin necesidad de utilizar Home Assistant OS ni Supervisor.
La solución mantiene el servidor de pantalla en un contenedor Docker independiente y no requiere modificar los contenedores existentes de Home Assistant, ESPHome o MQTT.
Además de mostrar la interfaz de Home Assistant y permitir su manejo táctil, hemos conseguido utilizar los altavoces integrados de la pantalla para reproducir archivos WAV en los minialtavoces de la misma.
La incorporación de un pequeño servicio HTTP en Python permite que cualquier automatización de Home Assistant pueda solicitar la reproducción de sonidos sin tener que acceder directamente al contenedor de Elecrow.
La arquitectura queda preparada para utilizar la pantalla no solamente como panel de control, sino también como dispositivo de avisos acústicos del sistema domótico.
Resumen de los componentes instalados
| Componente | Función |
|---|---|
crow-ha | Servidor de pantalla Elecrow |
| Chromium + Xvfb | Navegador virtual con Home Assistant |
| Bridge | Comunicación con el panel ESP32-P4 |
| PulseAudio | Gestión del audio dentro del contenedor |
paplay | Reproducción de archivos WAV |
crow-audio.service | Servicio HTTP local de reproducción |
rest_command | Comunicación desde Home Assistant |
| Automatizaciones HA | Disparo de avisos acústicos |
Directorios y archivos importantes
| Ruta | Contenido |
|---|---|
/opt/mydockers/crow-ha/compose.yaml | Configuración Docker del servidor |
/opt/mydockers/crow-ha/data/ | Certificados TLS y sesiones |
/opt/mydockers/crow-ha/audio-service/server.py | Servicio HTTP de audio |
/etc/systemd/system/crow-audio.service | Servicio systemd |
/opt/mydockers/homeassistant/configuration.yaml | Configuración de Home Assistant |
/tmp/alarma.wav (dentro de crow-ha) | Archivo de sonido de alarma |
Nota: conviene conservar el directorio data del contenedor crow-ha, ya que contiene los certificados y las sesiones necesarias para mantener la autenticación del panel.
70
Como era de esperar, después de dejar nuestro kit de impresión 3D «olvidado» en la buhardilla durante bastante tiempo, hemos descubierto que nos falta alguna pieza y que, por mucho que lo hemos intentado, no conseguimos montar la carcasa que teníamos prevista.
Así que, para salir del paso, hemos tenido que buscar una solución alternativa que permita «descansar» cómodamente a nuestra pantalla ELECROW. De momento, no hemos encontrado nada mejor que un sencillo atril que teníamos por ahí, y que está cumpliendo dignamente su cometido. No es la solución más elegante ni la definitiva, pero al menos nuestra pantalla ya tiene dónde apoyarse mientras seguimos buscando las piezas perdidas… ¡o una alternativa mejor!