Feature Thermostat complète

Bonjour,

Désolé si je noobe mais je ne comprend pas comment on fait pour tester cette PR ? Et pourtant à lire la doc c’est tout ce que je cherche et même mieux ! Quelqu’un peut m’aider ?

Merci !

Il y a une image de test qui s’apelle willde71/gladys-test:thermostat

Tu peux suivre ce tutoriel pour la tester https://community.gladysassistant.com/t/tutoriel-lancer-une-image-docker-de-test/
:warning: à tester sur une autre machine que ton Gladys normal

J’ai posté une review complète de la PR ici : https://github.com/GladysAssistant/Gladys/pull/2988#issuecomment-5730802738

C’est Fable 5.1 qui a écrit le message, mais j’ai pris 1h avec lui pour l’écrire :wink:

Oui je l’ai vu, merci du retour complet.
Je me met dessus pour répondre aux points dès que possible.

Bonsoir,
Je voulais tester la fonctionnalité Thermostat (qui au passage est une excellente idée!).
J’ai donc installée l’image willde71/gladys-test:latest et le conteneur /gladys-thermostat-test est bien lancé.

Par contre je ne trouve pas dans les intégrations « Thermostat » entre « Telegram » et « TP-Link » comme mentionné dans le message de @Will_71 le 27 février . Est-ce normal?

L’image que tu as prise n’est pas bonne, l’image est: willde71/gladys-test:thermostat

Avec l’image, il y a bien mon intégration:

@cicoub13 je me suis permis d’éditer ton message car l’image que tu as mentionné était fausse

Bonjour @Will_71,

C’est du super boulot ! Je viens de tester avec l’intégration externe Saunier Duval. Je laisse la partie régulation à l’application officielle donc l’intégration Thermostat est utilisée en mode « Thermostat réel (le device regule) ». La configuration est simple et claire, pas besoin de lire la doc tous les éléments de paramétrage sont clairs.

A l’usage, tout fonctionne bien. Le contrôle de température, l’arrêt du thermostat.

La fonctionnalité ne permet pas de passer en mode « programmation ». Est-ce que ce serait possible de l’ajouter ? (cf. mode auto proposé par l’intégration Saunier Duval, en haut à droite de l’image ci-dessous)

Ok merci de ton retour.

Pour ton mode auto je vais déjà voir pour la liste des corrections que de la PR.

Ensuite je regarderai ce que je peux faire. Le mode auto programmation consiste a quoi exactement ?

Le mode auto correspond au mode planning qui est défini dans l’application Saunier Duval.

@pierre-gilles, j’ai (Claude a) posté une réponse sur la PR. Dès que c’est OK pour toi je le lance sur les modifs.

Bonjour,

J’ai voulu tester sur un raspberry pi 3B+ pour ne pas utiliser ma machine de prod.

J’obtiens ça :

Unable to find image ‹ willde71/gladys-test:thermostat › locally
thermostat: Pulling from willde71/gladys-test
docker: no matching manifest for linux/arm/v7 in the manifest list entries

normal car l’image généré n’est pas pour cette architecture
L’image est pour:
image

Top merci l’image fonctionne chez moi. Y a plus qu’à tester!

Yes, c’est ce que j’avais cru comprendre.

Avant ta réponse, j’ai effacé la carte sd et mis Bookworm 64 bits.

L’installation s’effectue en ce moment.

Merci @Will_71

@pierre-gilles, du coup j’ai avancé aujourd’hui par rapport à ton retour sur la PR.

Les trois décisions

Décision 1 — preset et mode sur des features. Fait. Type THERMOSTAT.PRESET dans le cœur, enum schedule/frost/away/eco/night/comfort, off sorti des presets. Le thermostat virtuel porte quatre features, l’externe porte preset seul. Toute la couche t_variable supprimée, avec son check d’ownership, son postDelete et sa route /state/.

Un écart de forme, à valider : tu proposais last_value_string. C’est impossible — device-feature-categories.md réserve les chaînes au type text/select, et normalizeSupportedOptions les rejette partout ailleurs. L’enum est donc entier et append-only, comme THERMOSTAT_MODE et WATER_HEATER_MODE.

Décision 2 — un seul chemin d’écriture. Fait. Tout passe par POST /device_feature/:selector/value. Les routes setpoint/, state/:variable_key et apply-schedules ont disparu, avec le garde d’ownership de chacune. Le contrôleur passe de 13 à 9 routes ; selectPreset de 5 écritures à 1.

Décision 3 — points de bascule, rattachés à la maison. Schéma fait comme spécifié : les trois tables, l’unicité par maison, la clé primaire sur device_id seul, les cascades. detachSchedule supprimé, current/next calculés côté serveur.

Une divergence sur la saisie, à discuter. Le stockage reste en points. Mais l’éditeur fait saisir un début et une fin, converties en points à l’enregistrement. À l’usage sur une installation réelle, la saisie point par point s’est révélée impraticable : un point unique colore toute la semaine, et fermer une plage suppose de comprendre qu’il faut en poser un second. Netatmo et Tado stockent bien des points — mais leurs éditeurs font manipuler des blocs avec un début et une fin, et convertissent à l’enregistrement. Le modèle de stockage et le modèle de saisie ne sont pas le même objet.

Les deux petits points

Barre de presets visible sous la bannière sur un thermostat planifié ✓
Hold « jusqu’au prochain point de bascule » par défaut, durée fixe si THERMOSTAT_MANUAL_DURATION est posé ✓

Le bug sur les thermostats externes

Confirmé par lecture du code, corrigé, non reproduit sur matériel. La marque est désormais conservée et comparée au lieu d’être consommée : un rapport identique reste le nôtre quel qu’en soit le nombre. Un test répète trois fois le même rapport.

Deux autres de la même famille, trouvés en implémentant : l’arrêt écrivait la consigne avant le mode — un thermostat en COOLING se voyait demander 7 °C ; et le listener window-open ignorait les thermostats externes, faute de switch à chercher.

Demain je fais des tests sur cette version modifiée et je mettrai à dispo une image pour que tout le monde puisse tester.

Merci pour les retours @Will_71 !

J’ai lancé Claude sur une grosse session de test en réel, et il a publié toutes ces trouvailles sur la PR : https://github.com/GladysAssistant/Gladys/pull/2988#issuecomment-5856669255

J’ai vu merci, je vais relancer Claude dessus!

Passe bien à Claude Opus 5.5 pour corriger, ça n’a rien à voir avec Opus 5 :smiley:

Oui, tkt, je suis bien en Opus 5.5…la il travaille dur.

@pierre-gilles, j’ai poussé les correctifs.