Desk Lighting For Each Day Of The Week

Desk Lighting For Each Day Of The Week

I have an LED strip behind my desk in my office. It's controlled by an ESP32 running the WLED firmware.

I've had it stuck on a fixed color preset for around a year. (See above.) I still like these colors, but I thought it would be nice to change the colors from time to time.

I also have a Novation Launchpad on my desk. When I'm not using it to make music, I use the lights as a little dashboard. It currently just displays information about my CircleCI builds, and a simplified "floorplan" showing the location of lights that are on in my house. It would be fun to show some more data.

I have a few ideas:

  • Weather forecast
  • Internet speed
  • MacBook CPU usage
  • MacBook battery level
  • MacBook camera activity
  • MacBook focus mode
  • Sound levels in my office
  • Security camera activity
  • Album art colors from the currently playing song

I could also show some of this data on the LED strip behind my desk. But I decided to keep it pretty simple for now. I'm just going to change the color scheme based on the day of the week.

Here's the WLED web UI where you can see some of the available color schemes and effects.

The animations can be a bit distracting when I'm working, so I mainly use solid colors. I do like the Aurora preset though:

0:00
/0:08

I'm going to play the Aurora preset on Sundays.

Here's all the other presets I chose for each day of the week:

Monday: Atlantica
Tuesday: Sunset
Wednesday: Ocean
Thursday: Toxy Reaf
Friday: Analogous
Saturday: Splash
Sunday: Aurora

Here's the code I used in my Home Assistant automation:

alias: "Set WLED Preset Based on Weekday"
trigger:
  - platform: time
    at: "00:00:01"
action:
  - variables:
      preset_options:
        - Solid Atlantica
        - Solid Sunset
        - Solid Ocean
        - Solid Toxy Reef
        - Solid Analogous
        - Solid Splash
        - Aurora
  - service: select.select_option
    target:
      entity_id: select.wled_nathans_desk_preset
    data:
      option: "{{ preset_options[now().weekday()] }}"

Read more