HTTP API issues with MultiZone/LIFX Z?

Hey experts,

I’ve created a very simple script that issues a single setStates call (with 6 states, each targeting 8 zones on a 6-strip LIFX Z, i.e. each state targets the zones on a single 1m strip) via cURL and I’m getting weird results.

I’ve not yet had a call that sets the entire length. At least one but usually 2-3 of the states will time out, while the rest will give me an OK result.

This is odd, considering the entire strip is obviously online because some of the zones are responding.

Any thoughts?

Here’s the json response so you can see what I’m talking about:

{
  "results": [
    {
      "operation": {
        "selector": "id:d07352XXXXXX|0-7",
        "color": "hue:0 saturation:1.0 brightness:0.91"
      },
      "results": [
        {
          "id": "d07352XXXXXX",
          "status": "timed_out",
          "label": "Test LIFX Z Strip"
        }
      ]
    },
    {
      "operation": {
        "selector": "id:d07352XXXXXX|8-15",
        "color": "hue:33 saturation:1.0 brightness:1.0"
      },
      "results": [
        {
          "id": "d07352XXXXXX",
          "status": "timed_out",
          "label": "Test LIFX Z Strip"
        }
      ]
    },
    {
      "operation": {
        "selector": "id:d07352XXXXXX|16-23",
        "color": "hue:56 saturation:1.0 brightness:1.0"
      },
      "results": [
        {
          "id": "d07352XXXXXX",
          "status": "ok",
          "label": "Test LIFX Z Strip"
        }
      ]
    },
    {
      "operation": {
        "selector": "id:d07352XXXXXX|24-31",
        "color": "hue:134 saturation:1.0 brightness:0.51"
      },
      "results": [
        {
          "id": "d07352XXXXXX",
          "status": "timed_out",
          "label": "Test LIFX Z Strip"
        }
      ]
    },
    {
      "operation": {
        "selector": "id:d07352XXXXXX|32-39",
        "color": "hue:224 saturation:1.0 brightness:1.0"
      },
      "results": [
        {
          "id": "d07352XXXXXX",
          "status": "ok",
          "label": "Test LIFX Z Strip"
        }
      ]
    },
    {
      "operation": {
        "selector": "id:d07352XXXXXX|40-47",
        "color": "hue:292 saturation:1.0 brightness:0.54"
      },
      "results": [
        {
          "id": "d07352XXXXXX",
          "status": "timed_out",
          "label": "Test LIFX Z Strip"
        }
      ]
    }
  ]
}

I’ve also noticed that even though some of the operations report “ok”, the strip doesn’t actually change colors for that selector.

Another run has set 5 of the 6 selectors, but reported 3 of them as timed out (even though the color changed successfully).

Changing it to use “Fast” mode works consistently and unsurprisingly is much, much, much faster.