Lifesmart Cololight modular lights support

Hi there,

I just received my LifeSmart Cololight modular lights, an alfernative to the very expensive Nanoleaf lights.
Cololight are very good quality for a low price:
http://us.ilifesmart.com/product/detail.html?id=45

No, I have no interest of promoting this product from financial perspective, I’m just impressed with the nice features and very good build quality.
Even my wife likes it, which is normally rejecting any other smart light, but this one looks great :wink:

I’m wandering if support for such devices is been considered for the future?
The lights can be managed via smartphone app therefore equipped with wifi, a parring is necessary so I’m not sure how hard would it be to get to the device integrated into home assistant.

Would be great to have support for this lights in hass, they look great and do have a good price, + it passed the women’s factor, so it is a success :joy:

Thanks!

I am also very happy with the lights, and also waiting for them to be supported by HomeAssistant. :slight_smile:

Same here.
btw I noticed the TCP port 12346 is been opened on the device.
Behind seems to be a nodemcu as microcontroler.
This is the result of my nmap scan:

Starting Nmap 7.70 ( https://nmap.org ) at 2019-03-10 14:55 W. Europe Standard Time

NSE: Loaded 148 scripts for scanning.

NSE: Script Pre-scanning.

Initiating NSE at 14:55

Completed NSE at 14:55, 0.00s elapsed

Initiating NSE at 14:55

Completed NSE at 14:55, 0.00s elapsed

Initiating ARP Ping Scan at 14:55

Scanning 192.168.1.37 [1 port]

Completed ARP Ping Scan at 14:55, 1.80s elapsed (1 total hosts)

Initiating Parallel DNS resolution of 1 host. at 14:55

Completed Parallel DNS resolution of 1 host. at 14:55, 0.01s elapsed

Initiating SYN Stealth Scan at 14:55

Scanning NODE-C547E5 (192.168.1.37) [1 port]

Discovered open port 12346/tcp on 192.168.1.37

Completed SYN Stealth Scan at 14:55, 0.23s elapsed (1 total ports)

Initiating Service scan at 14:55

Scanning 1 service on NODE-C547E5 (192.168.1.37)

Completed Service scan at 14:58, 162.88s elapsed (1 service on 1 host)

Initiating OS detection (try #1) against NODE-C547E5 (192.168.1.37)

Retrying OS detection (try #2) against NODE-C547E5 (192.168.1.37)

NSE: Script scanning 192.168.1.37.

Initiating NSE at 14:58

Completed NSE at 14:58, 5.14s elapsed

Initiating NSE at 14:58

Completed NSE at 14:58, 1.23s elapsed

Nmap scan report for NODE-C547E5 (192.168.1.37)

Host is up (0.041s latency).



PORT      STATE SERVICE VERSION

12346/tcp open  netbus?

| fingerprint-strings: 

|   GenericLines, NULL: 

|     args

|     5c:cf:7f:c5:47:e5

|     fmver

|     1.8.1.4

|     sign

|     7c0e79639b22e563ba6bdea7722709f6

|     model

|     OD_WE_QUAN

|     device

|   GetRequest: 

|     args

|     5c:cf:7f:c5:47:e5

|     fmver

|     1.8.1.4

|     sign

|     f2b3fc700fb6d2a1ab23a524646b8c6b

|     model

|     OD_WE_QUAN

|     device

|   HTTPOptions: 

|     args

|     5c:cf:7f:c5:47:e5

|     fmver

|     1.8.1.4

|     sign

|     fd83bae537081c4392860fd619788f42

|     model

|     OD_WE_QUAN

|     device

|   RPCCheck: 

|     args

|     5c:cf:7f:c5:47:e5

|     fmver

|     1.8.1.4

|     sign

|     605a4f3394f94c5f3b2f19797a6d7f86

|     model

|     OD_WE_QUAN

|     device

|   RTSPRequest: 

|     args

|     5c:cf:7f:c5:47:e5

|     fmver

|     1.8.1.4

|     sign

|     b7d19345f3b42bd8d4b5980006ab6556

|     model

|     OD_WE_QUAN

|_    device

1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :

SF-Port12346-TCP:V=7.70%I=7%D=3/10%Time=5C85176C%P=i686-pc-windows-windows

SF:%r(NULL,A2,"BL\0\0\0\x05\0\0\0\x98\x04\x11\x02id\x04\xb6\xe4\x02\x11\x0

SF:4args\x12\x02\x11\x02sn\x11\x115c:cf:7f:c5:47:e5\x11\x05fmver\x11\x071\

SF:.8\.1\.4\x11\x03sys\x12\x04\x11\x03ver\x04\x02\x11\x02ts\x04\xca\xdd\xa

SF:8\xc8\x0b\x11\x04sign\x11\x207c0e79639b22e563ba6bdea7722709f6\x11\x05mo

SF:del\x11\nOD_WE_QUAN\x11\x03obj\x11\x06device")%r(GenericLines,A2,"BL\0\

SF:0\0\x05\0\0\0\x98\x04\x11\x02id\x04\xb6\xe4\x02\x11\x04args\x12\x02\x11

SF:\x02sn\x11\x115c:cf:7f:c5:47:e5\x11\x05fmver\x11\x071\.8\.1\.4\x11\x03s

SF:ys\x12\x04\x11\x03ver\x04\x02\x11\x02ts\x04\xca\xdd\xa8\xc8\x0b\x11\x04

SF:sign\x11\x207c0e79639b22e563ba6bdea7722709f6\x11\x05model\x11\nOD_WE_QU

SF:AN\x11\x03obj\x11\x06device")%r(GetRequest,A2,"BL\0\0\0\x05\0\0\0\x98\x

SF:04\x11\x02id\x04\xb8\xe4\x02\x11\x04args\x12\x02\x11\x02sn\x11\x115c:cf

SF::7f:c5:47:e5\x11\x05fmver\x11\x071\.8\.1\.4\x11\x03sys\x12\x04\x11\x03v

SF:er\x04\x02\x11\x02ts\x04\xe0\xdd\xa8\xc8\x0b\x11\x04sign\x11\x20f2b3fc7

SF:00fb6d2a1ab23a524646b8c6b\x11\x05model\x11\nOD_WE_QUAN\x11\x03obj\x11\x

SF:06device")%r(HTTPOptions,A2,"BL\0\0\0\x05\0\0\0\x98\x04\x11\x02id\x04\x

SF:ba\xe4\x02\x11\x04args\x12\x02\x11\x02sn\x11\x115c:cf:7f:c5:47:e5\x11\x

SF:05fmver\x11\x071\.8\.1\.4\x11\x03sys\x12\x04\x11\x03ver\x04\x02\x11\x02

SF:ts\x04\xec\xdd\xa8\xc8\x0b\x11\x04sign\x11\x20fd83bae537081c4392860fd61

SF:9788f42\x11\x05model\x11\nOD_WE_QUAN\x11\x03obj\x11\x06device")%r(RTSPR

SF:equest,A2,"BL\0\0\0\x05\0\0\0\x98\x04\x11\x02id\x04\xbe\xe4\x02\x11\x04

SF:args\x12\x02\x11\x02sn\x11\x115c:cf:7f:c5:47:e5\x11\x05fmver\x11\x071\.

SF:8\.1\.4\x11\x03sys\x12\x04\x11\x03ver\x04\x02\x11\x02ts\x04\xf6\xdd\xa8

SF:\xc8\x0b\x11\x04sign\x11\x20b7d19345f3b42bd8d4b5980006ab6556\x11\x05mod

SF:el\x11\nOD_WE_QUAN\x11\x03obj\x11\x06device")%r(RPCCheck,A2,"BL\0\0\0\x

SF:05\0\0\0\x98\x04\x11\x02id\x04\xc0\xe4\x02\x11\x04args\x12\x02\x11\x02s

SF:n\x11\x115c:cf:7f:c5:47:e5\x11\x05fmver\x11\x071\.8\.1\.4\x11\x03sys\x1

SF:2\x04\x11\x03ver\x04\x02\x11\x02ts\x04\x80\xde\xa8\xc8\x0b\x11\x04sign\

SF:x11\x20605a4f3394f94c5f3b2f19797a6d7f86\x11\x05model\x11\nOD_WE_QUAN\x1

SF:1\x03obj\x11\x06device");

MAC Address: 5C:CF:7F:C5:47:E5 (Espressif)

Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port

Device type: specialized|general purpose|VoIP phone|media device

Running (JUST GUESSING): NodeMCU embedded (99%), lwIP 1.4.X (99%), Espressif embedded (98%), Philips embedded (92%), Grandstream embedded (92%), Rigol Technologies embedded (92%), Ocean Signal embedded (91%), Yamaha embedded (90%)

OS CPE: cpe:/o:nodemcu:nodemcu cpe:/a:lwip_project:lwip cpe:/h:philips:hue_bridge cpe:/a:lwip_project:lwip:1.4 cpe:/h:grandstream:gxp1105 cpe:/h:rigol_technologies:dsg3060 cpe:/h:yamaha:rx-v671

Aggressive OS guesses: NodeMCU firmware (lwIP stack) (99%), Espressif esp8266 firmware (lwIP stack) (98%), ESPEasy OS (lwIP stack) (94%), Philips Hue Bridge (lwIP stack v1.4.0) (92%), Grandstream GXP1105 VoIP phone (92%), lwIP 1.4.0 lightweight TCP/IP stack (92%), Rigol DSG3060 signal generator (92%), Ocean Signal E101V emergency beacon (FreeRTOS/lwIP) (91%), Yamaha RX-V671 AV receiver (90%), DTE Energy Bridge (lwIP stack) (90%)

No exact OS matches for host (test conditions non-ideal).

Network Distance: 1 hop

TCP Sequence Prediction: Difficulty=145 (Good luck!)

IP ID Sequence Generation: Incremental



TRACEROUTE

HOP RTT      ADDRESS

1   41.18 ms NODE-C547E5 (192.168.1.37)



NSE: Script Post-scanning.

Initiating NSE at 14:58

Completed NSE at 14:58, 0.00s elapsed

Initiating NSE at 14:58

Completed NSE at 14:58, 0.00s elapsed

Read data files from: C:\Program Files (x86)\Nmap

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .

Nmap done: 1 IP address (1 host up) scanned in 184.27 seconds

       Raw packets sent: 40 (3.268KB) | Rcvd: 37 (2.140KB)

I heard that tuya conponent should support also life smart lights, but can’t getting it running.

I’m not sure if somehow the component is not referring to anoter smart life devices…

I’ve also invested some time in reverse engineering and found a solution to control the Cololight in FHEM. Everything has been documented right here:

https://haus-automatisierung.com/projekt/2019/04/05/projekt-cololight-fhem.html
(sorry, the site is in german but I think you can understand the code)

3 Likes

Any chance of porting this to Home Assistant??

1 Like

+1

I think it will be a great Integration

+1
I hope for a future integration

1 Like

If I don’t mistake Fhem is written in Perl, is it possible that nobody can convert it to Python? The product in my opinion is worth being integrated

I have a solution! You need to send a UDP request to the light, like haus_automation did with fhem. In the Configuration.yaml add this entry:

switch:

  • platform: command_line
    switches:
    light1:
    command_on: echo -n -e “\x53\x5a\x30\x30\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x01\x03\x01\xcf\x35” | nc -u <YOUR_IP> 8900
    command_off: echo -n -e “\x53\x5a\x30\x30\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x01\x03\x01\xce\x1e” | nc -u <Your_IP> 8900
    friendly_name: Cololight

Please replace <Your_IP> to the ip adress of the Cololight
e.g.: “… nc -u 192.168.1.4 8900”
With this you can only turn on or off the Cololight.

Hello.
This is not working for me… :frowning:
I get the switch set up, but nothing happens when operating it…

Same here.
Even if I try to run the commands directly it is hanging for a very long time and no effect on the lights.
Any idea why ?

By the way my device is configure via their cloud service.

Me too. This isn’t working for me…

Did you actually get it to work @TimMakes?

For me it totally works fine!

Whith that exact config?
Could you post a screenshot of the config please? :slight_smile:
Maybe I’ve done som formatting errors…

Now working

switch:
  - platform: command_line
    switches:
      light1:
        command_on: echo -n -e "\x53\x5a\x30\x30\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x01\x03\x01\xcf\x35" | nc -u 192.xxx.xxx.xxx 8900
        command_off: echo -n -e "\x53\x5a\x30\x30\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x01\x03\x01\xce\x1e" | nc -u 192.xxx.xxx.xxx 8900
        friendly_name: Cololight

Thanks for the update.

The command it works if you run it in the command line independently from ha, but if you place it in the config…yaml then doesn’t for me and it blocks all my automatons and lights.
The reason might be: if I run the command in cli, then it stays somehow opened.
I can imagine it that is the case also in ha then a tread will stay blocked and wait to for it to finish…
any way to fire and forget and not wait for the command to finish??

EDIT: My repository is archived. Checkout BazaJayGee66’s fork

I have created a custom component to support the cololight in home-assistant.
Get it at https://github.com/NoedelVreter/homeassistant_cololight

It supports settings brightness, color and effects.

The code is far from perfect so if anyone wants to go ahead and improve it you’re more than welcome.

10 Likes

@NoedelVreter you’re a freaking genius !! :rofl:

It works like a charm!
You should get this one officially integrated in next ha release :wink: