Gladys Assistant 4.85.0 : widget Photo, navigation dans les graphiques, chauffe-eau & HomeKit

Salut à tous !

Voici la 4.85.0 : une version riche côté tableau de bord, appareils, intégrations externes et HomeKit.


Tableau de bord : widget Photo

Nouveau widget Photo pour afficher des images sur le dashboard (idéal sur une tablette murale).

  • Les photos ne sont pas stockées dans Gladys : on configure des URLs
  • Gladys les récupère en local (proxy), donc ça marche aussi avec un NAS et à distance via Gladys Plus
  • Redimensionnement côté serveur pour garder le dashboard fluide
  • Diaporama configurable, légendes optionnelles, mode remplir / contenir

La prochaine étape de ce développement, ce serait de pouvoir avoir des intégrations externe avec des systèmes de stockage de photo type Immich pour pouvoir avoir une source automatique !


Graphiques : navigation dans le temps

Sur le widget graphique, on peut enfin remonter dans le temps pour comparer une période avec les précédentes (demande forum #8514).

  • Boutons précédent / suivant selon l’intervalle choisi (1 h, 24 h, 7 jours…)
  • Indicateur « En cours » en mode live
  • Lien Revenir à maintenant dès qu’on est en historique


Chauffe-eau : nouvelle catégorie d’appareil

Gladys gère enfin correctement les chauffe-eau : plus besoin de bricoler avec des switchs ou le fil pilote chauffage.

Six types dédiés : marche/arrêt, mode, température cible, eau chaude restante, chauffage en cours, boost, avec un jeu de modes générique adapté par appareil.

Merci à @cicoub13 !


Thermostat : modes et état de fonctionnement

La catégorie thermostat gagne des modes (arrêt, chauffage, clim, auto, éco) et des indicateurs d’état (inactif / chauffe / refroidit), avec icônes et libellés FR / EN / DE.

Merci à @sescandell !


Bornes de recharge : statut de connecteur

Nouvelle catégorie Charge Station pour le statut des bornes / connecteurs (disponible, occupé, réservé, indisponible, en panne), alignée sur le modèle OCPP, utile pour les intégrations de bornes EV.

Merci à @sescandell !


Intégrations externes : météo, mises à jour & polish

Plusieurs avancées côté intégrations externes :

  • Fournisseurs météo (B.18) : une intégration externe de type weather peut remplacer OpenWeather. La box météo affiche aussi alertes, UV, lever/coucher du soleil quand c’est dispo
  • Vue « Mises à jour » dans le catalogue + compteur dans le header quand une intégration installée a une update
  • Tags Local / Cloud, ports browsable, noms de ports pour les placeholders du manifeste, options dynamiques dans les champs select, coordonnées de la maison exposées via l’Host API

HomeKit : plus de capteurs exposés

Le bridge HomeKit expose désormais :

  • Capteurs de luminosité, CO, CO₂ et qualité de l’air (dont PM2.5 / PM10)
  • Sirènes comme Switch

Merci à @Dreamthy pour sa première contribution !


Perf & correctifs

  • Migration d’historique appareil (DuckDB) découpée en tranches : moins de RAM et plus de progression visible sur les grosses bases (retour forum sur Netatmo)
  • Lien « jobs » correctement affiché dans l’alerte « trop d’états à supprimer »
  • Alignement du select de conteneur sur la page des logs
  • Retours à la ligne préservés dans le texte de publication d’une intégration

Comme d’habitude, Gladys se mettra à jour automatiquement sous 24 h si vous utilisez Watchtower, sinon un clic dans Paramètres → Système.

Notes de version complètes sur GitHub

Pour les développeurs d’intégrations externes, la version v0.11.0 du SDK est disponible avec toutes ces nouveautés !

Le store et le template JS sont à jour :slight_smile:

Demandez à votre Claude de mettre à jour vos intégrations :wink:

@pierre-gilles Pour le widget météo, as-tu implémenté ce que j’avais fait ou tu veux un PR spécifique ?

Sinon, je teste et j’ajoute ce week-end l’intégration externe Meteo France.

Non, j’ai juste gardé l’existant, je veux bien une PR où tu nous mets à jour le widget existant !

Améliore le design pour tout le monde, l’ancien widget était trop froid et a été conçu à l’ère pré-IA, autant faire profiter du nouveau design à tout le monde :wink:

Merci pour cette mise à jour :slight_smile:

Le retour à la ligne fonctionne parfaitement

Idem pour les mises à jour :

Ok, je m’en occupe ces prochains jours.
As-tu fait l’intégration externe openweather ou veux-tu que je m’en occupe aussi ?

Yes déjà fais, et dispo dans le store :wink:

Bravo à tous pour toutes ces nouveautés et améliorations :heart_eyes:

J’ai une remarque qui me chiffonne presque à chaque mise à jour : les scènes qui ont un Attendre en cours.
Pour faire simple, je mets en route la pompe de la piscine pour une durée que je définis et donc j’ai une action Attendre de X heures. Malheureusement quand survient une mise à jour, et bien mon Attendre saute tout simplement et si je ne fais pas gaffe, la piscine peut tourner 8h au lieu de 3h :frowning:
A part mettre des variables MQTT pour le suivi d’une scène en cours (qu’il faudrait que je fasse), me créer des timestamps que je stocke aussi, et un script au (re)démarrage de Gladys (d’ailleurs ça existe un déclencheur au boot ?), il n’existerait pas un (nouveau ?) quelque chose pour reprendre ces scènes où elles se sont arrêtées ?

Merci pour le retour, et tu mets le doigt sur une vraie limite de l’implémentation actuelle :slight_smile:

Techniquement, le bloc « Attendre » c’est juste un timer en mémoire dans le process Gladys. Rien n’est stocké en base : ni le fait qu’une scène soit en cours, ni où elle en est dans sa liste d’actions. Du coup au moindre redémarrage (mise à jour, reboot, coupure de courant), tout ce qui vient après le Attendre part à la poubelle. C’est pas un bug de ton côté, c’est comme ça aujourd’hui.

Et oui, le déclencheur « Gladys démarre » existe bien, tu le trouveras dans la liste des déclencheurs.

Mais je te conseillerais plutôt de t’organiser pour ne pas en avoir besoin.

Le truc le plus malin dans ton cas, c’est de ne pas faire tenir le chrono par Gladys du tout, mais par la prise elle-même. La plupart du matériel sait faire « allume-toi et coupe-toi tout seul dans X secondes ». Ça dépend de ce que tu as :

  • Shelly, avec l’action Requête HTTP : http://<ip>/relay/0?turn=on&timer=10800 (Gen1) ou http://<ip>/rpc/Switch.Set?id=0&on=true&toggle_after=10800 (Gen2+)
  • Zigbee2MQTT, avec l’action Zigbee2MQTT : sur zigbee2mqtt/<ta_pompe>/set, tu envoies {"state":"ON","on_time":10800,"off_wait_time":0}. Ça marche sur pas mal de prises et modules Tuya/Moes/Aqara.
  • Tasmota : PulseTime 10900; Power ON (au-delà de 111, PulseTime vaut valeur − 100 en secondes)

Ta scène devient une seule action, plus aucun Attendre. Et l’avantage énorme pour une pompe de piscine : même si ton Gladys est coupé ou que le mini-PC ne redémarre pas, la pompe s’arrête quand même.

Si ton matériel ne sait pas faire ça, la deuxième approche c’est un décompte plutôt qu’une attente.

Tu crées une feature nombre via MQTT, genre minutes_restantes_pompe. Ta scène de démarrage allume la pompe et met la valeur à 180. À côté, tu fais une scène de surveillance avec un déclencheur planifié en mode intervalle toutes les 5 minutes, qui récupère la valeur, continue seulement si elle est > 0, la réécrit avec la formule {{0.last_value}} - 5, et si elle tombe à 0 elle coupe la pompe. Le mode formule marche aussi bien sur « Définir une valeur » que dans les conditions, donc tout se fait à la souris.

L’intérêt c’est que ça se répare tout seul : pas besoin de script au boot ni du déclencheur au démarrage, le prochain passage du cron rattrape la situation. Au pire tu perds les 5 minutes du tick en cours.

Et si tu peux t’en contenter, le plus simple reste deux scènes planifiées, départ à 10h et arrêt à 13h. Pour une pompe de piscine c’est souvent suffisant et c’est increvable. Si tu adaptes la durée à la température de l’eau, tu peux même faire 3 scènes d’arrêt (12h, 13h, 14h) avec chacune une condition sur la température, c’est un peu bourrin mais ça marche toujours.

Le principe à retenir : le Attendre est fait pour des délais courts à l’intérieur d’une séquence, genre 2 secondes entre deux commandes ou 30 secondes avant de vérifier un état. Dès que tu dépasses quelques minutes, et surtout quand c’est une action de coupure qui est en jeu, il faut soit déporter le minuteur sur le matériel, soit passer par un état stocké et relu régulièrement.

Ceci dit, ta demande de base reste légitime : persister les Attendre longs pour les replanifier au démarrage, c’est faisable. Si tu veux ouvrir une demande de fonctionnalité dessus, n’hésite pas.

Excellente méthode que je n’avais pas imaginé du tout.
J’ai un NodOn SIN-4-1-21 et il semble que ce soit possible :

On with timed off

When setting the state to ON, it might be possible to specify an automatic shutoff after a certain amount of time. To do this add an additional property on_time to the payload which is the time in seconds the state should remain on.

Additionally an off_wait_time property can be added to the payload to specify the cooldown time in seconds when the switch will not answer to other on with timed off commands.

Support depends on the switch firmware. Some devices might require both on_time and off_wait_time to work

Examples : {"state" : "ON", "on_time": 300}, {"state" : "ON", "on_time": 300, "off_wait_time": 120}.
Et comme je m’envoie un message à la fin du Attendre, il va falloir que je me fasse une scène de supervision qui checke toutes les minutes si le module est allumé ou éteint.

Merci pour l’astuce !

La documentation est à jour sur le site avec toutes les nouveautés de la 4.85 + du SDK v0.11 :

Chez moi ça ne fonctionne pas :

Tu es sur qu’une application que tu as installé propose une mise à jour ?
Si l’application n’est pas installé rien n’est proposé
Si aucune application installé ne propose de mise à jour rien est affiché également

oui j’ai au moins 2 intégrations qui sont à mettre à jour dont la tienne « vigieau » !

@Pierre-Gilles : vu le nombre croissant d’intégrations, une petite coche pour indiquer celle que l’on a installée (surtout quand il y a deux versions) me semblerait utile.

Bonne idée :wink:
Pour l’instant je les mets en favoris pour les retrouver plus facilement

@prohand Problème résolu en vidant le cache ! Par contre je n’ai que 71 intégrations et toi 72 ?

Oui car c’est mon instance dev et j’en installe manuellement :slight_smile:

Super mise à jour, j’ADORE la navigation dans les graphiques !!! :heart_eyes: