Repository navigation
Conversation
…den) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… Netzanteil Die Aufteilung je Tarifzeitraum enthält jetzt die gesamte geladene Energie des Intervalls (über alle Quellen) und seine Kosten, wie sie in costs eingehen. Die Kosten je Tarifzeitraum ergeben so in Summe data.costs. CSV-Spalten heißen "Energie <Name>" / "Kosten <Name>". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Ohne Tarifzeitraum (dynamische Tarife, kein Preismodul, Rückfallpfad) bleibt der Preis-Eintrag im Tageslog unverändert. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Konflikt in packages/control/optional_test.py mit openWB#3782 (PV-Prognose): beide Seiten ergänzen Importe und Tests, beide behalten. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
openWB#4110 hat create_entry nach process_log_entry_builder.py verschoben: die tariff_name-Zeilen stehen jetzt dort, write_log.py übernimmt die master-Seite. chargelog_test.py: beide Seiten behalten, dazu ein Test, dass das angebrochene letzte Intervall den Tarifzeitraum der aktuellen Messung bekommt. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Umsetzung von #4111 (Entwurf, baut auf dem gemergten #4110 auf).
Oberfläche: openWB/openwb-ui-settings#1129
Was
Für „Feste Tarifstunden“ zeigt das Ladeprotokoll zusätzlich, wie viel Energie in welchem Tarifzeitraum geladen wurde (Zähler des Ladepunkts) und was sie gekostet hat, z. B. „NT: 18,40 kWh / 4,73 € · Standardpreis: 3,10 kWh / 0,88 €“. Die Aufteilung hat höchstens so viele Einträge wie Zeitfenster konfiguriert sind, unabhängig von der Ladedauer. Rein additiv und opt-in (Spalte standardmäßig ausgeblendet).
_find_tariff_for_time_slot()enthält die bisherige Zuordnung aus_fetch_price_for_time_slot(); Preis (_fetch_price_for_time_slot) und Name (get_tariff_name_for_time_slot(config, time_slot, default_name=None)) nutzen dieselbe Funktion und können nicht auseinanderlaufen.weekdays/dateswerden per.get()gelesen (upgrade_datastore_133hatweekdaysneben statt inactive_timesangelegt).Optional.ep_get_current_tariff_name(): Name für denselben Zeitslot, dessen Preisep_get_current_price()liefert (erster Eintrag vonep/get/prices, nichtnow()). Nur wenn alle konfigurierten Preismodulefixed_hourssind, sonstNone. Gilt der Standardpreis, heißt der Eintrag „Standardpreis“; sind Tarif und Netzentgelt beide feste Tarifstunden, werden die Namen verbunden („NT / Modul 3 NT“).prices.tariff_namenebengrid, nur wenn es einen Tarifzeitraum gibt. Ohne Feste Tarifstunden (dynamische Tarife, kein Preismodul, Rückfallpfad) bleibt der Eintrag unverändert.Log.tariff_splitsammelt im selben Schritt wie_calc_costsje 5-Minuten-Intervall die gesamte geladene Energie des Intervalls (über alle Quellen, also die Zählerdifferenz des Ladepunkts) und genau die Kosten, die_calc_costsfür das Intervall berechnet; er wird mit demLogzurückgesetzt (auch beim Zwischeneintrag nach Lademoduswechsel). Im Eintrag optionaldata.tariff_split = {Name: {"energy": Wh, "costs": €}}. Die Kosten je Tarifzeitraum ergeben in Summedata.costs(bis auf Rundung);data.costsbleibt die maßgebliche Summe, alte Einträge ohne den Schlüssel bleiben gültig.process_chargelog:totals.tariff_split, Einträge ohne Aufteilung werden übersprungen.charge_log_data_config.data_tariff_split(StandardFalse) +upgrade_datastore_155.web/settings/downloadChargeLog.php: je Tarifzeitraum zwei Spalten am Ende („Energie “, „Kosten “), nur wenn mindestens ein Eintrag eine Aufteilung hat. Ohne Feste Tarifstunden bleibt die CSV unverändert. Datei identisch mitpublic/downloadChargeLog.phpim UI-PR.Bewusst nicht enthalten
_calc_costs.Verhältnis zu #4110
#4110 ist gemergt, der Branch baut darauf auf. Die
tariff_name-Zeilen stehen inprocess_log_entry_builder.create_entry, und das angebrochene letzte Intervall eines Ladevorgangs bekommt den Tarifzeitraum der aktuellen Messung.DATASTORE_VERSION155 ist weiterhin frei.Tests
PYTHONPATH=packages python -m pytest- neu: Zuordnung Name = Preis über eine Woche in Viertelstunden, Standardname, fehlendeweekdays/dates(tariff_test.py); Name je Modulkombination und leere Preisliste (optional_test.py); Aufsummieren je Intervall (Energie aller Quellen, Kosten =_calc_costs), ohne Tarifname, Eintrag mit/ohne Schlüssel, Zurücksetzen, letztes angebrochenes Intervall mit dem Tarifzeitraum der aktuellen Messung (chargelog_test.py); Summen mit alten Einträgen (process_chargelog_test.py);tariff_nameim Tageslog, kein Feld bei dynamischem Tarif und im Rückfallpfad (write_log_test.py);upgrade_datastore_155(update_config_test.py). flake8 (max-line-length 120) sauber.🤖 Generated with Claude Code