I'll make a counter offer
I'm down to actively contribute as a tester / debugger during development phase. If anyone is interested in taking up the task, I would be happy to provide solid assistance at all stage, as much as my abilities will allow.
Althoug very inelegant and patchworky, I'm having more success this way at this point:
hyperion => openhab - hue emulation => openhab - lifx bindings => lifx led stips
"On separate note, I am currently planning addIng a general discover method to the LedDevice. So this one could be a good case to fill it with life :)."
==> please consider it and count on me for testing :p
I know the payload is going to be so painful:
- its a raw form of UDP packets I believe
- lifx uses HSBK for color encoding
- and to really make more than a single color change you need to work with "multizone" https://lan.developer.lifx.com/docs/multizone-messages
I'll try making use of the Qt framework, but I lack so much knowledge of C++ that I wont probably wont go very far unless someone can do the actual coding. I cannot even properly load the project in Qt. As of right now, I seem only good at researching/documentation and testing.
@Lord-Grey Hey, many many thanks for your constructive reply and precious help.
Installing QtCreator now, will see if I go the virtualmachine way or not,
for now I'll stick to winscp and compilation on overclock pi 4 .
For sure SmartGit looks useful as well
a) thank you, I'll look into that.
b) I've checked and can confirm that lifx does not work with SSDP
The protocol documentation includes a section on workflows including how to do discovery. Essentially it works like this: Send a Device::GetService packet to the broadcast address (255.255.255.255) on port 56700 Each bulb will respond with a list of service they support as a Device::StateService message. The only service currently documented is UDP which has its type field set to 1. When your application receives one of these messages it should store the sender address and the service port internally. This will constitute the list of LIFX devices that you have found. source: https://community.lifx.com/t/discovering-lifx-bulbs/265 && The basic premise is you create a UDP socket and then throw bytes at it. It’s recommended you only broadcast the GetService to 255.255.255.255 and use the StateService replies to know what devices are on your network. /// Then you “unicast” bytes to specific devices, which is the same as a broadcast, but instead of sending to 255.255.255.255 you send to the specific IP of the device you want to talk to. https://community.lifx.com/t/how-to-send-a-packet-to-a-lifx-bulb-using-the-lifx-lan-protocol/6502
c) I hope I get this far not too long from now
d) will look into this as well
I've found today this git today
I believe it should also help.
Progressing slowly, any help would be appreciated.
Here is where I'm at now:
Have a working dev environment comprised of:
* xbian latest to pi 4
* made sure to be able to compile and run vanilla fork of latest hyperion.ng - all seem to work fine
* tested output daemon - all good
* using atmoorb as a base, started working lifx device.
* simple clone with rename works, got proper entry into web interface page as well (net device)
still very far from anything. Ultimate goal would be to have ability to make use of multi-segment led strips (Lifx Z).
I've joined hyperion's discord, even if I appear offline/hidden ping me if you have some time.
I'm a new happy owner of two "lifx z" led strips & extension and would be really interested in getting this up and running.
I've made a fork and started playing around with the code.....
but I have not coded for 15 years and would definitely need some help to move forward.
Anybody willing to give me a hand and allow me to pick their brain?
Some resources I tried to get knowhow from:
Kodi addon with lifx support
looking at this pull: https://github.com/hyperion-project/hyperion/pull/777/files
I'm under the impression I need to create two files in /leddevice/dev_net (as Lifx is controlled via network)
Not sure where to go from there.
this is probably a lead:
building al lifx packet:
and this as well:
also found a wireshark lua script for debugging: