Field types

Simple types

Uint8

A 1 byte positive integer.

Uint16

A 2 byte positive integer.

Uint32

A 4 byte positive integer.

Uint64

An 8 byte positive integer

Int16

A 2 byte negative or positive integer

Float

A 4 byte float

Bytes

An array of bytes

String

A NULL terminated unicode string

Bool

A 1 bit representing true or false

BoolInt

A 1 byte integer where 0 represents false and 1 represents true

Reserved

These are bytes that are reserved for future use. You should always set these to 0.

Structures

Color

This packet represents a single HSBK value. It is used in packets that set a different HSBK value for devices with multiple zones.

hue: Uint16
saturation: Uint16
brightness: Uint16
kelvin: Uint16

Tile

This represents the information for a single device in a chain. It is used by the StateDeviceChain (702) packet

accel_meas_x: Int16
See Tile Orientation
accel_meas_y: Int16
See Tile Orientation
accel_meas_z: Int16
See Tile Orientation
reserved6: 2 Reserved bytes
user_x: Float
See Tile Positions
user_y: Float
See Tile Positions
width: Uint8
The number of zones that make up each row
height: Uint8
The number of zones that make up each column
reserved7: 1 Reserved bytes
device_version_vendor: Uint32
The vendor id of the device (See StateVersion (33))
device_version_product: Uint32
The product id of the device (See StateVersion (33))
reserved8: 4 Reserved bytes
firmware_build: Uint64
The epoch of the time the firmware was created (See StateHostFirmware (15))
reserved9: 8 Reserved bytes
firmware_version_minor: Uint16
The minor component of the firmware version (See StateHostFirmware (15))
firmware_version_major: Uint16
The major component of the firmware version (See StateHostFirmware (15))
reserved10: 4 Reserved bytes

Enums

Services

UInt8

  • 1: UDP
  • 2: RESERVED1
  • 3: RESERVED2
  • 4: RESERVED3
  • 5: RESERVED4

Direction

UInt8

  • 0: REVERSED (moving towards zone 0)
  • 1: NOT_REVERSED (moving away from zone 0)

Waveform

UInt8

  • 0: SAW
  • 1: SINE
  • 2: HALF_SINE
  • 3: TRIANGLE
  • 4: PULSE

MultiZoneApplicationRequest

UInt8

  • 0: NO_APPLY
  • 1: APPLY
  • 2: APPLY_ONLY

MultiZoneEffectType

UInt8

  • 0: OFF
  • 1: MOVE
  • 2: RESERVED1
  • 3: RESERVED2

MultiZoneExtendedApplicationRequest

UInt8

  • 0: NO_APPLY
  • 1: APPLY
  • 2: APPLY_ONLY

TileEffectType

UInt8

  • 0: OFF
  • 1: RESERVED1
  • 2: MORPH
  • 3: FLAME
  • 4: RESERVED2
  • 5: SKY

TileEffectSkyType

UInt8

  • 0: SUNRISE
  • 1: SUNSET
  • 2: CLOUDS

TileEffectSkyPalette

Note: This is not an enum, but a reference for the offsets used to specify different colors in the Sky Effect.

  • 0: SKY
  • 1: NIGHT_SKY
  • 2: DAWN_SKY
  • 3: DAWN_SUN
  • 4: FULL_SUN
  • 5: FINAL_SUN

LightLastHevCycleResult

UInt8

  • 0: SUCCESS
  • 1: BUSY
  • 2: INTERRUPTED_BY_RESET
  • 3: INTERRUPTED_BY_HOMEKIT
  • 4: INTERRUPTED_BY_LAN
  • 5: INTERRUPTED_BY_CLOUD
  • 255: NONE