# Matter: CO2 sensor integration

**URL:** <https://community.gladysassistant.com/t/matter-integration-capteur-de-co2/10235>\
**Category:** Demandes livrées\
**Tags:** matter\
**Created:** [May 25, 2026, 8:50am UTC](https://community.gladysassistant.com/t/matter-integration-capteur-de-co2/10235 "2026-05-25T08:50:17Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![4get9](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/4/dbc845/32.png) [@4get9](https://community.gladysassistant.com/u/4get9)\
**Post date:** [May 25, 2026, 8:50am UTC](https://community.gladysassistant.com/t/matter-integration-capteur-de-co2/10235/1 "2026-05-25T08:50:17Z")

</div>

Hello,

Can CO2 sensor management be added?  
I have an ALPSTUGA unit from IKEA and all measurements are included except this one.

Thanks

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [July 20, 2026, 10:58am UTC](https://community.gladysassistant.com/t/matter-integration-capteur-de-co2/10235/2 "2026-07-20T10:58:15Z")

</div>

Hi @4get9,

I just did the development:

> <https://github.com/GladysAssistant/Gladys/pull/2686>
>
> \### Pull Request check-list
> 
> To ensure your Pull Request can be accepted as fast… as possible, make sure to review and check all of these items:
> 
> \- \[x\] If your changes affect the code, did you write the tests?
> \- \[x\] Are server tests passing with coverage? (\`cd server && npm run coverage\`) — Codecov requires \*\*100% coverage on lines changed in this PR\*\*
> \- \[\] Did Cypress E2E tests pass? (\`npm run cypress:run\` from repo root, if UI changed) — no UI change
> \- \[x\] Is the linter passing? (\`npm run eslint\` on both front/server)
> \- \[x\] Did you run prettier? (\`npm run prettier\` on both front/server)
> \- \[\] If you are adding a new feature/service, did you run the integration comparator? (\`npm run compare-translations\` on front) — no translation change (the \`co2-sensor\` category already has translations)
> \- \[\] Did you test this pull request in real life? With real devices? — tested with mocked Matter cluster clients only; community testing with a real CO2 sensor (e.g. IKEA ALPSTUGA) is welcome
> \- \[\] If your changes modify the API (REST or Node.js), did you modify the API documentation? — no API change
> \- \[\] If you are adding a new features/services which needs explanation, did you modify the user documentation? — not needed
> \- \[\] Did you add fake requests data for the demo mode (\`front/src/config/demo.js\`)? — not needed
> 
> \### Description of change
> 
> Implements the community feature request \[Matter: intégration capteur de CO2\](https://community.gladysassistant.com/t/matter-integration-capteur-de-co2/10235): CO2 measurements from Matter air quality sensors (e.g. IKEA ALPSTUGA) were not exposed in Gladys, while all other measurements of the device were.
> 
> This PR adds support for the Matter \`CarbonDioxideConcentrationMeasurement\` cluster (id \`1037\`) in the Matter service, following the exact same pattern as the existing concentration clusters (PM2.5, PM10, formaldehyde):
> 
> \- \`server/services/matter/utils/convertToGladysDevice.js\`: creates a \`co2-sensor\`/\`decimal\` feature in ppm, using the cluster's \`MinMeasuredValue\`/\`MaxMeasuredValue\` attributes as bounds (fallback 0–10000 ppm when not reported).
> \- \`server/services/matter/lib/matter.listenToStateChange.js\`: subscribes to \`MeasuredValue\` attribute changes and emits new device states.
> \- \`server/services/matter/lib/matter.readInitialDeviceStates.js\`: reads and emits the initial CO2 value when the node connects.
> \- \`server/services/matter/README.md\`: marks the cluster as handled in the supported clusters table.
> 
> The existing \`co2-sensor\` Gladys category (already used by Zigbee2MQTT, Netatmo, Z-Wave) is reused, so the front end (dashboard boxes, history, charts) works without changes.
> 
> Tests are added for the three code paths, including the min/max fallback branch, to keep 100% patch coverage.
> 
> 
> \<div\>\<a href="https://cursor.com/agents/bc-d42e80ad-e217-442f-ba96-88c0c1e4a342"\>\<picture\>\<source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"\>\<source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"\>\<img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"\>\</picture\>\</a\>&nbsp;\<a href="https://cursor.com/background-agent?bcId=bc-d42e80ad-e217-442f-ba96-88c0c1e4a342"\>\<picture\>\<source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"\>\<source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"\>\<img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"\>\</picture\>\</a\>&nbsp;\</div\>
> 
> 
> 
> 
> \## Summary by CodeRabbit
> 
> \* \*\*New Features\*\*
> \* Added support for Matter CO₂ concentration sensors.
> \* CO₂ sensors are now automatically detected and exposed as read-only measurements in parts per million (ppm).
> \* Initial CO₂ readings are imported when devices connect.
> \* Live CO₂ updates are reflected automatically as sensor values change.
> \* Sensors without configured measurement limits use safe default ranges.

This will be available in the next version of Gladys 🙂

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [July 30, 2026, 8:19pm UTC](https://community.gladysassistant.com/t/matter-integration-capteur-de-co2/10235/3 "2026-07-30T20:19:42Z")

</div>

It’s available in Gladys Assistant 4.84:

> [@Gladys Assistant 4.84: External integrations are here rocket](https://community.gladysassistant.com/t/gladys-assistant-4-84-les-integrations-externes-sont-la/10396):
>
> Hello everyone ! I’m really excited to release tonight a version that, I think, will really change the pace of the project’s evolution. External integrations are finally coming to Gladys! They will allow us to enrich the list of compatible devices and services much faster, while allowing everyone to develop and share their own integrations. I explain everything in this article backhand_index_pointing_down

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [July 30, 2026, 8:19pm UTC](https://community.gladysassistant.com/t/matter-integration-capteur-de-co2/10235/4 "2026-07-30T20:19:47Z")

</div>


