Jump to content
View in the app

A better way to browse. Learn more.

Tinkerunity

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[Feature Request] Octopus Go / EnBW Strom SparZeit (nicht ganz dynamische Tarife) + $14a Modul 3

Featured Replies

Geschrieben

Ja, etwas in der Richtung haben wir auch geplant, allerdings kann ich keine Voraussagen machen, wann die Funktion kommen wird. Meine Idee wäre, dass man die Daten in einer riesigen Tabelle eingeben kann und es zusätzlich einen „Importieren“-Knopf gibt, über den die Tabelle aus einer CSV-Datei befüllt werden kann, um sie dann abspeichern zu können. Dieses Konzept haben wir z. B. schon bei selbst konfigurierten Modbus-TCP-Stromzählern.

Wenn du das so umsetzt oder auch eine bessere Lösung hast, werden wir uns ansehen, ob wir das übernehmen können, falls das deine Frage war.

Geschrieben

Hallo,

Also von Python habe ich keine Ahnung, Excel bzw. mit x.csv käme ich klar.

Eigenen Server ? Reicht da das in Fritzbox eingebaute NAS (fritz.nas) aus?

Geschrieben
On 12/22/2025 at 2:33 PM, meierchen006 said:

Eigenen Server ? Reicht da das in Fritzbox eingebaute NAS (fritz.nas) aus?

Wenn du da jeden Tag eine neue JSON-Datei hochlädst, die du woanders erzeugst, ja. Ansonsten nicht.

Geschrieben

Man kann doch nicht jeden Tage eine neue Datei hochladen, es sollte eine Datei für das ganz Jahr gültig sein, es sei denn es ändert sich was was vorher nicht geplant war.

Wie vorher schon mal geschrieben

Datum von | Datum bis | Zeit | €/kWh

Geschrieben

Falls du es überlesen hast: Das ist die aktuell bereits mögliche Lösung für Bastler. Das ist nicht unsere geplante Dauerlösung. Wenn du nicht die nötigen Voraussetzungen mitbringst, kannst du diese Möglichkeit halt nicht nutzen und musst warten, bis es eine anwenderfreundliche Lösung gibt.

Geschrieben
Am 22.12.2025 um 12:04 schrieb MatzeTF:

Ja(ein), da geht, allerdings nicht mit einer statischen Datei. Man kann den API-Server, von dem die dynamischen Strompreise angefordert werden, gegen einen eigenen Server austauschen und dann mit einem relativ einfachen PHP- oder Python-Script die Preise für den heutigen und morgigen Tag ausgeben lassen.

Das Format der Datei könnt ihr euch hier ansehen: https://api.warp-charger.com/v1/day_ahead_prices/de/15min

Das sind 192 Viertelstundenpreise für zwei Tage. Der erste Wert gilt ab dem Zeitpunkt "first_date". "next_date" ist die Anweisung an die Wallbox, wann sie neue Daten abrufen soll. Statt 15min man auch 60min benutzen und dann halt 48 Werte reinschreiben.

Den API-Server könnt ihr bei der Wallbox über die API http://warp3-2abc.local/day_ahead_prices/config ändern. Doku dazu hier.

{
	"enable":true,
	"api_url":"https://api.warp-charger.com/",
	"region":0,
	"resolution":0,"cert_id":-1,
	"vat":0,
	"grid_costs_and_taxes":0,
	"supplier_markup":0,
	"supplier_base_fee":0}

Einfach die api_url auf euren Server umbiegen. Die anderen Werte müsste ihr natürlich eurer aktuellen Config entnehmen. Wenn ihr ein selbstsigniertes Zertifikat verwendet, müsst ihr das erst unter System → Zertifikate hochladen und dann dessen Nummer in der Config angeben.

Viel Spaß beim Basteln.

Ja das hört sich doch perfekt an - und ist sicher auch eine schöne Forschungsreise! Danke für den Tipp 😜

  • 4 weeks later...
Geschrieben
  • Autor
Am 22.12.2025 um 12:39 schrieb MatzeTF:

Dieses Konzept haben wir z. B. schon bei selbst konfigurierten Modbus-TCP-Stromzählern.

Wo finde ich diese Importmöglichkeit?
image.png

Anderen Fragen/Anmerkungen:
Die Abrechnung (PDF) kann heute nur mit fixem Preis * geladene kWh arbeiten. Das ist heute schon bei Dynamischen Preisen "falsch".
D.h. man müsste ein Ladevorgang in 15 Minuten Schritte aufteilen und "letzten Preis (brutto)" mal "in den letzten 15 min geladene kWh" auflisten und am Ende zusammenaddieren.
Dafür müssen entsprechend alle (dynamische)Netzentgelte/Steuer/MwSt usw. berücksichtig werden.
Ich könnte mir folgendes vorstellen:
image.png


Und schon sind wir bei der Frage: zum welchen Zeitpunkt muss MwSt. berechnet werden? Wenn ich eigene Preise habe, dann kann ich ja gleich Bruttopreise hinterlegen und MwSt. 0. hm.
Dynamische Netzentgelte wirken sich auch auf die Dynamische Preise. Müssen also schon bei "nach Dynamischen Tarif laden" berücksichtig werden. Brutto oder Netto?



Geschrieben
On 1/14/2026 at 10:53 AM, Eugenius said:

Wo finde ich diese Importmöglichkeit?

Ich habe offensichtlich zu lange nicht mehr in das Menü gesehen und nicht bedacht, dass die Importmöglichkeit bei den Modbus TCP-Zählern geplant aber noch nicht implementiert ist. 😅

Geschrieben
  • Autor
Am 22.12.2025 um 12:04 schrieb MatzeTF:

Man kann den API-Server, von dem die dynamischen Strompreise angefordert werden, gegen einen eigenen Server austauschen und dann mit einem relativ einfachen PHP- oder Python-Script die Preise für den heutigen und morgigen Tag ausgeben lassen.

man war das eine schwerer Geburt (wenn man wenig Ahnung von Servern/Zertifikaten usw. hat).
Aber dank AI läuft eigener Python-Preis-Server auf einem RasPi.

image.png

Python Script

# -*- coding: utf-8 -*-
# wapr_prices_server.py   (Python 2.7 kompatibel)

from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
import time
import json

# Konstante Preise (Octopus Go): 2 Tage = 192 Werte
# 0:00-4:59 → 18890 (20×), 5:00-23:59 → 28890 (76×) → wiederholt für Tag 2
PRICES = (
    [18890] * 20 + [28890] * 76 +   # Tag 1
    [18890] * 20 + [28890] * 76     # Tag 2
)

assert len(PRICES) == 192, "Preis-Array muss genau 192 Eintraege haben"

START_TIMESTAMP = 1768258800
EPOCH_DAY_SECONDS = 86400

class PriceHandler(BaseHTTPRequestHandler):

    def do_GET(self):
        if self.path != '/v1/day_ahead_prices/de/15min':
            self.send_error(404, "Not Found")
            return

        now = int(time.time())
        days_passed = (now - START_TIMESTAMP) // EPOCH_DAY_SECONDS

        current_first = START_TIMESTAMP + days_passed * EPOCH_DAY_SECONDS
        current_next  = current_first + EPOCH_DAY_SECONDS

        data = {
            "first_date": current_first,
            "prices": PRICES,
            "next_date": current_next
        }

        self.send_response(200)
        self.send_header("Content-type", "application/json")
        self.send_header("Access-Control-Allow-Origin", "*")
        self.end_headers()

        # Kompakte JSON (spart Bandbreite)
        json_str = json.dumps(data, separators=(',', ':'))
        self.wfile.write(json_str)


if __name__ == '__main__':
    server_address = ('', 1234)
    httpd = HTTPServer(server_address, PriceHandler)
    print "Fake Strompreis-Server laeuft auf http://0.0.0.0:1234/v1/day_ahead_prices/de/15min"
    print "Beispiel: curl http://raspberry:1234/v1/day_ahead_prices/de/15min"
    httpd.serve_forever()

und wenn man noch Modul 3 drauf legt (N-Ergie) dann wird es noch ein Tick spannender:
image.png

bearbeitet von Eugenius

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.