Mi-Light controller for Mysensors
-
@n1ck1355
sorry for the delay. Here is what I learned from https://hackaday.io/project/5888-reverse-engineering-the-milight-on-air-protocolBasically, the mi controller will receive text string and convert them into HEX format and send it to the bulb. The text string should be formatted as the following (+ added for easy of reading, no '+' in the actual command):
ID + color + brightness + button code + seq
The ID is the ID of the bulb to be controlled, it is six byte in ASCII but will be converted into 3 byte HEX before sending to the bulb.
color, brightness and button code are each 2 byte in ASCII and will be converted into 1 byte HEX and send to bulb.
Seq is 2 byte in ASCII but it appears that you can just use "00".To change color, you need to send a color code (e.g.: "00"=purple, "1B"=red, "40"=yellow,e tc) and using button code "OF".
To change back to white, you use "04" as color code and "13" as button code.The detailed button code definition can be found here:
https://cdn.hackaday.io/images/1224221432724803073.jpgHope this helps.
-
Thank you @ted :)
i already played with it and can turn the bulbs on/off. i will play around with your
information to make the other funktions work.But what i see is that you cannot e.g. dim the bulbs softly from say 100% to 20% cause
that would be more commands behind each other. But the node must reset itself after
each command by calling _Begin() and that takes some time..
any suggestions to resolve that? -
Thank you @ted :)
i already played with it and can turn the bulbs on/off. i will play around with your
information to make the other funktions work.But what i see is that you cannot e.g. dim the bulbs softly from say 100% to 20% cause
that would be more commands behind each other. But the node must reset itself after
each command by calling _Begin() and that takes some time..
any suggestions to resolve that? -
@n1ck1355
my only solution is to use two radios, one receives command from the gateway and the other sending command to the bulbs. it might be doable with just 1 arduino by using softSPI.@ted said:
@n1ck1355
my only solution is to use two radios, one receives command from the gateway and the other sending command to the bulbs. it might be doable with just 1 arduino by using softSPI.I don't see why you would need SoftSPI for that ? It should just need some change for CE and CSN pins for the NRF that is used to send data to the milights. I will try to find time to check that this week.
-
I just tried out openhab2, would it be easier controling the bulbs from openhab2 or do I still to do alot of "coding" on my own?
-
Hello, few months have passed and I finally had a look at the code from @Jason-Brunk
I made a MiLightBulb class with methods to set on/off, set brightness level, set color and set animation. It still needs improvements as brightness is not working, some colors are a bit off and I didn't test animation yet but it's starting to take shape and I can use it from RGB light control in domoticz.I have connected 2 nrf24 also, using pins 7&8 for the one sending MiLight messages instead of 9&10 and it running fine as expected, no use to call begin() all the time: much more reactive.
I'll publish the code as soon as I have time to finish and clean up. -
Great news @Nca78
-
any updates? I have a couple milight bulbs ready to test :)
-
any updates? I have a couple milight bulbs ready to test :)
@Jason-Brunk sorry I received my PCBs for Livolo switches so these will have my priority at the moment. And we're still in the lunar new year holidays here, not much time available.
-
Totally understand. That's another project I am interested in :)
-
Hi
I have read through this thread fully and the concept look great. I am confused as to the hardware that is required thought. I have a mysensors gateway connetcted to wifi and some sensors setup and working on Home Assistant. What do I need to build to implement this solution, and what would I have to install in HA.
Thanks for any help
Laurie -
Hello,
is this thread still alive ?
I am on a Raspberry Pi 3 an i have connected an nrf radio.PiGateway or PiGatewaySerial are both working and also openmilight_pi is compiled and ready.
My Problem is:
In the first post its said to send multiple On commands to the milight to pair it.
This shall work even without the original remote controller.But how ?
How to use the Gateway or openmilight to send a general on command ?
I cannot see it from the hackaday page. Everywhere the ID is needed. Which i dont have when using only Pi, nRF and a milight rgb box to controll a strip.Please can someone light me up ???
-
Hello,
is this thread still alive ?
I am on a Raspberry Pi 3 an i have connected an nrf radio.PiGateway or PiGatewaySerial are both working and also openmilight_pi is compiled and ready.
My Problem is:
In the first post its said to send multiple On commands to the milight to pair it.
This shall work even without the original remote controller.But how ?
How to use the Gateway or openmilight to send a general on command ?
I cannot see it from the hackaday page. Everywhere the ID is needed. Which i dont have when using only Pi, nRF and a milight rgb box to controll a strip.Please can someone light me up ???
-
Hello, I'm testing my MiLight shield for NModule, and so far it's working well, so I'll post some code soon.
Even without the NModule and MiLight controller shield it will be possible to use the same wiring to build one. -
Hi.
is this thread still alive?Can I use this to solve my problem?
This is the problem:- I want to control my pool lights (controlled by RGB-FUT037 from milight - 2.4ghz) using the original Mi-Light Wall Panel Controller T3 - which sends 2.4ghz... but both are in different floors. Fut037 is inside que pool's machine house and the Wall Panel is on Gourmet's Balcony.
What I need:
- An arduino node receives the code from Wall Panel using maybe a NRF24L01 module, then send to another arduino node through wifi (NodeMCU / ESP8266), which finally, reproduces the code using another NRF24L01, reaching the FUT037.