Crear un escritorio luminoso

Crear un escritorio luminoso

Si te encanta pasar tiempo en tu ‘setup’ dale un toque de estilo aprendiendo a crear un escritorio luminoso.

¿Por qué crear un escritorio luminoso?

Antes de nada, cabría preguntarte por qué querrías llevar este proyecto a cabo. Personalmente lo voy a hacer por estos motivos:

  • El más evidente, iluminar mi espacio de trabajo. Tanto para no dañar la vista mirando la pantalla en la oscuridad, como para tener iluminación dirigida si quiero tomar notas, trabajar con componentes pequeños, etc.
  • Utilizarlo como sistema de notificaciones silencioso. En mi caso es frecuente trabajar mientras escucho música, por lo que suelo aislarme del mundo cuando estoy concentrado. No obstante, quiero que me saquen de mi «burbuja», por ejemplo, cuando llaman al timbre, acaba la lavadora o se aproxima una cita del calendario. Además, prefiero este tipo de notificaciones a las de audio, ya que pueden ser inadecuadas durante una reunión.
  • Darle un toque de estilo. Por qué no decirlo, la verdad es que la iluminación siempre me ha parecido la forma más elegante y natural de decorar cualquier espacio.

Requisitos previos

Para crear un escritorio luminoso en mi caso voy a utilizar los siguientes componentes, aunque puedes usarlo como inspiración para crear tu propio espacio:

  • Mi escritorio de doble altura, pensado para crear un espacio despejado y eficiente, que nos va a venir genial para crear un escritorio luminoso.
  • Una tira LED WS2812B integrada en Home Assistant con WLED, situada justo debajo en la parte inferior de la doble altura.
  • Una bombilla Yeelight integrada en Home Assistant, colgada de una escuadra que sujeta una balda sobre el escritorio.
  • Opcionalmente, puedes añadir uno de estos botones zigbee para controlar el encendido e intensidad de tus luces.
Tira LED WS2812B
GENERICO

Tira LED WS2812B

5,0

Tira RGB direccionable ideal para proyectos DIY. Permite control local vía WiFi y se integra fácilmente en Home Assistant mediante ESPHome. Perfecta para iluminación personalizada y domótica avanzada.Tira RGB direccionable ideal para proyectos DIY. Permite control local vía WiFi ...

Rotary Knob
5,0

Mando giratorio inalámbrico a batería para controlar tu hogar. Usa protocolo Zigbee, funciona en local y es compatible con Home Assistant mediante Zigbee2MQTT para un control preciso y fluido.Mando giratorio inalámbrico a batería para controlar tu hogar. Usa protocolo Zig...

*Algún precio puede haber cambiado desde la ultima revision

Por cierto, si quieres puedes descargar de forma gratuita desde nuestro perfil de Patreon este soporte de escritorio que he creado para el SONOFF SNZB-02D y el Tuya Rotary Knob.

Ideas de automatización

Ya ves que en este caso la instalación es muy, muy sencilla. La potencia de crear un escritorio luminoso se encuentra en las automatizaciones que creemos después.

Características de la automatización

Antes de nada, quiero indicarte que voy a crear una única automatización con distintos ‘trigger id’, para tener todo unificado en un mismo sitio (eso sí, asegúrate de seleccionar el modo «En cola» para no perder ninguna notificación).

Además, esta automatización tendrá como condición que alguno de los ordenadores esté encendido, lo cuál haré mediante la integración de NMAP, creando un grupo con los ordenadores.

conditions:
  - condition: state
    entity_id: group.ordenadores
    state: home
    alias: Algún ordenador encendido

Por otro lado, para facilitar la construcción de las automatizaciones y controlarlas a la vez también he creado un grupo de luces con la tira LED y la bombilla. Para ello sólo tienes que ir a Configuración > Dispositivos y servicios > Ayudantes > Crear ayudante > Grupo > Grupo de luces.

Desencadenantes de la automatización

A continuación te dejo un recopilatorio de los desencadenantes de mi automatización para darte ideas.

  • Lo primero, como te comentaba en los requisitos, he añadido uno de estos interruptores con Zigbee2MQTT, que me permite encender y apagar rápidamente ambas luces (mediante el grupo del apartado anterior), así como regular la intensidad. En este único caso he creado una automatización independiente, ya que quiero que el mando responda incluso cuando los ordenadores están apagados.
alias: 💡Escritorio luminoso
description: ""
triggers:
  - domain: mqtt
    device_id: 14efc8c2a14870eb222a2511a8658d38
    type: action
    subtype: single
    trigger: device
    id: Mando Toggle
    alias: Mando Toggle
  - domain: mqtt
    device_id: 14efc8c2a14870eb222a2511a8658d38
    type: action
    subtype: rotate_left
    trigger: device
    id: Mando Izquierda
    alias: Mando Izquierda
  - domain: mqtt
    device_id: 14efc8c2a14870eb222a2511a8658d38
    type: action
    subtype: rotate_right
    trigger: device
    alias: Mando Derecha
    id: Mando Derecha
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - Mando Toggle
        sequence:
          - action: light.toggle
            metadata: {}
            data:
              rgb_color:
                - 254
                - 240
                - 169
              effect: Solid
            target:
              entity_id: light.escritorio
      - conditions:
          - condition: trigger
            id:
              - Mando Izquierda
        sequence:
          - action: light.turn_on
            metadata: {}
            data:
              brightness_step_pct: -30
            target:
              entity_id: light.escritorio
      - conditions:
          - condition: trigger
            id:
              - Mando Derecha
        sequence:
          - action: light.turn_on
            metadata: {}
            data:
              brightness_step_pct: 30
            target:
              entity_id: light.escritorio
mode: single
  • Encendido automático. Además de tener el control manual, también quiero que se enciendan automáticamente al hacerse de noche si seguimos trabajando en el ordenador, para no dañar la vista.
alias: 💡Escritorio luminoso
description: ""
triggers:
  - trigger: sun
    event: sunset
    offset: 0
    alias: Se hace de noche
    id: Noche
conditions:
  - condition: state
    entity_id: group.ordenadores
    state: home
    alias: Algún ordenador encendido
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - Noche
        sequence:
          - action: light.toggle
            metadata: {}
            data:
              rgb_color:
                - 254
                - 240
                - 169
              effect: Solid
            target:
              entity_id: light.escritorio
mode: single
  • Apagado de ordenadores. Por supuesto, si se apagan ambos ordenadores (en mi caso somos 2), las luces deben apagarse si estaban encendidas.
alias: 💡Escritorio luminoso
description: ""
triggers:
  - trigger: state
    entity_id:
      - group.ordenadores
    to: not_home
    alias: Ordenadores apagados
    id: Ordenadores apagados
conditions:
  - condition: state
    entity_id: group.ordenadores
    state: home
    alias: Algún ordenador encendido
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - Ordenadores apagados
        sequence:
          - action: light.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: light.escritorio
mode: single
  • Llaman al timbre! La verdad, es que uno de los principales motivos de crear un escritorio luminoso ha sido detectar de alguna manera cuando llaman a la puerta, aunque tenga la puerta cerrada y esté escuchando música. En mi caso tengo integrado el Ring Intercom, y las luces parpadean en rojo cuando alguien llama.
alias: Escritorio luminoso
description: ""
triggers:
  - trigger: state
    entity_id:
      - event.portal_timbre
    id: Telefonillo
    alias: Telefonillo
conditions:
  - condition: state
    entity_id: group.ordenadores
    state: home
    alias: Algún ordenador encendido
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - Telefonillo
        sequence:
          - action: light.turn_on
            metadata: {}
            data:
              rgb_color:
                - 255
                - 0
                - 0
              effect: Blink
            target:
              entity_id:
                - light.tira_led_escritorio
          - action: light.turn_on
            metadata: {}
            data:
              rgb_color:
                - 255
                - 0
                - 0
              effect: Alarm
            target:
              entity_id: light.bombilla_escritorio
          - delay:
              hours: 0
              minutes: 0
              seconds: 2
              milliseconds: 0
          - action: light.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: light.escritorio
mode: single
  • Recordatorios periódicos. Como te decía en la introducción, cuando me concentro es habitual que desconecte de todo. Esto incluye olvidarme de hábitos saludables como beber agua, comer una fruta a media mañana/tarde o levantarme. Con este tipo de acciones me aseguro de que un parpadeo luminoso de la tira LED me lo recuerde y se vuelva a apagar unos segundos después (ya que si me pilla ocupado no quiero que me moleste).
alias: 💡Escritorio luminoso
description: ""
triggers:
  - trigger: time
    at: "11:00:00"
    id: 11h
  - trigger: time
    at: "16:00:00"
    id: 16h
conditions:
  - condition: state
    entity_id: group.ordenadores
    state: home
    alias: Algún ordenador encendido
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - 11h
              - 16h
        sequence:
          - action: light.turn_on
            metadata: {}
            data:
              effect: Fade
              rgb_color:
                - 0
                - 213
                - 255
            target:
              entity_id:
                - light.tira_led_escritorio
          - delay:
              hours: 0
              minutes: 0
              seconds: 3
              milliseconds: 0
          - action: light.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: light.tira_led_escritorio
        alias: Recordatorio para ir a por agua
mode: single
  • Recordatorios persistentes. Hay otro tipo de eventos que requieren de mi atención (como cuando acaba la lavadora o el lavavajillas). En este caso quiero que la tira LED permanezca encendida con un tono rojo hasta que saque la ropa (y el estado pase a «apagada»).
alias: 💡Escritorio luminoso
description: ""
triggers:
  - trigger: state
    entity_id:
      - input_select.lavadora
    to: Finalizado
    id: Lavadora (fin del lavado)
  - trigger: state
    entity_id:
      - input_select.lavadora
    to: Apagada
    id: Lavadora (apagada)
conditions:
  - condition: state
    entity_id: group.ordenadores
    state: home
    alias: Algún ordenador encendido
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - Lavadora (fin del lavado)
        sequence:
          - action: light.turn_on
            metadata: {}
            data:
              effect: Solid
            target:
              entity_id: light.tira_led_escritorio
        alias: Fin de lavado
      - conditions:
          - condition: trigger
            id:
              - Lavadora (apagada)
        sequence:
          - action: light.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: light.tira_led_escritorio
mode: single
  • Recordatorios de eventos. Otro uso que tenía previsto es la vinculación de la iluminación con los eventos del calendario, de forma que mientras que haya un evento en curso se ilumine el escritorio. En mi caso lo voy a utilizar con el calendario de Aguacatec, con un objetivo doble. Por un lado, recordarme que hay un evento (hacemos tantas cosas que a veces se me olvida!😅) y también a quien haya alrededor para que no me interrumpa (puedes aplicarlo a tus reuniones). Por otro, crea una iluminación de ambiente que hace que ese ratito sea más inmersivo.
alias: 💡Escritorio luminoso
description: ""
triggers:
  - trigger: calendar
    entity_id: calendar.aguacatec
    event: start
    offset: "-0:15:0"
    alias: 15 min antes de un evento
    id: Evento Aguacatec
  - trigger: calendar
    entity_id: calendar.aguacatec
    event: end
    offset: "0:0:0"
    alias: Fin del evento
    id: Fin Evento Aguacatec
conditions:
  - condition: state
    entity_id: group.ordenadores
    state: home
    alias: Algún ordenador encendido
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - Evento Aguacatec
        sequence:
          - action: light.turn_on
            metadata: {}
            data:
              effect: Fairy
              rgb_color:
                - 212
                - 255
                - 0
            target:
              entity_id: light.tira_led_escritorio
      - conditions:
          - condition: trigger
            id:
              - Fin Evento Aguacatec
        sequence:
          - action: light.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: light.tira_led_escritorio
mode: single
  • Notificaciones motivadoras. También lo utilizo para recibir un estímulo luminoso cuando algo bueno sucede, por ejemplo cuando se une un nuevo Patreon o termina la impresora 3D. En estos casos lo detecto mediante la notificación de la aplicación en mi dispositivo móvil, que enciende un efecto arcoiris durante unos segundos.
alias: 💡Escritorio luminoso
description: ""
triggers:
  - trigger: state
    entity_id:
      - sensor.nothing_phone_2a_last_notification
    attribute: package
    to: com.patreon.android
    alias: Nuevo Patreon
    id: Nuevo Patreon
conditions:
  - condition: state
    entity_id: group.ordenadores
    state: home
    alias: Algún ordenador encendido
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - Nuevo Patreon
        sequence:
          - action: light.turn_on
            metadata: {}
            data:
              effect: Rainbow
            target:
              entity_id: light.tira_led_escritorio
          - delay:
              hours: 0
              minutes: 0
              seconds: 5
              milliseconds: 0
          - action: light.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: light.tira_led_escritorio
mode: single