Vous avez mis un prix spot dans Home Assistant, branché le tableau de bord Energy dessus, et le chiffre est sorti faux. Pas légèrement faux — assez faux pour que vous ayez cherché l'erreur dans vos propres modèles.
L'erreur ne se trouve en général pas dans les modèles. Le prix que vous récupérez et le prix que vous payez sont deux nombres différents, et rien dans la chaîne ne vous indique lequel des deux vous tenez.
« Le tableau de bord Energy dans Home Assistant, pour puissant qu'il soit, pose un problème » — arva, fil du forum Home Assistant 682847
C'est l'ouverture sobre d'un fil dont l'auteur a fini par écrire sa propre intégration. Cet article traite de l'étape d'avant : quelle source de prix couvre votre zone, ce qu'elle vous fournit réellement et ce qu'elle demande en retour.
Spot ou tout compris (all-in) : bien régler ce point règle presque tout le reste
Chaque source est de l'un de deux types, et le hub doit savoir lequel :
- Un prix spot n'est que le début d'un calcul, pas la fin. C'est le prix de gros pour la période. Ce que vous payez, c'est ce prix multiplié par un facteur (1.0, sauf si votre contrat applique un coefficient au prix de bourse), plus la marge de votre fournisseur par kilowattheure (markup), plus le tarif réseau (grid fee), plus les taxes et prélèvements, puis la TVA (VAT) sur l'ensemble — chaque composante saisie hors TVA, parce que la TVA ne s'applique qu'une fois, à la somme. Chaque montant est exprimé par kilowattheure, dans l'unité principale de votre monnaie : une marge de 2.5 centimes s'écrit
0.025, et non2.5. Le hub convertit lui-même ce que les sources publiques donnent par mégawattheure ; ce que vous saisissez, il le prend tel quel. Si vous saisissez un chiffre qui inclut déjà la TVA, elle sera appliquée deux fois, et c'est la cause la plus fréquente d'un coût trop élevé dans une configuration au prix spot. Un prix tout compris n'est jamais de nouveau taxé. Si vous alimentez un calcul de coût directement avec un prix spot, il sort trop bas — tant que vous n'ajoutez pas les composantes, et à partir de là l'arithmétique vous revient. - Un prix tout compris contient déjà tout cela. C'est ce que votre fournisseur facture pour la période, taxes comprises. Y ajouter votre propre marge le fait sortir trop haut.
Les deux erreurs se ressemblent de l'extérieur : un coût qui ne correspond pas à la facture. Les parties hors kWh sont celles qu'on oublie, et elles ne sont pas petites :
« +1 pour ça. Au Royaume-Uni c'est aussi quasi standard » — thefunkygibbon, fil 330609
Ce fil porte sur les frais fixes journaliers (standing charge) — un montant par jour, indépendant de ce que vous avez consommé. On le demande depuis 2021.
Sur le hub, le type est une propriété de la source. Si vous choisissez une source spot, le coefficient, la marge, les frais, les taxes et la TVA de votre contrat sont des champs que vous renseignez une seule fois ; si vous choisissez une source tout compris, le prix est pris tel qu'il arrive. Dans les deux cas, le hub valorise chaque période de 15 minutes au prix de cette période, et conserve ce prix à côté de l'énergie, pour que le montant puisse être retracé plus tard au lieu d'être recalculé.
⚠️ Pourquoi c'est important dès la première fois. Le hub enregistre quel prix il a appliqué, période par période — mais un prix déjà appliqué est un historique, pas une formule qu'on peut rejouer. Home Assistant a la même propriété, et on la découvre à ses dépens :
« Je suis à peu près sûr qu'il n'y a aucun moyen de rétroactiver des changements dans HA. » — tinkergnome, fil 585379
Les six sources publiques
| Source | Type | Résolution | Zones | Monnaie |
|---|---|---|---|---|
| Energy-Charts (Fraunhofer ISE) | spot | 15 minutes | AT, BE, CH, CZ, DE-LU, DK1, DK2, FR, HU, IT-North, NL, NO2, PL, SE4, SI | EUR |
| Nord Pool (portail de données non officiel) | spot | 15 minutes | SE1–4, NO1–5, DK1–2, FI, EE, LV, LT | celle de la zone : SEK, NOK, DKK ou EUR |
| Elpriset just nu (SE) | spot | 15 minutes | SE1–4 | SEK |
| Hva koster strømmen (NO) | spot | 1 heure | NO1–5 | NOK |
| EnergyZero (NL) | tout compris | 15 minutes | NL | EUR |
| Octopus Agile (UK) | tout compris | 30 minutes | les 14 régions GSP, A–P | GBP |
Aucune de ces sources n'exige de jeton ni de compte.
Une source tout compris transporte le prix de détail de ce fournisseur. Si votre fournisseur est un autre, son chiffre ne vous appartient pas : poussez plutôt votre propre prix depuis Home Assistant, ce qui est expliqué plus bas.
La résolution n'est pas l'étape de facturation. Un prix de 30 minutes ou horaire s'applique à chaque période de 15 minutes qu'il contient — quatre périodes partagent simplement un même prix — donc les coûts restent calculés par période de 15 minutes. Et une source à 15 minutes n'impose pas une facturation à 15 minutes : que vous soyez facturé par période ou à la moyenne de l'heure, c'est une propriété de votre contrat, réglée à part.
⚠️ La monnaie n'est jamais convertie. Le hub ne transformera pas SEK en EUR. Une zone dont la monnaie diffère de celle de votre plan est refusée à l'enregistrement, et une source dans une autre monnaie est ignorée plutôt qu'approximée. Réglez d'abord la monnaie de votre plan, puis choisissez une zone qui lui correspond.
Ce que chacune demande en retour
Public ne veut pas dire sans condition. Chaque source porte la mention exigée par sa propre licence — Bundesnetzagentur | SMARD.de / Energy-Charts (CC BY 4.0), par exemple — et le hub l'affiche sur la page Prices. Cette ligne n'est pas décorative : c'est la condition à laquelle les données peuvent être utilisées. Energy-Charts n'est servi que pour les zones publiées sous CC BY 4.0.
Qui doit l'afficher est décidé par qui affiche le prix. Le hub transporte la mention et le lien vers les conditions avec chaque prix, si bien que tout ce qui affiche ce prix dispose de ce qu'il faut. L'application du hub crédite la source sur la page Prices. Le panneau RBgrid dans Home Assistant l'affiche aussi. Si vous construisez votre propre tableau de bord à partir des données du hub, l'afficher vous revient — le texte et le lien figurent dans la charge utile du prix précisément pour cela.
⚠️ Nord Pool est atteint via un portail de données non officiel, et le hub le dit là où il nomme la source. Il n'existe aucun contrat de service derrière : la source peut changer ou s'arrêter sans préavis. Utilisez-la en connaissance de cause, et prévoyez une solution de secours là où elle existe — voir la troisième étape ci-dessous ; pour FI, EE, LV et LT, c'est la seule source de la liste, donc là, la solution de secours ne peut être qu'un envoi depuis Home Assistant.
C'est aussi la réponse honnête à « travaillez-vous avec mon fournisseur ? » — le hub ne travaille avec aucun fournisseur. Il lit des données publiques de prix pour une zone de marché et y applique le contrat que vous décrivez. Une source de la liste est un réglage que vous avez choisi, pas une relation que quiconque entretient.
Si votre zone n'est pas dans la liste
Alors la septième source, c'est vous. Home Assistant — ou tout autre client — peut pousser des prix vers le hub au lieu que le hub les récupère : jusqu'à 200 périodes à la fois, conservées dans le stockage propre du hub. Vous indiquez si ce que vous poussez est spot ou tout compris, et à partir de là c'est traité exactement comme un fournisseur de ce type.
C'est la voie pour un fournisseur dont le hub n'a aucune source, et pour un prix que vous calculez vous-même. Dans le firmware ESPHome, Home Assistant figure parmi les sources dès le départ ; sur le firmware autonome, elle n'apparaît qu'une fois un premier envoi reçu. Dans les deux cas, les prix dynamiques restent désactivés tant que vous ne les activez pas, et la source se choisit librement : Home Assistant est une option de la liste, pas celle déjà sélectionnée.
Quatre points sur l'envoi sont plus faciles à connaître à l'avance qu'à découvrir :
- Le type spot ou tout compris se déclare une seule fois, dans les réglages des prix dynamiques — pas à chaque lot. Réglez-le pour qu'il corresponde à ce que vous envoyez, puis n'y pensez plus.
- Vous envoyez un lot de périodes, chacune avec un début et une fin. Le pas de votre source peut être de 15 minutes, 30 minutes ou une heure ; le hub valorise chacune de ses périodes de 15 minutes à partir de l'entrée qui la couvre.
- Renvoyer une période la remplace. Même début, nouveau prix : le prix enregistré est écrasé, donc renvoyer une journée corrigée est la façon de la corriger.
- Les heures que vous n'avez pas envoyées ne restent pas sans prix. Elles passent par la chaîne habituelle : votre source de secours si vous en avez défini une, sinon le tarif de zone de votre plan. Le journal indique ce qui a couvert chaque période, donc rien ne disparaît en silence — elle est simplement valorisée autrement.
Quand un prix n'arrive pas
Un marché du lendemain publie ses prix une fois par jour. Cette publication peut être en retard, la récupération peut échouer, votre zone peut être absente d'une réponse. Le hub n'abandonne pas une journée en retard : il continue de demander — toutes les quinze minutes dans la fenêtre initiale, puis toutes les heures tant que la journée manque encore —, si bien qu'une publication arrivant tard le soir est reprise dans l'heure environ, et les périodes sont revalorisées à partir de la source au lieu de rester sur le plan. Pour chaque période de 15 minutes, le hub retient exactement un prix, dans cet ordre :
| source | ce que cela signifie | |
|---|---|---|
| 1 | Principale | le fournisseur que vous avez choisi, pour votre zone |
| 2 | Secours | facultative, doit être un autre fournisseur ; utilisée seulement pour les périodes que la principale ne couvre pas |
| 3 | Votre plan | le tarif de zone en vigueur pour cette période |
Rien n'est mélangé : une période, un prix, une source — et la source est enregistrée avec la période, si bien qu'un chiffre que vous lirez la semaine prochaine pourra toujours être rattaché à l'origine de son prix.
Savoir si une source de secours vous est accessible relève d'abord de la question. Douze des zones de marché ci-dessus sont couvertes par deux de ces sources ou plus ; quinze ne le sont que par une seule, et là, la seule seconde source est un prix que vous envoyez depuis Home Assistant. Trouvez votre zone avant de lire le reste de ce paragraphe comme un conseil.
Quand une source de secours existe, elle vaut ses cinq minutes. Sans elle, le plan prend le relais. C'est un comportement correct — votre énergie est toujours comptée et toujours valorisée — mais c'est un prix différent, et vos coûts sur cette tranche ne correspondront pas au marché.
Une source de secours de l'autre type est permise, et elle change ce qu'il faut renseigner. Chaque période est valorisée selon le type de la source qui l'a réellement couverte, et non selon le type de la principale — donc une principale tout compris avec une secours spot exige quand même que les composantes de votre contrat soient renseignées, sinon les périodes de la secours sortent en spot brut, c'est-à-dire trop bas. Les renseigner ne coûte rien à un utilisateur tout compris : une source tout compris ignore ces champs. Les seules règles : la secours doit être un autre fournisseur, et les deux doivent être cotés dans la monnaie de votre plan.
⚠️ Et une source de secours maintient un prix de marché à sa place, de son propre type, qui n'est pas toujours le même chiffre. Aux Pays-Bas, par exemple, une secours spot derrière une principale tout compris valorise ces périodes en spot plus les composantes de votre contrat, et non au prix tout compris de votre fournisseur. Le journal du hub indique la source utilisée pour chaque période : une substitution silencieuse se distingue ainsi d'une panne silencieuse — et d'une journée valorisée sur une autre base.
Choisir, dans l'ordre qui fait gagner du temps
- Réglez d'abord la monnaie de votre plan. Elle conditionne les zones que vous pouvez même enregistrer ; la faire après oblige à tout refaire.
- Trouvez votre zone dans le tableau et lisez la colonne Type. Ce seul mot décide si vous renseignez les composantes de votre contrat ou si vous les laissez de côté.
- Choisissez une secours — si votre zone a une seconde source. Douze zones sont couvertes deux fois : SE1–4 et NO1–5 (Nord Pool à côté de la source nationale), DK1–2 et NL (Energy-Charts à côté d'une seconde), et SE4 et NO2 trois fois. Les autres ne sont couvertes qu'une fois. Pour DE-LU, FR, AT, BE, CH, CZ, HU, IT-North, PL, SI, FI, EE, LV, LT et les régions du Royaume-Uni, cette liste ne compte aucun second fournisseur ; ce qui suit la principale est donc le tarif de zone de votre plan — sauf si vous envoyez un prix depuis Home Assistant, qui est une source à part entière.
- Vérifiez le premier jour complet par rapport aux chiffres de votre fournisseur, et non par rapport au graphique de gros. Deux écarts différents ont deux sens différents : un écart à peu près égal à la fraction taxes-et-TVA signifie que le type est mal réglé, cas le plus courant ; un écart à peu près égal à votre frais fixe ne signifie rien d'anormal. Le hub calcule l'énergie, par kilowattheure. Un montant fixe journalier ou mensuel — vastrecht, Grundpreis, netbeheer, frais fixes — n'est pas dans son chiffre, si bien que le mois différera de la facture exactement de ce montant, et aucun réglage ne le change.
Ce que cela ne fait pas
- Ce n'est pas une relation avec un fournisseur. Les sources sont des données publiques de prix pour des zones de marché ; le contrat est ce que vous décrivez dans le plan.
- Cela ne convertit pas de monnaie. Une incohérence est refusée au moment où vous enregistrez, ce qui est le meilleur endroit pour le découvrir.
- Cela n'allume ni n'éteint rien quand le prix bouge. Les créneaux bon marché sont un signal ; ce qu'on en fait relève de votre automatisation.
- Cela ne recalcule pas le passé. Une période garde le prix qui lui a été appliqué, avec sa source. Corriger un réglage change ce qui vient ensuite.
Où lire la suite
- Where your price comes from — la référence complète : chaque champ, chaque motif d'échec, et ce que chacun signifie pour vous.
- Prix du marché — la version courte, si vous hésitez encore à activer cette fonction.
- Prices in the app — la page Prices, le tableau par période et le journal des prix appliqués.
- How cost is calculated — la chaîne qui mène d'un kilowattheure mesuré à un montant en argent.
- Tariffs and plans — zones, frais, taxes et TVA : c'est là que se trouve l'autre moitié d'une source spot.