[Matter] Añadir gestión de Formaldehído

Descripción

Escala CH2O (mg/m3)
0 - 0.099 : Buena
0.1 - 0.299 : Bastante buena
0.3 - 0.499 : Mediocre
0.5+ : Muy mediocre

Hola,

Estoy trabajando en este pedido, pero me surge algunas preguntas. En la escala que había indicado la unidad de medida es en mg/m3, mientras que para las PM10 y PM2.5 es en µg/m3 (en mi opinión es una elección de Dyson para no asustar demasiado, ya que es mejor indicar 0,099 mg que 99 µg ^^).
En fin, veo en el plugin matterbridge-dyson-robot que envía el valor en µg, y es ahí donde me pregunto, ¿cómo sé que es µg?
Por lo tanto, leí la documentación de Matter y aprendí que es el atributo MeasurementUnit el que se encarga de indicar la unidad:

Y me pregunto, ¿qué impide que un dispositivo envíe valores en mg/m3? Podría hacerlo perfectamente si transmite el atributo MeasurementUnit = 3.
Partiendo de ahí, miro en Gladys cómo se transforma este valor recibido y no logro entender en qué momento se mira este atributo MeasurementUnit.
Tengo la impresión de que se dice directamente que las PM10 y PM2.5 recibidas son obligatoriamente µg/m3 o entonces hay algo que no entiendo y me gustaría entender.

Gracias de antemano si alguien puede ayudarme ^^

¡Efectivamente, tienes razón, no está gestionado actualmente!

Tenía la impresión de que en algunos casos, Matter imponía una unidad fija y que cada fabricante debía respetar esta unidad para el envío de datos, y que era el consumidor quien debía gestionar la visualización en otras unidades.

Pero en el caso de las partículas, sí que hay una unidad (disponible también en Matter.js, ver documentación aquí).

¿Crees que podrías hacer una pequeña PR para eso? :slight_smile:

En resumen, hay que añadir una función de conversión en función de la unidad para enviar solo µg/m3 en Gladys

sí, me gustaría verlo :slight_smile: , pero oye, soy principiante en js, pero tengo ganas de aprender ^^

¿Quieres que Gladys muestre siempre estos valores de partículas en µg y no según lo que envíe el dispositivo?

En realidad, siempre hay 2 opciones:

  • O se almacena en la unidad base y luego se convierte en el frontend: es lo que hacemos con las temperaturas, por ejemplo, porque en una misma instancia, podemos tener un usuario que prefiera ver en °F y otro en °C.
  • O se convierte antes de guardar el valor: es lo que hacemos con los colores, por ejemplo, para tener un selector de color unificado independientemente de la marca.

En el caso de las partículas finas, debo admitir que no me doy cuenta de qué tipo de sensores devuelven el valor en PPT o en PM3. ¿Tiene sentido mostrar estos valores en su unidad base o hay que convertirlos?

En realidad, tiene sentido no convertir el valor, pero sí definir la unidad dinámicamente en Gladys :grinning_face_with_smiling_eyes:

¡Si tienes ganas de hacer una PR, ¡será un placer!

Lo estoy mirando pero bueno, ya me cuesta recuperar el atributo measurementUnit :sweat_smile:

Creo que lo he encontrado, os aviso :wink:

¡es genial, podrás hacer PR para el NO2 y los COV también :wink::winking_face_with_tongue:

Desarrollo en curso, por el momento he añadido la posibilidad de elegir la unidad en los dispositivos PM:

He codificado la transco de la unidad Matter hacia la unidad Gladys en automático cuando se añaden dispositivos Matter a Gladys. Hay las 8 unidades como se describe en la documentación de Matter, pero honestamente me sorprendería que alguien use el Becquerel :sweat_smile:, por eso para los dispositivos Matter podremos tener las 8, pero para los dispositivos creados manualmente he puesto solo las 3 unidades (ver captura anterior).
Estoy codificando las pruebas y podré hacerte la PR :wink:

PR para la gestión del atributo Measurement unit en automático:

Gracias por la PR @Nagromdark, es genial :slight_smile:

Solo tengo un pequeño comentario:

Está corregido, gracias

Me parece bien, gracias por la PR :raising_hands:

¿Has probado esta PR con hardware real o al menos con el plugin de ejemplo de Matterbridge?

Lo he probado con el equipo real y también con el plugin example :wink:

Perfecto, está fusionado y saldrá en el próximo lanzamiento de Gladys :wink:

He visto que has anotado « Matter: Añadir sensor de formaldehído », pero este PR solo trata la transformación de la unidad. Tengo otro PR para enviarte sobre la adición de formaldehído.

ay caramba, me he liado con los títulos :stuck_out_tongue:

Aquí está la PR: