Ever-so-slightly different Eglo/AwoX bulbs show up misconfigured in HA

I have purchased two of the same (purportedly) Zigbee smart light bulbs. The bulbs are the Eglo Connect.Z 12235 bulbs, this is confirmed by the print on the bulbs, however this print does also in itself differ ever-so-slightly between the bulbs, hinting to them being from different revisions, perhaps:

Bulb 1 (left):
A60 220-240V ~50/60Hz E27 6W 38mA 806lm 2200-6500K 12235 128649 24174c

Bulb 2 (right):
A60 E27 220-240V~50/60Hz 6W 50mA 700lm/806lm 2200K-6500K 12235 128649 21044c

The only actionable difference above (besides what seems to be the serial number) is the amperage and brightness designation. Crucially, both bulbs were marketed on the box and, as can be seen, on the bulb as “tunable white” bulbs capable of outputting light temperatures of 2200K to 6500K.

I have got both of these bulbs from the same shop, but at different times (though, only a few days apart). I don’t have the boxes but AFAICR they were the same product.

The issue:

Bulb 1 is detected as AwoX ESMLFzm_w6_TW and works AFAICT as it should. Bulb 2, however, is detected as AwoX TLSR82xx and in the user interface shows up as an bulb with adjustable light temperature output configurable between 2200K and 4000K(!). Again, the bulb, according to the printed specifications on the bulb itself should be capable of 6500K cold whites.

When I set both bulbs to 4000K there is a visible color temperature difference between the two. However, when I set the color temp slider to roughly the same value (min/max/in-between) the bulbs seem to produce visually the same/very similar light output, so it seems like this might be a HA/user interface/backend issue that lists the wrong values in the UI but sets the temperature on the bulb correctly. Needless to say this discrepancy makes automation really onerous as one needs to account for the bug when specifying the temperature value in a script.

I have tried to dig for more information but the only difference I could find is some subtle differences in the device signatures (from the Manage zigbee device panel):

Visual diff of the two descriptors: see second post

The full descriptors as text

Bulb 1 (left column):

{
  "node_descriptor": {
    "logical_type": 1,
    "complex_descriptor_available": 0,
    "user_descriptor_available": 0,
    "reserved": 0,
    "aps_flags": 0,
    "frequency_band": 8,
    "mac_capability_flags": 142,
    "manufacturer_code": 4417,
    "maximum_buffer_size": 66,
    "maximum_incoming_transfer_size": 66,
    "server_mask": 10752,
    "maximum_outgoing_transfer_size": 66,
    "descriptor_capability_field": 0
  },
  "endpoints": {
    "1": {
      "profile_id": "0x0104",
      "device_type": "0x010c",
      "input_clusters": [
        "0x0000",
        "0x0003",
        "0x0004",
        "0x0005",
        "0x0006",
        "0x0008",
        "0x000a",
        "0x0300",
        "0x1000",
        "0xfc57"
      ],
      "output_clusters": [
        "0x0006"
      ]
    },
    "3": {
      "profile_id": "0x128f",
      "device_type": "0x010c",
      "input_clusters": [
        "0x0004",
        "0xff50",
        "0xff51"
      ],
      "output_clusters": [
        "0xff50",
        "0xff51"
      ]
    },
    "242": {
      "profile_id": "0xa1e0",
      "device_type": "0x0061",
      "input_clusters": [],
      "output_clusters": [
        "0x0021"
      ]
    }
  },
  "manufacturer": "AwoX",
  "model": "ESMLFzm_w6_TW",
  "class": "zigpy.device.Device"
}

Bulb 2 (right column):

{
  "node_descriptor": {
    "logical_type": 1,
    "complex_descriptor_available": 0,
    "user_descriptor_available": 0,
    "reserved": 0,
    "aps_flags": 0,
    "frequency_band": 8,
    "mac_capability_flags": 142,
    "manufacturer_code": 4417,
    "maximum_buffer_size": 66,
    "maximum_incoming_transfer_size": 66,
    "server_mask": 10752,
    "maximum_outgoing_transfer_size": 66,
    "descriptor_capability_field": 0
  },
  "endpoints": {
    "1": {
      "profile_id": "0x0104",
      "device_type": "0x010c",
      "input_clusters": [
        "0x0000",
        "0x0003",
        "0x0004",
        "0x0005",
        "0x0006",
        "0x0008",
        "0x0300",
        "0x1000",
        "0xfc57"
      ],
      "output_clusters": [
        "0x0006"
      ]
    },
    "3": {
      "profile_id": "0x128f",
      "device_type": "0x010c",
      "input_clusters": [
        "0xff50",
        "0xff51"
      ],
      "output_clusters": [
        "0xff50",
        "0xff51"
      ]
    }
  },
  "manufacturer": "AwoX",
  "model": "TLSR82xx",
  "class": "zigpy.device.Device"
}

Any help would be appreciated in:

  • How do I find out more? How to translate the differences in signature into human-understandable properties, look for other clues, etc.
  • Does this seem to be a Home Assistant issue? An upstream Zigpy issue? Firmware issue? Something else?
  • Any way to force HA to correctly list the light values for this device?


(the diff that didn’t make it into the toplevel post)