When receiving StateExtendedColorZones messages, they are 1 byte longer than my program expects.
According to the documentation, the payload part of that message looks like this:
uint16 zones_count uint16 zone_index uint8 colors_count Color colors
…which results in 661 bytes. Together with the 36 byte header, the message should therefore be expected to be 697 bytes long. But what I’m receiving is 698 bytes long.
My suspicion is that
colors_count is either meant to be
uint16, or there is a reserved byte right after it.
Edit: no, that’s not where the extra byte can go, the color values don’t make sense otherwise. Now I just added one reserved byte at the very end of my message definition, below
colors (which in the messages I receive is 0 anyway) and it works for me.
Did I miss something or is this an error in the documentation?