You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Date / time / sun chips show the actual tour timestamps instead of the current time (the full activity object is now passed to openActivity).
Overlay layout uses the 3D card's flex chain unconditionally - the map fills the overlay edge-to-edge whether browser fullscreen is engaged or not, and the play controls sit at the bottom of the screen.
The spawned 3D card inherits playback_speed and the other playback / display options from any existing 3D card on the same dashboard, so a custom chase-cam speed in one place is honored everywhere.
Shared card settings (single source of truth)
New HA-storage slot (/config/.storage/ha_bosch_ebike_card_settings) holds the playback + display options.
Both 2D and 3D card editors read and write to it; both cards render via the cascade: shared store > card YAML > hardcoded default.
New WebSocket commands bosch_ebike/get_card_settings and bosch_ebike/set_card_settings with an allow-listed key set.
An in-process event bus pushes changes to all open cards live - edit playback_speed in one editor, the other card reflects it within ~1 s.
Maintenance management
Dashboard auto-discovers the bike when bike_id is unset; single-bike users no longer need to configure anything.
Editor lists items across ALL bikes, each row shows the bike label (if multi-bike), a name dropdown, type switch (km / days), interval, last done input (km for km-based, date picker for day-based), green ✓ done button and red × remove button.
Backend recomputes remaining_km / remaining_days on the fly in ws_list_maintenance, so the dashboard sees the new state immediately after add / update / done.
New WS field last_done_at + last_done_odometer on update_maintenance so the editor can record 'I did this last week at km X'.
Fixed several Number(null) === 0 bugs that hid the day-based path and rendered date items as 'overdue: 0 km'.
Visible error reporting via alert() when a WS call fails, plus full traceback in the HA log.