Repository navigation
v0.10.0
·
239 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Upgrade Notes
- Four database migrations run automatically at API startup:
AddPushSubscriptionExcludedCategories,AddChargingDetails,AddCommutePlacesandAddTripSpeedFigures. No action needed. Every trip that already has a purpose is marked as chosen by hand, so the automatic commute marking never changes it (#451, #452, #455, #459) - Update the API, the Worker and the web interface together. Statistics read a new
/stats/dailyendpoint that replaces/history, and the API's readiness check listens for a heartbeat from the Worker. The all-in-one image always runs all of them from the same build (#454, #459) - Open Settings > Notifications once on each device that gets push. Switching a notification type off now stops its push (#451), but the server learns which types a device switched off only when that device opens its notification settings. Until then it keeps getting every type, as it did before.
- Five new notification types are on by default: Low 12V battery, Low fuel, No data from the car, MG sign-in failed and Charging interrupted. Untick them per device under Settings > Notifications, or set
AUX_BATTERY_LOW_VOLT,LOW_FUEL_PERCENTorSTALE_DATA_HOURSto0to switch that alert off for everyone (#451, #452) - The API asks GitHub for the latest release once a day, to show the update notice in the footer. Only the release number is fetched, and nothing about your car or account is sent. Set
UPDATE_CHECK_ENABLED=falseto stop it (#454) - Two API endpoints are removed:
GET /api/vehicles/{vin}/trips/last, which nothing used, andGET /api/vehicles/{vin}/history, replaced by/stats/daily. This only matters to your own scripts that call the API directly (#453, #459) - About 10 minutes after the Worker starts, it works out the top and average speeds of the trips saved before this release, so a year of statistics no longer has to read each trip's GPS fixes. It runs once, in the background (#459)
- The Unraid template has seven new fields:
AUX_BATTERY_LOW_VOLT,LOW_FUEL_PERCENT,LOW_EV_PERCENT,STALE_DATA_HOURS,UPDATE_CHECK_ENABLED,RATE_LIMIT_GLOBAL_PER_MINUTEandDEBUG_LOGS. They are all optional, so an existing container keeps running; update the template to see them (#451, #452, #454)
Features
- Statistics beyond 90 days. Statistics have their own period, apart from the map's: the last 7, 30 or 90 days, this or last month, this or last year, or custom dates up to ten years. Charts show a point per day up to 92 days, per week up to a year and per month beyond that, and periods longer than a month get a table of trips, distance and energy (or fuel) per month, with a total. Each day is counted from every reading in your own time zone, so a day's energy peak is no longer missed. A stored choice of 7, 30 or 90 days carries over (#459)
- Commutes are marked in the trip log automatically. Set home and one or more work places under Home and work, and every trip between home and a work place becomes a commute: the trips already in the log, and each new one as it is saved. Pick a place on a map or click a trip's start or end address, and set its radius from 50 to 1000 m (250 m by default). A car has one home. A purpose you chose yourself is never overridden, and the positions stay in your own database (#455, #460)
- New alerts: Low 12V battery (below
AUX_BATTERY_LOW_VOLT, 12.0 V, on several polls in a row while parked), Low fuel (belowLOW_FUEL_PERCENT, 15%, on hybrids and plug-in hybrids), No data from the car (nothing forSTALE_DATA_HOURS, 48 hours) and MG sign-in failed (once per outage). The low EV battery level is nowLOW_EV_PERCENT(20%) (#451) - Charging interrupted: a charge that stops on a named fault (charger fault, port too hot, plug not fully in, voltage mismatch) sends its own notification with the reason, instead of "Charging complete" (#452)
- A push switch per device: Settings > Notifications (was Notification types) has "Push notifications on this device". Ticking a type no longer subscribes or unsubscribes, so it never brings up a permission prompt (#451)
- The HV battery card shows the charge target and which charge current limit is in use, and the charging session card shows when the last charge started. The BMS status, schedule mode and battery heating schedule are worded instead of shown as gateway codes (#452)
- Readiness check at
/api/healthfor uptime monitors: it reports the database, the MQTT broker and the Worker, answers200while all are up and503when one is down, and needs no sign-in. The Worker image's health check now reads a heartbeat, so a Worker that lost the broker or the database shows unhealthy instead of merely running, and the all-in-one image checks/api/healthwith a 120 s start period (#454) - Update notice: the footer links to the release page when a newer GarageStack is out (#454)
Bug Fixes
- Switching a notification type off now stops its push. It used to hide the type in the panel only: every device still got every alert pushed (#451)
- Turning push on works on a fresh device. It used to subscribe only when the number of unticked types changed, so turning push on meant unticking and re-ticking a type (#451)
- No more hourly repeats of tyre and low EV alerts on a sleeping car. They now go out once per report from the car, and a message the broker replays on reconnect cannot set them off again (#451)
- Scheduled climate retries when the car is busy. After a night's sleep the car could refuse the climate command with "Other remote command in progress". The schedule now sends it again after 30 seconds, up to three times, so a run starts at most about three minutes late (#460)
- A BEV gets the daily energy chart. It was only offered to cars that burn fuel; every known drivetrain now has it, in kWh on a plug-in and litres on a plain hybrid (#452)
- The Worker no longer warns on every message for the gateway's charging stop reason, charge target, charge current limit and last charge start (now stored), or for topics it leaves out on purpose (#452)
- A language set on your account on another device now applies on first load, instead of after a reload (#456)
- The notification buttons name the unread count for screen readers ("Notifications, 2 unread") (#456)
- The web manifest is served as
application/manifest+jsoninstead ofapplication/octet-stream(#456) - The install prompt no longer promises offline use, which the app does not offer; it now says "Opens in a tap from your home screen" (#458)
- The API notices a broker that came back before the next command is sent, and Docker's 10-second
/healthprobe no longer writes an Information line to the log every time (#454)
Performance
- The first load is smaller: the app's entry script goes from 92.0 to 83.5 kB gzipped and its stylesheet from 20.0 to 17.4 kB. Dutch loads only when it is the chosen language, and the map filters' dropdown styles load with the map filters (#456)
- The dashboard opens a connection to the map tile server while it loads, when you are already signed in (#456)
- Each trip keeps its top and average speeds, so trip summaries over a long period no longer read every trip's GPS fixes. A year of daily statistics at one reading per minute takes about 420 ms (#459)
Documentation
- The README gains a Monitoring section and a note on the update notice, updating a Compose install reads
git pull,docker compose pull,docker compose up -d --build, and the dashboard cards and alert lists are current (#452, #454) CONFIGURATION.mdexplains that settings set by their .NET key need adocker-compose.override.yml, with an example, and covers the new alert levels andUPDATE_CHECK_ENABLED(#451, #452, #454)DEMO.mdhas the right trip count and history span, and the docs say the 90-day floor onTELEMETRY_FULL_DETAIL_DAYSis now there for the map alone (#452, #459)RELEASING.mdsyncs the Community Apps template through a pull request in that repository (#461)
Internal
- The demo covers 400 days and reports a daily energy counter, so the demo site shows last year, the month table and the energy chart (#459)
- One guarded reconnect in the MQTT publisher, shared by publishing and the health check (#454)
- Remove unused translation keys (#452)
Dependencies
- Development tools: vue-tsc 3.3.12 (#457)
Full Changelog
v0.9.2...v0.10.0: v0.9.2...v0.10.0