LIFX Developer Zone

Can't get a LAN API "SetExtendedColorZones" Command To Work

@markh

It’s me again!

So, I got my hands on a set of beams, and I’m now trying to get my library for .net to work properly with them.

But for some inexplicable reason, I cannot get SetExtendedColorZones to work.

I’ve double and triple-checked the method I’m using to generate the packet…and it still just doesn’t work. As usual, I sniffed out some packets from my phone, and then compared what my app was sending versus what the mobile app is sending.

The structure, as far as I can tell…is identical, aside from the date/source/sequence values…which I believe should also be correct.

Would you be so kind as to take a look at the data I’m generating, and kindly let me know if you can see any issues? My next step is to get the photons stuff running on my laptop so I can try stuff there…but I just haven’t had a chance yet.

Below is a JSON representation from my app (the payload is represented twice…but not sent twice), as well as a raw packet in hex representation.

Any advice would be greatly appreciated…I’ve been banging my head against the wall all day trying to figure out what I’m missing…

Beam has seven bars and one corner, for a total of 71 zones. FW says it’s up to date, and the mobile app can control multizone no issue…

{
  "Colors": [
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    },
    {
      "HueScaled": 0,
      "SaturationScaled": 65535,
      "BrightnessScaled": 32767,
      "Kelvin": 3500
    }
  ],
  "ColorCount": 71,
  "ZoneIndex": 0,
  "Duration": 300,
  "Apply": 1,
  "Type": 510,
  "TargetMacAddressName": "D0:73:D5:42:B3:15",
  "Size": 700,
  "AcknowledgeRequired": false,
  "Addressable": true,
  "ResponseRequired": false,
  "Tagged": false,
  "Origin": 0,
  "Sequence": 8,
  "Target": "0HPVQrMVAAA=",
  "AtTime": "1970-01-01T00:00:01.621Z",
  "Payload": {
    "Length": 664,
    "Position": 576,
    "Objects": [
      300,
      1,
      0,
      71,
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      },
      {
        "HueScaled": 0,
        "SaturationScaled": 65535,
        "BrightnessScaled": 32767,
        "Kelvin": 3500
      }
    ]
  },
  "Source": 3926973479
}

2C,01,00,00,01,00,00,47,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,FF,FF,FF,7F,AC,0D,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00

Oh, also…the target color is just “red”, although I think I see an issue with my brightness command…but it should still work.

I can also get the response back from the beam if I set “responseRequired” to true…and it repeats the command back…

When I ask Photons about your hex it tells me the protocol field is 0, so that’s not gonna work :slight_smile:

So if we create a file with your information in it, packet.json

{
  "ack_required": false,
  "apply": 1,
  "colors": [
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    },
    {
      "brightness": 0.49999237048905165,
      "hue": 0.0,
      "kelvin": 3500,
      "saturation": 1.0
    }
  ],
  "colors_count": 71,
  "duration": 300,
  "pkt_type": 510,
  "protocol": 1024,
  "res_required": false,
  "sequence": 8,
  "source": 3926973479,
  "target": "d073d542b315",
  "zone_index": 0
}

and then

python3 -m venv photons
./photons/bin/python -m pip install lifx-photons-core
./photons/bin/lifx unpack -- file://packet.json

I get

bc02001427dc10ead073d542b3150000
00000000000000080000000000000000
fe010000e0930400010000470000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
000000000000000000000000

If I run that through this script we get

high level values
size        : 700
protocol    : 1024
addressable : True
tagged      : False
reserved1   : 00
source      : 3926973479
target      : d073d542b3150000
reserved2   : 000000000000
res_required: False
ack_required: False
reserved3   : 00
sequence    : 8
reserved4   : 0000000000000000
pkt_type    : 510
reserved5   : 0000
duration    : 300.0
apply       : <MultiZoneExtendedApplicationRequest.APPLY: 1>
zone_index  : 0
colors_count: 71
colors      : {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.5, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}
              {"brightness": 0.0, "hue": 0.0, "kelvin": 0, "saturation": 0.0}
              {"brightness": 0.0, "hue": 0.0, "kelvin": 0, "saturation": 0.0}
              {"brightness": 0.0, "hue": 0.0, "kelvin": 0, "saturation": 0.0}
              {"brightness": 0.0, "hue": 0.0, "kelvin": 0, "saturation": 0.0}
              {"brightness": 0.0, "hue": 0.0, "kelvin": 0, "saturation": 0.0}
              {"brightness": 0.0, "hue": 0.0, "kelvin": 0, "saturation": 0.0}
              {"brightness": 0.0, "hue": 0.0, "kelvin": 0, "saturation": 0.0}
              {"brightness": 0.0, "hue": 0.0, "kelvin": 0, "saturation": 0.0}
              {"brightness": 0.0, "hue": 0.0, "kelvin": 0, "saturation": 0.0}
              {"brightness": 0.0, "hue": 0.0, "kelvin": 0, "saturation": 0.0}
              {"brightness": 0.0, "hue": 0.0, "kelvin": 0, "saturation": 0.0}


The raw values
size        : 700
protocol    : 1024
addressable : True
tagged      : False
reserved1   : bitarray('00')
source      : 3926973479
target      : bitarray('0000101111001110101010110100001011001101101010000000000000000000')
reserved2   : bitarray('000000000000000000000000000000000000000000000000')
res_required: False
ack_required: False
reserved3   : bitarray('000000')
sequence    : 8
reserved4   : bitarray('0000000000000000000000000000000000000000000000000000000000000000')
pkt_type    : 510
reserved5   : bitarray('0000000000000000')
duration    : 300000
apply       : 1
zone_index  : 0
colors_count: 71
colors      : bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000111111111111111111111111111111100011010110110000')
              bitarray('0000000000000000000000000000000000000000000000000000000000000000')
              bitarray('0000000000000000000000000000000000000000000000000000000000000000')
              bitarray('0000000000000000000000000000000000000000000000000000000000000000')
              bitarray('0000000000000000000000000000000000000000000000000000000000000000')
              bitarray('0000000000000000000000000000000000000000000000000000000000000000')
              bitarray('0000000000000000000000000000000000000000000000000000000000000000')
              bitarray('0000000000000000000000000000000000000000000000000000000000000000')
              bitarray('0000000000000000000000000000000000000000000000000000000000000000')
              bitarray('0000000000000000000000000000000000000000000000000000000000000000')
              bitarray('0000000000000000000000000000000000000000000000000000000000000000')
              bitarray('0000000000000000000000000000000000000000000000000000000000000000')


So, it’s late, and I’ve been staring at the code I use for packing the bits in the protocol, and I can’t see an issue.

When I try to separate out packing only byte 3 with the values I’d expect, the result is the same as if I used the original code.

Furthermore…all of the other messages I’m sending work? Is there something I’m setting incorrectly with the specific message?

Also, if I look at the raw bytes from my app vs. the mobile, the bytes are the same??

It’s late, and I’m tired, but I imagine you’re on a different TZ than me, so I’d rather post questions now and have something to work on tomorrow. :stuck_out_tongue:

Here’s the code for my lib as-was 2 months ago. I’ve fixed some things since then, but the protocol stuff should be the same…

Project is here:

Encode method is here @ line 106:

And the bit-packing part is @line 162…

I’m not familiar enough with C# or your API to really be able to understand what you could be doing wrong.

I do see though that in the HEX in your original post, the first two bytes is a Uint16 of 300 rather than 700, so you start off with the wrong size too.

You ever get one of those moments where you know something should be working, and you can see it working most of the time, but still the output doesn’t match up with what you’re seeing?

Yeah…my method to output the raw packet data was flawed, causing the weird values in size and proto.

After fixing it - this is the output of the command. Perhaps you can tell me what’s wrong with this one.

How do I “ask photons about a packet”?

bc0200146fdac679d073d542b31500000000000000000208f4de9c6000000000fe0100002c010000010000470000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d
0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000
ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffff
ff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7f
ac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d
0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000
ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d0000ffffff7fac0d000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

I’ll look more when I’m up tomorrow morning. In the meantime you want

lifx unpack -- bc0214006fdac679d073d542b31500000000000000000208f4de9c6000000.....

So, I edited my previous post, as the proto header was borked. Should now be bc020014…

Used your script print_values.py - and it parsed it no problem.

Device responds with an ack or res if requested…still doesn’t change the colors though…

What’s the response to lifx lan:attr d073d542b315 GetVersion and lifx lan:attr d073d542b315 GetHostFirmware ?

I got it… Wasn’t padding res_3 properly.

How are the color zones physically laid out inside the beam?

What’s the maximum recommended “framerate” when sending extended packets to the beams?

How are the color zones physically laid out inside the beam?

What do you mean?

What’s the maximum recommended “framerate” when sending extended packets to the beams?

According to one of the firmware engineers, the refresh period of the second product generation strip (uses third gen hardware, is the only one that currently supports extended multizone) is around 70 ms.

If we add time to process commands and get replies, 100ms seems a good number. And when we take into account network delays, I imagine a packet every 200ms would work well.

I answered my own question on the color zones layout. An initial test showed…weirdness…but I realized it was me, and the zones are just linear across the strip.

As far as the refresh rate…I did some rudimentary testing yesterday where I created a send loop that doubles in frequency every time I hit “enter”. I started with a period of about 7FPS, and was able to reliably send data up to 60 (56) FPS with no issue. Still got more fiddling to do to verify, but by my math, that means more like a packet every 16.66666ms.

Facing a new issue now where the colors just…aren’t right. “All red” is fine, but when I try to do anything complex…it’s not good. Going to try to work out today if that’s because I’m still creating the packet incorrectly and the values are shifting somewhere…or if maybe it’s the conversion from RGB to the HSB colorspace that’s doing it. Or, maybe it’s packing a 360-degree value and two floats into a ushort using the method described in the documentation…

Maybe I’ll test using the setColor vs the setColorRgba method and compare the output…

One random question I’ve been asking myself over and over and OVER again is…WHY HSBK?? WHY GOD? :stuck_out_tongue: I get they’re lights…but dang it…RGB works fine for everybody else, and you can get the same info with only 3x bytes of data…

and the zones are just linear across the strip.

yeap

Still got more fiddling to do to verify, but by my math, that means more like a packet every 16.66666ms.

cool :slight_smile:

With colours. I imagine it’d be easier to use the app to set the strip to a whole colour and then a lifx lan:attr d073d542b315 GetColor to get the hsbk associated with what you choose.

why not rgb?

That decision was made well before my time :slight_smile:

I’m getting there. One thing I’m noticing is that, by comparison to all of my other lighting devices (WLED, WS2812B strips, Hue, Nanoleaf, OpenRGB) is that the saturation is…crazy. Even when I tinker with the kelvin and use different methods of translating from RGB to HSV/HSB or HSL, the colors are far too vibrant by comparison.

For example, in a video with browns, everything else does a close approximation. On the beam, it’s incredibly red.

Question being - can you provide any more documentation on the method I should be using to translate from RGB to HSBK?

Also…brightness. Am I correct in assuming that the brightness of the device is exact to the values in SetExtended?

Meaning - I need to clamp the brightness on the input values to the device, right? I can’t set the brightness and leave it? I know I can use “SetWaveform” to do it with a single bulb…but what about strips?

Question being - can you provide any more documentation on the method I should be using to translate from RGB to HSBK?

The code I use for that can be found in photons/colour.py at main · delfick/photons · GitHub

Which eventually uses this standard library function colorsys — Conversions between color systems — Python 3.9.5 documentation

I’m sure there’d be equivalents in other languages.

A more complicated answer can be found here GitHub - nick-lifx/hsbk_rgb: HSBK<->RGB utility suite for MrMangoo (illustrative only). Turns out colour space math is a bit intense.

Also…brightness. Am I correct in assuming that the brightness of the device is exact to the values in SetExtended?

Meaning - I need to clamp the brightness on the input values to the device, right? I can’t set the brightness and leave it? I know I can use “SetWaveform” to do it with a single bulb…but what about strips?

I’m not sure what you mean by this.

OK. I’ve already got a method that uses the same thing as the python colorsys method, and that doesn’t appear to have much of an effect…so it must be something else.

What I mean by brightness is - for example, on a Hue Bulb, I can go in the Hue app or use the API to specifically say “Set Bulb brightness to 70%”. Afterwards, any colors sent to the bulb, whether streamed or sent once, will be adjusted to 70% of it’s max brightness.

However, on Lifx, it seems as if the “brightness” of the device is directly tied to the color value it is displaying. So, like, if I wanted to keep my lifx bulb set to 50% brightness and set it to red - I would have to take “100% red”, convert to HSBK, and then decrease the brightness of that red value so it’s “100% red * 50% brightness”. Is that correct?

So, I guess this leaves me to try gamma-correcting the color values, or possibly just fiddling with the saturation values. I’ll try to get a video later today to show what I mean…

Afterwards, any colors sent to the bulb, whether streamed or sent once, will be adjusted to 70% of it’s max brightness.

oh yeah, that’s weird.

The brightness for each zone is whatever you set for the brightness portion of the hsbk when you set the hsbk for that zone.

We don’t have an equivalent SetWaveformOptional for zones.

So…here’s something to go back to the firmware team for the beams with, I think…

The saturation is just…weird. If you use the Lifx app to set the beams to 0 degrees of color (red), 50% saturation and 20% brightness…this should be a “close” approximation to brown.

But for some reason, the LEDs in the beams get this info and just go “FULL RED”, but not quite as bright as at full power. And if I set the brightness as low as the app will let me go without turning the beams off…they’re still really bright.

When I’m just running a scene or something on them, it’s not too bad. But if I’m trying to mirror screen colors to them…especially with other devices…it’s very noticeable, especially with any color that should be “pale”.

So, IDK…maybe some kind of slider that lets us adjust the brightness or saturation curves so that it’s less intense? Anything would be appreciated, as I’ve spent a lot of time trying to sort this out before determining that it absolutely, positively is not me. :stuck_out_tongue:

@delfick

Here’s a video showing the difference in saturation between beams and “other” devices.