Anyone tried hacking GU5.3 / MR11 type 12v wifi LED bulbs?

So - I have a number of these type of bulbs in the house, they are all crazy halogen, white and use too much power and a bit boring.

I just purchased one of these:

EXTSUD Smart Light Bulbs GU5.3, MR16 RGB Dimmable 5W WiFi Smart Bulb Compatible with Amazon Alexa Echo Remote Control by Smartphone iOS and Android 50W Equivalent [Energy Class A+]

https://www.amazon.co.uk/gp/product/B07FP9WJ1V/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1

No idea if I get them working with HA but i’m game to try and hack them, maybe with ESPHome etc.

Anyone had any luck with GU5.3 / MR11 type 12v wifi LED bulbs?

Thanks in advance.

Mark

1 Like

Did you have any luck? I’ve used tuya-convert to flash ESPHome on these: https://www.amazon.co.uk/dp/B07B49MRGH

Flashing worked, but the colors are wonky. I’m still trying to work out the right GPIO settings.

1 Like

Yes that’s the exact unit I managed to flash and I figured out the correct settings for esphome. I’ve got no access to my setup at the moment so I can’t post the config file but I’ll do it next Tuesday.

1 Like

Great. Thanks.

1 Like

ok - so this is the config I have for one of the bulbs i’m using in our bathroom. The main thing I wanted was for them to turn on with the same normal colour and then change it via HA if I needed…

esphome:
  name: ledbulb21
  platform: ESP8266
  board: esp01_1m
  board_flash_mode: dout
#  esp8266_restore_from_flash: yes
  on_boot:
    priority: 50
    then:
      - light.turn_on:
          id: ledbulb21
          brightness: 75%
          red: 100%
          green: 75%
          blue: 0%
          white: 75%
          transition_length: 0s

wifi:
  ssid: 'MYWIFI'
  password: 'MYWIFICODE'
  manual_ip:
    static_ip: 192.168.1.161
    gateway: 192.168.1.1
    subnet: 255.255.255.0
    dns1: 192.168.1.1

# Example configuration entry
mqtt:
  broker: 192.168.1.101
  username: user
  password: pass

# Enable logging
logger:

# Enable Home Assistant API
#api:

ota:

my9231:
 data_pin: GPIO13
 clock_pin: GPIO15
 num_channels: 6
 num_chips: 2
# update_on_boot: False

output:
  - platform: my9231
    id: output_warm_white
    channel: 0
  - platform: my9231
    id: output_blue
    channel: 1
  - platform: my9231
    id: output_green
    channel: 2
  - platform: my9231
    id: output_red
    channel: 3

light:
  - platform: rgbw
    name: "ledbulb21"
    red: output_red
    green: output_green
    blue: output_blue
    white: output_warm_white
    id: "ledbulb21"
    effects:
      - strobe:
          name: My Warm White
          colors:
            - state: True
              brightness: 100%
              red: 100%
              green: 57%
              blue: 14%
              white: 50%
              duration: 2s
            - state: True
              brightness: 100%
              red: 100%
              green: 57%
              blue: 14%
              white: 50%
              duration: 2s
      - random:
          name: "My Slow Random Effect"
          transition_length: 30s
          update_interval: 30s

      - random:
          name: "My Fast Random Effect"
          transition_length: 4s
          update_interval: 5s
      - random:
          name: Random Effect With Custom Values
          transition_length: 5s
          update_interval: 7s
      - 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
      - flicker:
          name: Flicker Effect With Custom Values
          alpha: 95%
          intensity: 1.5%
      - lambda:
          name: My Custom Effect
          update_interval: 1s
          lambda: |-
            static int state = 0;
            auto call = id(ledbulb21).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;

@mark.carline Thanks a lot. I’ll give it a try.

1 Like

OK cool let me know how you get on I’m interested to if you do anything different with them

Success. The configuration worked perfectly. I haven’t made many changes which aren’t specific to my circumstances, but these are the changes:

  1. Uncommented “esp8266_restore_from_flash: true”, because I will normally turn the lights on and off at the switch. Restoring from flash means that the lights come back on almost immediately instead of waiting to boot.

  2. Changed the on_boot/warm white settings to better match the color of some halogen downlighters nearby:

          brightness: 100%
          red: 100%
          green: 85%
          blue: 42%
          white: 75%
  1. Added MQTT to work with the light on/off status system I’ve got in place to compensate for the fact that my LightWaveRF gen 1 switches don’t give status feedback. See here if interested: Light status

  2. Increased the flicker intensity setting, because I couldn’t notice any effect with it set to 1.5%.

      - flicker:
          name: Flicker
          alpha: 95%
          intensity: 10%
  1. Added more color to the strobe effect.
      - strobe:
          name: Strobe
          colors:
            - state: True
              brightness: 100%
              red: 100%
              green: 85%
              blue: 42%
              white: 50%
              duration: 500ms
            - state: False
              duration: 250ms
            - state: True
              brightness: 100%
              red: 0%
              green: 100%
              blue: 0%
              white: 50%
              duration: 500ms
            - state: False
              duration: 250ms
            - state: True
              brightness: 100%
              red: 42%
              green: 100%
              blue: 85%
              white: 50%
              duration: 500ms
            - state: False
              duration: 250ms
            - state: True
              brightness: 100%
              red: 100%
              green: 0%
              blue: 0%
              white: 50%
              duration: 500ms
            - state: False
              duration: 250ms
            - state: True
              brightness: 100%
              red: 85%
              green: 42%
              blue: 42%
              white: 50%
              duration: 500ms
            - state: False
              duration: 250ms

Thanks again. You saved me a lot of trial and error.

1 Like