# Zigbee: Capteur de qualité de l'air "Smart Air House keeper"

**URL:** <https://community.gladysassistant.com/t/zigbee-capteur-de-qualite-de-lair-smart-air-house-keeper/8131>\
**Category:** Configuration\
**Created:** [Mai 3, 2023, 2:16 UTC](https://community.gladysassistant.com/t/zigbee-capteur-de-qualite-de-lair-smart-air-house-keeper/8131 "2023-05-03T02:16:15Z")\
**Posts on this page:** 7\
**Page:** 1

<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:** [Mai 3, 2023, 2:16 UTC](https://community.gladysassistant.com/t/zigbee-capteur-de-qualite-de-lair-smart-air-house-keeper/8131/1 "2023-05-03T02:16:16Z")

</div>

Hello @AlexTrovato !

J’ai acheté un capteur de qualité de l’air Zigbee (Smart Air Housekeeper), pour surveiller la qualité de l’air chez moi parce qu’à Bangkok c’est pas fou en ce moment 😃

 ![IMG_1557](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/c/c8b7f3a4b01b70a5c595ca9b629ecf31fbc9d38f.jpeg)

Côté Zigbee2mqtt, tout est reconnu :

 ![Screenshot 2023-05-03 at 09.12.18](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/4/4534b4edb1a6ccf7a6a4df1b3a0140a98f9c2f8c.png)

Le state envoyé JSON :

 ![Screenshot 2023-05-03 at 09.12.28](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/5/55d26f1192580ede3043a1641ac36135a8f8bb97.png)

Maintenant, dans Gladys je n’ai pas le PM2.5 ni le formaldehyd pour l’instant :

 ![Screenshot 2023-05-02 at 13.27.25](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/5/55ab24a99be1ee5987e4f7baa6bcea026ae6aebc.png)

Ce serait quoi la marche à suivre pour ajouter ça proprement à l’intégration Zigbee2mqtt ?

Je peux le faire moi même mais je voulais ton retour 🙂

---

<div class="post-metadata">

**Author:** ![AlexTrovato](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/alextrovato/32/10705_2.png) [@AlexTrovato](https://community.gladysassistant.com/u/AlexTrovato)\
**Post date:** [Mai 3, 2023, 10:05 UTC](https://community.gladysassistant.com/t/zigbee-capteur-de-qualite-de-lair-smart-air-house-keeper/8131/2 "2023-05-03T10:05:47Z")

</div>

Ce n’est pas très compliqué, mais il faut le savoir.

Déjà, il faut être certain que la catégories/le type existent dans Gladys.

* * *

Il est conseillé de partir de la page de ton device [TuYa TS0601\_smart\_air\_house\_keeper control via MQTT | Zigbee2MQTT](https://www.zigbee2mqtt.io/devices/TS0601_smart_air_house_keeper.html), puis de regarder le détail de l’«&nbsp;expose&nbsp;» pour ta feature (nous ne gérons pas les options) :

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

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/7/77cd22a1a3233aacfa315e9178b2649d7d2c615c.png)

Ici, tu peux voir que ta feature est de type «&nbsp;numeric&nbsp;», que le nom de son attribut est `formaldehyd`, et tu as même son unité `µg/m³`.

* * *

Côté service zigbee2mqtt, les features sont découpées par type de valeur (voir fichiers dans le folder `server/services/zigbee2mqtt/exposes`) :

- binary
- numeric
- enum → liste de valeurs
- composite → composition «&nbsp;complexe&nbsp;»

Puis, dans chacun de ces fichiers, tu as différents attributs dans un objet «&nbsp;complexe&nbsp;» :

- type : le type z2m
- writeValue : la manière de transformer une valeur Gladys vers z2m
- readValue : la manière de tranformer une valeur de z2m vers Gladys
- feature : les valeurs par défaut pour les features de ce type
- **names** : le mapping entre l’attribut z2m et la feature Gladys

Dans ton cas, c’est l’attribut «&nbsp;names&nbsp;» qui t’intéresse.  
Dans celui-ci, tu trouveras des sous-objets, organisés de la sorte :

- clé = attribut z2m
- valeur = objet
  - feature = la feature Gladys correspondant à l’attribut z2m (category / type sont les minimum à renseigner)

Les informations `read_only` et `has_feedback` sont déterminées à partir de l’attribut `access` de l’expose.  
Les informations `min` / `max`, `unit` sont déterminées à partir des attributs du même nom de l’expose.

Les `unit` peuvent être génériques, à ajouter dans ce fichier `server/services/zigbee2mqtt/utils/features/mapUnit.js`.

Toute surcharge ajoutée dans pour le mapping de ta feature peut être forcée en ajoutant l’attribut `forceOverride: true` à la feature définie (cf `linkquality` du fichier `numeric`). Avec cette option, les attributs calculés «&nbsp;génériquement&nbsp;» seront surchargés s’ils sont définits dans ton mapping.

* * *

Je pense que tu as toutes les informations pour ajouter un mapping de feature «&nbsp;basique&nbsp;».

Pour les cas complexes (enum ou composite), ce sera d’autres explications plus détaillées.

* * *

Dis moi si tu t’en sors avec ça @pierre-gilles

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [Mai 3, 2023, 10:07 UTC](https://community.gladysassistant.com/t/zigbee-capteur-de-qualite-de-lair-smart-air-house-keeper/8131/3 "2023-05-03T10:07:42Z")

</div>

C’est magnifiquement expliqué

---

<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:** [Mai 4, 2023, 3:50 UTC](https://community.gladysassistant.com/t/zigbee-capteur-de-qualite-de-lair-smart-air-house-keeper/8131/4 "2023-05-04T03:50:53Z")

</div>

C’est très clair @AlexTrovato, merci d’avoir pris le temps 🙂

Je pense que ce message peut-être gardé quelque part si jamais on a des développeurs qui veulent nous aider à intégrer plus d’appareils Zigbee !

---

<div class="post-metadata">

**Author:** ![cce66](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/c/8797f3/32.png) [@cce66](https://community.gladysassistant.com/u/cce66)\
**Post date:** [Mai 4, 2023, 10:16 UTC](https://community.gladysassistant.com/t/zigbee-capteur-de-qualite-de-lair-smart-air-house-keeper/8131/5 "2023-05-04T10:16:21Z")

</div>

@pierre-gilles  
en faire un petit tuto serait bien car il vrai que c’est la partie manquante/frustrante pour voir si on peut aider car on a pas forcement le temps de devoir parcourir tout le forum pour recueillir par-ci par-là les infos nécessaires alors que ceux qui ont les connaissances nécessaires peuvent à moindre frais et à moindre temps partager leurs connaissances à travers un tuto et ensuite cela démultiplie les possibilités de dév par d’autres ! Le savoir ne vaut que quand il est partagé 😉

---

<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:** [Mai 5, 2023, 2:49 UTC](https://community.gladysassistant.com/t/zigbee-capteur-de-qualite-de-lair-smart-air-house-keeper/8131/6 "2023-05-05T02:49:36Z")

</div>

2 messages ont été scindés en un nouveau sujet : [Est-ce que mon onduleur est compatible Zigbee2mqtt?](https://community.gladysassistant.com/t/est-ce-que-mon-onduleur-est-compatible-zigbee2mqtt/8142)

---

<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:** [Juin 9, 2023, 2:53 UTC](https://community.gladysassistant.com/t/zigbee-capteur-de-qualite-de-lair-smart-air-house-keeper/8131/7 "2023-06-09T02:53:09Z")

</div>


