Monitoring wifi bulbs

Hi All,

I recently installed a whole bunch of bulbs that I have flashed with esphome. I seem to be having some issues so I have a bunch of questions.

  1. When I reboot HA it can take 10 - 15 mins for all the bulbs to be connected, Is this considered normal? I wondering if I need to revise my expectations. There are around 80 bulbs.
  2. Sometimes I can see the bulb is connected to my unifi access point but HA thinks its unavailable, is there any way I can make HA retry connecting to it? eventually it will reconnect without any action on my part.
  3. Is it possible to determine real lights from light groups? I would like to create (dont know how yet) a routine to show any bulbs that are unavailable and possibly time how long it takes for them all to get connected after I restart HA.

Thanks All

My esphome bulbs connect pretty well instantly.

Maybe if you post an example of one of the bulbs .yaml files it may assist in someone troubleshooting with you.

BTW, 80 bulbs is an impressive amount - I am assuming you have a meshed network, or are all those connected through one access point?

Thanks for the response. I have a pretty solid network config. I use a unifi USG plus 2 unifi AP AC Pro access points. Its not a meshed network but I have checked the signal strength amd there is not a bulb under 70%. I am really trying to work out how to debug it better and find out if there are specific areas or bulbs that are taking a long time to connect etc.

The config for my bulbs is as follows

substitutions:
  devicename: back_wall_ceiling_two

esphome:
  name: $devicename
  esp8266_restore_from_flash: true
  platform: ESP8266
  board: esp01_1m

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Back Wall Ceiling Two Hotspot"
    password: "jNu49O9vnbVM"

# Enable logging to ESPHome
logger:
  # Disable logging to serial
  baud_rate: 0

# Enable Home Assistant API
api:

# Setup OTA password
ota:
  password: !secret ota_password

# Define output pins
output:
  - platform: esp8266_pwm
    id: output_red
    pin: GPIO5
  - platform: esp8266_pwm
    id: output_green
    pin: GPIO4
  - platform: esp8266_pwm
    id: output_blue
    pin: GPIO13
  - platform: esp8266_pwm
    id: output_warm_white
    pin: GPIO12
  - platform: esp8266_pwm
    id: output_cold_white
    pin: GPIO14

# Define a light entity
light:
  - platform: rgbww
    name: $devicename
    id: $devicename
    red: output_red
    green: output_green
    blue: output_blue
    warm_white: output_warm_white
    cold_white: output_cold_white
    cold_white_color_temperature: 6200 K
    warm_white_color_temperature: 2800 K
    effects:
      - random:
      - strobe:
      - flicker:
      - strobe:
          name: Alarm strobe
          colors:
          - state: True
            white: 0%
            brightness: 100%
            red: 100%
            green: 0%
            blue: 0%
            duration: 50ms
          - state: True
            white: 0%
            brightness: 100%
            red: 0%
            green: 100%
            blue: 0%
            duration: 50ms
          - state: True
            white: 0%
            brightness: 100%
            red: 0%
            green: 0%
            blue: 100%
            duration: 50ms
      - strobe:
          name: Strobe Effect With Custom Values
          colors:
          - state: True
            brightness: 100%
            red: 100%
            green: 90%
            blue: 0%
            duration: 500ms
          - state: False
            duration: 250ms
          - state: True
            brightness: 100%
            red: 0%
            green: 100%
            blue: 0%
            duration: 500ms
      - lambda:
          name: My Custom Effect
          update_interval: 1s
          lambda: |-
            static int state = 0;
            auto call = id($devicename).turn_on();
            // Transtion of 1000ms = 1s
            call.set_transition_length(1000);
            if (state == 0) {
              call.set_rgb(1.0, 1.0, 1.0);
            } else if (state == 1) {
              call.set_rgb(1.0, 0.0, 1.0);
            } else if (state == 2) {
              call.set_rgb(0.0, 0.0, 1.0);
            } else {
              call.set_rgb(1.0, 0.0, 0.0);
            }
            call.perform();
            state += 1;
            if (state == 4)
              state = 0;

I know it’s a long shot, and a pain to test, but do you possibly have an issue with DHCP? Maybe do a bunch of globes with static addresses and see if they come up instantly compared to the rest.

Ignore that - I just realised you are only resetting HA so it shouldn’t make any difference…