We have just updated our LAN protocol documentation to reflect a simplified interpretation of the firmware version. Previously we had described the firmware version as a uint32 where the lower two bytes represented the minor version and the upper bytes represented the major version. This was confusing for many and required an understanding of bit manipulation operators.
We have simplified this by breaking up the firmware version into a minor and major property. There is no binary change to the protocol, so any existing code will work fine.
This will however make it easier for people to interpret the firmware version of the device and make it simpler to add feature flags for new capabilities added in the firmware. For example, the Extended Multi-Zone Messages are available in any firmware version after 2.77.
We have updated our LAN documentation, public protocol definition and products definition.