Intégration domotique Sinapsi Alfa, gratuite et open source

Non officiel : Sinapsi Alfa (compteurs italiens) en Modbus TCP local : puissance, index.
Intégration non officielle, sans lien avec Sinapsi. Elle lit le Sinapsi Alfa, le boîtier qui lit les compteurs électriques italiens 2G (et, s'il y en a un, le compteur de production) par la « Chain 2 », par son serveur Modbus TCP local : sans cloud, sans compte, sans clé. Lecture seule : la seule requête envoyée est « lire des registres de maintien » (fonction Modbus 3), une lecture toutes les 30 secondes au plus.
Jamais testé avec un vrai appareil : elle a été construite à partir de l'intégration Home Assistant ha-sinapsi-alfa (Alessandro Del Prete, MIT) et de sa carte des registres. La documentation Sinapsi des registres pour le firmware actuel n'a pas été trouvée : les adresses sont celles de cette intégration, les mêmes dans un autre projet indépendant. Les retours sont les bienvenus.
Ce que vous obtenez
Un appareil, Sinapsi Alfa. Ses fonctions apparaissent selon ce que l'Alfa montre (pas de fonctions de production sans données de production, pas de fonctions d'injection avant le premier kWh injecté) :
| Fonction | Nature |
|---|---|
| Puissance du logement | capteur d'énergie, W |
| Puissance prélevée | réseau, puissance prélevée, W |
| Puissance injectée | réseau, puissance injectée, W |
| Puissance produite | production, W |
| Énergie prélevée (index) | index d'énergie, kWh |
| Énergie injectée (index) | réseau, énergie injectée, kWh |
| Énergie produite (index) | index de production, kWh |
| Puissance prélevée, moyenne du quart d'heure (W) | capteur simple |
| Puissance injectée, moyenne du quart d'heure (W) | capteur simple |
| Tranche horaire (1 = F1 ... 6 = F6) | capteur simple |
| Avis de coupure | capteur simple, 1 = avis |
| Coupure dans (s) | capteur simple, secondes |
Les noms des fonctions sont en anglais dans Gladys (« Home power », « Power drawn », « Energy drawn (index) »…).
- Puissance du logement = puissance prélevée + puissance produite - puissance injectée. Sans données de production (voir plus bas), elle n'est envoyée que pour un logement qui n'a jamais injecté (c'est alors la puissance prélevée).
- L'énergie prélevée alimente le suivi énergétique de Gladys (consommation et coût) ; l'énergie produite alimente la production. L'énergie injectée n'est comptée ni comme consommation ni comme production.
- Les trois index sont des totaux à vie. Ils sont publiés au plus une fois par minute et vérifiés avant, chacun par sa garde : une valeur à 0 n'est jamais envoyée ; toute baisse, même de 1 Wh, ou un saut plus grand que ce qui a pu passer (la « puissance plausible la plus haute » de la configuration, 30 kW par défaut, au-dessus de tout contrat domestique italien, sur le temps écoulé depuis la dernière valeur) est retenu (la dernière valeur acceptée est renvoyée) et affiché dans l'état de l'intégration. Si c'est juste (un nouveau compteur, une remise à zéro, un autre Alfa), cliquez deux fois sur Accepter l'index retenu (voir Boutons). Enregistrer la configuration ne l'accepte jamais. Un index retenu le reste après un redémarrage.
- La tranche horaire est un nombre de 1 à 6 (F1 à F6) ; une autre valeur n'est pas envoyée.
- L'avis de coupure vaut 1 tant que le compteur annonce une coupure (trop de puissance prélevée), 0 sinon : une heure à 0, 0xFFFFFFFE ou 0xFFFFFFFF (ou toute valeur commençant par 0xFFFF) vaut « pas d'avis », comme certains compteurs le donnent. Coupure dans donne les secondes restantes quand le compteur les donne (elle n'est plus mise à jour une fois l'avis terminé). L'état affiche aussi l'heure de la coupure, en UTC, ou dit qu'elle est déjà passée ; un avis daté à plus d'un jour avant ou après maintenant est un avis ancien ou faux : 0, dit dans l'état (la durée d'un avis sur le compteur n'est pas encore connue).
- Les totaux journaliers par tranche (registres 30 à 65) ne sont pas lus.
Valeurs qui ne sont pas envoyées
- L'Alfa démarre : après un redémarrage, ses registres valent 0 pendant quelques minutes. Une lecture dont l'énergie prélevée ou la tranche horaire vaut 0 n'envoie rien du tout (l'état dit que l'Alfa démarre). Quand la tranche ne peut pas être lue, seule l'énergie prélevée le repère (l'état le dit).
- Non disponible : une puissance de 65535 W, un total dont le premier mot vaut 0xFFFF (4294901,76 kWh et plus, dont 4294967295 Wh).
- Données de production : la production est envoyée dès que son total est au-dessus de 0. Sans total de production alors que de l'énergie a été injectée, la production et la puissance du logement ne sont pas envoyées et l'état le dit. Un total de production inférieur à l'énergie injectée (un compteur de production remplacé, deux compteurs qui diffèrent) est quand même envoyé, et l'état le dit.
- Valeurs figées : quand aucun registre de l'Alfa n'a changé depuis 30
minutes, rien n'est envoyé tant qu'aucun ne bouge (l'état le dit). Cet âge
est gardé dans
/datad'un redémarrage à l'autre.
Un Alfa par intégration
L'Alfa ne donne pas de numéro de série en Modbus : l'intégration lit un Alfa, et son appareil est celui-là quelle que soit l'adresse. Si vous mettez un autre Alfa derrière l'adresse, ses totaux ne suivent pas les anciens : les gardes les retiennent jusqu'à ce que vous les acceptiez, sauf si le nouveau total tombe dans la marge (la puissance plausible la plus haute fois le temps écoulé depuis la dernière valeur : après une longue absence de l'Alfa, une marge plus grande).
Un seul client Modbus à la fois
L'Alfa ne sert qu'un client Modbus TCP. L'intégration ouvre la connexion pour chaque lecture (quatre requêtes, l'une après l'autre, jamais deux à la fois) et la ferme aussitôt : elle n'occupe l'Alfa qu'une fraction de seconde toutes les 30 secondes. Un autre client Modbus connecté en permanence (une configuration Modbus de Home Assistant, par exemple) peut empêcher les lectures : l'état dit alors que la connexion n'a pas pu se faire.
Mise en place
- Trouvez l'adresse IP de l'Alfa dans votre box, et donnez-lui de préférence une adresse fixe.
- Dans Gladys, ouvrez l'intégration, saisissez cette adresse (avec un port seulement s'il n'est pas 502) et enregistrez.
- Dans l'onglet Découverte, créez l'appareil.
Boutons
- Tester la connexion : lit l'Alfa une fois quand une lecture est due (jamais plus d'une toutes les 30 secondes), sinon donne la dernière lecture : les puissances, la tranche et les trois index (un index retenu est signalé).
- Accepter l'index retenu, en deux clics. Le premier clic liste les index retenus et ne prend rien. Le second, de quelques secondes à 5 minutes plus tard, prend ce que le premier a listé, pour chaque index dont la valeur retenue n'a pas changé depuis (au-delà de ce qui a pu passer entre-temps). Un saut est compté d'un coup ; une baisse ne compte rien.
En cas de problème
- Injoignable, pas de réponse, mauvaise réponse : nouvel essai après 30 secondes, puis doublé jusqu'à 10 minutes. Une requête sans réponse sous 5 secondes ferme la connexion (une réponse tardive n'est jamais prise pour une autre).
- L'Alfa refuse certains registres ou n'y répond pas (la tranche, l'avis de coupure ou la production) : ces valeurs ne sont pas lues, les autres continuent, et l'état dit lesquelles et pourquoi. Un refus (exception Modbus) garde la connexion ; un lot sans réponse sous 5 secondes la ferme (les lots suivants attendent la lecture d'après) et est laissé de côté 4 lectures, puis réessayé. Un refus ou un silence des registres du réseau (2 à 19) fait échouer la lecture.
- La configuration ne peut pas être lue depuis Gladys à une (re)connexion : nouvel essai après 5 secondes, doublé jusqu'à 5 minutes, l'état le dit ; pendant ce temps les lectures continuent avec la dernière configuration reçue, s'il y en a une.
- Le fichier d'état dans
/dataest illisible : il est laissé tel quel (jamais écrasé) et l'état le dit ; un index retenu peut alors être oublié.
Vie privée
Tout reste sur votre réseau. L'intégration ne se connecte qu'à l'adresse que vous avez saisie, sur le port Modbus TCP.
Paramètres de configuration
Voici les paramètres demandés par Sinapsi Alfa dans son écran de configuration dans Gladys.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| Sinapsi Alfa | section | Non | Connecteur non officiel, sans lien avec Sinapsi. Il lit l'Alfa (le boîtier qui lit les compteurs électriques italiens 2G par la Chain 2) par son serveur Modbus TCP local, sans cloud : toutes les 30 secondes les puissances prélevée et injectée, la puissance produite et celle consommée par le logement, la tranche horaire (F1 à F6) et l'avis de coupure du compteur ; chaque minute l'énergie prélevée (pour le suivi énergétique de Gladys), injectée et produite. Lecture seule : rien n'est jamais écrit dans l'Alfa. L'Alfa ne sert qu'un client Modbus à la fois : la connexion est ouverte pour chaque lecture et fermée après. Jamais testé avec un vrai appareil. |
| Adresse de l'Alfa | string | Oui | L'adresse IP de l'Alfa sur votre réseau (visible dans votre box), avec un port seulement s'il n'est pas 502. Donnez-lui de préférence une adresse fixe dans votre box ; si elle change, saisissez la nouvelle : l'appareil garde son historique. |
| Puissance plausible la plus haute (kW) | number | Non | Les gardes des trois index (prélevé, injecté, produit) retiennent une baisse, ou une hausse plus grande que cette puissance sur le temps écoulé depuis la dernière valeur (30 kW par défaut, au-dessus de tout contrat domestique italien). Une hausse dans cette marge est prise : plus l'Alfa a été absent, plus la marge est grande. |
Comment installer Sinapsi Alfa dans Gladys
- Dans Gladys, ouvrez Intégrations : Sinapsi Alfa apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
- Cliquez sur Installer. Gladys télécharge l'image Docker (
ghcr.io/lm1lc3n7/gladys-sinapsi-alfa:0.1.1), la démarre dans un bac à sable isolé du cœur, et génère l'interface de l'intégration (appareils, découverte et configuration). - Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
- Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/LM1LC3N7/gladys-sinapsi-alfa.
Sinapsi Alfa nécessite Gladys >=5.1.0. Le catalogue dans Gladys se rafraîchit toutes les heures : une nouvelle version est donc disponible au plus tard une heure après sa sortie.
Vous n'utilisez pas encore Gladys ? C'est gratuit et open source : suivez le guide d'installation pour démarrer.
À propos des intégrations externes
Sinapsi Alfa est une intégration externe : une intégration communautaire empaquetée dans un conteneur Docker et publiée sur GitHub, que Gladys installe en un clic et exécute dans un bac à sable isolé de son cœur. Elle est publiée et maintenue par LM1LC3N7, et non par l'équipe cœur de Gladys.
- Parcourir toutes les intégrations, natives et communautaires
- Créer et publier votre propre intégration externe
- Code source sur GitHub — source de cette documentation