Salut,
Pour ceux que ça intéresse voici un script python qui decode la trame STGE que l’on peut récupérer par le Zlinky.
Il y a quelques info à récupérer, comme :
. Etat du « Dépassement de la puissance de référence »
. Etat du « Contact sec »
. Etat de la sortie TIC
. Tarif en cours sur le contrat fourniture
. etc… ( https://www.enedis.fr/media/2035/download )
Cette trame est synchro à la seconde près, et elle permet eventuellement de se passer de NTARF, LTARF, RELAIS du Zlinky et éventuellement le soulager un peu ![]()
def bit_shift_right(value, shift):
return (value >> shift)
# Trame STGE en hexadécimal depuis Zlinky
trame = int(data.get("trame", "0x00000000"), 16)
# Extraction des champs.
# Selon les besoins remplacer les
# lignes commentées par le nom du
# capteur créé sous HA
decoded = {
"sensor.lixee_tic_stge_contact_sec": 1 - trame & 1,
# "Organe de coupure": bit_shift_right(trame, 1) & 7,
# "État du cache-bornes": bit_shift_right(trame, 4) & 1,
# "Surtension": bit_shift_right(trame, 6) & 1,
"sensor.lixee_tic_stge_depassement_p_ref": bit_shift_right(trame, 7) & 1,
# "Consommation/Production": bit_shift_right(trame, 8) & 1,
# "Sens de l'énergie": bit_shift_right(trame, 9) & 1,
"sensor.lixee_tic_stge_tarif_fournisseur": 1 + bit_shift_right(trame, 10) & 15,
# "Tarif contrat distributeur": bit_shift_right(trame, 14) & 3,
# "Mode dégradé horloge": bit_shift_right(trame, 16) & 1,
# "Sortie télé-info": bit_shift_right(trame, 17) & 1,
# "Sortie communication Euridis": bit_shift_right(trame, 19) & 3,
# "Statut CPL": bit_shift_right(trame, 21) & 3,
# "Synchronisation CPL": bit_shift_right(trame, 23) & 1,
"sensor.lixee_tic_stge_tempo_couleur_jour": bit_shift_right(trame, 24) & 3,
# "Couleur lendemain Tempo": bit_shift_right(trame, 26) & 3,
# "Préavis pointes mobiles": bit_shift_right(trame, 28) & 3,
# "Pointe mobile": bit_shift_right(trame, 30) & 3,
}
# Appel du script par l'outil de dev. (actions) sous HA:
# action: python_script.linky_decode_trame_stge
# data:
# trame: "0x{{states('sensor.lixee_status_register')}}"
# Retourner les résultats décodés dans les logs
# for key, value in decoded.items():
# logger.info(f"{key}: {value}")
# Mettre à jour capteurs HA
for sensor, value in decoded.items():
hass.states.set(sensor, value)
L’automatisation :
alias: Zlinky_tic_decodage_Stge
triggers:
- trigger: state
entity_id:
- sensor.lixee_status_register
conditions: []
actions:
- action: python_script.linky_decode_trame_stge
data:
trame: 0x{{states('sensor.lixee_status_register')}}
mode: single
