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.
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 ?
En gros, il faut rajouter une fonction de conversion en fonction de l’unité pour n’envoyer que du µg/m3 dans Gladys
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
Si tu es motivé pour faire une PR c’est avec plaisir !
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 , 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
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