Saltar al contenido

No molestar en Home Assistant sin perder avisos importantes

11/07/2026

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í.


OFERTAS · TIENDA OFICIAL

Descuentos en domótica SONOFF

Interruptores WiFi, relés, sensores, tiras LED y más. Las promociones cambian con frecuencia en la tienda oficial.

Cupón: TECNOYFOTO (10% de descuento al pagar)

Ver ofertas oficiales Enlace de afiliado · Tienda Sonoff

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-circle

Este 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: true

Estos 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: single

Con 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:30 activo No 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: single

Este 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 urgent es true, el aviso suena siempre.
  • Si urgent es false y No molestar está activado, el aviso no suena.
  • Si No molestar está 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.15

Estos 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: single

Esto 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_molestar indica si la casa debe estar en silencio.
  • input_datetime.hora_inicio_no_molestar y input_datetime.hora_fin_no_molestar permiten 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.

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *