Deutsch
v1.19.58 (Stable)
Backend- und Frontend-Änderungen, keine Firmware-Änderungen. Die Punkte zu eBike System 2 betreffen nur BES2, Smart-System-Nutzer sind davon nicht betroffen. Nach dem Update Home Assistant neu starten.
Ein Token-Refresh lud die Integration etwa alle 70 Minuten komplett neu und verwarf dabei laufende Ladevorgänge (Issue #89). Home Assistant ruft die Update-Listener eines Config-Eintrags bei jeder Änderung auf, auch wenn nur die erneuerten Tokens zurückgeschrieben werden. Die Integration lud deshalb den ganzen Eintrag neu, rund 21 Mal am Tag: Alle Entitäten wurden kurz unavailable, ein laufender Ladevorgang wurde verworfen (dadurch blieb „Total charged energy“ bei jeder längeren Ladung bei 0 Wh), und bei jedem Reload wurde die komplette Fahrtenhistorie erneut von Bosch geladen. Jetzt lädt die Integration nur noch neu, wenn sich Optionen oder andere Einstellungen ändern. Außerdem werden Heatmap-Strecken neu geladen, wenn sich die Distanz einer Fahrt ändert oder ein BES2-Trip eine Fahrt dazubekommt.
Eine laufende Ladung übersteht einen Neustart von Home Assistant (Vorschlag aus Issue #89). Bisher ging bei einem Neustart oder Update mitten in der Ladung alles verloren, was vor dem Neustart beobachtet wurde: Eine Ladung von 20 auf 100 %, die bei 60 % unterbrochen wurde, ergab nur 39 % statt 80 %. Die Integration legt den laufenden Vorgang jetzt pro Bike in einer kleinen eigenen Datei ab (.storage/ha_bosch_ebike_charge_inflight_<bike>) und setzt ihn nach dem Start fort, wenn der letzte Anstieg weniger als 30 Minuten zurückliegt. Bei einer längeren Pause (bis 12 Stunden) wird er vom gespeicherten Höchststand aus abgeschlossen, ältere oder unplausible Reste werden verworfen. Es wird nichts hochgerechnet, es kann also nur zu wenig gebucht werden, nie zu viel. Zwei damit zusammenhängende Reihenfolge-Fehler beim Wiederherstellen des Zählers und der letzten Zusammenfassung sind ebenfalls behoben.
Dashboard-Card: Akkustand bei getrennter Bridge (Issue #90). Mit dem Feld connected_entity behandelt die Karte den Live-Akkustand bei „getrennt“ als nicht aktuell, zeigte dann aber nur den zuletzt gemerkten Wert, auch wenn der Live-Sensor schon einen neueren hielt (eine kurze Verbindung kann einen neuen Akkustand liefern, ohne dass Home Assistant je „verbunden“ sieht). Jetzt zeigt die Karte den Wert, den der Live-Sensor gerade hält, als letzten bekannten Stand mit ~, und das Alter stammt von der letzten Änderung des Sensors. connected_entity wirkt nur zusammen mit battery_live_entity. Die neue Kartenversion wird erst nach einem Neustart von Home Assistant und einem Neuladen des Browsers geladen.
BES2: Jede Fahrt eines Bosch-Trips ist jetzt eine eigene Aktivität (Issue #88). Bosch fasst bei eBike System 2 mehrere Fahrten zu einem „Trip“ zusammen und hängt neue Fahrten an einen noch offenen Trip an, ohne dass sich dessen ID ändert. Dadurch feuerte das Event ha_bosch_ebike_new_activity für diese Fahrten nie, die „Last Ride“-Sensoren zeigten die laufende Summe des ganzen Trips statt der letzten Fahrt, und Kalender, Statistik und Sortierung buchten alles auf den ersten Tag des Trips. Jetzt wird jede Fahrt eines Trips mit zwei oder mehr Fahrten einzeln geführt: Die älteste behält die Trip-ID, jede weitere bekommt eine ID aus ihrer eigenen Startzeit. Trips mit nur einer Fahrt verhalten sich unverändert. Was sich für BES2-Nutzer mit mehreren Fahrten pro Trip ändert:
- Die Aktivitätenliste wird länger, eine Zeile pro Fahrt statt pro Trip.
- Jede Fahrt außer der ersten eines Trips hat eine neue Aktivitäts-ID (relevant für Automationen, die
activity_idauswerten). - Trittfrequenz, Leistung und Höhenmeter liefert Bosch nur als Summe über den Trip, sie bleiben bei diesen Fahrten leer.
- Die Karten zeigen die Strecke einer einzelnen Fahrt nur, wenn Bosch die Streckendaten je Fahrt getrennt liefert, sonst die Strecke des ganzen Trips.
BES2: Gespeicherte Werte werden nach einem Neustart wieder geladen. Die Integration speichert Wartungsaufgaben, Service-Termin und Service-Kilometerstand, die Akku-Kapazität je Bike, den Tacho-Mindestwert und die Ladehistorie in einer Datei. Der Smart-System-Pfad hat sie beim Start eingelesen, der Pfad für eBike System 2 nicht: Er hat bei jeder Änderung geschrieben, aber nie gelesen. Nach einem Neustart waren die Werte deshalb weg, und beim nächsten Speichern wurde auch das überschrieben, was noch in der Datei stand. Was bereits überschrieben wurde, muss neu eingetragen werden. Wer seit dem letzten Neustart nichts geändert hat, bei dem können noch gespeicherte Werte in der Datei liegen und wieder auftauchen. Der Tacho-Mindestwert (reine Anzeige, nie niedriger als der höchste bisher angezeigte Stand) bleibt jetzt wie beim Smart System über Neustarts erhalten.
English
v1.19.58 (Stable)
Backend and frontend changes, no firmware changes. The eBike System 2 items affect BES2 only, Smart System users are not affected by them. Restart Home Assistant after updating.
A token refresh reloaded the whole integration about every 70 minutes and dropped charges in progress (issue #89). Home Assistant calls a config entry's update listeners for every change, even when only the refreshed tokens are written back. The integration therefore reloaded the entire entry about 21 times a day: all entities briefly went unavailable, a charge in progress was discarded (so "Total charged energy" stayed at 0 Wh for any longer charge), and every reload imported the full ride history from Bosch again. The integration now reloads only when options or other settings change. Also, heatmap routes are fetched again when a ride's distance changes or when a BES2 trip gains a ride.
A charge in progress survives a Home Assistant restart (suggestion from issue #89). Until now a restart or update in the middle of a charge lost everything observed before it: a charge from 20 to 100 % that was interrupted at 60 % booked only 39 % instead of 80 %. The integration now keeps the running charge per bike in a small file of its own (.storage/ha_bosch_ebike_charge_inflight_<bike>) and carries it on after startup if the last rise was less than 30 minutes ago. After a longer pause (up to 12 hours) it is closed from the stored peak, older or implausible leftovers are discarded. Nothing is extrapolated, so the result can only be too low, never too high. Two related ordering problems when restoring the total and the last summary are fixed as well.
Dashboard card: battery level while the bridge is disconnected (issue #90). With the connected_entity field the card treats the live battery reading as stale when the bridge reports "disconnected", but it then showed only the last remembered value, even when the live sensor already held a newer one (a short connection can deliver a new battery level without Home Assistant ever seeing "connected"). The card now shows the value the live sensor currently holds as the last known value with ~, and the age comes from when the sensor last changed. connected_entity only works together with battery_live_entity. The new card version is only loaded after a Home Assistant restart and a browser reload.
BES2: every ride of a Bosch trip is now its own activity (issue #88). With eBike System 2, Bosch groups several rides into one "trip" and appends new rides to a still-open trip without its ID changing. As a result the ha_bosch_ebike_new_activity event never fired for those rides, the "Last Ride" sensors showed the running total of the whole trip instead of the last ride, and calendar, statistics and sorting booked everything on the trip's first day. A trip with two or more rides is now tracked ride by ride: the oldest keeps the trip ID, every other ride gets an ID derived from its own start time. Trips with a single ride behave as before. What changes for BES2 users with several rides per trip:
- The activity list gets longer, one row per ride instead of per trip.
- Every ride except a trip's first has a new activity ID (relevant for automations that use
activity_id). - Bosch only provides cadence, power and elevation gain as totals over the trip, so they stay empty for these rides.
- The cards show a single ride's route only when Bosch delivers the track data separately per ride, otherwise the whole trip's route.
BES2: saved values are loaded again after a restart. The integration keeps maintenance items, the service date and service odometer, the battery capacity per bike, the odometer floor and the charge history in one file. The Smart System path read it at startup, the eBike System 2 path did not: it wrote on every change but never read. After a restart the values were therefore gone, and the next save replaced even what was still in the file. Whatever was already overwritten has to be entered again. If nothing was changed since the last restart, values that are still in the file may reappear. The odometer floor (display only, never lower than the highest value shown so far) now survives restarts, as it does for the Smart System.
Nederlands
v1.19.58 (Stable)
Backend- en frontend-wijzigingen, geen firmware-wijzigingen. De punten over eBike System 2 betreffen alleen BES2, Smart System-gebruikers worden daar niet door beïnvloed. Herstart Home Assistant na de update.
Een token-refresh laadde de integratie ongeveer elke 70 minuten volledig opnieuw en gooide lopende laadsessies weg (issue #89). Home Assistant roept de update-listeners van een config-entry bij elke wijziging aan, ook als alleen de vernieuwde tokens worden teruggeschreven. De integratie laadde daardoor de hele entry ongeveer 21 keer per dag opnieuw: alle entiteiten werden kort unavailable, een lopende laadsessie werd weggegooid (waardoor "Total charged energy" bij elke langere lading op 0 Wh bleef staan), en bij elke reload werd de volledige ritgeschiedenis opnieuw bij Bosch opgehaald. Nu laadt de integratie alleen nog opnieuw wanneer opties of andere instellingen veranderen. Verder worden heatmap-trajecten opnieuw opgehaald wanneer de afstand van een rit verandert of wanneer een BES2-trip een rit erbij krijgt.
Een lopende lading overleeft een herstart van Home Assistant (voorstel uit issue #89). Tot nu toe ging bij een herstart of update midden in het laden alles verloren wat daarvoor was waargenomen: een lading van 20 naar 100 % die bij 60 % werd onderbroken, leverde maar 39 % op in plaats van 80 %. De integratie bewaart de lopende lading nu per fiets in een klein eigen bestand (.storage/ha_bosch_ebike_charge_inflight_<bike>) en zet haar na het opstarten voort als de laatste stijging minder dan 30 minuten geleden was. Na een langere pauze (tot 12 uur) wordt ze vanaf de opgeslagen hoogste stand afgesloten, oudere of onwaarschijnlijke resten worden genegeerd. Er wordt niets geëxtrapoleerd, het resultaat kan dus alleen te laag zijn, nooit te hoog. Twee samenhangende volgordefouten bij het herstellen van de teller en de laatste samenvatting zijn ook opgelost.
Dashboardkaart: accustand bij een losgekoppelde bridge (issue #90). Met het veld connected_entity behandelt de kaart de live accustand bij "losgekoppeld" als verouderd, maar toonde dan alleen de laatst onthouden waarde, ook als de live-sensor al een nieuwere bevatte (een korte verbinding kan een nieuwe accustand opleveren zonder dat Home Assistant ooit "verbonden" ziet). Nu toont de kaart de waarde die de live-sensor op dat moment bevat als laatst bekende stand met ~, en de leeftijd komt van het moment waarop de sensor voor het laatst veranderde. connected_entity werkt alleen samen met battery_live_entity. De nieuwe kaartversie wordt pas geladen na een herstart van Home Assistant en het opnieuw laden van de browser.
BES2: elke rit van een Bosch-trip is nu een eigen activiteit (issue #88). Bij eBike System 2 voegt Bosch meerdere ritten samen tot één "trip" en hangt nieuwe ritten aan een nog open trip, zonder dat de ID van die trip verandert. Daardoor werd het event ha_bosch_ebike_new_activity voor die ritten nooit afgevuurd, toonden de "Last Ride"-sensoren het lopende totaal van de hele trip in plaats van de laatste rit, en boekten agenda, statistiek en sortering alles op de eerste dag van de trip. Een trip met twee of meer ritten wordt nu rit voor rit bijgehouden: de oudste behoudt de trip-ID, elke andere rit krijgt een ID afgeleid van de eigen starttijd. Trips met één rit gedragen zich ongewijzigd. Wat verandert voor BES2-gebruikers met meerdere ritten per trip:
- De activiteitenlijst wordt langer, één regel per rit in plaats van per trip.
- Elke rit behalve de eerste van een trip heeft een nieuwe activiteits-ID (relevant voor automatiseringen die
activity_idgebruiken). - Bosch levert trapfrequentie, vermogen en hoogtemeters alleen als som over de trip, ze blijven bij deze ritten leeg.
- De kaarten tonen het traject van één rit alleen als Bosch de trajectgegevens per rit apart levert, anders het traject van de hele trip.
BES2: opgeslagen waarden worden na een herstart weer geladen. De integratie bewaart onderhoudstaken, servicedatum en service-kilometerstand, de accucapaciteit per fiets, de ondergrens van de kilometerteller en de laadgeschiedenis in één bestand. Het Smart System-pad las het bij het opstarten in, het pad voor eBike System 2 niet: het schreef bij elke wijziging, maar las nooit. Na een herstart waren de waarden daardoor weg, en bij de volgende keer opslaan werd ook overschreven wat nog in het bestand stond. Wat al is overschreven, moet opnieuw worden ingevoerd. Als er sinds de laatste herstart niets is gewijzigd, kunnen er nog opgeslagen waarden in het bestand staan die weer verschijnen. De ondergrens van de kilometerteller (alleen weergave, nooit lager dan de hoogste tot nu toe getoonde stand) blijft nu net als bij het Smart System behouden over herstarts.