# Ajout catégorie de fonctionnalité de l'appareil : NO₂, SO₂ et O₃

**URL:** <https://community.gladysassistant.com/t/ajout-categorie-de-fonctionnalite-de-lappareil-no-so-et-o/10516>\
**Category:** Demandes livrées\
**Tags:** in-progress\
**Created:** [Août 10, 2026, 12:40 UTC](https://community.gladysassistant.com/t/ajout-categorie-de-fonctionnalite-de-lappareil-no-so-et-o/10516 "2026-08-10T12:40:30Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![prohand](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/prohand/32/15713_2.png) [@prohand](https://community.gladysassistant.com/u/prohand)\
**Post date:** [Août 10, 2026, 12:40 UTC](https://community.gladysassistant.com/t/ajout-categorie-de-fonctionnalite-de-lappareil-no-so-et-o/10516/1 "2026-08-10T12:40:30Z")

</div>

Bonjour,

Suite à une demande sur l’intégration externe j’ai fais remonter ces 3 nouvelles informations :

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/5/a/5aeb2121d9df0b8bc7cb1e150e8226d6ec2ed7c7.png)

Claude avait effectivement relevé le point bloquant :

> **Le point qui bloquait**
> 
> Le `CLAUDE.md` disait que NO₂, O₃ et SO₂ n’ont pas de catégorie de concentration dans Gladys et que seul leur sous-indice était publiable.

Est-il possible de rajouter ces catégorie de fonctionnalité de l’appareil au même titre que PM10 et PM2.5 svp ? 🙂

Voici les différents seuils donnés par l’IA :

> ### Pour Gladys, je ferais encore plus simple
> 
> Si ton but est de déclencher des scénarios domotiques, je mettrais **4 seuils** :
> 
> **NO₂**
> 
> - 🟢 `< 40 µg/m³`
> - 🟡 `40–100`
> - 🟠 `100–200`
> - 🔴 `> 200`
> 
> **O₃**
> 
> - 🟢 `< 100 µg/m³`
> - 🟡 `100–160`
> - 🟠 `160–240`
> - 🔴 `> 240`
> 
> **SO₂**
> 
> - 🟢 `< 40 µg/m³`
> - 🟡 `40–100`
> - 🟠 `100–300`
> - 🔴 `> 300`

Merci

---

<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:** [Août 10, 2026, 4:26 UTC](https://community.gladysassistant.com/t/ajout-categorie-de-fonctionnalite-de-lappareil-no-so-et-o/10516/2 "2026-08-10T16:26:10Z")

</div>

Demande acceptée

---

<div class="post-metadata">

**Author:** ![prohand](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/prohand/32/15713_2.png) [@prohand](https://community.gladysassistant.com/u/prohand)\
**Post date:** [Août 11, 2026, 7:56 UTC](https://community.gladysassistant.com/t/ajout-categorie-de-fonctionnalite-de-lappareil-no-so-et-o/10516/3 "2026-08-11T07:56:29Z")

</div>

C’est en cours dev 😉

---

<div class="post-metadata">

**Author:** ![prohand](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/prohand/32/15713_2.png) [@prohand](https://community.gladysassistant.com/u/prohand)\
**Post date:** [Août 11, 2026, 8:52 UTC](https://community.gladysassistant.com/t/ajout-categorie-de-fonctionnalite-de-lappareil-no-so-et-o/10516/4 "2026-08-11T08:52:44Z")

</div>

La PR est ici :

> <https://github.com/GladysAssistant/Gladys/pull/2845>
>
> Air quality devices report gaseous pollutant concentrations next to the particul…ate ones, but Gladys could only model PM2.5 and PM10. Add three sibling categories holding the raw mass concentration of NO2, O3 and SO2, with the same plumbing as the particulate categories:
> 
> \- constants: the three categories with their scope comment, and the mass concentration units they accept (mg/µg/ng per cubic meter)
> \- front: icon, English/French/German translations, climate history group, MQTT catalog defaults (µg/m³, 0-1000, read only) and preview values
> \- dashboard badge: a four-level color helper, so the badge turns green / yellow / orange / red on the guideline thresholds of each gas (NO2 40/100/200, O3 100/160/240, SO2 40/100/300 µg/m³)
> \- MQTT: the matching Home Assistant discovery device classes
> \- HomeKit: the NitrogenDioxideDensity, OzoneDensity and SulphurDioxideDensity characteristics, merged into the shared AirQualitySensor service
> \- MCP: the categories join the sensor and history feature lists
> 
> 
> Claude-Session: https://claude.ai/code/session\_01Lvz85g8gzN3eBXRYnBuDGD
> 
> \### Description
> 
> 
> 
> \## Forum
> 
> 
> 
> \### Checklist
> 
> \- \[\] Tests pass: \`cd server && npm run coverage\` (Codecov requires 100% coverage on changed lines) and Cypress (\`npm run cypress:run\`) if the UI changed
> \- \[\] Linter and prettier pass on both front and server (\`npm run eslint\`, \`npm run prettier\`)
> \- \[\] No undocumented breaking change
> 
> 
> 
> 
> 
> 
> \## Summary by CodeRabbit
> 
> \* \*\*New Features\*\*
> \* Added support for NO₂, O₃, and SO₂ air-quality sensors.
> \* Displayed pollutant readings with localized labels, units, icons, and safe/warning/alert color ranges.
> \* Added sensor history and configuration support, including previews and value ranges.
> \* Integrated NO₂, O₃, and SO₂ readings with HomeKit and Home Assistant.
> \* \*\*Tests\*\*
> \* Added coverage for pollutant value conversion and air-quality notifications.

Et le retour de claude à la fin du dev:

> Deux points à connaître
> 
> Zigbee2MQTT n’a pas été câblé : il n’expose pas de propriété standard pour ces gaz, je n’ai pas voulu inventer un nom de clé.  
> Matter non plus : les clusters NitrogenDioxideConcentrationMeasurement etc. sont déjà mappés côté Gladys sur no2-matter-index-sensor (un niveau 0-4, pas une concentration). Les brancher supposerait de lire l’attribut MeasuredValue en plus du LevelValue — faisable, mais c’est un chantier distinct.  
> Le badge compare la valeur brute aux seuils sans convertir l’unité : une feature déclarée en mg/m³ sera mal colorée. C’est le comportement actuel de PM2.5/PM10, je l’ai gardé identique plutôt que de diverger sur trois catégories.

Et c’est testé avec des appareils MQTT 🙂

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/4/b/4b7dc3e5ca43904bf7392799abc72cd1f20e7902.png)

---

<div class="post-metadata">

**Author:** ![prohand](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/prohand/32/15713_2.png) [@prohand](https://community.gladysassistant.com/u/prohand)\
**Post date:** [Août 11, 2026, 2:38 UTC](https://community.gladysassistant.com/t/ajout-categorie-de-fonctionnalite-de-lappareil-no-so-et-o/10516/5 "2026-08-11T14:38:17Z")

</div>

@pierre-gilles  
J’ai corrigé ce que cursor à remonté sur la PR 😉  
Est-ce qu’il y a besoin de corriger également ce que coderabbit à remonté ?

---

<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:** [Août 11, 2026, 3:56 UTC](https://community.gladysassistant.com/t/ajout-categorie-de-fonctionnalite-de-lappareil-no-so-et-o/10516/6 "2026-08-11T15:56:06Z")

</div>

Top !

> [@prohand](#):
>
> Est-ce qu’il y a besoin de corriger également ce que coderabbit à remonté ?

Dis juste à Claude «&nbsp;Il y a des retours sur la PR&nbsp;» dans la conversation où tu as fait le développement, et Claude lit tous les retours, et de lui-même répond aux messages, avise sur les retours à faire, n’implémente que s’il est d’accord avec les retours (tous les retours ne sont pas pertinents, c’est un débat !)

---

<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:** [Août 11, 2026, 4:02 UTC](https://community.gladysassistant.com/t/ajout-categorie-de-fonctionnalite-de-lappareil-no-so-et-o/10516/7 "2026-08-11T16:02:00Z")

</div>

@prohand J’ai regardé et c’est bon pour moi, merci pour la PR ! C’est mergé.

---

<div class="post-metadata">

**Author:** ![prohand](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/prohand/32/15713_2.png) [@prohand](https://community.gladysassistant.com/u/prohand)\
**Post date:** [Août 11, 2026, 4:03 UTC](https://community.gladysassistant.com/t/ajout-categorie-de-fonctionnalite-de-lappareil-no-so-et-o/10516/8 "2026-08-11T16:03:16Z")

</div>

> [@pierre-gilles](#):
>
> Dis juste à Claude « Il y a des retours sur la PR » dans la conversation où tu as fait le développement, et Claude lit tous les retours, et de lui-même répond aux messages, avise sur les retours à faire, n’implémente que s’il est d’accord avec les retours (tous les retours ne sont pas pertinents, c’est un débat !)

Pas de soucis je ferrai ceci la prochaine fois 🙂

> [@pierre-gilles](#):
>
> J’ai regardé et c’est bon pour moi, merci pour la PR ! C’est mergé.

Merci 😉

---

<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:** [Août 14, 2026, 3:18 UTC](https://community.gladysassistant.com/t/ajout-categorie-de-fonctionnalite-de-lappareil-no-so-et-o/10516/9 "2026-08-14T15:18:15Z")

</div>

Je ferme ce post car la fonctionnalité est disponible dans Gladys Assistant 4.86 :

> [@Gladys 4.86 : la plus grosse release de l’histoire du projet rocket](https://community.gladysassistant.com/t/gladys-4-86-la-plus-grosse-release-de-l-histoire-du-projet/10554):
>
> Salut à tous ! Super heureux de sortir Gladys Assistant 4.86. C’est simple, c’est la plus grosse version depuis le début du projet, avec 68 PR fusionnées en une semaine exploding_head C’est juste incroyable, et ça montre le nouveau rythme qu’on peut tenir avec l’IA. L’objectif est maintenant clair : rattraper et dépasser Home Assistant rocket Je vous parle de ces 68 nouveautés ici : Merci à tous les contributeurs !!

---

<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:** [Août 14, 2026, 3:18 UTC](https://community.gladysassistant.com/t/ajout-categorie-de-fonctionnalite-de-lappareil-no-so-et-o/10516/10 "2026-08-14T15:18:19Z")

</div>


