[go: nahoru, domu]

Skip to content

melmager/ha_ostrom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ha_ostrom

Integration Ostrom in to Home Assistant

only Playground! Beginner Level Programming for Homeassistant#

Path in Home Assistant /homeassistant/custom_components/ostrom

Man muss Kunde bei Ostrom sein in der Web App account erstellen

Beschreibung der Web API https://docs.ostrom-api.io/reference/introduction

Zugang erstellen https://developer.ostrom-api.io/auth/login

dort hat man die Wahl zwischen Sandbox und Production - meine Software arbeitet mit Production Umgebung

Beim Anlegen erhält man eine Client ID und erzeugt dann ein Secret - beides wird benötigt

Aus Beiden Angaben getrennt mit einem : wird ein Base64 Login erstellt, den die Software benötigt.

für den Zugriff auf Daten wird ein zugangstoken benötigt, der nur eine gewisse Zeit gültig ist

action: ostrom.get_token
data: 
  api_key64: >-
     ihr_base64key_fuer_ostrom_zugang

als ergebnis wird ein states erzeugt mit angabe Zeitpunkt expire und einem state.attribute token das bei weiteren abfragen benutzt werden muss , expire wird derzeit von mir nicht ausgewertet - ist auf der to do liste :-) es ist sinnvoll ein sequence zu erstellen die immer mit get_token startet und im Anschluss die Price Daten abfragt in Entwicklung / template

Ablauf {{ states('ostrom.token') }}
Zugangstoken {{ state_attr('ostrom.token','token') }}

Abfrage der Price daten

token: muss der token übergeben werden von der Abfrage get_token start_offset:0 = startzeitpunkt der abfrage - hier aktuelle Stunde (wird wohl ein fester Wert 0 werden) end_offset: 36 = endzeitpunkt - Ergebnismenge ist abhängig vom Abfragezeitpunkt Ostrom liefert immer pricedaten bis 23:00 Uhr (test mit sommerzeit) Mittags ab 14:00 Uhr gibt es die Daten für den nächsten Tag (sommerzeit) bis dahin nur aktueller Tag Also hat man bei Abfrage Morgens nur die Price daten bis 23:00 Uhr des Tages.

- action: ostrom.get_price
        metadata: {}
        data:
          token: "{{ state_attr('ostrom.token','token') }}"
          start_offset: 0
          end_offset: 36
          my_zip: "60000"

my_zip: "ihre postleitzahl" - ist ein muss - ohne gibt es keine preisdaten ! start_offset: Startzeitpunkt = 0 = Aktuelle Stunde end_offset: wie weit in die Zukunft - max 36 Stunden - ergebinsmenge abhängig von der Abfrage Uhrzeit (siehe Erklärung oben)

Aktueller Preis {{ states('ostrom.price') }}
Raw Daten die Ostrom liefert {{ state_attr('ostrom.price','raw') }}
Durchschnitts Preis {{ state_attr('ostrom.price','average') }}
Gekürztes Ergebnis für Datenquelle Apexchart {{ state_attr('ostrom.price','apex') }}
Günstigster Strompreis Zeitpunkt {{ state_attr('ostrom.price','low') }}

übermittelter Strompreis ergibt sich aus Brutto Strompreis "grossKwhPrice" plus Brutto Steuern und Netzabgabe "grossKwhTaxAndLevies"

Beispiel Raw Daten von Ostrom für eine Stunde:

{ "data": [
    {
      "date": "2023-10-22T01:00:00.000Z",
      "netMwhPrice": 926,
      "netKwhPrice": 92.6,
      "grossKwhPrice": 110.2,
      "netKwhTaxAndLevies": 16.2,
      "grossKwhTaxAndLevies": 19.28,
      "netMonthlyOstromBaseFee": 5.04,
      "grossMonthlyOstromBaseFee": 6,
      "netMonthlyGridFees": 3.84,
      "grossMonthlyGridFees": 4.57
    }
  ]
}

Bekannte Bugs, die wegen Beginner Status noch nicht lösen kann

  • kein Eintrag im Logfile
  • api_key64: !secret base64key !secret ist leider nicht möglich der Key muss noch dem get_token übergeben werden

About

Integration Ostrom in to Home Assistant

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages