¡Hola a todos! ![]()
El proyecto Netatmo vuelve a empezar. Antes de reanudar el desarrollo de la integración de las cámaras (la antigua PR #2032, cerrada automáticamente por inactividad — un nuevo tema dedicado llegará muy pronto), hemos decidido empezar por sanear el servicio actual: auditoría completa del historial del servicio, seguida de una serie de correcciones específicas.
Resultado: 4 PR, todas probadas y validadas en condiciones reales en mi instalación (termostato, una docena de válvulas, relés, estación meteorológica y sus módulos — varios dispositivos deliberadamente sin tensión, lo que, por cierto, reveló un bonito error
).
Las 4 PR (en el orden de merge recomendado)
1. #2620 — Descubrimiento de dispositivos sin tensión
para mergear primero
Un solo módulo sin tensión en tu casa (por ejemplo, el relé de una bomba de calor apagada fuera de temporada de calefacción) era suficiente para congelar completamente la página de descubrimiento (obligación de recargar la página), con un dispositivo llamado « undefined ». Estos módulos ahora se reconstruyen correctamente desde la API (nombre, habitación), se muestran con un mensaje explícito « Dispositivo inalcanzable… (código: 6) », se marcan como fuera de línea y siguen siendo registrables — sus valores se recuperarán tan pronto como se vuelvan a alimentar.
2. #2617 — Los valores cero ya no se pierden
0 mm de lluvia, 0 °C, viento del sector norte (0°), ráfaga a 0 km/h… se trataban como valores « ausentes » (reemplazados por un dato de respaldo potencialmente diferente, o emitidos como estados vacíos). Esto se ha corregido: un cero es un valor real, y ningún estado fantasma se registra cuando el dato está realmente ausente.
3. #2618 — Robustez de la conexión
- una consigna de termostato que falla ya no hace que el servicio se bloquee en silencio: el fallo ahora se propaga y se registra correctamente (logs del servidor + estado del servicio visible en las páginas de la integración). Cabe señalar que el panel de Gladys aún no muestra los fallos de comando — es una limitación general del núcleo de Gladys (arquitectura asíncrona de las acciones), esta PR establece el prerrequisito para que un futuro retorno visual sea posible;
- el token de acceso se actualiza al 80% de su vida útil (antes: justo al vencimiento, con una ventana de token muerto);
- los valores de los dispositivos se recuperan inmediatamente después de la conexión OAuth (antes: hasta 2 minutos de espera);
- fin de las funcionalidades llamadas « Mínimo en undefined » para los módulos sin habitación.
4. #2619 — Refactor interno (basado en #2617)
Los 8 archivos de actualización duplicados se reemplazan por una única tabla declarativa: -370 líneas de código, sin cambios de comportamiento (toda la suite de pruebas pasa sin modificar un solo valor esperado). Es principalmente la base que hará que la adición de los futuros tipos de dispositivos — las cámaras — sea mucho más simple.
Calidad
Cubierta de pruebas al 100% en todo el código afectado, listas de verificación completadas, comentarios de CodeRabbit tratados (3 corregidos, el resto descartados con justificación).
@pierre-gilles todo está listo para revisión
Orden de merge recomendado: #2620 → #2617 → #2618 → #2619 (la #2620 está incluida en las otras 3 ramas porque es indispensable para probarlas; una vez fusionada, sus diferencias se reducirán en consecuencia. La #2619 está apilada sobre la #2617).
Continuará en el próximo episodio: la reanudación de las cámaras Netatmo, con un tema dedicado ![]()
