This is a StateLocation message payload:
payload = [123, 119, 23, 235, 63, 249, 234, 65, 47, 96, 92, 123, 89, 204, 143, 188, 79, 102, 102, 105, 99, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 91, 41, 2, 122, 82, 20]
location = [b for b in struct.unpack("B"*16, payload[0:16])]
label = "".join([chr(b) for b in struct.unpack("b"*32, payload[16:48])])
updated_at = struct.unpack("Q", payload[48:56])[0]
Payload:
Location : [123, 119, 23, 235, 63, 249, 234, 65, 47, 96, 92, 123, 89, 204, 143, 188]
Label : Office
Updated At : 1464366978551197952
Am I getting the correct values? Why is location a byte string? Am I supposed to keep it like that or convert it to something else for consumption?