# 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:** 1\
**Showing post:** 2

<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

---

_[View the full topic](https://community.gladysassistant.com/t/zigbee-capteur-de-qualite-de-lair-smart-air-house-keeper/8131)._
