Bonjour à tous,
J’aimerai vous présenter la nouvelle intégration sur laquelle je travaille enedis-linky
.
Avant toute chose, sachez que @VonOx fait déjà un énorme travail sur la possibilité de connecter le compteur Linky à Gladys via zigbee et je ne peux que vous conseiller d’utiliser zigbee quand ce sera disponible (données locales, en direct… à suivre ici).
Mais je vois quand même quelques avantages à ce module enedis-linky
. Le premier c’est pour les nouveaux arrivants en domotique, ça peut leur permettre de recevoir des données sans avoir à investir dès le début dans du matériel. Aujourd’hui beaucoup de logements sont équipés d’un compteur Linky et Enedis nous met à disposition une API pour récupérer nos données (sous quelques conditions) donc autant en profiter. Le deuxième avantage auquel je pense, c’est le cas où on a un Linky distant par rapport au raspberry (à la cave, à l’extérieur…) ou qu’on souhaite surveiller la consommation d’une autre maison (secondaire, proche âgée…).
À noter tout de même qu’il y a quelques inconvénients à passer par l’API Enedis plutôt que la solution local zigbee.
- peu de type données : la conso journalière (1 valeur pour chaque jour complet), la puissance moyenne par demi-heure (48 valeurs par jour) et la puissance max de la journée (pas encore implémenté dans cette intégration pour l’instant)
- les données ne sont pas en direct, Enedis ne les donne que le lendemain (en général dans la première partie de journée mais jamais à heure fixe). Sachant ça, cette intégration est utile surtout pour les graphes un peu moins pour les scènes (en tout cas compliqué de les utiliser en déclencheurs) puisque tous les relevés sont reçu en même temps
Si le Linky a un historique, la première synchronisation récupère les 3 derniers mois pour la consommation journalière et les 7 derniers jours pour la courbe de puissance. Puis chaque matin on a une tentative de récupération toutes les 30 minutes jusqu’à la récupération des données de la veille. Une fois récupérées, plus aucune requête n’est faite jusqu’au lendemain.
Pour l’équipe de dev, il y a plusieurs points sur lesquels j’aimerai que vous me disiez ce que vous en pensez. Ce sont surtout des problèmes dû au fait que ce sont les données de la veille qu’on reçoit.
Au niveau des états, j’ai ajouté la possibilité de surcharger le created_at
lors de l’enregistrement mais j’ai laissé updated_at
à l’heure de l’enregistrement.
J’avais également des problèmes pour les agrégations, puisque les last_monthly_aggregate
, last_daily_aggregate
, last_hourly_aggregate
sont des dates potentiellement plus récentes que les « nouvelles » valeurs, donc les calculs des agrégations ne se faisaient pas. Lors du poll, je force la mise à jour des dates last_xyz_aggregate
aux premières dates de la nouvelles vagues de données.
Dernier point, les valeurs de puissance est (il me semble) utile surtout pour le graphe 24 heures. Le problème c’est qu’en deuxième partie de journée on a pas encore les données du matin donc on a seulement une partie de l’intervalle, ça fait très vide.
Que penseriez vous d’afficher l’intervalle depuis la dernière valeur agrégée plutôt que depuis l’heure actuelle ? (c’est une proposition je n’ai pour l’instant fait aucun changement dans ce sens)
Sinon pour ceux que ça intéresse, l’intégration utilise le module linky de @bokub (merci à lui) qui est une implémentation JS de l’API d’Enedis.
Pour configurer l’intégration il faut récupérer les tokens d’authentification d’Enedis. Cela se fait sur la passerelle proposé par @bokub https://conso.vercel.app/ en cliquant en bas et accepter les conditions de partage Enedis, puis rendez vous sur la page de l’intégration dans Gladys pour ajouter les tokens récupérés précédemment. On doit passer par cette passerelle car officiellement seul des sociétés peuvent communiquer avec l’API d’Enedis. La passerelle permet de générer les tokens au nom de Bokub Linky
mais seul vous avez réellement ces tokens. Tout est expliqué sur le site, et si vous voulez en être sûr le code de la passerelle est ici linky/server at master · bokub/linky · GitHub
J’en suis aux finitions mais l’essentiel est là, j’espère que ça vous plaira