Die aWATTar GmbH mit Sitz in Wien ist ein Anbieter von 100% erneuerbarer Energie auf dem österreichischen Strommarkt, sowie seit 2018 unter www.awattar.de mit Sitz in Berlin für Deutschland.
Die Besonderheit dieses Anbieters sind die Tarife hourly bzw. hourly-cap, bei denen der Stromtarif, gekoppelt an den EPEX Spot Börsenpreis, stundenweise variiert.
Es ist dabei auch möglich, dass der Strompreis negativ werden kann. Mittels einer API von aWATTar ist es möglich, den kommenden Strompreis der nächsten 24 Stunden abzurufen und auf diese Weise Verbraucher im Haushalt gezielt zu steuern.
Für die Nutzung des Tarifs hourly ist ein SmartMeter erforderlich. Die Tarife monthly und yearly können mit einem klassischen Stromzähler verwendet werden.
Für LoxBerry-Benutzer gibt es auch ein /wiki/spaces/LOXBERRY/pages/1244332216. |
aWATTar bietet neben der hier beschriebenen API auch eine JSON-API an, die sich für Systeme mit höheren Programmiersprachen und Mathematikfunktionen besser eignet.
Die hier dokumentierte API wurde von RobertS und Christian Fenzl speziell für den Betrieb mit dem Loxone Miniserver bzw. anderer Systeme mit reduziertem Funktionsumgang spezifiziert und von aWATTar umgesetzt.
Derzeit besteht ein Fair-Use-Limit von 100 Requests pro Tag. Nach Rücksprache mit aWATTar ist eine Abfrage im 5-Minuten-Takt (entspricht ca. 288 Abfragen pro Tag) für Loxone-Benutzer erlaubt. |
Österreich: Es ist kein Token erforderlich.
Template: VI_aWATTar hourly_AT.xml (Template aktualisiert am 29.08.2019 für API-Version vom 13.04.2016)
So bindest du das Tempate ein: Templates in Loxone Config einbinden
UPDATE 21.07.2020: Ein Token ist auch für Österreich nicht mehr erforderlich. Bitte ändere nach dem Einbinden der Vorlage die URL des virtuellen HTTP-Eingangs folgendermaßen ab:
URL ändern auf http://api.awattar.at/v1/marketdata/current.yaml
Deutschland: Es ist kein Token erforderlich.
Template: VI_aWATTar hourly_DE.xml (Template DE erstellt am 29.08.2019 für API-Version vom 13.04.2016)
So bindest du das Tempate ein: Templates in Loxone Config einbinden
Virtuellen HTTP Eingang mit folgender URL anlegen:
Österreich: http://api.awattar.at/v1/marketdata/current.yaml
Deutschland: http://api.awattar.de/v1/marketdata/current.yaml
Rückgabe der API
date_now: 2016-04-13 15:35:28 date_now_epoch: 1460554528067 date_now_day: 13 date_now_month: 4 date_now_year: 2016 date_start: 2016-04-13 00:00:00 date_end: 2016-04-13 23:59:59 price_low: 2.14100 price_high: 3.94100 price_median: 2.84500 price_average: 2.85379 price_current: 2.60000 price_unit: Cent/kWh price_threshold_01: 2.14100 price_threshold_02: 2.16800 price_threshold_03: 2.16800 price_threshold_04: 2.17100 price_threshold_05: 2.27700 price_threshold_06: 2.29300 price_threshold_07: 2.35900 price_threshold_08: 2.59600 price_threshold_09: 2.60000 price_threshold_10: 2.63300 price_threshold_11: 2.70100 price_threshold_12: 2.80000 price_threshold_13: 2.89000 price_threshold_14: 2.90000 price_threshold_15: 3.13100 price_threshold_16: 3.13500 price_threshold_17: 3.19400 price_threshold_18: 3.23700 price_threshold_19: 3.32300 price_threshold_20: 3.38600 price_threshold_21: 3.44200 price_threshold_22: 3.49900 price_threshold_23: 3.50600 price_threshold_24: 3.94100 data_price_hour_rel_-15_amount: 2.29300 data_price_hour_abs_00_amount: 2.29300 data_price_hour_rel_-14_amount: 2.16800 data_price_hour_abs_01_amount: 2.16800 data_price_hour_rel_-13_amount: 2.16800 data_price_hour_abs_02_amount: 2.16800 data_price_hour_rel_-12_amount: 2.14100 data_price_hour_abs_03_amount: 2.14100 data_price_hour_rel_-11_amount: 2.17100 data_price_hour_abs_04_amount: 2.17100 data_price_hour_rel_-10_amount: 2.27700 data_price_hour_abs_05_amount: 2.27700 data_price_hour_rel_-09_amount: 3.13500 data_price_hour_abs_06_amount: 3.13500 data_price_hour_rel_-08_amount: 3.49900 data_price_hour_abs_07_amount: 3.49900 data_price_hour_rel_-07_amount: 3.94100 data_price_hour_abs_08_amount: 3.94100 data_price_hour_rel_-06_amount: 3.50600 data_price_hour_abs_09_amount: 3.50600 data_price_hour_rel_-05_amount: 3.32300 data_price_hour_abs_10_amount: 3.32300 data_price_hour_rel_-04_amount: 3.19400 data_price_hour_abs_11_amount: 3.19400 data_price_hour_rel_-03_amount: 2.89000 data_price_hour_abs_12_amount: 2.89000 data_price_hour_rel_-02_amount: 2.70100 data_price_hour_abs_13_amount: 2.70100 data_price_hour_rel_-01_amount: 2.59600 data_price_hour_abs_14_amount: 2.59600 data_price_hour_rel_+00_amount: 2.60000 data_price_hour_abs_15_amount: 2.60000 data_price_hour_rel_+01_amount: 2.63300 data_price_hour_abs_16_amount: 2.63300 data_price_hour_rel_+02_amount: 2.90000 data_price_hour_abs_17_amount: 2.90000 data_price_hour_rel_+03_amount: 3.23700 data_price_hour_abs_18_amount: 3.23700 data_price_hour_rel_+04_amount: 3.38600 data_price_hour_abs_19_amount: 3.38600 data_price_hour_rel_+05_amount: 3.44200 data_price_hour_abs_20_amount: 3.44200 data_price_hour_rel_+06_amount: 3.13100 data_price_hour_abs_21_amount: 3.13100 data_price_hour_rel_+07_amount: 2.80000 data_price_hour_abs_22_amount: 2.80000 data_price_hour_rel_+08_amount: 2.35900 data_price_hour_abs_23_amount: 2.35900 |
Label | Format | Beschreibung |
---|---|---|
Daten zur aktuellen Stunde und anbieterseitig vorberechnete Werte des Kalendertages | ||
date_now | yyyy-mm-dd hh:mm:ss | Uhrzeit des Abrufs |
date_now_epoch | <Unix-Time> (Zahl) | Die Uhrzeit des Abrufs in Unixzeit mit Millisekunden. Dient zur Validierung der Aktualität. |
date_now_day | <1-31> | Aktueller Tag |
date_now_month | <1-12> | Aktuelles Monat |
date_now_year | <yyyy> | Aktuelles Jahr |
date_start | yyyy-mm-dd hh:mm:ss | Startdatum und -zeit der gelieferten Daten (aktuell immer der aktuelle Kalendertag 0:00 Uhr) |
date_end | yyyy-mm-dd hh:mm:ss | Enddatum und -zeit der gelieferten Daten (aktuell immer der aktuelle Kalendertag 23:59 Uhr) |
price_low | x.yyyyy | Niedrigster Preis des aktuellen Kalendertages (ct/kWh) |
price_high | x.yyyyy | Höchster Preis des aktuellen Kalendertages (ct/kWh) |
price_median | x.yyyyy | Preis-Median des aktuellen Kalendertages (ct/kWh) |
price_average | x.yyyyy | Arithmetischer Mittelwert des aktuellen Kalendertages (ct/kWh) |
price_current | x.yyyyy | Preis dieser Stunde (ct/kWh) |
price_unit | <String> | Preiseinheit, derzeit fix "Cent/kWh" |
price_threshold_xx | x.yyyyy | xx von 00 bis 23. Dabei handelt es sich um eine aufsteigend sortierte Liste der Preise (niedrigst bis höchst). |
Daten der Zukunft und Vergangenheit Aktuell werden nur Daten des aktuellen Kalendertages (00:00 bis 23:59 Uhr) ausgegeben. aWATTar prüft die Ausweitung auf weitere zukünftige Werte. Die Syntax der Labels ist dafür vorbereitet. | ||
Präfix data_price_hour_rel_-<xx> data_price_hour_rel_+<xx> | -xx: Vergangene Daten +xx: Aktuelle und zukünftige Daten | data_price_hour_rel bezieht sich auf Daten relativ von der aktuellen Stunde. Das Vorzeichen - (Minus) vor der Zahl ist definiert für Daten der Vergangenheit. Das Vorzeichen + (Plus) für Daten der aktuellen bzw. zukünftige Stunden. Die Zahl <xx> spiegelt dabei den Zeitversatz wider: +00 steht für Werte dieser Stunde, +01 der nächsten Stunde, -01 stellt den Wert der letzten Stunde, -02 der vorletzten Stunde dar. Die Zahl ist immer zweistellig. |
Präfix data_price_hour_abs_<xx> | xx: Daten der absoluten Stunde | data_price_hour_abs bezieht sich auf die absolute (Tages-)Stunde, z.B. Daten für 09:00 Uhr haben ein Label data_price_hour_abs_09, von 10:00 Uhr data_price_hour_abs_10. Derzeit liefert die absolute Stunde sowohl Daten der Vergangenheit als auch der Zukunft. Im Falle einer Erweiterung der Daten soll die Schnittstelle für dieses Label nur noch Zukunftsdaten liefern, und Vergangenheitsdaten mit Minus markieren. Die Zahl ist immer zweistellig. |
Präfix data_price_hour_abs_-<xx> | -xx: Vergangene Daten der absoluten Stunde | Dieses Label ist derzeit nicht implementiert, und soll die Stundenwerte der Vergangenheit repräsentieren. |
<präfix>_amount | x.yyyyy | data_price_hour_rel_<xx>_amount bzw. data_price_hour_abs_<xx>_amount liefert den Preis der angegebenen Stunde (ct/kWh) |
data_price_hour_abs_-<xx>_amount: beschreibt den Datensatz als den Wert zur Stunde 08 (08:00 Uhr) in der Vergangenheit (-08 = mit Vorzeichen).
data_price_hour_abs_<xx>_amount: beschreibt den Datensatz als den Wert zur Stunde 12 (12:00 Uhr) als laufende oder zukünftige Stunde (12 = ohne Vorzeichen).
Die Unterscheidung ist erforderlich, da bei mehr als 24 Absolut-Werten Duplikate der Labels existieren, und so mit der Befehlserkennung nicht mehr eindeutig Zukunftswerte abgerufen werden können.
Mit dem Eingang Datum_Epoch kann auf Datenaktualität geprüft werden. Siehe dazu folgenden Artikel: epochtime (Unix-Zeit) zum Prüfen auf Datenaktualität nutzen
Der folgende Weg zur Identifizierung ist noch in der Erprobung und nur ein erster Schritt. Bitte nach eigenen Bedürfnissen anpassen!
Die zwei Formeln berechnen eine Schwelle, was als "hoch" und als "niedrig" anzusehen ist:
Es wird jeweils die Differenz zwischen Median und Höchst- bzw. Tiefstwert berechnet. Die Schwelle entspricht Median plus bzw. minus 50% der Differenz. Mit GRÖSSER/KLEINER wird ermittelt, ob der Preis diese Schwelle über- bzw. unterschreitet.
Beispiel: aWATTar Beispiel.Loxone
In meiner Installation verwende ich auch ein weiteres Kriterium: Es wird der positive bzw. negative Aufschlag des aktuellen Preises zum Median in Prozent berechnet. Erst wenn der Preis 30% über dem Median liegt und die berechnete Schwelle überschritten ist, gilt der Preis als "teuer", ebenso für "günstig". Dies fängt Situationen ab, wo der Preis über einen Tag hinweg nur gering variiert. Dann könnte die Berechnung auf Basis der Differenz schon schnell ein "teuer" liefern, obwohl der Preis prozentuell nur minimal über dem Median/Mittelwert liegt.
Wenn ein Verbraucher nach dem Einschalten länger läuft (oder laufen muss), ist es sinnvoll, nicht nur den aktuellen Preis zu prüfen, sondern den Preis über einen längeren Zeitraum.
Mit dieser Beschaltung wird der Taster Waschmaschine nur eingeschaltet, wenn der Mittelwert des aktuellen Preises und jener der nächsten zwei Stunden unter dem Preis_Mittelwert des Tages liegt.
Der Mittelwert-Baustein kann durch einen Min/Max-Baustein ersetzt werden. Dann wird die Aktion nur gestartet, wenn die drei Preise die Schwelle (hier: Mittelwert) nicht überschreiten.
Die Preisschwellwerte (Preis_Schwelle_01 bis Preis_Schwelle_24) sind aufsteigend nach Preisen sortiert. Das ermöglicht Steuerungen aufgrund der Höhe des Preises, zum Beispiel:
Ist der aktuelle Preis kleiner oder gleich der Preis_Schwelle_01 (niedrigster Preis), soll der Strom für die Waschmaschine eingeschaltet werden.
Preis_Schwelle_21 ist der viert-teuerste Preis (24 = am teuersten, 23 = zweitteuersten, usw.). Ist der aktuelle Preis gleich oder größer dem Schwellpreis_21, wird der Regler für die Infrarotheizung deaktiviert. Damit heizt die IR-Heizung nicht bei diesen vier teuersten Tarifen.
Die Wohnraumlüftung ist mit einem 0-10V Ausgang ausgestattet.
Die beiden Vergleiche links liefern die höchsten vier (Preis_Schwelle_21) und die höchsten acht (Preis_Schwelle_16) zurück. Mit den UND-Bausteinen wird das Ergebnis mit dem "aWATTar Status" (Daten sind aktuell = EIN) verknüpft.
Im Status-Baustein gibt es drei Zustände:
Neben der Anzeige der aktuellen Preisdaten in der Loxone-Visualisierung gibt es einen viel schöneren Weg:
aWATTar bietet die dynamische Stundengrafik, die sich auf der Webseite im Hourly-Tarif versteckt, als iframe an, dieser kann direkt als Webpage eingebunden werden:
Die dynamische Grafik wird dann in jedem Betriebssystem direkt im Browser geöffnet, ohne sich bei aWATTar "durchklicken" zu müssen.
Aufgrund meiner Bestrebungen, die IDM Wärmepumpe entsprechend des aWATTar Strompreises (hourly) zu steuern, hat IDM gemeinsam mit aWATTar eine direkte IDM-aWATTar Schnittstelle entwickelt.
Die Navigator-Software mit aWATTar-Schnittstelle ist bereits verfügbar. Wenn im IDM Navigator die aWATTar-Option nicht verfügbar ist, bitte den IDM-Support kontaktieren. Im IDM Navigator muss aWATTar auf "Ja" gesetzt und die Einstellungen getroffen werden. Inkludiert ist eine Brauchwasser-Zeitverlegung, sowie eine Anhebung der Fußbodenheizungs-Vorlauftemperatur und die Speicheranhebung während der günstigen Stunden.
Das von aWATTar angebotene SmartGrid-Gerät "SYNCER" wird mit dieser Option nicht benötigt.