Skip to content

Instantly share code, notes, and snippets.

@Adriem
Forked from subdavis/milight.md
Created January 13, 2019 20:18
Show Gist options
  • Save Adriem/789b28c6213af1844feb249e42956297 to your computer and use it in GitHub Desktop.
Save Adriem/789b28c6213af1844feb249e42956297 to your computer and use it in GitHub Desktop.

Setting up MiLight Wifi Bridge and LimitlessLED bulbs with Amazon Alexa and Home Automation Bridge

Goal of this tutorial

Be able to control MiLight bulbs with Amazon Alexa via the MiLight Wifi Bridge.

Materials

Prerequisites

Follow these steps first, as you cannot proceed without completing them.

  • Set up Your Alexa device
  • Set up Home Automation Bridge in accordance with HA Bridge Docs.
  • You must have Java 8 installed to run the HAB.
  • I use a C.H.I.P. for my build - here's how to install Java on C.H.I.P.
  • Consider setting a STATIC IP for this device in your router, as you'll want to manage it later.
  • Install the official MiLight mobile app on your phone.

Setting up the LimitlessLED Wifi Bridge

NOTE: The Wifi brigde is poorly designed, finicky, and generally frustrating to use. This turotial is a result of hours of tinkering. You've been warned.

Connecting your bridge to your WiFi network.

Don't waste your time with running setup through the mobile app (at least with v5 of the WiFi bridge, v6 may be different.)

  • perform a reset of the Bridge - use a paper clip to hold the reset button in until the lights flash.
  • Use a laptop/phone to connect to the wifi network titled milight_XXXXX
  • Navigate to the web portal in a browser: http://10.10.100.254
  • The username is "admin" and the password is "admin"
  • In the "Work Mode" tab, put the bridge into STA/AP Dual mode. STA means the bridge will function as a network client.
  • Save and restart the bridge.

At this point, you can take a break. The bridge takes 3-5 minutes to restart, and you shouldn't try to talk to it until a full restart has happened. If you have trouble connecting to the milight_XXXXX network, give the device more time to restart or move it closer to your device.

  • Go back to your browser and log in again.
  • In STA settings, scan for networks and select your network from the dropdown list.
  • Enter your security details. More than likely, this will be WPA2PSK with AES encryption. Obtain an IP automatically.
  • Restart again.
  • Log into the web portal again. take note of the STA IP on the info tab.

Info Tab

  • Go to the Other Settings tab and make sure the UDP server is listening on it's new STA IP. If it still says 10.10.10.XXX, you'll need to change it to the IP your router assigned.

Change Listening UDP IP

  • Restart again. Bash head against wall.

Hopefully your bridge is now connected your home network. You can log into your router's web console and check out what devices are connected. The device's hostname is "linux". You should configure your router to give the bridge a static IP so that it's IP does not change when you power cycle the bridge.

Connecting bulbs to the bridge.

NOTE in my experience, to sync the bulb, you must power it on, then repeatedly tap the "channel on" button for the correct bulb interface. This is one of the buttons circled in RED on step 16 of the above tutorial.

  • Congrats! Your bulbs are working. Wasn't that MUCH harder than it should have been?

Setting up Home Automation Bridge

This is actually the easy part. Once you are able to control the lights over WiFi using the MiLight app, you should be able to control them with any device that can speak the LimitlessLED UDP Protocol.

NOTE I've had pretty good success with this python project.

My setup involves v5 of the LimitlessLED protocol, found on their terrible developer resource page - search for LimitlessLED v5.0 OpenSource API.

IMPORTANT - I'm using RGBW Bulbs like these. If you are using White-only bulbs, the commands are different. See my protocol analysis.

  • Visit the HAB web portal.
  • Click Manual Add
Field Value
Name Lights
Target Encapsulated
Device Type UDP
Map Type --Please Select--
On URL [{"item":"udp://192.168.1.255:8899/0x420055"}]
Dim URL Haven't gotten this to work yet..
Off URL [{"item":"udp://192.168.1.130:8899/0x410055"}]
  • Save the device
  • Say 'Alexa, discover devices' - she should see one new device
  • Say 'Alexa, turn on the lights'

Troubleshooting

Make sure you can control the lights with your mobile app.

Make sure the host running HAB has a network path to Alexa - try pinging her.

See if you can use this python project to control your lights. If not, you may have configured something incorrectly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment