Característica Termostato completa

¡Hola!

Disculpa si soy un novato, pero no entiendo cómo probar este PR. Y sin embargo, al leer la documentación, es exactamente lo que estaba buscando y ¡incluso más! ¿Alguien puede ayudarme?

¡Gracias!

Hay una imagen de prueba llamada willde71/gladys-test:thermostat

Puedes seguir este tutorial para probarla https://community.gladysassistant.com/t/tutoriel-lancer-une-image-docker-de-test/
:warning: probar en otra máquina que no sea tu Gladys normal

He publicado una revisión completa de la PR aquí: https://github.com/GladysAssistant/Gladys/pull/2988#issuecomment-5730802738

Fue Fable 5.1 quien escribió el mensaje, pero pasé 1 hora con él para redactarlo :wink:

Sí, lo he visto, gracias por la respuesta completa.
Me pongo con ello para responder a los puntos lo antes posible.

Buenas noches,
Quería probar la funcionalidad del termostato (que, por cierto, es una excelente idea).
Por lo tanto, instalé la imagen willde71/gladys-test:latest y el contenedor /gladys-thermostat-test se ha lanzado correctamente.

Sin embargo, no encuentro la integración « Termostato » entre « Telegram » y « TP-Link » como se menciona en el mensaje de @Will_71 del 27 de febrero. ¿Es normal?

La imagen que has tomado no es buena, la imagen es: willde71/gladys-test:thermostat

Con la imagen, está mi integración:

@cicoub13 me he permitido editar tu mensaje porque la imagen que mencionaste era falsa

Hola @Will_71,

¡Es un trabajo excelente! Acabo de probarlo con la integración externa Saunier Duval. Dejo la parte de regulación a la aplicación oficial, por lo que la integración del termostato se utiliza en modo « Termostato real (el dispositivo regula) ». La configuración es sencilla y clara, no es necesario leer la documentación, todos los elementos de configuración son claros.

Al usarlo, todo funciona bien. El control de temperatura, el apagado del termostato.

La funcionalidad no permite pasar al modo « programación ». ¿Sería posible añadirlo? (consulte el modo automático propuesto por la integración Saunier Duval, en la parte superior derecha de la imagen a continuación)

Vale, gracias por tu respuesta.

Para tu modo automático, primero echaré un vistazo a la lista de correcciones de la PR.

Luego veré qué puedo hacer. ¿En qué consiste exactamente el modo de programación automática?

El modo automático corresponde al modo planificación que se define en la aplicación Saunier Duval.

@pierre-gilles, he (Claude) publicado una respuesta en la PR. Tan pronto como esté bien para ti, lo lanzo a las modificaciones.

Hola,

Quise probar en un Raspberry Pi 3B+ para no usar mi máquina de producción.

Obtengo esto:

No se encontró la imagen ‹ willde71/gladys-test:thermostat › localmente
thermostat: Descargando de willde71/gladys-test
docker: no hay coincidencias para linux/arm/v7 en las entradas de la lista de manifiestos

normal, ya que la imagen generada no es para esta arquitectura
La imagen es para:
image

¡Muchas gracias! La imagen funciona en mi casa. ¡Solo queda probarla!

Sí, eso es lo que yo había entendido.

Antes de tu respuesta, borré la tarjeta SD y puse Bookworm de 64 bits.

La instalación se está realizando en este momento.

Gracias @Will_71

@pierre-gilles, pues hoy he avanzado en relación con tu comentario sobre la PR.

Las tres decisiones

Decisión 1 — preset y modo en las características. Hecho. Tipo THERMOSTAT.PRESET en el núcleo, enum schedule/frost/away/eco/night/comfort, off fuera de los presets. El termostato virtual tiene cuatro características, el externo solo preset. Toda la capa t_variable eliminada, con su verificación de propiedad, su postDelete y su ruta /state/.

Una discrepancia de forma, para validar: propusiste last_value_string. Es imposible — device-feature-categories.md reserva las cadenas para el tipo text/select, y normalizeSupportedOptions las rechaza en todas partes. El enum es por lo tanto entero y append-only, como THERMOSTAT_MODE y WATER_HEATER_MODE.

Decisión 2 — un solo camino de escritura. Hecho. Todo pasa por POST /device_feature/:selector/value. Las rutas setpoint/, state/:variable_key y apply-schedules han desaparecido, con el guardián de propiedad de cada una. El controlador pasa de 13 a 9 rutas; selectPreset de 5 escrituras a 1.

Decisión 3 — puntos de conmutación, vinculados a la casa. Esquema hecho como se especificó: las tres tablas, la unicidad por casa, la clave primaria en device_id solo, las cascadas. detachSchedule eliminado, current/next calculados en el lado del servidor.

Una divergencia en la entrada, para discutir. El almacenamiento sigue siendo en puntos. Pero el editor hace ingresar un inicio y un final, convertidos en puntos al guardar. En uso en una instalación real, la entrada punto por punto resultó impracticable: un punto único colorea toda la semana, y cerrar un rango supone entender que hay que colocar un segundo. Netatmo y Tado almacenan bien puntos — pero sus editores manipulan bloques con un inicio y un final, y convierten al guardar. El modelo de almacenamiento y el modelo de entrada no son el mismo objeto.

Los dos pequeños puntos

Barra de presets visible bajo la bandera en un termostato programado ✓
Hold «hasta el próximo punto de conmutación» por defecto, duración fija si THERMOSTAT_MANUAL_DURATION está puesto ✓

El error en los termostatos externos

Confirmado por lectura del código, corregido, no reproducido en el material. La marca se conserva ahora y se compara en lugar de consumirse: un informe idéntico sigue siendo nuestro sin importar cuántos haya. Una prueba repite tres veces el mismo informe.

Dos más de la misma familia, encontrados al implementar: el apagado escribía el valor de consigna antes del modo — un termostato en COOLING se veía pedir 7 °C; y el listener window-open ignoraba los termostatos externos, por falta de un interruptor para buscar.

Mañana haré pruebas en esta versión modificada y pondré a disposición una imagen para que todos puedan probar.

¡Gracias por los comentarios @Will_71!

He lanzado a Claude en una gran sesión de pruebas reales, y ha publicado todos estos hallazgos en la PR: https://github.com/GladysAssistant/Gladys/pull/2988#issuecomment-5856669255

¡He visto gracias, voy a relanzar a Claude sobre esto!

Asegúrate de usar Claude Opus 5.5 para corregir, no tiene nada que ver con Opus 5 :smiley:

Sí, tkt, estoy en Opus 5.5…ahora está trabajando duro.

@pierre-gilles, he subido los parches.