96 Viertelstunden
Öffentliche Werte der dynamischen Einspeisevergütung bilden den Ausgangspunkt.
Energie & Mobilität · Praxisbericht
Eine API liefert Zahlen. Für eine Automation müssen daraus ein eindeutiger Tag, 24 geprüfte Stundenwerte und eine sichere Freigabeentscheidung werden.
Die Preise sind nur ein Teil der Integration. Ebenso wichtig sind Zeitmodell, Datenqualität und Rückfallebene.
Öffentliche Werte der dynamischen Einspeisevergütung bilden den Ausgangspunkt.
Einheit, Tarifdatum, Zeitzone und Vollständigkeit werden kontrolliert.
Loxone erhält absolute Stundenwerte und eine getrennte Qualitätsentscheidung.
Der Guard schützt den Optimierer; EMS Classic bleibt manuell verfügbar.
Die Screenshots zeigen historische App-Ansichten aus dem produktiven Aufbau. Sie enthalten bewusst keine Netzwerk-, Zugangs- oder Konfigurationsdetails.
Diese beiden historischen Ansichten stammen vom selben Samstag. Sie zeigen keine Modellrechnung, sondern die reale Wirkung der Steuerungslogik.
BKW veröffentlicht dynamische Einspeisevergütungen über eine öffentliche API. Loxone kann solche Daten grundsätzlich für eine tarifabhängige Optimierung verwenden – BKW ist dort aber keine direkt verfügbare Preisquelle. Zwischen «die API liefert Werte» und «die Hausautomation darf danach entscheiden» fehlte deshalb ein zuverlässiger Übersetzer.
Patrick gab Ziel, Anlagenkontext und Freigabegrenzen vor. Rootkeeper entwickelte daraus einen selbst gehosteten Dienst, der die BKW-Daten abruft, prüft, auf Schweizer Lokalstunden abbildet und in einem für Loxone verlässlich lesbaren Format bereitstellt. Ebenso wichtig wie die Preise selbst ist die Frage: Darf die Automation diesen Datensatz überhaupt verwenden?
Die Schnittstelle liefert Viertelstundenwerte. Ein normaler Schweizer Tag besteht damit aus 96 Intervallen. Für den Loxone Spotpreis-Optimierer werden daraus 24 absolute Stundenwerte.
Dafür müssen Tarifdatum, Vollständigkeit, Einheit, Zeitintervalle und Zeitzone zweifelsfrei stimmen. Auch negative Preise und echte Nullwerte sind zulässig. Ein HTTP-Status 200 sagt nur, dass ein Server geantwortet hat – nicht, dass die Daten für eine Automation sicher sind.
Der entwickelte Proxy arbeitet tagebasiert in der Zeitzone Europe/Zurich. Er gruppiert die Viertelstundenwerte nach Schweizer Lokalstunden und bildet einen Tagesvektor von h00 bis h23.
Die Identität des Datensatzes ist das lokale Tarifdatum. So werden bereits veröffentlichte Werte für morgen nicht versehentlich als heutige Tarife verwendet. Ein erfolgreich geprüfter Tagesvektor wird persistent gespeichert und bleibt über einen Container-Neustart oder einen vorübergehenden Upstream-Ausfall hinweg verfügbar.
Die erste technisch korrekte Ausgabe war noch nicht automatisch die robusteste Loxone-Ausgabe. Dezimalwerte konnten erkannt, bei der Weiterverarbeitung aber nicht zuverlässig übernommen werden.
Der Proxy transportiert die Werte deshalb als ganze mCHF/kWh. Loxone skaliert sie kontrolliert zurück. Ein einziger Virtual HTTP Input liest den Status und alle 24 Stundenwerte. Der Spotpreis-Optimierer arbeitet im Modus Absolut, wodurch jede Stunde eindeutig ihrem lokalen Zeitpunkt zugeordnet bleibt.
Die Preise allein reichen nicht. Ein zusätzlicher Statuscode trägt die Sicherheitsentscheidung:
Der heutige Datensatz ist vollständig geprüft. Dynamische Optimierung ist erlaubt.
Genau eine Stunde ist nullgefüllt. Nutzung ist erlaubt, die Warnung bleibt sichtbar.
Der dynamische Pfad wird gesperrt oder neutralisiert.
Ein echter Tarifwert 0 ist gültig. Erst Status und Diagnose erklären seine Bedeutung.
Das System bevorzugt einen sichtbaren Ausfall gegenüber einer plausibel aussehenden Vermutung.
EMS dynamisch verwendet den geprüften Tagesvektor. EMS klassisch umgeht die API-Logik und erhält die klassische Überschussfunktion.
Der manuelle Classic-Fallback besitzt bewusst eine hohe Priorität. Wenn BKW, Proxy, NAS oder Hausnetz nicht verfügbar sind, bleibt ein bekannter und verständlicher Betriebszustand erreichbar.
Die Einspeisevergütung wird nicht nur angezeigt. Sie beeinflusst, wie attraktiv Einspeisung im Verhältnis zum Eigenverbrauch ist.
Energie, die nur gering vergütet ins Netz fliessen würde, soll nach Möglichkeit im Haus genutzt werden. Die Tarifstufe wird damit zu einem verständlichen Steuerungssignal, während die konkrete Verbraucherlogik weiterhin in Loxone bleibt.
Ein früher MQTT-Tarifpfad wurde nach der Umstellung auf den einfacheren HTTP-Weg entfernt. Produktiv gibt es nur noch einen klaren Datenpfad.
Eine API-Integration ist nicht fertig, wenn der erste Zahlenwert erscheint. Für eine Automation müssen Zeitbezug, Einheit, Vollständigkeit, Fehlerzustände und Rückfallverhalten eindeutig sein.
Die eigentliche Leistung ist deshalb nicht nur die Umrechnung von 96 Viertelstundenwerten in 24 Stundenwerte. Es ist die klar definierte Grenze zwischen Daten vorhanden und Daten sicher genug für eine Entscheidung.
Der BKW Tariff Proxy ist kein offizielles Produkt von BKW oder Loxone. Quellcode und Veröffentlichungen sind auf GitHub dokumentiert.