
Este artículo puede contener enlaces de afiliado. Si compras desde estos enlaces, el precio para ti es el mismo y la tienda me paga una pequeña comisión que ayuda a mantener Tecnoyfoto.
En una casa con Home Assistant, las notificaciones por voz son comodísimas… hasta que suenan cuando no toca. Una lavadora terminada, una puerta abierta o un aviso de lluvia están muy bien durante el día, pero a ciertas horas pueden ser una molestia.
Por eso en mi instalación uso un sistema de no molestar en Home Assistant. No es una integración especial ni nada complicado: es un simple interruptor ayudante que mis automatizaciones respetan.
La idea es muy sencilla:
Cuando No molestar está activado, los avisos normales no suenan. Los avisos urgentes sí.
1. Qué es exactamente “No molestar” en mi Home Assistant
En mi caso, No molestar es un input_boolean. Es decir, un interruptor virtual de Home Assistant.
Archivo: si usas packages, puedes guardar este bloque tal cual en /config/packages/no_molestar.yaml. Si usas archivos separados, guarda solo el contenido interior en /config/input_booleans.yaml y no repitas la línea input_boolean:.
input_boolean:
no_molestar:
name: "No molestar"
icon: mdi:minus-circleEste booleano no hace nada por sí solo. Lo importante es que mis automatizaciones y mi centralita de voz lo consultan antes de hablar.
Dicho de otra forma: input_boolean.no_molestar es el semáforo. Si está apagado, la casa puede hablar. Si está encendido, la casa se calla salvo avisos urgentes.
2. Helpers de horario
Para no tener que activar y desactivar No molestar manualmente cada día, uso dos helpers de hora:
Archivo: si usas packages, puedes añadir este bloque en el mismo archivo /config/packages/no_molestar.yaml. Si usas archivos separados, guarda solo el contenido interior en /config/input_datetimes.yaml y no repitas la línea input_datetime:.
input_datetime:
hora_inicio_no_molestar:
name: No molestar (Inicio)
has_date: false
has_time: true
hora_fin_no_molestar:
name: No molestar (Fin)
has_date: false
has_time: trueEstos dos helpers me permiten tener una hora de inicio y una hora de fin. Luego las automatizaciones se encargan de encender o apagar el booleano.
3. Automatización básica: activar y desactivar No molestar
La forma más simple de montar un sistema de no molestar en Home Assistant sería esta:
Archivo: guarda estas automatizaciones en /config/automations/no_molestar.yaml, o en el archivo de automatizaciones donde organices tus horarios. Este formato está pensado para instalaciones con automation: !include_dir_merge_list automations/.
- id: no_molestar_activar
alias: No molestar activar
trigger:
- platform: time
at: input_datetime.hora_inicio_no_molestar
action:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.no_molestar
mode: single
- id: no_molestar_desactivar
alias: No molestar desactivar
trigger:
- platform: time
at: input_datetime.hora_fin_no_molestar
action:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.no_molestar
mode: singleCon esto ya tendrías un modo No molestar automático. Configuras las horas desde la interfaz y Home Assistant activa o desactiva el booleano cuando toca.
4. Mi caso: No molestar según jornada
En mi casa lo tengo un poco más adaptado porque trabajo por turnos. No es lo mismo un día normal que un día de Turno noche.
Mi lógica principal es esta:
- A las
20:30activoNo molestar. - Si no estoy en Turno noche, lo desactivo a las
08:00. - Si estoy en Turno noche, lo mantengo activo hasta las
10:30.
Archivo: guarda esta automatización en /config/automations/no_molestar.yaml o en el archivo donde tengas tus automatizaciones de horarios. Si usas packages y quieres tenerlo todo junto, este bloque tendría que ir dentro de una clave automation: en /config/packages/no_molestar.yaml.
- id: no_molestar_horario_jornada
alias: "No molestar según jornada (20:30 → 08:00 / 10:30)"
trigger:
- platform: time
at: "20:30:00"
id: activar
- platform: time
at: "08:00:00"
id: desactivar_08
- platform: time
at: "10:30:00"
id: desactivar_1030
action:
- choose:
- conditions:
- condition: trigger
id: activar
sequence:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.no_molestar
- choose:
- conditions:
- condition: state
entity_id: input_select.jornada_laboral
state: "Turno noche"
sequence:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.hora_fin_no_molestar
data:
time: "10:30:00"
default:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.hora_fin_no_molestar
data:
time: "08:00:00"
- conditions:
- condition: trigger
id: desactivar_08
- condition: not
conditions:
- condition: state
entity_id: input_select.jornada_laboral
state: "Turno noche"
sequence:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.no_molestar
- conditions:
- condition: trigger
id: desactivar_1030
- condition: state
entity_id: input_select.jornada_laboral
state: "Turno noche"
sequence:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.no_molestar
mode: singleEste bloque depende de que tengas un selector parecido a input_select.jornada_laboral. Si no trabajas por turnos, puedes simplificarlo mucho y quedarte con la versión básica del apartado anterior.
5. Cómo lo uso con las notificaciones por voz
La parte importante es que mis avisos por voz consultan este booleano antes de hablar.
En mi centralita de notificaciones tengo esta condición:
Archivo: este fragmento no es una automatización completa. Es una condición que debes poner dentro del script o automatización que envía los avisos por voz. En mi caso está dentro del script maestro de la centralita de notificaciones.
- condition: template
value_template: >
{{ (urgent | default(false)) or not is_state('input_boolean.no_molestar', 'on') }}Traducido a lenguaje normal:
- Si
urgentestrue, el aviso suena siempre. - Si
urgentesfalseyNo molestarestá activado, el aviso no suena. - Si
No molestarestá desactivado, el aviso suena normal.
Por eso en mis automatizaciones siempre intento indicar si el aviso es urgente o no:
Archivo: este ejemplo va dentro de la automatización concreta que quiera enviar el aviso. Por ejemplo, una automatización de lavadora, lluvia, puerta abierta o consumo eléctrico.
- service: script.anunciar_por_voz_alexa_google_2
data:
message: "La lavadora ha terminado."
devices:
- papi
- show
urgent: false
modo: "{{ states('input_select.voz_modo') }}"Y para algo importante:
Archivo: este segundo ejemplo también va dentro de la automatización concreta que genera el aviso urgente.
- service: script.anunciar_por_voz_alexa_google_2
data:
message: "Atención. El consumo eléctrico de la casa es muy elevado."
devices:
- papi
- show
- pop
urgent: true
modo: "{{ states('input_select.voz_modo') }}"6. Ajustar volumen al activar No molestar
En mi instalación, No molestar no solo bloquea avisos normales. También lo uso para cambiar volúmenes.
Cuando input_boolean.no_molestar pasa a on, aplico volumen de noche. Cuando pasa a off, aplico volumen de día.
Para eso uso dos scripts muy simples: uno para volumen de día y otro para volumen de noche. En mi caso, el de día deja los altavoces al 60% y el de noche al 15%.
Archivo: estos scripts van en /config/scripts.yaml. Si prefieres meterlos en un package, entonces deben ir dentro de una clave script: en /config/packages/no_molestar.yaml.
volumen_de_dia:
alias: Volumen de día
mode: single
sequence:
- service: media_player.volume_set
target:
entity_id:
- media_player.echo_dot_de_albert
- media_player.echo_dot_estudio
- media_player.echo_flex_cocina
- media_player.echo_pop_de_albert
- media_player.echo_show_8
- media_player.echo_spot_de_albert
- media_player.papi
- media_player.googlehome6321
- media_player.googlehome6398
- media_player.googlehome6414
- media_player.nest_audio_arnau
- media_player.nestaudio5858
- media_player.nesthub81f6_2
data:
volume_level: 0.6
volumen_de_noche:
alias: Volumen de noche
mode: single
sequence:
- service: media_player.volume_set
target:
entity_id:
- media_player.echo_dot_de_albert
- media_player.echo_dot_estudio
- media_player.echo_flex_cocina
- media_player.echo_pop_de_albert
- media_player.echo_show_8
- media_player.echo_spot_de_albert
- media_player.papi
- media_player.googlehome6321
- media_player.googlehome6398
- media_player.googlehome6414
- media_player.nest_audio_arnau
- media_player.nestaudio5858
- media_player.nesthub81f6_2
data:
volume_level: 0.15Estos nombres de entidades son los míos. En tu instalación tendrás que cambiarlos por tus propios media_player. También puedes ajustar los valores de volumen: 0.6 significa 60% y 0.15 significa 15%.
Una vez creados los scripts, uso una automatización que escucha los cambios de input_boolean.no_molestar. Si se activa, lanza el volumen de noche. Si se desactiva, lanza el volumen de día.
Archivo: esta automatización va en /config/automations/no_molestar.yaml o en el archivo donde tengas las automatizaciones de volumen. En mi instalación la tengo junto a otras automatizaciones de control de volumen de altavoces.
- id: no_molestar_ajuste_volumen
alias: "No molestar: ajustar volumen al activar/desactivar"
trigger:
- platform: state
entity_id: input_boolean.no_molestar
to: "on"
id: activado
- platform: state
entity_id: input_boolean.no_molestar
to: "off"
id: desactivado
action:
- choose:
- conditions:
- condition: trigger
id: activado
sequence:
- service: script.turn_on
target:
entity_id: script.volumen_de_noche
- conditions:
- condition: trigger
id: desactivado
sequence:
- service: script.turn_on
target:
entity_id: script.volumen_de_dia
mode: singleEsto ya depende mucho de cada casa. Puedes tener scripts de volumen, escenas, automatizaciones por habitación o simplemente no tocar el volumen. Lo importante es entender que el booleano puede servir como disparador para otras acciones.
7. Mi caso especial: Turno noche
Como trabajo por turnos, tengo una excepción importante. Cuando estoy en Turno noche, duermo por la mañana en el estudio. En ese caso no quiero que algunos altavoces suban de volumen demasiado pronto.
Por eso, cuando salgo de No molestar pero sigo en Turno noche, mantengo silenciados algunos altavoces concretos, como papi y el Nest Hub del estudio.
No es una regla que todo el mundo necesite, pero es un buen ejemplo de por qué conviene separar la lógica:
- El booleano decide si la casa está en modo silencio.
- La centralita decide si un aviso puede sonar o no.
- Las automatizaciones de volumen deciden cómo deben quedar los altavoces.
8. Lo que no recomiendo hacer
- No recomiendo poner condiciones de hora en todas las automatizaciones de voz. Acabas repitiendo lógica por todas partes.
- No recomiendo bloquear avisos urgentes solo porque sea de noche. Para eso está
urgent: true. - No recomiendo mezclar la lógica de volumen, horarios y mensajes dentro de cada automatización. Mejor tener un booleano central.
La ventaja de usar un booleano es que todo queda mucho más claro. Cualquier automatización puede preguntar: “¿Está No molestar activado?”. Y a partir de ahí decide.
9. Resumen final
Mi sistema de no molestar en Home Assistant se basa en una idea muy simple: un booleano central que toda la casa respeta.
input_boolean.no_molestarindica si la casa debe estar en silencio.input_datetime.hora_inicio_no_molestaryinput_datetime.hora_fin_no_molestarpermiten gestionar horarios.- Las automatizaciones activan o desactivan el booleano.
- La centralita de voz bloquea avisos normales si No molestar está activo.
- Los avisos urgentes pueden saltarse el bloqueo con
urgent: true.
Lo importante es no complicarlo más de la cuenta. No molestar no tiene que ser una integración enorme. Puede ser simplemente un interruptor bien usado.
