🇬🇧 English · 🇫🇷 Français
A Home Assistant integration for Key Atome, a Linky-compatible electricity meter made by TotalEnergies (formerly Total/Direct-Energie). It retrieves your electricity consumption and exposes it as Home Assistant sensors.
Several Key Atome devices within the same account can be managed.
- Installation
- Configuration
- Sensors
- Energy dashboard
- Notes & known behaviour
- Breaking changes
- Acknowledgments
KeyAtome is part of the default HACS store:
- Open HACS in Home Assistant.
- Select Integrations.
- Click the add icon and search for
keyatome. - Select keyatome and install it.
- Restart Home Assistant.
Manual procedure
- Download the
keyatomefolder from the latest release (right click → Save link as). - Copy it into the
config/custom_componentsfolder on your Home Assistant machine. Ifcustom_componentsdoesn't exist next to yourconfiguration.yaml, create it first. - Restart Home Assistant.
Add the integration from the Home Assistant UI: Settings → Devices & Services → Add Integration → KeyAtome.
You'll be asked for the following fields:
| Field | Required | Description |
|---|---|---|
username |
yes | Your TotalEnergies account login. |
password |
yes | Your TotalEnergies account password. |
user_id |
yes | Internal user ID. Retrieve it with the find_user_id.py script. |
account_id |
yes | The Référence client shown in your TotalEnergies profile. |
atome_linky_number |
no | Which Key Atome in the account (1, 2, 3, …). Defaults to 1. |
name |
no | Root name used for the sensors. Defaults to Atome. |
The user_id is an internal numeric ID that isn't shown anywhere in your
TotalEnergies account, so you have to discover it with the
find_user_id.py
script. Edit the variables at the top of the script (your email, password and
Référence client) following the instructions in its header, then run it.
Tip
The script works by scanning candidate IDs one by one, so it can take a
long time to find yours (potentially hours). You can narrow the search
range in the script to split it across several runs. It stops automatically
as soon as it finds your user_id.
Important
Since v8.0.0 the TotalEnergies API is v3, which requires both user_id
and account_id at login. YAML configuration (platform: keyatome in
configuration.yaml) is deprecated — use the UI instead.
Warning
If the official Home Assistant atome integration is also configured in
configuration.yaml, disable it. Running both hits the Atome server too
often.
Assuming the default name Atome and atome_linky_number = 1, the following
sensors are created:
| Sensor | Description |
|---|---|
sensor.atome_live_power |
Instant power (attributes: connection status, max subscription power). |
sensor.atome_daily |
Current daily consumption (attributes: current price, previous consumption, previous price). |
sensor.atome_weekly |
Current weekly consumption (same attributes). |
sensor.atome_monthly |
Current monthly consumption (same attributes). |
sensor.atome_login_stat |
Current user ID and user reference (since v5.0.0). |
sensor.atome_diagnostic |
Synthetic server health: NoServerIssue, HandleNonIncreasingValueError, or TooManyServerError (attributes: cumulative_error_warning, cumulative_non_increasing_value) (since v6.0.0). |
Note
Check sensor.atome_login_stat to confirm you addressed the right Key Atome
within your account.
When atome_linky_number is greater than 1, sensors are named
sensor.NAME_linky<number>_... instead of sensor.NAME_....
Use sensor.atome_daily to track electricity consumption in the Energy
dashboard.
To also expose the price, add this template sensor to your
configuration.yaml:
template:
- sensor:
- name: atome_daily_price
state: >-
{% if state_attr('sensor.atome_daily', 'price') == 'unknown' %}
unknown
{% else %}
{{ state_attr('sensor.atome_daily', 'price') }}
{% endif %}
#unit_of_measurement: 'EUR'
state_class: total_increasing
#device_class: monetary- If you switch contracts from the TotalEnergies mobile app, you must reload this integration in Home Assistant.
- Since 1 April 2026, the TotalEnergies API is in v3 (handled as of v8.0.0).
Show history
- v0.0.1 / v1.0.0 — sensors are named
sensor.key_atome_xxx. - v2.0.0 — sensors are named
sensor.atome_xxx(like the HA atome component). - v2.1.0 — sensors are named
sensor.NAME_xxx, whereNAMEis set during configuration. Defaults toAtomefor consistency with HA. - v4.1.0 — multiple Key Atome devices are supported. For
atome_linky_number > 1, sensors are namedsensor.NAME_linky<number>_xxx. Nothing changes for number1. - v6.1.0 —
cumulative_errormoves fromatome_login_stattoatome_diagnostic. - v7.0.0 — implements TotalEnergies API v2. As a stopgap, week/month/year are set to zero.
- v7.1.0 — adds local computation for the week. Month/year still zero.
- v7.2.0 — adds local computation for the month. Year still zero.
- v7.3.0 — the year sensor is removed.
- v8.0.0 — uses API v3.
user_idandaccount_idmust be provided at login.
- Thanks to @baqs for the original Atome implementation in Home Assistant. v0.0.1 of this project is based on the Atome component from Home Assistant 2021.12.4; KeyAtome is a fork that adds new features.
- Thanks to @BenoitAnastay for decoding API v2.
Cliquer pour afficher la version française
Une intégration Home Assistant pour Key Atome, un compteur électrique compatible Linky fabriqué par TotalEnergies (anciennement Total/Direct-Energie). Elle récupère votre consommation électrique et l'expose sous forme de capteurs Home Assistant.
Plusieurs Key Atome d'un même compte peuvent être gérés.
KeyAtome fait partie du dépôt par défaut HACS :
- Ouvrez HACS dans Home Assistant.
- Sélectionnez Intégrations.
- Cliquez sur l'icône d'ajout et recherchez
keyatome. - Sélectionnez keyatome et installez-le.
- Redémarrez Home Assistant.
Procédure manuelle
- Téléchargez le dossier
keyatomedepuis la dernière release (clic droit → Enregistrer le lien sous). - Copiez-le dans le dossier
config/custom_componentsde votre machine Home Assistant. Sicustom_componentsn'existe pas à côté de votreconfiguration.yaml, créez-le d'abord. - Redémarrez Home Assistant.
Ajoutez l'intégration depuis l'interface de Home Assistant : Paramètres → Appareils et services → Ajouter une intégration → KeyAtome.
Les champs suivants vous seront demandés :
| Champ | Requis | Description |
|---|---|---|
username |
oui | L'identifiant de votre compte TotalEnergies. |
password |
oui | Le mot de passe de votre compte TotalEnergies. |
user_id |
oui | Identifiant interne. À récupérer avec le script find_user_id_fr.py. |
account_id |
oui | La Référence client affichée dans votre profil TotalEnergies. |
atome_linky_number |
non | Quel Key Atome dans le compte (1, 2, 3, …). Par défaut 1. |
name |
non | Nom racine utilisé pour les capteurs. Par défaut Atome. |
Le user_id est un identifiant numérique interne qui n'apparaît nulle part dans
votre compte TotalEnergies : il faut donc le découvrir avec le script
find_user_id_fr.py.
Renseignez les variables en haut du script (votre email, mot de passe et
Référence client) en suivant les instructions de son en-tête, puis lancez-le.
[!TIP] Le script teste les identifiants candidats un par un : il peut donc prendre beaucoup de temps pour trouver le vôtre (potentiellement plusieurs heures). Vous pouvez réduire la plage de recherche dans le script pour la répartir sur plusieurs exécutions. Il s'arrête automatiquement dès qu'il trouve votre
user_id.
[!IMPORTANT] Depuis la v8.0.0, l'API TotalEnergies est en v3, qui exige à la fois
user_idetaccount_idà la connexion. La configuration en YAML (platform: keyatomedansconfiguration.yaml) est dépréciée — utilisez l'interface à la place.
[!WARNING] Si l'intégration officielle
atomede Home Assistant est aussi configurée dansconfiguration.yaml, désactivez-la. Faire tourner les deux sollicite trop souvent le serveur Atome.
Avec le nom par défaut Atome et atome_linky_number = 1, les capteurs
suivants sont créés :
| Capteur | Description |
|---|---|
sensor.atome_live_power |
Puissance instantanée (attributs : état de connexion, puissance souscrite max). |
sensor.atome_daily |
Consommation journalière en cours (attributs : prix courant, consommation précédente, prix précédent). |
sensor.atome_weekly |
Consommation hebdomadaire en cours (mêmes attributs). |
sensor.atome_monthly |
Consommation mensuelle en cours (mêmes attributs). |
sensor.atome_login_stat |
Identifiant et référence client courants (depuis la v5.0.0). |
sensor.atome_diagnostic |
État synthétique du serveur : NoServerIssue, HandleNonIncreasingValueError ou TooManyServerError (attributs : cumulative_error_warning, cumulative_non_increasing_value) (depuis la v6.0.0). |
[!NOTE] Vérifiez
sensor.atome_login_statpour confirmer que vous avez bien ciblé le bon Key Atome de votre compte.
Lorsque atome_linky_number est supérieur à 1, les capteurs sont nommés
sensor.NOM_linky<numéro>_... au lieu de sensor.NOM_....
Utilisez sensor.atome_daily pour suivre la consommation électrique dans le
tableau de bord Énergie.
Pour exposer aussi le prix, ajoutez ce capteur template à votre
configuration.yaml :
template:
- sensor:
- name: atome_daily_price
state: >-
{% if state_attr('sensor.atome_daily', 'price') == 'unknown' %}
unknown
{% else %}
{{ state_attr('sensor.atome_daily', 'price') }}
{% endif %}
#unit_of_measurement: 'EUR'
state_class: total_increasing
#device_class: monetary- Si vous changez de contrat depuis l'application mobile TotalEnergies, vous devez recharger cette intégration dans Home Assistant.
- Depuis le 1er avril 2026, l'API TotalEnergies est en v3 (prise en charge à partir de la v8.0.0).
Afficher l'historique
- v0.0.1 / v1.0.0 — les capteurs sont nommés
sensor.key_atome_xxx. - v2.0.0 — les capteurs sont nommés
sensor.atome_xxx(comme le composant atome de HA). - v2.1.0 — les capteurs sont nommés
sensor.NOM_xxx, oùNOMest défini à la configuration. Par défautAtomepour rester cohérent avec HA. - v4.1.0 — la gestion de plusieurs Key Atome est ajoutée. Pour
atome_linky_number > 1, les capteurs sont nomméssensor.NOM_linky<numéro>_xxx. Rien ne change pour le numéro1. - v6.1.0 —
cumulative_errorpasse deatome_login_statàatome_diagnostic. - v7.0.0 — implémente l'API TotalEnergies v2. Provisoirement, semaine/mois/année sont mis à zéro.
- v7.1.0 — ajoute le calcul local de la semaine. Mois/année toujours à zéro.
- v7.2.0 — ajoute le calcul local du mois. Année toujours à zéro.
- v7.3.0 — le capteur année est supprimé.
- v8.0.0 — utilise l'API v3.
user_idetaccount_iddoivent être fournis à la connexion.
- Merci à @baqs pour l'implémentation Atome originale dans Home Assistant. La v0.0.1 de ce projet est basée sur le composant Atome de Home Assistant 2021.12.4 ; KeyAtome en est un fork qui ajoute de nouvelles fonctionnalités.
- Merci à @BenoitAnastay pour le décodage de l'API v2.