Skip to content

[Custom sensor] Failed to configure reporting #10831

@Kampi

Description

@Kampi

I´m using the latest Zigbee2MQTT version and made some modifications to support a self-made Zigbee sensor that contains VOC, IAQ, and CO2 measurements. For this, I´ve added

    msBeelightIAQ: {
        ID: 6666,
        attributes: {
            measuredValue: { ID: 0, type: enums_1.DataType.UINT16 },
            minMeasuredValue: { ID: 1, type: enums_1.DataType.UINT16 },
            maxMeasuredValue: { ID: 2, type: enums_1.DataType.UINT16 },
            tolerance: { ID: 3, type: enums_1.DataType.UINT8 },
        },
        commands: {},
        commandsResponse: {},
    },
    msBeelightVOC: {
        ID: 6667,
        attributes: {
            measuredValue: { ID: 0, type: enums_1.DataType.UINT16 },
            minMeasuredValue: { ID: 1, type: enums_1.DataType.UINT16 },
            maxMeasuredValue: { ID: 2, type: enums_1.DataType.UINT16 },
            tolerance: { ID: 3, type: enums_1.DataType.UINT8 },
        },
        commands: {},
        commandsResponse: {},
    },
    msBeelightCO2: {
        ID: 6668,
        attributes: {
            measuredValue: { ID: 0, type: enums_1.DataType.UINT16 },
            minMeasuredValue: { ID: 1, type: enums_1.DataType.UINT16 },
            maxMeasuredValue: { ID: 2, type: enums_1.DataType.UINT16 },
            tolerance: { ID: 3, type: enums_1.DataType.UINT8 },
        },
        commands: {},
        commandsResponse: {},
    },

to clusters.js and

function BeeLight_iaq(args = {}) {
    return numeric({
        name: "BeeLight_iaq",
        cluster: "msBeelightIAQ",
        attribute: "measuredValue",
        reporting: { min: "5_MINUTES", max: "1_HOUR", change: 10 },
        description: "Measured IAQ value",
        unit: "",
        scale: 1,
        access: "STATE_GET",
        ...args,
    });
}
function BeeLight_co2(args = {}) {
    return numeric({
        name: "BeeLight_co2",
        cluster: "msBeelightCO2",
        attribute: "measuredValue",
        reporting: { min: "5_MINUTES", max: "1_HOUR", change: 100 },
        description: "Measured CO2 value",
        unit: "ppm",
        scale: 1,
        access: "STATE_GET",
        ...args,
    });
}
function BeeLight_voc(args = {}) {
    return numeric({
        name: "BeeLight_voc",
        cluster: "msBeelightVOC",
        attribute: "measuredValue",
        reporting: { min: "5_MINUTES", max: "1_HOUR", change: 5 },
        description: "Measured VOC value",
        unit: "ppm",
        scale: 1,
        access: "STATE_GET",
        ...args,
    });
}

to modernExtend.js.

I use this external converter

import * as m from "zigbee-herdsman-converters/lib/modernExtend";

export default {
    zigbeeModel: ["BeeLight_v2"],
    model: "BeeLight_v2",
    vendor: "Kampi",
    description: "Zigbee-based Light and Environment Sensor (https://github.com/Kampi/BeeLight)",
    extend: [m.BeeLight_iaq(), m.BeeLight_co2(), m.BeeLight_voc(), m.battery(), m.illuminance(), m.temperature(), m.pressure(), m.humidity()],
};

But Z2M throws this error when adding my device to the network:

[2025-11-23 13:10:04] error:    z2m: Failed to configure '0x86d79ac5bae41fa3', attempt 4 (Error: ZCL command 0x86d79ac5bae41fa3/10 msBeelightVOC.configReport([{"minimumReportInterval":300,"maximumReportInterval":3600,"reportableChange":5,"attribute":"measuredValue"}], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"writeUndiv":false}) failed (Status 'FAILURE')

So the reporting for VOC doesn´t work correctly, but I can´t figure out why, because IAQ and CO2 are working without issues. And I´m not sure if this is a Z2M or firmware-related issue.

How can I debug this issue properly?

You can find the modifications here.

Or the complete project here

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions