Skip to content

eco2 showing up as volatile_organic_compounds_parts using zigbee2mqtt in Home Assistant #37

@AndyHowell

Description

@AndyHowell

I added the aircube.mjs to my zigbee2mqtt configuration. Zigbee2mqtt recognizes the device through the external config, but the eco2 shows up with the wrong description and device class.

VOC details:
Image

ECO2 details:
Image

MQTT Explorer shows I'm getting the values:

{
  "analog_output_10": 60.000003814697266,
  "aqi": 39,
  "eco2": 400,
  "humidity": 54.5,
  "linkquality": 51,
  "temperature": 22.52,
  "voc": 0
}

Looking at the aircube.mjs, it seems like it should do the right thing:

    exposes: [
        e.numeric('eco2', exposes.access.STATE)
            .withUnit('ppm')
            .withDescription('Equivalent carbon dioxide concentration')
            .withValueMin(400)
            .withValueMax(8192),
        e.numeric('voc', exposes.access.STATE)
            .withUnit('ppb')
            .withDescription('Total volatile organic compounds')
            .withValueMin(0)
            .withValueMax(65535),
        e.numeric('aqi', exposes.access.STATE)
            .withUnit('')
            .withDescription('Air Quality Index')
            .withValueMin(0)
            .withValueMax(500),
    ],

What is odd, is the eco2 has the correct units. Its 'ppm' vs the 'ppb' for the voc. Its also getting the right value, ie, 400. That leads me to think that the aircube.mjs is seeing the eco2 correctly.

I've tried deleting the device in zigbee2mqtt, restarting it, and adding it again. The first time I added it, I didn't have the aircube.mjs installed.

I'm using Zigbee2mqtt version 2.10.1. and Home Assistant 2025.5.0

Any ideas?

Thanks, Andy

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