Update Limitlessled/Milight Component V6 Bridge (iBox)

Cool, I ordered a NodeMCUv2+ and NRF24L01 and they should arrive in a couple of weeks, for the price is at least worth a shoot

1 Like

What MQTT functionality are you talking about? Sounds interesting.

So I just bought a v6 bridge to control my white LED panel via HA but no luck.
I had the same experience as you described, the node library did work for me and so did the Milight App but HA sadly failed on me.

Does somebody know how long it usually takes to fix this type of bugs (just a ballpark number)?
If it takes too long I might just use the node library for the time.

What version of HA are you running? 0.45 (released yesterday) should fix some connection bugs, otherwise a restart could also help for older versions.

How do you emulate the bridges on HASS?

  platform: limitlessled
  bridges:
      host: 192.168.1.105
      groups:
      - number: 1
        type: bridge-led
        name: Candeeiro Ricardo
      - number: 1
        name: Sala Mesa
      - number: 2
        name: Sala LED
      - number: 3
        name: Cozinha 1
      - number: 4
        name: Cozinha 2

This is my normal config for my physical v6 hub, how do I add now the virtual created one from ESP??

I followed the instructions from this project by the brilliant Christoper Mullins to setup the emulated bridge on a NodeMcu with an attached NRF24L01 transceiver,

http://blog.christophermullins.com/2017/02/11/milight-wifi-gateway-emulator-on-an-esp8266/

Once you have the firmware running you can access the user interface for the emulated bridge by browsing to the IP of the NodeMcu. There you can create as many hubs as you wish. Each must have a unique ID and port number, pair your lights to each emulated hub by pressing the interface’s pair button within 3 seconds of powering on the light you wish to pair.

Once you have enough hubs/gateways/servers/whatever_you_call_them set up and all your lights paired to one or many groups of one or many servers you configure HASS like this:

light:
  platform: limitlessled
  bridges:
    - host: 192.168.0.11 # IP of my real MiLight iBox2 Bridge
      groups:
        - number: 1
          type: rgbww
          name: Lounge West
        - number: 2
          type: rgbww
          name: Lounge East
        - number: 2
          type: rgbw
          name: Hall One
        - number: 3
          type: rgbw
          name: Hall Two
        - number: 4
          type: rgbw
          name: Hall Three
    - host: 192.168.0.20 # IP of NodeMcu
      version: 6
      port: 8900 # port number I chose when I created first server
      groups:
        - number: 1
          type: rgbw
          name: ghost
    - host: 192.168.0.20 # IP of NodeMcu
      version: 6
      port: 8901 # port number I chose when I created the second server
      groups:
        - number: 1
          type: rgbww
          name: snug 

Notice that the NodeMcu servers have the same IP address but port numbers are different!

I pair one light to one group so I have total flexibility when creating automations and scenes.

2 Likes

oh thank you! just tested and it works like a champ :slight_smile:

I was creating every v6 with port 8899 and every v5 with port 8900 so I was wondering how hass was gonna handle it.

at least now I can pair all my bulbs…

Need some help:
2017-06-05 19:59:29 ERROR (MainThread) [homeassistant.components.light] Error while setting up platform limitlessled
Traceback (most recent call last):
File “/srv/homeassistant/lib/python3.4/site-packages/homeassistant/helpers/entity_component.py”, line 160, in _async_setup_platform
SLOW_SETUP_MAX_WAIT, loop=self.hass.loop)
File “/usr/lib/python3.4/asyncio/tasks.py”, line 372, in wait_for
return fut.result()
File “/usr/lib/python3.4/asyncio/futures.py”, line 277, in result
raise self._exception
File “/usr/lib/python3.4/concurrent/futures/thread.py”, line 54, in run
result = self.fn(*self.args, **self.kwargs)
File “/srv/homeassistant/lib/python3.4/site-packages/homeassistant/components/light/limitlessled.py”, line 109, in setup_platform
version=bridge_conf.get(CONF_VERSION, DEFAULT_VERSION))
File “/home/homeassistant/.homeassistant/deps/limitlessled/bridge.py”, line 103, in init
self._init_connection()
File “/home/homeassistant/.homeassistant/deps/limitlessled/bridge.py”, line 248, in _init_connection
self._socket.recv_into(response)
ConnectionRefusedError: [Errno 111] Connection refused
2017-06-05 20:03:08 WARNING (MainThread) [aiohttp.websocket] Client protocols [‘undefined’] don’t overlap server-known ones ()

Bridge V5

light:
platform: limitlessled
bridges:
- host: 192.168.1.8
groups:
- number: 1
name: Wohnzimmer eins
- number: 2
type: rgbw
name: Wohnzimmer zwei
- number: 3
name: Wohnzimmer drei

emulated_hue:
host_ip: 192.168.1.9
listen_port: 8300

after new raspberry install i got my limitless not to work with hassbian,with limitless remote control everything fine.

greets

Is the indentation correct?

This example configuration shows Name two spaces indented more than number. Number should be indented two spaces after the groups declaration and the group declaration indented two spaces more than host which is two spaces in from platform, and platform two spaces more than light.

# Example configuration.yaml entry
light:
  platform: limitlessled
  bridges:
    - host: 192.168.1.10
      groups:
      - number: 1
        name: Bedroom
      - number: 2
        type: rgbw
        name: Bathroom
    - host: 192.168.1.11
      groups:
      - number: 1
        name: Living Room & Hall
      - number: 1
        type: bridge-led
        name: Bridge Light

To upload your yaml correctly formatted in the forums add four extra spaces to the beginning of each line of your post that contains yaml

changed the indentation

log:

The following errors have been logged this session:

2017-06-06 07:21:37 WARNING (Thread-11) [homeassistant.components.emulated_hue] When targetting Google Home, listening port has to be port 80
2017-06-06 07:21:37 ERROR (MainThread) [homeassistant.components.light] Error while setting up platform limitlessled
Traceback (most recent call last):
File “/srv/homeassistant/lib/python3.4/site-packages/homeassistant/helpers/entity_component.py”, line 160, in _async_setup_platform
SLOW_SETUP_MAX_WAIT, loop=self.hass.loop)
File “/usr/lib/python3.4/asyncio/tasks.py”, line 372, in wait_for
return fut.result()
File “/usr/lib/python3.4/asyncio/futures.py”, line 277, in result
raise self._exception
File “/usr/lib/python3.4/concurrent/futures/thread.py”, line 54, in run
result = self.fn(*self.args, **self.kwargs)
File “/srv/homeassistant/lib/python3.4/site-packages/homeassistant/components/light/limitlessled.py”, line 109, in setup_platform
version=bridge_conf.get(CONF_VERSION, DEFAULT_VERSION))
File “/home/homeassistant/.homeassistant/deps/limitlessled/bridge.py”, line 103, in init
self._init_connection()
File “/home/homeassistant/.homeassistant/deps/limitlessled/bridge.py”, line 248, in _init_connection
self._socket.recv_into(response)
ConnectionRefusedError: [Errno 111] Connection refused
2017-06-06 07:23:51 WARNING (MainThread) [aiohttp.websocket] Client protocols [‘undefined’] don’t overlap server-known ones ()

other tips?

Problem solved: Bridge Version is V.4 NOT V.5

 light:
 platform: limitlessled
 bridges:
 - host: 192.168.1.8
  version: 4
  port: 8899
  groups: 
  - number: 1 
    name: Wohnzimmer 1
  
  - number: 2
    name: Wohnzimmer 2

  - number: 3 
    name: Wohnzimmer 3

works fine !

Haha. Glad you got it sorted.

Hello! Im new here.

I was wondering why do you want to control your mi light bulbs with hass if you can’t even change the color?
I also have milight bulbs and iBox.

Thanks!

Hi,

The question is based on a wrong assumption. Of course you can control the colour of your bulb.

Once the light is on, click on the name of the lamp to open the control the control panel.

There you can control the colour, brightness, …

I also built the emulated bridge and I have a question for you.

Mine work perfectly if controlling one at a time

But with scenes maybe half the lights will get the correct command. I am wondering if you have had any issues with yours. The milight hub worked perfect.

I have mine paired to two emulated ports (4 groups x 2 servers). I wonder if I should repair everything so they each have their own emulated server/port

Hoping someone can help me get this working.

I have established a working emulated bridge, and am able to pair lights and adjust them as desired through the Milight Hub user interface.

My issue is that I cannot sort out how to control any emulated bridge paired lights through Home Assistant.
I have tried it through the Limitless component and with MQTT and mosquitto, but the HA UI buttons never change the light.

The only lights I have are the dual white lights that you can control brightness and temp.

- platform: mqtt
  name: "Office Test Overhead"
  command_topic: "Milight_gw/0x1001/cct/1"

- platform: limitlessled
  bridges:
- host: IP of the emulated bridge node
  port: 8900
  groups:
  - number: 1
    name: office
    type: white

In the hub UI,
I have kept the default format of the MQTT topic pattern
Included the user and password for MQTT
Included the port with the IP of the MQTT server.

Current setup for the lights.

For mqtt you need to use the mqtt json component:

The component you’re using just send 0 and 1 to the command topic ^^

Concerning the limitlessled component, I’m not sure it support the dual white bulb…

I have a few CCT bulbs but I never used them, I will give it a try later today and see if @touliloup is right about the support or not.

I use the emulated bridge with HA for some time now and used the LimitlessLight component for awhile but switched to MQTT because I can keep track of the state with the remotes and the lights don’t turn all out when HA is restarted.

My Limitless component config were like:
This was my physical iBox1 bridge:

  platform: limitlessled
  bridges:
    - host: 192.168.1.115
      groups:
      - number: 1
        type: bridge-led
        name: Bedroom Lamp
      - number: 1
        name: Table
      - number: 2
        name: LED Strip
      - number: 3
        name: Kitchen 1  
      - number: 1
        type: rgbww
        name: Master Bedroom      

And this was from a emulated bridge:

 - host: 192.168.1.112
   version: 6
   port: 8899
   groups:
   - number: 1
     type: rgbww
     name: Master Bedroom

For MQTT heres a example of a working config for me:

# RGB
  - platform: mqtt_json
    name: 'Table'
    state_topic: "milight/updates/0x354A/rgbw/1"
    command_topic: "milight/commands/0x354A/rgbw/1"
    brightness: true
    flash: true
    rgb: true
    optimistic: false
    qos: 0
# RGB-CCT 
  - platform: mqtt_json
    name: 'Master Bedroom'
    state_topic: "milight/updates/0x1/rgb_cct/1"
    command_topic: "milight/commands/0x1/rgb_cct/1"
    optimistic: false
    qos: 0

Hope it helps :slight_smile:

Couldn’t be in doubt for much longer so I went and grab one of my white bulbs and connected it.

I don’t have any physical bridge with me atm and only emulated bridge.
I couldn’t managed to PAIR my white bulb with the emulated bridge set at CCT but they successfully PAIRED as RGB+CCT.

Couldn’t use the LimitlessLed component as “type: white” but worked as “type: rgbww”

  platform: limitlessled
  bridges:
    - host: 192.168.0.258
      version: 6
      port: 8899
      groups:
      - number: 1
        type: rgbww
        name: Master Bedroom

Thanks for the assistance.

I think I understand the concepts a bit better, but i’m still not having any luck getting it to work.
I am unable to control the light and im unable to get state info from the hub

- platform: mqtt_json
  name: 'Office Test'
  state_topic: "milight/updates/0x1001/rgb_cct/1"
  command_topic: "milight/commands/0x1001/rgb_cct/1"
  optimistic: false
  qos: 0  

I understand for the light to receive state information I need to configure an update topic pattern on the hub, yet I cannot seem to save one. The below will not save on the emulated bridge UI.

milight/updates/:device_id/:device_type/:group_id

image

It seems that for the MQTT JSON platform, I need to include the command topic.
Does this need to match just the mqtt_topic_pattern set in the bridge UI or does this need to be established elsewhere?
Is command_topic in HA = MQTT_topic_pattern?

1 Like