{"_id":"5c6cdd766a6a220057209a40","project":"5581248904ae5b0d0026289a","version":{"_id":"57fdb17c4defec0e0064228b","project":"5581248904ae5b0d0026289a","__v":2,"createdAt":"2016-10-12T03:43:56.009Z","releaseDate":"2016-10-12T03:43:56.009Z","categories":["57fdb17c4defec0e0064228c","57fdb17c4defec0e0064228d","57fdb17c4defec0e0064228e","57fdb520bcc07b0e00d1ef41"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"2.0.0","version":"2.0"},"category":{"_id":"57fdb17c4defec0e0064228e","project":"5581248904ae5b0d0026289a","__v":0,"version":"57fdb17c4defec0e0064228b","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-06-18T03:15:52.144Z","from_sync":false,"order":3,"slug":"message-types","title":"Protocol Messages"},"user":"57749b725b96cf0e00558ea6","__v":0,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2019-02-20T04:54:14.479Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":999,"body":"LIFX Z/Beam and LIFX Tile devices contain firmware powered effects that can be controlled using the messages mentioned on this page. \n[block:api-header]\n{\n  \"title\": \"Multizone Effects\"\n}\n[/block]\n### MultizonEffectType\n\nThese are the available effect types for multizone devices.\n\n| Name | Value | Description |\n|------|-------|-------------|\n| OFF | 0 | Turn off any running firmware effect |\n| MOVE | 1 | Start a move effect on your device |\n\n### SetMultiZoneEffect - 508\n\nThis messages lets you control a firmware effect on your device. Currently there is only one firmware effect for multizone devices, called MOVE which makes the colors move along your device.\n\n| Field | Type |\n|-------|------|\n| instanceid | unsigned 32-bit integer |\n| type | MultiZoneEffectType |\n| reserved | unsigned 16-bit integer |\n| speed | unsigned 32-bit integer |\n| duration | unsigned 64-bit integer |\n| reserved | 32 bits |\n| reserved | 32 bits |\n| parameters | [8] 32-bit fields |\n\ninstanceid allows your code to identify if the event is yours. Just set this to a random number.\n\nspeed is measured in milliseconds. If the effect is cyclic then this value refers to the millisecond period for a complete animation cycle to occur. If the effect is acyclic then this is the general milliseconds till the next frame transition.\n\nduration is measured in nano seconds and controls for how long the effect lasts.\n\nparameters is 8 32-bit fields in a row and change meaning depending on the type of the effect. For the move effect only the second parameter has meaning:\n\n| Field | meaning |\n|-------|---------|\n| parameter1 | This parameter for internal use only |\n| parameter2 | speed_direction - 0 means towards controller and 1 means away |\n\n### GetMultiZoneEffect - 507\n\nAsks the device to return a StateMultiZoneEffect to tell you the current state of firmware effects on the device\n\n### StateMultiZoneEffect - 509\n\nThis has the same fields as a SetMultiZoneEffect and is returned from a GetMultiZoneEffect or a SetMultiZoneEffect. It describes the current state of the effects on the device.\n[block:api-header]\n{\n  \"title\": \"Tile Effects\"\n}\n[/block]\n### TileEffectType\n\nThese are the available effect types for tiles.\n\n| Name | Value | Description |\n|------|-------|-------------|\n| OFF | 0 | Turn off any running firmware effect |\n| RESERVED | 1 | Currently not implemented |\n| MORPH | 2 | A morph of colors on your tile |\n| FLAME | 3  | A fire effect |\n\n### SetTileEffect - 719\n\nThis messages lets you control a firmware effect on your LIFX Tile. Currently there is only two firmware effects for tiles: MORPH and FLAME.\n\n| Field | Type |\n|-------|------|\n| reserved | 8 bits |\n| reserved | 8 bits |\n| instanceid | unsigned 32-bit integer |\n| type | TileEffectType |\n| speed | unsigned 32-bit integer |\n| duration | unsigned 64-bit integer |\n| reserved | 32 bits |\n| reserved | 32 bits |\n| parameters | [8] 32-bit fields |\n| palette_count | unsigned 8-bit integer |\n| palette | 16 [HSBK](doc:light-messages#section-hsbk) values |\n\ninstanceid allows your code to identify if the event is yours. Just set this to a random number.\n\nspeed is measured in milliseconds. If the effect is cyclic then this value refers to the millisecond period for a complete animation cycle to occur. If the effect is acyclic then this is the general milliseconds till the next frame transition.\n\nduration is measured in nano seconds and controls for how long the effect lasts.\n\nparameters is 8 32-bit fields in a row and change meaning depending on the type of the effect. Note that none of the tile effects currently use these fields.\n\npalette_count is used to say how many colors in the palette field are to be used by the effect. Note that only MORPH uses the palette at this time.\n\npalette is up to 16 hsbk values to be used for the animation. \n\n### GetTileEffect - 718\n\nAsks the device to return a StateMultiZoneEffect to tell you the current state of firmware effects on the device\n\n### StateTileEffect - 720\n\nThis has the same fields as a SetMultiZoneEffect except only one reserved field before instanceid and is returned from a GetTileEffect or a SetTileEffect. It describes the current state of the effects on the device.\n\n| Field | Type |\n|-------|------|\n| reserved | 8 bits |\n| instanceid | unsigned 32-bit integer |\n| type | TileEffectType |\n| speed | unsigned 32-bit integer |\n| duration | unsigned 64-bit integer |\n| reserved | 32 bits |\n| reserved | 32 bits |\n| parameters | [8] 32-bit fields |\n| palette_count | unsigned 8-bit integer |\n| palette | 16 [HSBK](doc:light-messages#section-hsbk) values |","excerpt":"","slug":"firmware-effects","type":"basic","title":"Firmware Effects"}
LIFX Z/Beam and LIFX Tile devices contain firmware powered effects that can be controlled using the messages mentioned on this page. [block:api-header] { "title": "Multizone Effects" } [/block] ### MultizonEffectType These are the available effect types for multizone devices. | Name | Value | Description | |------|-------|-------------| | OFF | 0 | Turn off any running firmware effect | | MOVE | 1 | Start a move effect on your device | ### SetMultiZoneEffect - 508 This messages lets you control a firmware effect on your device. Currently there is only one firmware effect for multizone devices, called MOVE which makes the colors move along your device. | Field | Type | |-------|------| | instanceid | unsigned 32-bit integer | | type | MultiZoneEffectType | | reserved | unsigned 16-bit integer | | speed | unsigned 32-bit integer | | duration | unsigned 64-bit integer | | reserved | 32 bits | | reserved | 32 bits | | parameters | [8] 32-bit fields | instanceid allows your code to identify if the event is yours. Just set this to a random number. speed is measured in milliseconds. If the effect is cyclic then this value refers to the millisecond period for a complete animation cycle to occur. If the effect is acyclic then this is the general milliseconds till the next frame transition. duration is measured in nano seconds and controls for how long the effect lasts. parameters is 8 32-bit fields in a row and change meaning depending on the type of the effect. For the move effect only the second parameter has meaning: | Field | meaning | |-------|---------| | parameter1 | This parameter for internal use only | | parameter2 | speed_direction - 0 means towards controller and 1 means away | ### GetMultiZoneEffect - 507 Asks the device to return a StateMultiZoneEffect to tell you the current state of firmware effects on the device ### StateMultiZoneEffect - 509 This has the same fields as a SetMultiZoneEffect and is returned from a GetMultiZoneEffect or a SetMultiZoneEffect. It describes the current state of the effects on the device. [block:api-header] { "title": "Tile Effects" } [/block] ### TileEffectType These are the available effect types for tiles. | Name | Value | Description | |------|-------|-------------| | OFF | 0 | Turn off any running firmware effect | | RESERVED | 1 | Currently not implemented | | MORPH | 2 | A morph of colors on your tile | | FLAME | 3 | A fire effect | ### SetTileEffect - 719 This messages lets you control a firmware effect on your LIFX Tile. Currently there is only two firmware effects for tiles: MORPH and FLAME. | Field | Type | |-------|------| | reserved | 8 bits | | reserved | 8 bits | | instanceid | unsigned 32-bit integer | | type | TileEffectType | | speed | unsigned 32-bit integer | | duration | unsigned 64-bit integer | | reserved | 32 bits | | reserved | 32 bits | | parameters | [8] 32-bit fields | | palette_count | unsigned 8-bit integer | | palette | 16 [HSBK](doc:light-messages#section-hsbk) values | instanceid allows your code to identify if the event is yours. Just set this to a random number. speed is measured in milliseconds. If the effect is cyclic then this value refers to the millisecond period for a complete animation cycle to occur. If the effect is acyclic then this is the general milliseconds till the next frame transition. duration is measured in nano seconds and controls for how long the effect lasts. parameters is 8 32-bit fields in a row and change meaning depending on the type of the effect. Note that none of the tile effects currently use these fields. palette_count is used to say how many colors in the palette field are to be used by the effect. Note that only MORPH uses the palette at this time. palette is up to 16 hsbk values to be used for the animation. ### GetTileEffect - 718 Asks the device to return a StateMultiZoneEffect to tell you the current state of firmware effects on the device ### StateTileEffect - 720 This has the same fields as a SetMultiZoneEffect except only one reserved field before instanceid and is returned from a GetTileEffect or a SetTileEffect. It describes the current state of the effects on the device. | Field | Type | |-------|------| | reserved | 8 bits | | instanceid | unsigned 32-bit integer | | type | TileEffectType | | speed | unsigned 32-bit integer | | duration | unsigned 64-bit integer | | reserved | 32 bits | | reserved | 32 bits | | parameters | [8] 32-bit fields | | palette_count | unsigned 8-bit integer | | palette | 16 [HSBK](doc:light-messages#section-hsbk) values |