Woher der Hub den Preis bekommt: sechs öffentliche Quellen, was jede abdeckt und was sie im Gegenzug verlangen

  • Getestet mit Firmware v1.2.1
  • Fortgeschritten

Sie haben einen Spotpreis (spot price) in Home Assistant eingetragen, das Energie-Dashboard darauf ausgerichtet, und die Zahl kam falsch heraus. Nicht ein bisschen falsch — falsch genug, dass Sie den Fehler in Ihren eigenen Templates gesucht haben.

Der Fehler steckt meistens nicht in den Templates. Der Preis, den Sie abgerufen haben, und der Preis, den Sie bezahlen, sind zwei verschiedene Zahlen, und nichts in der Kette sagt Ihnen, welche von beiden Sie gerade in der Hand halten.

"Das Energie-Dashboard in Home Assistant ist zwar mächtig, stellt aber eine Herausforderung dar" — arva, Home-Assistant-Forum, Thread 682847

Das ist der untertriebene Einstieg eines Threads, dessen Autor am Ende seine eigene Integration geschrieben hat. Dieser Artikel handelt vom Schritt davor: welche Preisquelle Ihre Zone abdeckt, was sie tatsächlich liefert und was sie im Gegenzug verlangt.

Spot oder All-in: Richtig festlegen, dann folgt das Meiste

Jede Quelle gehört zu einer von zwei Arten, und der Hub muss wissen, welche:

  • Ein Spotpreis ist der Anfang einer Berechnung, nicht ihr Ende. Er ist der Großhandelspreis für die Periode. Was Sie zahlen, ist dieser Preis mal einen Faktor (1.0, sofern Ihr Vertrag den Börsenpreis nicht skaliert), plus Ihr Aufschlag (markup) des Lieferanten pro Kilowattstunde, plus das Netzentgelt (grid fee), plus Steuern und Abgaben, und danach MwSt. (VAT) auf das Ganze — jede Komponente ohne MwSt. eingetragen, weil die MwSt. genau einmal, auf die Summe, angewendet wird. Jedes Geldfeld ist pro Kilowattstunde, in der Hauptwährungseinheit Ihrer Währung: Ein Aufschlag von 2.5 Cent wird als 0.025 eingetragen, nicht als 2.5. Was die öffentlichen Quellen pro Megawattstunde angeben, rechnet der Hub selbst um; was Sie eintippen, übernimmt er so, wie Sie es eingeben. Tragen Sie einen Wert ein, der die MwSt. schon enthält, wird er doppelt besteuert — das ist der häufigste Grund, warum ein Spot-Setup zu hoch ausfällt. Ein All-in-Preis (all-in price) wird nie noch einmal besteuert. Speisen Sie einen Spotpreis direkt in eine Kostenangabe ein, kommt sie zu niedrig heraus — bis Sie die Bestandteile hinzufügen, und dann ist die Rechnung Ihre Aufgabe, dauerhaft.
  • Ein All-in-Preis enthält sie bereits. Es ist das, was Ihr Lieferant für diese Periode berechnet, inklusive Steuern. Addieren Sie Ihren eigenen Aufschlag darauf, kommt die Angabe zu hoch heraus.

Beide Fehler sehen von außen gleich aus: eine Kostenangabe, die nicht zur Rechnung passt. Die Bestandteile ohne kWh sind die Hälfte, die die Leute vergessen, und sie sind nicht klein:

"+1 dafür. Im Vereinigten Königreich ist das auch ziemlich Standard" — thefunkygibbon, Thread 330609

Dieser Thread handelt von Grundgebühren — einem Tagesbetrag, der nichts damit zu tun hat, wie viel Sie verbraucht haben. Er wird seit 2021 gefordert.

Auf dem Hub ist die Art eine Eigenschaft der Quelle. Wählen Sie eine Spotquelle, sind der Faktor, der Aufschlag, die Gebühren, die Steuern und die MwSt. Ihres Vertrags Felder, die Sie einmal ausfüllen; wählen Sie eine All-in-Quelle, wird der Preis so übernommen, wie er ankommt. In beiden Fällen bepreist der Hub jede 15-Minuten-Periode mit dem Preis genau dieser Periode und hält den Preis neben der Energie fest, damit die Zahl später nachvollziehbar bleibt, statt neu abgeleitet werden zu müssen.

⚠️ Warum sich das beim ersten Mal lohnt. Der Hub speichert, welchen Preis er Periode für Periode angewendet hat — aber ein angewendeter Preis ist Verlauf, keine Formel, die man erneut ausführen kann. Home Assistant hat dieselbe Eigenschaft, und Leute lernen sie auf die harte Tour kennen:

"Ich bin ziemlich sicher, dass man Änderungen in HA nicht rückwirkend eintragen kann." — tinkergnome, Thread 585379

Die sechs öffentlichen Quellen

Quelle Art Auflösung Gebiete Währung
Energy-Charts (Fraunhofer ISE) Spot 15 Minuten AT, BE, CH, CZ, DE-LU, DK1, DK2, FR, HU, IT-North, NL, NO2, PL, SE4, SI EUR
Nord Pool (inoffizielles Datenportal) Spot 15 Minuten SE1–4, NO1–5, DK1–2, FI, EE, LV, LT die der Zone: SEK, NOK, DKK oder EUR
Elpriset just nu (SE) Spot 15 Minuten SE1–4 SEK
Hva koster strømmen (NO) Spot 1 Stunde NO1–5 NOK
EnergyZero (NL) All-in 15 Minuten NL EUR
Octopus Agile (UK) All-in 30 Minuten die 14 GSP-Regionen, A–P GBP

Keine davon braucht ein Token oder ein Konto.

Eine All-in-Quelle enthält den Endkundenpreis dieses Anbieters. Ist Ihr Lieferant ein anderer, gehört diese Zahl nicht Ihnen — tragen Sie dann stattdessen Ihren eigenen Preis aus Home Assistant ein, dazu weiter unten mehr.

Die Auflösung ist nicht der Abrechnungsschritt. Ein Preis mit 30 Minuten oder einer Stunde gilt für jede 15-Minuten-Periode darin — vier Perioden teilen sich einfach einen Preis —, deshalb werden die Kosten weiterhin pro 15-Minuten-Periode berechnet. Und eine Quelle mit 15 Minuten erzwingt keine Abrechnung in 15-Minuten-Schritten: Ob pro Periode oder zum Mittelwert der Stunde abgerechnet wird, ist eine Eigenschaft Ihres Vertrags und wird separat eingestellt.

⚠️ Die Währung wird nie umgerechnet. Der Hub wandelt SEK nicht in EUR um. Eine Zone, deren Währung von der Ihres Tarifs abweicht, wird beim Speichern abgelehnt, und eine Quelle in einer anderen Währung wird übersprungen, statt angenähert zu werden. Stellen Sie zuerst die Währung Ihres Tarifs ein und wählen Sie dann eine Zone, die dazu passt.

Was jede dafür verlangt

Öffentlich heißt nicht bedingungslos. Jede Quelle trägt den Wortlaut, den ihre Lizenz verlangt — zum Beispiel Bundesnetzagentur | SMARD.de / Energy-Charts (CC BY 4.0) —, und der Hub zeigt ihn auf der Seite Prices an. Diese Zeile ist keine Dekoration: Sie ist die Bedingung, unter der die Daten überhaupt genutzt werden dürfen. Energy-Charts wird nur für die Zonen ausgeliefert, die unter CC BY 4.0 veröffentlicht sind.

Wer die Quelle anzeigen muss, entscheidet, wer den Preis anzeigt. Der Hub liefert die Namensnennung und den Link zu den Bedingungen zusammen mit jedem Preis, sodass alles, was den Preis darstellt, das Nötige bereits hat. Die eigene App des Hubs nennt die Quelle auf der Seite Prices. Das RBgrid-Panel in Home Assistant stellt sie ebenfalls dar. Wenn Sie aus den Daten des Hubs ein eigenes Dashboard bauen, liegt die Anzeige bei Ihnen — Text und Link stehen im Preis-Payload genau aus diesem Grund.

⚠️ Nord Pool wird über ein inoffizielles Datenportal angesprochen, und der Hub sagt das dort, wo er die Quelle nennt. Dahinter steht kein Dienstleistungsvertrag: Es kann sich ohne Ankündigung ändern oder eingestellt werden. Nutzen Sie es bewusst und geben Sie ihm eine Ersatzquelle, wo es eine gibt — siehe den dritten Schritt weiter unten; für FI, EE, LV und LT ist es die einzige Quelle der Liste, dort kann die Ersatzquelle nur ein Push aus Home Assistant sein.

Das ist auch die ehrliche Antwort auf die Frage „Arbeiten Sie mit meinem Lieferanten zusammen?“ — der Hub arbeitet nicht mit Lieferanten zusammen. Er liest öffentliche Preisdaten für ein Marktgebiet und wendet den Vertrag an, den Sie beschreiben. Eine Quelle in der Liste ist eine Einstellung, die Sie gewählt haben, keine Beziehung, die jemand unterhält.

Wenn Ihre Zone nicht in der Liste steht

Dann ist die siebte Quelle Sie selbst. Home Assistant — oder jeder andere Client — kann Preise an den Hub senden, statt dass der Hub sie abruft: bis zu 200 Perioden auf einmal, gespeichert im eigenen Speicher des Hubs. Sie geben an, ob das, was Sie senden, Spot oder All-in ist, und von da an wird es genauso behandelt wie ein Anbieter dieser Art.

Das ist der Weg für einen Lieferanten, für den der Hub keine Quelle hat, und für einen Preis, den Sie selbst berechnen. Im ESPHome-Build ist Home Assistant von Anfang an in der Quellenliste aufgeführt; auf der eigenständigen Firmware erscheint sie, sobald ein Push eingegangen ist. In beiden Fällen sind dynamische Preise aus, bis Sie sie einschalten, und die Quelle wählen Sie selbst — Home Assistant ist eine Option in der Liste, nicht die, die bereits gewählt ist.

Vier Dinge zum Push sind leichter im Voraus zu wissen als im Nachhinein herauszufinden:

  • Spot oder All-in wird einmal festgelegt, in den Einstellungen für dynamische Preise — nicht bei jedem Batch. Stellen Sie es passend zu dem ein, was Sie senden, und vergessen Sie es dann.
  • Sie senden einen Batch von Perioden, jede mit Beginn und Ende. Der eigene Takt Ihrer Quelle kann 15 Minuten, 30 Minuten oder eine Stunde betragen; der Hub bepreist jede seiner eigenen 15-Minuten-Perioden anhand des Eintrags, der sie abdeckt.
  • Eine erneut gesendete Periode ersetzt die alte. Gleicher Beginn, neuer Preis, und der gespeicherte Wert wird überschrieben — deshalb korrigieren Sie einen Tag, indem Sie ihn erneut senden.
  • Stunden, die Sie nicht gesendet haben, bleiben nicht unbepreist. Sie fallen durch die übliche Kette: Ihre Ersatzquelle, falls Sie eine eingestellt haben, sonst der Zonentarif Ihres Tarifs. Das Protokoll zeigt, welche Quelle jede Periode abgedeckt hat, sodass nichts stillschweigend verloren geht — sie wird nur von woanders bepreist.

Wenn ein Preis nicht ankommt

Ein Day-Ahead-Markt veröffentlicht den nächsten Tag einmal am Tag. Diese Veröffentlichung kann sich verspäten, der Abruf kann fehlschlagen, Ihre Zone kann in einer Antwort fehlen. Der Hub gibt einen verspäteten Tag nicht auf: Er fragt weiter — alle fünfzehn Minuten im frühen Fenster, danach stündlich, solange der Tag noch fehlt. Eine Veröffentlichung, die spät am Abend eintrifft, wird so innerhalb von etwa einer Stunde aufgenommen, und die Perioden werden aus der Quelle neu bepreist, statt beim Plan zu bleiben. Für jede 15-Minuten-Periode ermittelt der Hub genau einen Preis, in dieser Reihenfolge:

Quelle was es bedeutet
1 Primär der gewählte Anbieter für Ihre Zone
2 Ersatz optional, muss ein anderer Anbieter sein; nur für Perioden, die die Primärquelle nicht abdeckt
3 Ihr Tarif der Zonentarif, der für diese Periode gilt

Nichts wird vermischt: eine Periode, ein Preis, eine Quelle — und die Quelle wird zusammen mit der Periode gespeichert, sodass eine Zahl, die Sie nächste Woche lesen, immer noch auf die Herkunft ihres Preises zurückgeführt werden kann.

Ob Ihnen überhaupt eine Ersatzquelle zur Verfügung steht, kommt zuerst. Zwölf der oben genannten Marktgebiete werden von zwei oder mehr dieser Quellen abgedeckt; fünfzehn werden von genau einer abgedeckt, und dort ist die einzige zweite Quelle ein Preis, den Sie aus Home Assistant senden. Finden Sie zuerst Ihre Zone, bevor Sie den Rest dieses Absatzes als Rat lesen.

Wo es eine Ersatzquelle gibt, lohnen sich die fünf Minuten. Ohne sie springt der Tarif ein. Das ist korrektes Verhalten — Ihre Energie wird weiterhin gezählt und bepreist —, aber es ist ein anderer Preis, und Ihre Kosten für diesen Abschnitt stimmen nicht mit dem Markt überein.

Eine Ersatzquelle der anderen Art ist erlaubt, und sie ändert, was Sie ausfüllen müssen. Jede Periode wird nach der Art der Quelle bepreist, die sie tatsächlich abgedeckt hat, nicht nach der Art der Primärquelle — also müssen bei einer All-in-Primärquelle mit einer Spot-Ersatzquelle trotzdem die Bestandteile Ihres Vertrags ausgefüllt sein, sonst kommen die Perioden der Ersatzquelle als reiner Spotpreis heraus, also zu niedrig. Das Ausfüllen kostet einen All-in-Nutzer nichts: Eine All-in-Quelle ignoriert diese Felder. Die einzigen Regeln sind, dass die Ersatzquelle ein anderer Anbieter ist und dass beide Ihre Tarifwährung angeben.

⚠️ Und eine Ersatzquelle hält einen Marktpreis seiner eigenen Art an der Stelle, die nicht immer dieselbe Zahl ist. In NL zum Beispiel bepreist eine Spot-Ersatzquelle hinter einer All-in-Primärquelle diese Perioden als Spot plus die Bestandteile Ihres Vertrags, nicht als All-in-Preis Ihres Lieferanten. Das Protokoll des Hubs zeigt, welche Quelle jede Periode verwendet hat, sodass sich ein stiller Ersatz von einem stillen Ausfall unterscheiden lässt — und von einem Tag, der auf einer anderen Grundlage bepreist wurde.

Auswählen, in der Reihenfolge, die Arbeit spart

  1. Stellen Sie zuerst die Währung Ihres Tarifs ein. Sie beschränkt, welche Zonen Sie überhaupt speichern können; wer es danach tut, muss den Rest noch einmal machen.
  2. Finden Sie Ihre Zone in der Tabelle und lesen Sie die Spalte Art. Dieses eine Wort entscheidet, ob Sie die Bestandteile Ihres Vertrags ausfüllen oder sie in Ruhe lassen.
  3. Wählen Sie eine Ersatzquelle — wenn Ihre Zone eine zweite Quelle hat. Zwölf Gebiete sind doppelt abgedeckt: SE1–4 und NO1–5 (Nord Pool neben der nationalen Quelle), DK1–2 und NL (Energy-Charts neben einer zweiten) sowie SE4 und NO2 dreimal. Der Rest ist einfach abgedeckt. Für DE-LU, FR, AT, BE, CH, CZ, HU, IT-North, PL, SI, FI, EE, LV, LT und die Regionen im Vereinigten Königreich gibt es in dieser Liste keinen zweiten Anbieter; was auf die Primärquelle folgt, ist also Ihr Zonentarif — sofern Sie nicht einen Preis aus Home Assistant senden, der selbst eine Quelle ist.
  4. Prüfen Sie den ersten vollen Tag gegen die eigenen Zahlen Ihres Lieferanten, nicht gegen den Großhandelschart. Zwei verschiedene Abweichungen bedeuten zwei verschiedene Dinge: Eine Differenz in etwa der Höhe des Steuer- und MwSt.-Anteils bedeutet, dass die Art falsch eingestellt ist — das ist der häufige Fall —, während eine Differenz in etwa Ihrer Grundgebühr bedeutet, dass nichts falsch ist. Der Hub berechnet Energie, pro Kilowattstunde. Ein täglicher oder monatlicher Festbetrag — Vastrecht, Grundpreis, Netzbetreiber, eine Grundgebühr — ist nicht in seiner Zahl enthalten, daher weicht der Monat genau um diesen Betrag von der Rechnung ab, und keine Einstellung ändert das.

Was das nicht tut

  • Es ist keine Lieferantenbeziehung. Die Quellen sind öffentliche Preisdaten für Marktgebiete; der Vertrag ist das, was Sie im Tarif beschreiben.
  • Es rechnet keine Währung um. Eine Abweichung wird an der Stelle abgelehnt, an der Sie speichern — dem besseren Ort, das herauszufinden.
  • Es schaltet nichts ein oder aus, wenn sich der Preis bewegt. Günstige Zeitfenster sind ein Signal; was Sie damit tun, entscheidet Ihre Automatisierung.
  • Es bepreist die Vergangenheit nicht neu. Eine Periode behält den Preis, der ihr angewendet wurde, mit ihrer Quelle. Eine Änderung der Einstellung wirkt auf das, was danach kommt.

Weiterlesen

  • Where your price comes from — die vollständige Referenz: jedes Feld, jeder Fehlergrund und was jeder für Sie bedeutet.
  • Market prices — die Kurzfassung, falls Sie noch überlegen, ob Sie das überhaupt wollen.
  • Prices in the app — die Seite Prices, die Tabelle pro Periode und das Protokoll der angewendeten Preise.
  • How cost is calculated — die Kette von einer gemessenen Kilowattstunde bis zum Geldbetrag.
  • Tariffs and plans — Zonen, Gebühren, Steuern und MwSt., wo der andere Teil einer Spotquelle lebt.