Problem: Gladys reagiert jede Stunde für einige Minuten langsam. Vielleicht liegt es an Enedis?

Seit einigen Wochen habe ich eine Latenz von einigen Sekunden in meinen Szenen und in der Dashboard-Anzeige. Zum Beispiel drücke ich einen Zigbee-Knopf, und die Zigbee-Lampe geht erst 3-4 Sekunden später an. Aber das ist nicht immer der Fall, und im Allgemeinen ist alles gut reaktiv. Tatsächlich scheint es etwa alle Stunden für einige Minuten aufzutreten…

Ich denke, dass mein Mini-PC, auf dem Gladys läuft, zu stark beansprucht wird, aber ich weiß nicht genau, wie ich herausfinden kann, welcher Prozess schuld ist.

Ich beobachte das in den alle Minuten von meinen Sensoren in Node-RED übermittelten Informationen (achten Sie nicht auf die Bezeichnung ‹ raspberri-pi4 ›, das ist nur, weil ich den Namen nicht geändert habe, nachdem ich auf einen Mini-PC umgestiegen bin):


Dort sieht man einen hohen RAM-Verbrauch (das würde sicherlich helfen, wenn ich ihn erhöhe…) und vor allem einen Anstieg der CPU von 15% auf 35%, was der Zeit entspricht, in der Gladys an Reaktivität verliert.

Was kann ich analysieren, um den Ursprung des Problems zu identifizieren?

Nichts anderes als Gladys läuft auf meinem Mini-PC.

Ich glaube, ich habe den Übeltäter gefunden: Jede Stunde, genau zum Zeitpunkt, an dem ich eine erhebliche Verlangsamung des Dashboards und der Szenen von Gladys beobachte, startet die Aufgabe „Synchronisation der Enedis-Daten“ und dauert mehr als 10 Minuten!

Ich habe die Logs von Gladys heruntergeladen, um nach Zeilen in Bezug auf Enedis zu suchen, aber ich erhalte nur etwa 20 Minuten an Logs in einer 330-KB-Datei, während die Systemseite von Gladys angibt, dass die Logs auf 20 MB gekürzt werden. Das ist seltsam, weil mein letzter Neustart von Gladys vor 17 Stunden war…
Und wenn ich über SSH auf meinem Mini-PC „docker logs -t gladys“ ausführe, erhalte ich nicht mehr Logs.

Daher mehrere Fragen:

  • Wie kann ich Gladys so konfigurieren, dass sie längere Logs speichert? 24 Stunden würden mir besser erscheinen, um eine Analyse im Falle von Problemen durchführen zu können, oder?
  • Wie kann ich sicherstellen, dass die Ursache meiner Verlangsamungen tatsächlich mit Enedis zusammenhängt?
  • Wenn das Problem tatsächlich dort liegt, was kann ich tun, um es zu beheben? Ich habe daran gedacht, die Enedis-Integration zu löschen und sie dann wieder hinzuzufügen, aber:
    • riskiere ich, meine Datenhistorie zu verlieren, oder kommt alles zurück? Ich habe Enedis-Daten seit August 2022 in Gladys…
    • wird das Löschen und erneute Erstellen der Enedis-Integration mich zwingen, die Hierarchie der Geräte in der Energieverfolgung neu zu konfigurieren, da Enedis die Wurzel von allem ist?

Vielen Dank im Voraus für eure Ratschläge!

Hallo Stéphane,

Ich habe gerade bei mir geschaut, ich habe auch diese Synchronisierungsaufgaben alle Stunden und im Gegensatz zu dir habe ich keine Probleme, sie dauern weniger als 5 Sekunden.

Danke für das Feedback. Das bestätigt, dass bei meiner Installation wohl etwas nicht stimmt :wink:

Hallo @StephaneB,

Danke für den Screenshot, er bestätigt das Symptom. Aber Achtung vor einer wichtigen Falle: Diese Aufgabe macht zwei Dinge, und die angezeigten 12 Minuten decken beide ab.

  1. Das Herunterladen und Einfügen der Enedis-Daten. Im Gegensatz zu dem, was man annehmen könnte, lädt Gladys nicht jedes Mal den gesamten Verlauf herunter: Normalerweise beginnt sie bei dem letzten synchronisierten Datum minus 7 Tage (Enedis korrigiert manchmal seine Daten nachträglich). Das sind etwa 7 Punkte für den Tagesverbrauch und etwa 336 Punkte, wenn du die Lastkurve alle 30 Minuten hast. Normalerweise nur ein paar Sekunden — das ist, was @PhilippeMA sieht.
  2. Die Neuberechnung der Energiekosten, die direkt danach, innerhalb derselben Aufgabe, ausgelöst wird. Sie erscheint also nicht als separate Aufgabe in der Liste, aber ihre Zeit wird in den 12 Minuten mitgezählt. Und diese Neuberechnung durchsucht alle deine Geräte mit „Energie“-Funktionen, nicht nur Enedis: Für jede Kostenfunktion löscht sie die Werte für den gesamten Zeitraum und fügt sie erneut ein.

Die eigentliche Frage ist also: Welche der beiden Phasen dauert 12 Minuten? Deine Logs werden das in einer Minute klären.

Wie man das herausfindet

Gehe zu Einstellungen → System → Logs herunterladen. Du erhältst eine Datei mit den Logs deiner Instanz, mit einem Klick.

Der richtige Zeitpunkt dafür: Die Enedis-Synchronisation läuft alle Stunden zwischen HH:30 und HH:50 (die genaue Minute wird beim Start von Gladys zufällig gezogen, um zu vermeiden, dass alle Nutzer gleichzeitig auf die API zugreifen). Wenn du also die Logs direkt nach Feststellung einer Verzögerung herunterlädst, ist der für dich interessante Zyklus garantiert enthalten — du brauchst keinen 24-Stunden-Verlauf, das beantwortet deine erste Frage.

Dann suche in der Datei diese drei Zeilen:

Enedis: Synchronisation von 12345678901234 nach 2026-08-13
Kostenberechnung in der Zeitzone Europe/Paris
14 Energiegeräte gefunden

Drei Dinge, auf die du achten solltest:

  • Das Datum nach nach. Wenn es vor etwa 7 Tagen liegt, funktioniert Phase 1 normal. Wenn es 2000-01-01 oder ein älteres Datum (2022, 2024…) ist, haben wir den Bug gefunden: Deine Synchronisation startet jede Stunde von vorne, statt beim letzten bekannten Datum weiterzumachen. Sie spielt dann alle 30 Minuten Tausende von Lastkurvenpunkten ab und löst eine Kostenneuberechnung für deinen gesamten Verlauf aus. Das würde perfekt zu 12 Minuten passen.
  • Der Zeitunterschied zwischen Enedis: Synchronisation und Kostenberechnung: Das ist die genaue Dauer von Phase 1. Wenn der Großteil der 12 Minuten nach Kostenberechnung liegt, ist die Kostenneuberechnung der Übeltäter.
  • Das N Energiegeräte gefunden: Das ist die Anzahl der Geräte, die die Neuberechnung bei jedem Zyklus durchgeht. Wenn N hoch ist (große Hierarchie mit vielen Unterzählern), liegt das Problem dort.

Ein zusätzlicher Hinweis, noch schneller und ohne Logs: Der Fortschrittsbalken der Aufgabe verfolgt nur Phase 1. Wenn er in wenigen Sekunden auf 100 % steigt und die Aufgabe dann mehrere Minuten „in Bearbeitung“ bleibt, ist die Kostenneuberechnung schuld.

Warum du nur 20 Minuten Logs hast

Das ist keine Einschränkung von Gladys: Gladys schreibt keine Logdateien, alles geht an die Standardausgabe des Containers und Docker speichert es. Der offizielle Installationsbefehl enthält --log-opt max-size=10m ohne max-file, also speichert Docker nur eine Datei: Sobald sie 10 MB erreicht, startet sie mit einer leeren Datei und die alte wird gelöscht. Du bist einfach kurz nach einer Rotation darauf gestoßen.

Für deine Diagnose ist das nicht blockierend — lade die Logs direkt nach einer Verzögerung herunter und du hast das gewünschte Fenster. Wenn du eines Tages deinen Container neu erstellst (manuelles Update, Konfigurationsänderung…), kannst du --log-opt max-file=5 zu deinem docker run-Befehl hinzufügen, um bis zu 5 Dateien zu behalten, aber es ist nicht nötig, das jetzt extra zu tun.

Integrierung löschen / neu installieren: Auf keinen Fall

Deine Bedenken sind berechtigt, und liegen sogar unter der Realität:

  • Das Löschen eines Geräts löscht kaskadierend seine Funktionen und den gesamten Verlauf. Deine Daten seit August 2022 wären wirklich verloren und nicht wiederherstellbar: Enedis gibt im besten Fall etwa 3 Jahre Tagesverbrauch zurück, und viel weniger für die 30-Minuten-Lastkurve.
  • Du würdest auch deine gesamte Energiekostenhierarchie zerstören, die du manuell neu aufbauen müsstest.
  • Und vor allem würde es nichts bringen: Du musst nichts löschen, um neu zu synchronisieren. Der „Aktualisieren“-Button oben auf der Seite der Enedis-Integration startet bereits eine vollständige Synchronisation von vorne. (Achtung, diese dauert von Natur aus lange, mehrere Dutzend Minuten — das ist normal, und jeder Klick startet den gesamten Verlauf neu, also kein Klick im Loop.)

Also lösche nichts, wir werden es finden.

OK, ich werde das alles morgen analysieren und dann das Ergebnis zurückgeben. Danke für die Hilfe :+1:

Also habe ich heute von 11:36 Uhr bis 11:48 Uhr beobachtet, was passiert ist. Anschließend habe ich die Logs (docker logs gladys) von 11:30 Uhr bis 11:50 Uhr abgerufen.

Die vollständigen Logs finden Sie hier: log-gladys-pendant-surcharge.log - pCloud

Wenn ich die Infos über die Erweiterungen von prohand, melcloud und netatmo filtere, bleibt mir das übrig:

2026-08-22T09:30:00.225943779Z 2026-08-22T11:30:00+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:26 (EnergyMonitoringHandler.calculateEnergyFromIndex) Berechnung des Verbrauchs aus dem Index in der Zeitzone Europe/Paris für das Fenster Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit)
2026-08-22T09:30:01.121704771Z 2026-08-22T11:30:01+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:35 (EnergyMonitoringHandler.calculateEnergyFromIndex) 79 Energiegeräte gefunden
2026-08-22T09:30:01.122944109Z 2026-08-22T11:30:01+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:66 (EnergyMonitoringHandler.calculateEnergyFromIndex) 31 Geräte mit sowohl INDEX als auch 30-Minuten-Verbrauchsfunktionen gefunden
2026-08-22T09:30:01.792318089Z 2026-08-22T11:30:01+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0 für Gerät Compteur Zlinky am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:01.886579600Z 2026-08-22T11:30:01+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0 für Gerät Compteur Zlinky am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:01.970218917Z 2026-08-22T11:30:01+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0 für Gerät Compteur Zlinky am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:02.047875441Z 2026-08-22T11:30:02+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0 für Gerät Compteur Zlinky am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:02.132442036Z 2026-08-22T11:30:02+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0 für Gerät Compteur Zlinky am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:02.211205756Z 2026-08-22T11:30:02+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0 für Gerät Compteur Zlinky am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:02.293403017Z 2026-08-22T11:30:02+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0 für Gerät Compteur Zlinky am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:02.435322988Z 2026-08-22T11:30:02+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0 für Gerät Mesure conso PaC et General am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:02.606255344Z 2026-08-22T11:30:02+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0.08999999999991815 für Gerät Mesure conso PaC et General am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:02.811307301Z 2026-08-22T11:30:02+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0.37999999999999545 für Gerät Mesure conso four et plaques am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:03.032964821Z 2026-08-22T11:30:03+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0 für Gerät Mesure conso four et plaques am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:03.388952271Z 2026-08-22T11:30:03+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0 für Gerät Prise Circulateur plancher chauffant am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:03.456959142Z 2026-08-22T11:30:03+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0.3000000000001819 für Gerät Prise Panneaux solaires am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:03.538274251Z 2026-08-22T11:30:03+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0.03000000000002956 für Gerät Prise VMC am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:03.648167433Z 2026-08-22T11:30:03+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0 für Gerät Prise ampli 5.1 am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:03.792599092Z 2026-08-22T11:30:03+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0 für Gerät Prise appareils multimédias am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:04.080448191Z 2026-08-22T11:30:04+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0 für Gerät Prise chargeurs vélo am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:04.231232041Z 2026-08-22T11:30:04+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0 für Gerät Prise chauffe-eau am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:04.332767096Z 2026-08-22T11:30:04+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0 für Gerät Prise circulation bassin am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:04.538412271Z 2026-08-22T11:30:04+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0.030000000000086402 für Gerät Prise congel sous-sol am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:05.562600627Z 2026-08-22T11:30:05+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0 für Gerät Prise controleur PaC am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:05.642213673Z 2026-08-22T11:30:05+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0.009999999999999787 für Gerät Prise fontaine am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:05.747737223Z 2026-08-22T11:30:05+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0.009999999999990905 für Gerät Prise freebox am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:05.894420962Z 2026-08-22T11:30:05+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0.01999999999998181 für Gerät Prise frigo-congel cuisine am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:06.075765006Z 2026-08-22T11:30:06+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0 für Gerät Prise lave-vaisselle am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:06.249029169Z 2026-08-22T11:30:06+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0 für Gerät Prise ordi bureau am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:06.522794882Z 2026-08-22T11:30:06+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0 für Gerät Prise pompe eau de pluie am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:06.844778433Z 2026-08-22T11:30:06+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0 für Gerät Prise pompe à chaleur am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:06.923382110Z 2026-08-22T11:30:06+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0 für Gerät Prise sèche-linge am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:07.096358178Z 2026-08-22T11:30:07+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0 für Gerät Prise vidéo-projecteur am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:07.204719038Z 2026-08-22T11:30:07+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:153 () Verbrauch 0 für Gerät Prise yaourtière am Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert
2026-08-22T09:30:07.217546687Z 2026-08-22T11:30:07+0200<info> energy-monitoring.calculateEnergyFromIndex.js:164 (EnergyMonitoringHandler.calculateEnergyFromIndex) Berechnung des Verbrauchs aus dem Index für 31 Geräte abgeschlossen
2026-08-22T09:30:07.253029354Z 2026-08-22T11:30:07+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:26 (EnergyMonitoringHandler.calculateEnergyFromIndex) Berechnung der Produktion aus dem Index in der Zeitzone Europe/Paris für das Fenster Samstag, 22. August 2026, 11:30:00 GMT+0200 (Mitteleuropäische Sommerzeit)
2026-08-22T09:30:07.279138340Z 2026-08-22T11:30:07+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:35 (EnergyMonitoringHandler.calculateEnergyFromIndex) 0 Energiegeräte gefunden
2026-08-22T09:30:07.280068380Z 2026-08-22T11:30:07+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:66 (EnergyMonitoringHandler.calculateEnergyFromIndex) 0 Geräte mit sowohl INDEX als auch thirty-minutes-production-Merkmalen gefunden
2026-08-22T09:30:07.281260041Z 2026-08-22T11:30:07+0200 <info> energy-monitoring.calculateEnergyFromIndex.js:164 (EnergyMonitoringHandler.calculateEnergyFromIndex) Berechnung der Produktion aus dem Index für 0 Geräte abgeschlossen
2026-08-22T09:30:07.307269461Z 2026-08-22T11:30:07+0200 <info> energy-monitoring.calculateCostFrom.js:34 (EnergyMonitoringHandler.calculateCostFrom) Berechnung der Kosten in der Zeitzone Europe/Paris
2026-08-22T09:30:07.657529925Z 2026-08-22T11:30:07+0200 <info> energy-monitoring.calculateCostFrom.js:38 (EnergyMonitoringHandler.calculateCostFrom) 25 Energiegeräte gefunden
2026-08-22T09:30:07.727225210Z 2026-08-22T11:30:07+0200 <info> energy-monitoring.calculateCostFrom.js:126 () Gerät 90ce8dc9-b3ac-48fe-8940-841d6aeee0c1 hat Tempo-Preise und die Map ist leer, hole EDF-Tempo-Historie
2026-08-22T09:30:07.730060633Z 2026-08-22T11:30:07+0200 <info> contracts.buildEdfTempoDayMap.js:19 (buildEdfTempoDayMap) Bauen der EDF-Tempo-Historie-Karte ab dem 21. August 2026
2026-08-22T09:30:07.740101623Z 2026-08-22T11:30:07+0200 <info> contracts.buildEdfTempoDayMap.js:52 (buildEdfTempoDayMap) Alle 2 EDF-Tempo-Tage im Cache gefunden (vom 21. August 2026 bis 22. August 2026)
2026-08-22T09:30:07.811619887Z 2026-08-22T11:30:07+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = 40dd1280-6d50-4580-83c8-e494c08f37dc ein.
2026-08-22T09:30:07.978401793Z 2026-08-22T11:30:07+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = 1ede5f2e-7789-4964-9bc0-9b00ef8cfbe1 ein.
2026-08-22T09:30:08.133414395Z 2026-08-22T11:30:08+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = ced1c552-2d2a-4119-a9fe-7be34f5a6d17 ein.
2026-08-22T09:30:08.347691854Z 2026-08-22T11:30:08+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = aaba2941-6ff0-49a5-9204-d5018fc7b0bd ein.
2026-08-22T09:30:08.667566479Z 2026-08-22T11:30:08+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = 4b5f49fb-70f6-4a95-ab71-0b5cbaf1f74b ein.
2026-08-22T09:30:08.879626460Z 2026-08-22T11:30:08+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = 5b6f48cd-6295-4c12-abdc-1b46421e6fca ein.
2026-08-22T09:30:09.123264891Z 2026-08-22T11:30:09+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = 79e1d044-f7c3-4dfd-9798-628efd4a0ee4 ein.
2026-08-22T09:30:09.563066324Z 2026-08-22T11:30:09+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = f4bdabde-f137-408f-8fb3-7f432271ad90 ein.
2026-08-22T09:30:09.850078635Z 2026-08-22T11:30:09+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = 896b973e-85da-4247-a844-a1e994e342b9 ein.
2026-08-22T09:30:10.138206342Z 2026-08-22T11:30:10+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = 8d70db63-979d-4ba1-8d07-01fbe3609f28 ein.
2026-08-22T09:30:10.388330818Z 2026-08-22T11:30:10+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = d76b8b99-3807-4d2c-becc-ca5377e224b4 ein.
2026-08-22T09:30:10.674524141Z 2026-08-22T11:30:10+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = b9c0b21c-1c21-4446-8ad7-535dfc81b67c ein.
2026-08-22T09:30:10.949199606Z 2026-08-22T11:30:10+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = 09d39d7e-5204-4ab4-afda-394a8f4d9b48 ein.
2026-08-22T09:30:11.262557972Z 2026-08-22T11:30:11+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = 212a6b8e-eb39-443e-8325-c741a7816eba ein.
2026-08-22T09:30:11.544134344Z 2026-08-22T11:30:11+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = d4d7c6cb-080b-41c7-b5b2-076825cb382a ein.
2026-08-22T09:30:11.841341537Z 2026-08-22T11:30:11+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = cffc3961-c3db-40c9-941a-1ffe9d36f26a ein.
2026-08-22T09:30:12.118171491Z 2026-08-22T11:30:12+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = 178ef579-31c3-4e94-8a58-31cb2f6bee42 ein.
2026-08-22T09:30:12.359589117Z 2026-08-22T11:30:12+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = e796720b-19a1-4e71-b2ee-420978d504e1 ein.
2026-08-22T09:30:12.600363037Z 2026-08-22T11:30:12+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = 56908815-e60a-4e14-b586-7d56a07fb430 ein.
2026-08-22T09:30:12.863408289Z 2026-08-22T11:30:12+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = 2a43d6b1-63cf-47c1-a3d1-2b4a2ea968bb ein.
2026-08-22T09:30:13.156550321Z 2026-08-22T11:30:13+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = 59e123c8-3d0b-454e-a20a-e90b8deeda12 ein.
2026-08-22T09:30:13.416077142Z 2026-08-22T11:30:13+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = fb4134df-a7c8-4f8b-83bf-8517e1df2c76 ein.
2026-08-22T09:30:13.701174320Z 2026-08-22T11:30:13+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = d8cfb77f-5979-414e-aa32-4f548b5f92cd ein.
2026-08-22T09:30:13.957885319Z 2026-08-22T11:30:13+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = 3efa0164-afce-4277-9a48-9e923dd7bdf0 ein.
2026-08-22T09:30:14.227498093Z 2026-08-22T11:30:14+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = d9964116-b5e1-4c5b-9167-816e938e2d76 ein.
2026-08-22T09:30:14.500695100Z 2026-08-22T11:30:14+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = fc550b4f-b17e-4b70-af16-e1995e019c96 ein.
2026-08-22T09:30:14.924357684Z 2026-08-22T11:30:14+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = 10999f49-2cb9-4219-9979-33c2d6919a7f ein.
2026-08-22T09:30:15.189534575Z 2026-08-22T11:30:15+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = 9355ea88-d340-4a39-846f-737fafe60209 ein.
2026-08-22T09:30:15.511661892Z 2026-08-22T11:30:15+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = 39aa6cef-00b0-4218-b4eb-4c1f9bb718de ein.
2026-08-22T09:30:15.716199233Z 2026-08-22T11:30:15+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = 55e325ef-8c54-4481-9213-23cc83985109 ein.
2026-08-22T09:30:15.935813191Z 2026-08-22T11:30:15+0200 <info> index.js:369 () DuckDB: Füge Chunk 0 für deviceFeature = 774b17c5-2c8d-48eb-b982-eb744fc8556f ein..
2026-08-22T09:36:26.225531844Z 2026-08-22T11:36:26+0200 <info> enedis.sync.js:44 (recursiveBatchCall) Enedis: Synchronisierung von 06558900066149 nach 2026-08-14
2026-08-22T09:36:27.589366968Z 2026-08-22T11:36:27+0200 <info> enedis.sync.js:44 (recursiveBatchCall) Enedis: Synchronisierung von 06558900066149 nach 2026-08-15
2026-08-22T09:37:02.248453741Z 2026-08-22T11:37:02+0200 <info> energy-monitoring.calculateCostFrom.js:34 (EnergyMonitoringHandler.calculateCostFrom) Berechnung der Kosten in der Zeitzone Europe/Paris
2026-08-22T09:37:02.743256593Z 2026-08-22T11:37:02+0200 <info> energy-monitoring.calculateCostFrom.js:38 (EnergyMonitoringHandler.calculateCostFrom) 25 Energiegeräte gefunden
2026-08-22T09:37:03.158032208Z 2026-08-22T11:37:03+0200 <info> energy-monitoring.calculateCostFrom.js:126 () Gerät 90ce8dc9-b3ac-48fe-8940-841d6aeee0c1 hat Tempo-Preise und die Map ist leer, hole EDF-Tempo-Historie
2026-08-22T09:37:03.160061894Z 2026-08-22T11:37:03+0200 <info> contracts.buildEdfTempoDayMap.js:19 (buildEdfTempoDayMap) Bauen der EDF-Tempo-Historie-Karte ab 2026-08-14
2026-08-22T09:37:03.176366583Z 2026-08-22T11:37:03+0200 <info> contracts.buildEdfTempoDayMap.js:52 (buildEdfTempoDayMap) Alle 9 EDF-Tempo-Tage im Cache gefunden (von 2026-08-14 bis 2026-08-22)
2026-08-22T09:37:20.652322833Z 2026-08-22T11:37:20+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = 40dd1280-6d50-4580-83c8-e494c08f37dc.
2026-08-22T09:37:40.882913002Z 2026-08-22T11:37:40+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = 1ede5f2e-7789-4964-9bc0-9b00ef8cfbe1.
2026-08-22T09:38:01.521148847Z 2026-08-22T11:38:01+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = ced1c552-2d2a-4119-a9fe-7be34f5a6d17.
2026-08-22T09:38:21.143400676Z 2026-08-22T11:38:21+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = aaba2941-6ff0-49a5-9204-d5018fc7b0bd.
2026-08-22T09:38:42.168250001Z 2026-08-22T11:38:42+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = 4b5f49fb-70f6-4a95-ab71-0b5cbaf1f74b.
2026-08-22T09:39:04.045789281Z 2026-08-22T11:39:04+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = 5b6f48cd-6295-4c12-abdc-1b46421e6fca.
2026-08-22T09:39:25.250822208Z 2026-08-22T11:39:25+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = 79e1d044-f7c3-4dfd-9798-628efd4a0ee4.
2026-08-22T09:39:47.151292427Z 2026-08-22T11:39:47+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = 07cf603e-3c3b-4ecc-9ce4-87f2f16cbaef.
2026-08-22T09:40:09.032173230Z 2026-08-22T11:40:09+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = f4bdabde-f137-408f-8fb3-7f432271ad90.
2026-08-22T09:40:29.630179715Z 2026-08-22T11:40:29+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = 896b973e-85da-4247-a844-a1e994e342b9.
2026-08-22T09:40:50.552164640Z 2026-08-22T11:40:50+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = 8d70db63-979d-4ba1-8d07-01fbe3609f28.
2026-08-22T09:41:11.882783690Z 2026-08-22T11:41:11+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = d76b8b99-3807-4d2c-becc-ca5377e224b4.
2026-08-22T09:41:32.863451901Z 2026-08-22T11:41:32+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = b9c0b21c-1c21-4446-8ad7-535dfc81b67c.
2026-08-22T09:41:53.347144646Z 2026-08-22T11:41:53+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = 09d39d7e-5204-4ab4-afda-394a8f4d9b48.
2026-08-22T09:42:14.273207632Z 2026-08-22T11:42:14+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = 212a6b8e-eb39-443e-8325-c741a7816eba.
2026-08-22T09:42:35.269890234Z 2026-08-22T11:42:35+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = d4d7c6cb-080b-41c7-b5b2-076825cb382a.
2026-08-22T09:42:55.110720580Z 2026-08-22T11:42:55+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = cffc3961-c3db-40c9-941a-1ffe9d36f26a.
2026-08-22T09:43:16.626924625Z 2026-08-22T11:43:16+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = 178ef579-31c3-4e94-8a58-31cb2f6bee42.
2026-08-22T09:43:39.205060304Z 2026-08-22T11:43:39+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = e796720b-19a1-4e71-b2ee-420978d504e1.
2026-08-22T09:43:49.392672455Z 2026-08-22T11:43:49+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = 56908815-e60a-4e14-b586-7d56a07fb430.
2026-08-22T09:44:08.730355351Z 2026-08-22T11:44:08+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = 2a43d6b1-63cf-47c1-a3d1-2b4a2ea968bb.
2026-08-22T09:44:30.020353087Z 2026-08-22T11:44:30+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = 59e123c8-3d0b-454e-a20a-e90b8deeda12.
2026-08-22T09:44:50.917166245Z 2026-08-22T11:44:50+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = fb4134df-a7c8-4f8b-83bf-8517e1df2c76.
2026-08-22T09:45:12.317759412Z 2026-08-22T11:45:12+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = d8cfb77f-5979-414e-aa32-4f548b5f92cd.
2026-08-22T09:45:32.845566956Z 2026-08-22T11:45:32+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = 3efa0164-afce-4277-9a48-9e923dd7bdf0.
2026-08-22T09:45:54.535325404Z 2026-08-22T11:45:54+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = d9964116-b5e1-4c5b-9167-816e938e2d76.
2026-08-22T09:46:16.206679888Z 2026-08-22T11:46:16+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = fc550b4f-b17e-4b70-af16-e1995e019c96.
2026-08-22T09:46:36.348576345Z 2026-08-22T11:46:36+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = 10999f49-2cb9-4219-9979-33c2d6919a7f.
2026-08-22T09:46:57.605137190Z 2026-08-22T11:46:57+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = 9355ea88-d340-4a39-846f-737fafe60209.
2026-08-22T09:47:19.496451604Z 2026-08-22T11:47:19+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = 39aa6cef-00b0-4218-b4eb-4c1f9bb718de.
2026-08-22T09:47:41.892196972Z 2026-08-22T11:47:41+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = 55e325ef-8c54-4481-9213-23cc83985109.
2026-08-22T09:47:43.000018861Z 2026-08-22T11:47:42+0200 <info> scene.triggers.js:91 (Object.device.new-state) Planung eines Timers, um den Zustand der device_feature "zigbee2mqtt-sonde-t-frigo-cuisine-temperature-sensor-decimal-temperature" in 900000ms zu überprüfen
2026-08-22T09:48:03.662680063Z 2026-08-22T11:48:03+0200 <info> index.js:369 () DuckDB: Einfügen von Chunk 0 für deviceFeature = 774b17c5-2c8d-48eb-b982-eb744fc8556f.

Hier sind einige Anmerkungen/Fragen, die sich daraus ergeben:

  • Meine Synchronisierung startet nicht jedes Mal von vorne. Das Datum ist der 14.8., also vor 8 Tagen. OK
  • Phase 1 dauert 36 Sekunden, also OK. Das würde bedeuten, dass Phase 2 mehr als 10 Minuten dauert. Sind die verschiedenen « Inserting chunk 0 », die von 11:30 bis 11:48 gehen, ein Zeichen dafür?
  • Ich habe mehrere Zeilen, die die Anzahl der « found devices » angeben, aber mit unterschiedlichen Werten: 79, 31, 0, 0, 25, 25, 25. Normal?
  • Ich weiß nicht, ob es normal ist, dass es scheinbar 2 sich überlappende Zyklen gibt: « Enedis: syncing » erscheint 2 Mal, « Calculating cost » auch

Vielen Dank im Voraus für Ihre Hilfe

@pierre-gilles ich nehme an, dass du sehr konzentriert mit der Vorbereitung von Gladys v5 beschäftigt bist, aber falls du die Möglichkeit hast, dir die Logs anzusehen, die ich nach deiner letzten Nachricht gesammelt habe, wäre ich für deine Ratschläge dankbar… Vielen Dank im Voraus.

Hallo zusammen!

Dieses Thema ist nun in Entwicklung.

Ein Pull Request wurde erstellt, um die Energiekosten nur für Geräte neu zu berechnen, die von einer Enedis-Synchronisation betroffen sind (und somit Stundenverzögerungen zu vermeiden):

Zögert nicht, dem Pull Request zu folgen, zu testen (optional, vor allem für kleine Anfragen) und euer Feedback hier zu hinterlassen, falls nötig.

WTF? :flushed_face: :partying_face:

Hallo @StephaneB, danke für die Logs!

Urteil: Es ist tatsächlich Phase 2 (die Neuberechnung der Kosten), und dein Log beweist es allein.

Der genaue Ablauf deines Fensters 11:30 → 11:48

In deinem Log gibt es zwei verschiedene Aufgaben, und ihr Vergleich ist aufschlussreich:

Zeit Was läuft Dauer
11:30:00 → 11:30:07 Berechnung des Verbrauchs aus den Indizes (31 Indexpaare/30-Minuten) 7 s
11:30:07 Berechnung der Produktion aus den Indizes (0 Gerät) sofort
11:30:07 → 11:30:15 Neuberechnung der Kosten, 25 Geräte, Fenster = 30 Minuten 8 s :white_check_mark:
11:36:26 → 11:36:27 Enedis, täglicher Verbrauch, seit dem 14/08 (8 Punkte) 1 s
11:36:27 → 11:37:02 Enedis, Lastkurve, seit dem 15/08 (384 Punkte) 35 s
11:37:02 → 11:48:03 Neuberechnung der Kosten, 25 Geräte, Fenster = 8 Tage 11 min :cross_mark:

Der gleiche Code, die gleichen 25 Geräte, zweimal in einem Abstand von 7 Minuten ausgeführt: 8 Sekunden in einem Fall, 11 Minuten im anderen. Die einzige Variable ist die Breite des neu berechneten Fensters: 30 Minuten gegen 8 Tage.

Und 11:36:26 → 11:48:03 = 11 min 40, was mit den angezeigten ~12 min der Aufgabe übereinstimmt.

Übrigens sind die 36 s der Phase 1 normal und beabsichtigt: Gladys fügt die Lastkurvenpunkte mit einer Verzögerung von 50 ms zwischen jedem hinzu, um den CPU nicht während des Imports zu überlasten. 384 Punkte × 50 ms ≈ 35 s. Genau das sehen wir. Nichts zu korrigieren auf dieser Seite.

Deine 4 Fragen

1. « Meine Synchronisation startet nicht bei Null » — Richtig, alles in Ordnung auf dieser Seite. after 2026-08-14, das ist das letzte synchronisierte Datum minus 7 Tage. Der Bug, den ich befürchtet habe, ist nicht da.

Kleine Präzisierung am Rande: Wenn du zwei verschiedene Daten siehst (14/08 dann 15/08), ist das keine Anomalie — das sind deine beiden Enedis-Funktionalitäten (täglicher Verbrauch und Lastkurve), die jeweils ihr eigenes Datum der letzten Synchronisation haben.

2. « Sind die Inserting chunk 0 das Zeichen? » — Ja, das ist genau der richtige Marker, aber Achtung, nicht die beiden Blöcke vermischen:

  • 31 Zeilen zwischen 11:30:07 und 11:30:15 → die Routineaufgabe. ~0,25 s pro Funktionalität.
  • 32 Zeilen zwischen 11:37:20 und 11:48:03 → die Neuberechnung, die von Enedis ausgelöst wurde. ~20 s pro Funktionalität.

Bezogen auf die Anzahl der verarbeiteten Punkte (384 Lastkurvenpunkte über 8 Tage gegen 1 in 30 Minuten), das sind etwa 55 ms pro neu berechnetem Punkt. Das ist viel zu viel, und jetzt liegt es bei mir.

3. Die verschiedenen « Found N » (79 / 31 / 0 / 0 / 25…) — Alles ist normal, das sind Zähler, die nicht dasselbe zählen:

  • 79 = Geräte, die eine Funktionalität der Kategorie energy_sensor, switch oder teleinformation tragen (der breite Pool, in dem nach Indizes gesucht wird).
  • 31 = darunter die Anzahl der Paare « Index ↔ 30-Minuten », die miteinander verbunden sind. Achtung, die Nachricht sagt « Geräte », zählt aber tatsächlich Funktionalitätspaare — deshalb erscheint « Zähler Zlinky » siebenmal hintereinander direkt danach: Dein Zlinky zeigt mehrere Indizes (EASF01…EASF10 für Tempo).
  • 0 / 0 = dasselbe auf der Produktionsseite. Du hast keinen Produktionsindex deklariert (deine Panels werden über eine Steckdose verfolgt, also auf der Verbrauchsseite), also 0. Normal.
  • 25 = der Filter der Kostenneuberechnung, der restriktiver ist (nur die Kategorie energy_sensor). Diese Zeile erscheint einmal pro Kostenneuberechnung — daher ihre Wiederholung.

4. « Zwei sich überlappende Zyklen? » — Nein, beruhige dich, und es ist sogar unmöglich: Alles läuft über eine Warteschlange, die die Verarbeitungen serialisiert. Was du siehst, sind zwei separate Aufgaben:

  • die von 11:30, die alle 30 Minuten geplant ist (um HH:00 und HH:30);
  • die von 11:36, die stündliche Enedis-Synchronisation, die die Kostenneuberechnung am Ende aufruft.

Beide rufen dieselbe Funktion auf, daher die doppelten Zeilen.

Warum 11 Minuten bei dir und 5 Sekunden bei @PhilippeMA

Weil die Neuberechnung nach der Synchronisation weder berücksichtigt, was sich tatsächlich geändert hat, noch die Größe der Installation:

  • Sie beginnt mit dem ältesten neu synchronisierten Datum, also immer ~J-8 (aufgrund der 7-Tage-Sicherheitsnetz);
  • und sie spielt alle deine Energiegeräte ab, nicht nur Enedis.

Bei dir sind das ~33 Kostenfunktionalitäten × 8 Tage × 48 Punkte, also in der Größenordnung von 12.000 Punkten, die jede Stunde gelöscht, neu berechnet und wieder eingefügt werden — obwohl nur die Enedis-Funktionalität neue Daten erhalten hat. Bei Philippe, mit einem oder zwei Geräten, bleibt dieselbe Verarbeitung unbemerkt.

Du machst nichts falsch: Du bist nur der Erste, der eine große enough Installation hast, um das Problem sichtbar zu machen.

Was ich korrigieren werde

Es ist ein echtes Design-Defizit, kein Problem deiner Installation.

Ich habe einen PR mit vorgeschlagen:

  1. Nur das neu berechnen, was sich bewegt hat: Nach einer Enedis-Synchronisation sollten nur die tatsächlich betroffenen Funktionalitäten neu aufgenommen werden, nicht der gesamte Park.
  2. Nur die tatsächlich geänderten Tage neu berechnen, statt eines festen 8-Tage-Fensters bei jedem Zyklus.
  3. Die interne Schleife optimieren (die 55 ms pro Punkt): Die Gültigkeitsperioden der Tarife werden mit Zeitzonenumrechnung für jeden Punkt neu aufgebaut, obwohl sie einmal aufgebaut werden könnten.
  4. Phase 2 in der Fortschrittsleiste anzeigen: Heute folgt sie nur dem Herunterladen, daher bleibt die Aufgabe bei 100 % für 10 Minuten „in Bearbeitung“.

Danke für die Analyse und erleichtert zu wissen, dass es eine Lösung geben wird! Und ich bin jetzt noch gespannter auf die nächste Version :wink: