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.
¡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?
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
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?
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 , 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
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.