[Matter] Ajouter la gestion du Formaldehyde

Description

Barème CH2O (mg/m3)
0 - 0.099 : Bonne
0.1 - 0.299 : Assez bonne
0.3 - 0.499 : Médiocre
0.5+ : Très médiocre

Salut,

je travaille sur cette demande mais ça me soulève quelques questions. Dans le barème que j’avais indiqué l’unité de mesure est en mg/m3 alors que pour les PM10 et PM2.5 c’est en µg/m3 (à mon avis c’est un choix de Dyson pour ne pas trop affoler car c’est mieux d’indiquer 0,099 mg que 99µg ^^).
Bref je vois dans le plugin matterbridge-dyson-robot qu’il envoi bien la valeur en µg, et c’est là que je me suis dis mais qu’est-ce que j’en sais que c’est du µg ??
J’ai donc lu la doc matter et j’ai appris que c’est l’attribut MeasurementUnit qui se charge de donner l’unité :

Et je me dis qu’est-ce qui empêche un appareil d’envoyer des valeurs en mg/m3 ? Il pourrait très bien le faire s’il transmet bien l’attribut MeasurementUnit = 3.
Partant de là je regarde dans Gladys comment on transforme cette valeur reçue et je n’arrive pas à comprendre à quel moment on regarde cet attribut MeasurementUnit.
J’ai l’impression qu’on dit en dur que les PM10 et PM2.5 reçus c’est forcément du µg/m3 ou alors il y a un truc qui m’échappe et j’aimerai comprendre.

Merci d’avance si quelqu’un peut m’aider ^^

Effectivement, tu as raison, ce n’est pas géré actuellement !

J’avais l’impression que dans certains cas, Matter imposait une unité fixe et que chaque constructeur devait respecter cette unité pour l’envoi de données, et que c’était au consommateur de gérer l’affichage dans d’autres unités.

Mais dans le cas des particules, il y a bien une unité (disponible dans Matter.js également, voir doc ici).

Tu penses que tu pourrais faire une petite PR pour ça ? :slight_smile:

En gros, il faut rajouter une fonction de conversion en fonction de l’unité pour n’envoyer que du µg/m3 dans Gladys

oui je veux bien regarder :slight_smile: , attention je débute en js mais j’ai envie d’apprendre ^^

Tu souhaites donc que Gladys affiche toujours ces valeurs de particules en µg et non pas selon ce qu’à envoyé l’appareil ?

En fait, il y a toujours 2 options :

  • Soit on stocke dans l’unité de base et ensuite on fait la conversion côté frontend : c’est ce qu’on fait pour les températures par exemple, car sur une même instance, on peut avoir un utilisateur qui préfère voir en °F, et un autre en °C.
  • Soit on convertit avant d’enregistrer la valeur : c’est ce qu’on fait pour les couleurs par exemple, pour avoir un color picker unifié quel que soit la marque.

Dans le cas des particules fines, j’avoue que je ne me rends pas trop compte quel type de capteurs renvoient en fait la valeur en PPT ou en PM3. Est-ce que ça fait sens d’afficher ces valeurs dans leur unité de base, ou faut-il convertir ?

En y réfléchissant, c’est vrai que ça fait peut être plus sens de ne pas convertir la valeur mais par contre de définir l’unité dynamiquement dans Gladys :grinning_face_with_smiling_eyes:

Si tu es motivé pour faire une PR c’est avec plaisir !

Je regarde mais bon je galère déjà à récupérer l’attribut measurementUnit :sweat_smile:

2 « J'aime »

C’est bon je pense avoir trouvé, je vous tiens au courant :wink:

1 « J'aime »

c’est top, tu vas pouvoir faire des PR pour le NO2 et les COV aussi :wink::winking_face_with_tongue:

1 « J'aime »

Dév en cours, pour le moment j’ai rajouté la possibilité de choisir l’unité dans les devices PM :

1 « J'aime »

J’ai codé la transco de l’unité Matter vers l’unité Gladys en auto quand on ajoute des devices Matter à Gladys. Il y a les 8 unités comme décrit dans la doc Matter mais honnêtement ça m’étonnerait que quelqu’un utilise le Becquerel :sweat_smile:, c’est pourquoi pour les devices Matter on pourra avoir les 8 mais pour les devices créés manuellement j’ai mis que les 3 unités (Cf. capture précédente).
Je code les tests et je pourrai te faire la PR :wink:

1 « J'aime »

PR pour la gestion du Measurement unit attribut en auto :

2 « J'aime »

Merci pour la PR @Nagromdark, c’est top :slight_smile:

J’ai juste un petit retour :

C’est corrigé merci

1 « J'aime »

C’est bon pour moi, merci pour la PR :raising_hands:

Tu as testé cette PR avec du vrai matériel / ou au moins le plugin Matterbridge example ?

J’ai testé avec du vrai matos et aussi le plugin example :wink:

1 « J'aime »

Parfait, c’est mergé et ça partira dans la prochaine release de Gladys :wink:

1 « J'aime »

J’ai vu que tu as noté « Matter: Add formaldehyd sensor » mais cette PR ne concerne que la transformation de l’unité. J’ai une autre PR à te soumettre concernant l’ajout de Formaldehyd

ah mince je me suis emmêlé les pinceaux sur les titres :stuck_out_tongue:

Voici la PR: