Skip to content

Connecter Home Assistant

bonnoa edited this page Oct 20, 2026 · 4 revisions

Connecter Home Assistant

Home Assistant envoie ses compteurs d'énergie à WattsUp grâce à une automatisation. Rien n'est à ouvrir chez vous : WattsUp n'accède jamais à votre installation.

La configuration se fait une fois, en quatre étapes. Comptez un quart d'heure. Le parcours de bienvenue suit le même chemin.

Version technique condensée (avec les mêmes extraits de configuration) : documentation Home Assistant du dépôt.

Avant de commencer : quels capteurs ?

WattsUp a besoin de compteurs cumulés d'énergie, ceux que vous utilisez déjà dans le tableau de bord Énergie de Home Assistant :

Donnée Exemple de source Obligatoire
Électricité achetée au réseau pince ampèremétrique, routeur solaire, téléinfo du Linky oui
Électricité revendue au réseau routeur, onduleur, téléinfo si vous revendez
Production solaire onduleur, passerelle Envoy… si vous avez des panneaux
Charge et décharge de la batterie batterie, onduleur hybride si vous avez une batterie
Postes (chauffe-eau, voiture…) prises ou modules de mesure non

Ces capteurs doivent être des index qui ne font qu'augmenter (classe d'état total_increasing, en Wh, kWh ou MWh).

À éviter :

  • les index du Linky récupérés par l'API Enedis : ils ne changent qu'une fois par jour ;
  • les compteurs « du jour » ou « du mois », qui repartent à zéro.

Étape 1 : choisir le mode d'envoi et créer un token

Dans WattsUp : Réglages › Home Assistant, carte « API d'ingestion ».

  1. Choisissez la granularité :
    • Horaire (recommandé) : Home Assistant envoie ses index chaque heure. Toutes les comparaisons de contrats sont exactes, le talon de consommation et les heures conseillées sont disponibles.
    • Quotidien : Home Assistant envoie une fois par jour les totaux de la veille. À réserver aux installations qui n'ont pas de mesure en temps réel.
  2. Cliquez Générer un token et copiez-le aussitôt : il n'est affiché qu'une fois. En cas de perte, générez-en un nouveau (l'ancien cesse de fonctionner).

La carte affiche aussi l'adresse d'envoi exacte (l'« endpoint »).

Étape 2 : déclarer la commande d'envoi

Dans les fichiers de configuration de Home Assistant (avec l'éditeur de fichiers ou Studio Code Server).

Dans secrets.yaml, ajoutez l'adresse d'envoi et le token, précédé de Bearer :

wattsup_url: https://wattsup-energy.kraftpunk.app/api/v1/ingest
wattsup_token: "Bearer wu_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Dans configuration.yaml :

rest_command:
  wattsup_push:
    url: !secret wattsup_url
    method: POST
    headers:
      Authorization: !secret wattsup_token
      Content-Type: application/json
    payload: "{{ payload if payload is string else payload | to_json }}"
    timeout: 15

Puis redémarrez Home Assistant (Outils de développement › Redémarrer).

Étape 3 : importer le blueprint

Le blueprint est une automatisation prête à l'emploi : il lit vos capteurs et les envoie.

  • Le plus simple : le bouton Importer dans Home Assistant du parcours de bienvenue (ou « Mettre à jour le blueprint d'envoi » dans Réglages › Historique) ouvre directement votre Home Assistant.
  • Sinon : Paramètres › Automatisations et scènes › Blueprints › Importer un blueprint, avec l'adresse https://wattsup-energy.kraftpunk.app/api/blueprint/wattsup_push.yaml.

Étape 4 : créer l'automatisation

Depuis le blueprint importé, Créer une automatisation, puis renseignez les champs.

En mode horaire

Champ À choisir
Import réseau le compteur cumulé d'électricité achetée
Export, production solaire, charge, décharge les compteurs correspondants, s'ils existent
Couleur Tempo facultatif : un capteur dont l'état vaut bleu, blanc ou rouge (WattsUp connaît déjà le calendrier Tempo)
Postes une ligne par poste : slug: sensor.xxx_energy, les slugs sont affichés dans Réglages › Postes

Enregistrez. Le premier envoi sert de référence : les consommations apparaissent à partir du deuxième, une heure plus tard.

En mode quotidien

Créez d'abord, dans configuration.yaml, des compteurs quotidiens (utility_meter) à partir de vos index. Le blueprint lit chaque jour à 00:05 le total de la veille. Avec un contrat à heures creuses, le plus simple est de partir des deux index du Linky :

utility_meter:
  wattsup_import_hp_jour:
    source: sensor.linky_index_hp
    cycle: daily
  wattsup_import_hc_jour:
    source: sensor.linky_index_hc
    cycle: daily
  wattsup_solaire_jour:
    source: sensor.production_solaire_cumulee
    cycle: daily

Dans l'automatisation, renseignez Import HP et Import HC (ou Import réseau seul pour un contrat Base).

Vérifier que tout fonctionne

  • Dans WattsUp, le statut du menu passe à Home Assistant connecté avec le délai depuis le dernier envoi. Il se met à jour tout seul, chaque minute et quand vous revenez sur l'onglet.
  • Réglages › Home Assistant › Derniers envois liste les envois reçus et leur résultat.
  • En cas de problème, Home Assistant affiche une notification qui dit quoi corriger : envoi refusé (token, mode, WattsUp injoignable) ou envoi à vérifier (par exemple le capteur « Import réseau » oublié dans l'automatisation). Elle nomme aussi les capteurs choisis restés sans valeur, et disparaît au premier envoi sans rien à signaler.
  • Pour profiter de ces messages après une mise à jour : Paramètres › Automatisations et scènes › Blueprints › WattsUp Energy — envoi des données › « Réimporter le blueprint ».
Message Cause probable
401 token absent, mal recopié (Bearer manquant) ou remplacé par un nouveau
409 le mode du blueprint (horaire ou quotidien) ne correspond pas à celui choisi dans WattsUp
400 un champ est invalide : le message indique lequel
aucune donnée d'énergie capteurs indisponibles ; en mode quotidien, les capteurs choisis ne sont pas des utility_meter
429 plus de 120 envois par minute : l'automatisation tourne en boucle

Aller plus loin (facultatif)

Reprendre l'historique

Home Assistant garde des statistiques heure par heure. Pour les envoyer à WattsUp (période d'avant WattsUp, panne de quelques jours) :

  1. Réimportez le blueprint d'envoi pour avoir sa dernière version (vos réglages sont conservés).
  2. Importez le blueprint « envoyer l'historique » depuis Réglages › Historique et créez un script à partir de lui.
  3. Lancez le script en choisissant les dates (10 ans au plus, jusqu'à hier). L'envoi prend environ une seconde par jour ; une notification annonce la fin.

WattsUp ne remplace jamais une valeur déjà reçue et écarte les valeurs invraisemblables.

Autre solution : un fichier CSV, voir Importer et exporter.

Déclarer un sac de granulés versé depuis Home Assistant

Pour décompter un sac sans ouvrir WattsUp (bouton du tableau de bord, bouton physique près du poêle…) : importez le blueprint « sac versé » depuis Réglages › Équipements, carte « Sac de pellets versé depuis Home Assistant », créez un script à partir de lui et appelez-le où vous voulez. Une notification indique le stock restant.

Afficher vos chiffres WattsUp dans Home Assistant

WattsUp fournit un résumé en lecture seule, avec le même token : coût du jour et du mois, projection de l'année, jours de combustible restants, alertes en cours. Ajoutez dans secrets.yaml la clé wattsup_authorization: "Bearer wu_…", puis dans configuration.yaml :

rest:
  - resource: https://wattsup-energy.kraftpunk.app/api/v1/summary
    headers:
      Authorization: !secret wattsup_authorization
    scan_interval: 900 # toutes les 15 minutes
    sensor:
      - name: WattsUp coût du jour
        value_template: "{{ value_json.cost.today_eur }}"
        unit_of_measurement: "€"
        device_class: monetary
      - name: WattsUp coût du mois
        value_template: "{{ value_json.cost.month_eur }}"
        unit_of_measurement: "€"
        device_class: monetary
      - name: WattsUp projection de l'année
        value_template: "{{ value_json.cost.year_projection_eur }}"
        unit_of_measurement: "€"
        device_class: monetary
      - name: WattsUp granulés jours restants
        value_template: "{{ value_json.fuel.pellet.days_left if value_json.fuel.pellet is defined else none }}"
        unit_of_measurement: "j"
      - name: WattsUp alertes
        value_template: "{{ value_json.alerts | length }}"
        json_attributes:
          - alerts

Une valeur inconnue (pas de contrat, pas encore d'historique) vaut null. 30 lectures par minute au plus.

Clone this wiki locally