-
-
Notifications
You must be signed in to change notification settings - Fork 641
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Frauenhofer ISE energy-charts-api | day ahead price #13706
Conversation
This PR adds: - energy-charts-api provided by Fraunhofer-Institut für Solare Energiesysteme ISE - generic tariff forcast
Wozu brauchts das denn? Ist das nicht Entso-E? |
change description with use of validvalues-concept
|
Ich denke es bräuchte noch eine Erklärung was dieser "Tarif" tut. Fraunhofer ISE ist sicher nicht jedem geläufig? |
So direkt ein Tarif ist es ja auch nicht.. für sich alleine ist das ja nur ein "generischer" day-ahead-forcast ohne jeglichen Bezug zu einem Stromanbieter.. so viele use-cases wird es da auch nicht geben.. vermutlich für die diejenigen Stromanbieter nutzbar, die noch kein eigenes/fertiges Backend haben um den Nutzern die stündlichen Preise zur Verfügung zu stellen, wie z.B. hier. |
Genau. Und das sollte man ja vielleicht erklären? |
Ich überlege mir mal was sinnvolles. |
Ich habe gerade gesehen, dass defaultmäßig nur die Preise für den aktuellen Tag geliefert werden. man kann aber ein End-Datum/TS angeben.. sprich ich müsste "tomorrow" angeben.. es reicht im Format "YYYY-MM-DD" ..Da ich nicht genau weiß, welche Funktionen im yaml-template verfügbar sind, einer kleiner Anstoß wie ich den date-string erzeuge. |
@mdkeil schöne Idee. Das funktioniert aber noch nicht, oder? Dafür müsste ja die URI in evcc dynamisch evaluiert werden, nämlich bei jedem Aufruf. Im Moment könnte das ja maximal einmalig sein? Wäre aber ein Weg, wenn sich das dynamisieren liesse. Ich denke mal drüber nach wie. |
Ja, das war die erste Überlegung.. aber zu einfach gedacht.. wie du bereits angemerkt hast, muss sich die uri ja mindestens bei jedem Aufruf (wahrscheinlich stündlich) aktualisieren. |
Wir könnten überlegen, die URL im http Plugin dynamisch zu machen. Etwa so:
Und dazu in http.go: // request executes the configured request or returns the cached value
func (p *HTTP) request(url string, body ...string) ([]byte, error) {
if time.Since(p.updated) >= p.cache {
var b io.Reader
if len(body) == 1 {
b = strings.NewReader(body[0])
}
tmpl, err := template.New("url").Parse(url)
if err != nil {
return nil, err
}
builder := new(strings.Builder)
if err := tmpl.Execute(builder, nil); err != nil {
return nil, err
}
// empty method becomes GET
req, err := request.New(strings.ToUpper(p.method), builder.String(), b, p.headers)
if err != nil {
return []byte{}, err
}
p.val, p.err = p.DoBody(req)
p.updated = time.Now()
}
return p.val, p.err
} |
Ich würde lügen, wenn es alles verstanden hätte.. wobei ich nicht ganz nachvollziehen kann, welcher Trigger dazu führt, dass nochmal die config eingelesen wird und nicht direkt aus dem Cache gelesen wird.. ich gehe davon aus, dass es zumindest in der uri das {{ now }} geben muss?.. was ich mir aber nicht vorstellen kann, da ja ggfs andere Teile unabhängig von einem date dynamisch sein könnten.. |
Das soll einfach die URL als Go Template interpretieren. Damit das nicht schon im Template passiert müssen die Klammern versteckt werden. |
Ich schau mal, das ich mir ein build-environment baue, um evcc selbst zu compilieren.. dann werde ich das mal ausprobieren. |
so.. ich habe mal evcc mit meinen Änderungen gebaut.. ohne
https://github.com/mdkeil/evcc/blob/b51f5549d289d1cdf55ef2d94789251f3737b8bc/provider/http.go#L188 |
Bitte VScode mit Go Plugin benutzen- dann werden auch die fehlenden Imports ("text/template") automatisch ergänzt. |
alles klar.. muss ich später von zu Hause machen. Das Go-Plugin ist für die VScode Web nicht nutzbar.. |
einen Schritt weiter.. Mit den Anpassungen der http.go läuft |
Einen Hänger sehe ich nicht, aber die Formatierung scheint noch nicht zu passen:
|
schaue ich mir nachher zuhause mal an.. hast du es bei dir mit angepasstem http-plugin durchlaufen lassen?-- den bad request hatte ich ohne Anpassung ja auch.. da du Dir mehr debug-infos ausgeben lässt, ist zumindest der Grund klar.. ich denke nach dem datemodify muss noch ein Wie sieht die uri denn bei Dir im template aus? |
Es ist genau dieser PR, hab nich geändert |
läuft nun.. aber noch nicht getestet, ob das "verstecken" der Klammern notwendig ist.
|
Doch, müssen sein- sonst würden die Funktionen direkt beim Template einlesen ausgeführt anstatt erst zur Laufzeit der Abfrage. Läuft bei mir auch- sehr schön 👍🏻 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@@ -12,10 +12,10 @@ import ( | |||
) | |||
|
|||
var ( | |||
//go:embed dist | |||
// go:embed dist |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This breaks the system. evcc now panics on startup as the embed does not happen and internal Filesystems are empty.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
das hat bei mir irgendwie vscode mit eingebracht.. habe es ohne nachdenken gepushed.. sorry xD - Kleine Änderung, große Wirkung!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hab ich übersehen- aber VScode macht das egtl. nicht
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Konnte es bei mir nun nachvollziehen.. in vscode wurde mir da ein Fehler angezeigt pattern dist: no matching files found
..hatte es dann wohl manuell geändert. Komischerweise sind bei mir lokal keine negativen Seiteneffekte aufgetreten,
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ja, bei go run nutzen wir das live Filesystem statt des embeddeten.
This PR adds:
/cc @andig