In my experience, when I researched some of the official forums some time ago, there was no public documentation of the protocols. I still have to use the Android app to onboard a bulb (which will fail if you forget to deactivate mobile data on your phone). Then, I was pretty satisfied using lifxlan in Python (https://github.com/mclarkk/lifxlan)