ESPHome Starter Kit LED Module Showcase

Time for our first official ESPHome Starter Kit showcase! Make your LED and Buzzer module do something, anything, and share it with us. A doorbell, a Teams meeting light, a trash night reminder, whatever you can think of!

Reply to this thread with a photo or video, your YAML, and what it does. Every entry goes on the wheel, and the winner picks their prize: a $40 Apollo gift card or a custom Apollo Automation Owala water bottle.

Entries close Wednesday, September 30 at 11pm EST. We’ll spin the wheel and announce the winner Monday, October 5 at 8pm EST.

Guidelines:

  • One entry per person
  • Your build has to use the Starter Kit LED module
  • Include a photo or video, your YAML, and a short description
  • Winner is picked at random with wheelofnames.com
  • Water bottle option ships US only
  • Show us what you’ve got!

Don’t have an ESPHome Starter Kit? Get one here!

Interested in learning more or unsure if you can make a cool project to post? Check out our wiki with tons of great content and tutorials to learn as you build!

1 Like

I used to be a challenger until…

We’re happy to accept your submission but as a co-founder you’re unable to win. Best I can do is a picture of a water bottle.

Tim Robinson: That Is Not Allowed

1 Like

Might be easier to hack wheelofnames @Justin_Apollo :winking_face_with_tongue:

1 Like

Dog Typing on a Laptop

hey guys. decided to make an ESPHome themed case for the starter kit + SEN65 + breakout.

https://makerworld.com/en/models/3274569-esphome-starter-kit-case

Have fun!

3 Likes

Presenting: my Timberborn weather indicator

Back to normal water:
20260908_125018(1)

Drought indicator:
20260908_123850.mp42(1)

Badtide indicator:
20260908_131627

This starts with three of the in-game automation web hooks. I have them set to call when switched on, and are each linked to weather stations for detecting temperate weather, drought, and badtide.

Example in game weather station and HTTP adapter settings


To get the webhook into Home Assistant I followed this guide: GitHub - Agroqirax/timberborn-hass: Connect homeassistant to the timberborn API. · GitHub
All the HTTP levers and adapters from in game then show up as a device in Home Assistant

Timberborn HA device example

In Home Assistant I then created automatons for each of the conditions / web hooks individually. It may be worth looping all of these into a single automation with further refinement if the actions remain the same and only the colours change. The drought alert is provided as an example.

Home Assistant example visual editor

Home Assistant example YAML
alias: Drought incoming
description: ''
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.timberborn_http_adapter_2
    to:
      - 'on'
conditions: []
actions:
  - action: light.turn_on
    metadata: {}
    target:
      entity_id: light.esphometestkit_rgb_leds
    data:
      rgb_color:
        - 255
        - 255
        - 0
  - repeat:
      count: 4
      sequence:
        - delay:
            hours: 0
            minutes: 0
            seconds: 2
            milliseconds: 0
        - action: light.toggle
          metadata: {}
          target:
            entity_id: light.esphometestkit_rgb_leds
          data: {}
mode: single


Worth noting that there is can be a significant delay from the game changing its automation sate to HA being able to read it; so I wouldn’t recommend relying on it!

1 Like

Thanks for sharing this is really cool and I think a lot of folks will want to print this!

Want to address every LED on the strip individually?

I’ve figured out two ways for far: API call (like the buzzer) and LED partitioning

Method 1: API Call

Similar to the “play_buzzer” API call, here we create an API to call the LED lights using the light.addressable_set action:

Here's the whole YAML once built:

We have an integer value for the Red, Blue, and Green channels, LED brightness, and the LED identification start and end (you can use the same value to call a single LED, or call a range with separate start and end)

Note that the LED names on the board are shift by 1 (ie C1 = 0 and C10 = 9)

Next, you can make a call in Home Assistant:

Method 2: LED Partitioning

In this method we use Light Partition to split out every single LED.

Add the light partition component

Create a segment by picking the ID (the name of your RGB strip)
From is the initial value, to is the final value. In this example I used 0 and 0 to reach the LED C1
“Single light ID” is not used, but we must make a selection now in order to save the visual editor


Remove the “single_light_id” line from the YAML

Repeat for each indiviudal LED (or whatever segments you are creating)

Here's a pre-done YAML section to segment all 10 LEDs
  - platform: partition
    name: LED_C1
    id: light_partition_1
    segments:
      - id: rgb_leds
        from: 0
        to: 0
  - platform: partition
    name: LED_C2
    id: light_partition_2
    segments:
      - id: rgb_leds
        from: 1
        to: 1        
  - platform: partition
    name: LED_C3
    id: light_partition_3
    segments:
      - id: rgb_leds
        from: 2
        to: 2     
  - platform: partition
    name: LED_C4
    id: light_partition_4
    segments:
      - id: rgb_leds
        from: 3
        to: 3
  - platform: partition
    name: LED_C5
    id: light_partition_5
    segments:
      - id: rgb_leds
        from: 4
        to: 4
  - platform: partition
    name: LED_C6
    id: light_partition_6
    segments:
      - id: rgb_leds
        from: 5
        to: 5
  - platform: partition
    name: LED_C7
    id: light_partition_7
    segments:
      - id: rgb_leds
        from: 6
        to: 6
  - platform: partition
    name: LED_C8
    id: light_partition_8
    segments:
      - id: rgb_leds
        from: 7
        to: 7
  - platform: partition
    name: LED_C9
    id: light_partition_9
    segments:
      - id: rgb_leds
        from: 8
        to: 8
  - platform: partition
    name: LED_C10
    id: light_partition_10
    segments:
      - id: rgb_leds
        from: 9
        to: 9

Pros/Cons per method:

API Call Segmenting
(+) Low memory usage/short build time (-) Memory heavy/long build time
(+) Quick and easy to set up (-) Lots of entry work to complete
(-) No individual lights on device page or Home Assistant (+) Each segment shows up as its own light on the device page and in Home Assistant
1 Like

I really appreciate you putting this together and sharing it. I might end up making a wiki article on this if you’re cool with it!

1 Like