Repository navigation
Arrival and departure alerts, hide and join trips, APK and maintenance in the widget and Home Assistant, docs - #521
Merged
Merged
Conversation
A home or work place with Notify switched on (off until asked for) sends place-arrival when the car parks there, judged by the position of the poll it parked in, and place-departure on the first position outside its radius after the engine started there: warming the car up, or a drive that never leaves, sends nothing. Both are types each device can switch off, in English and Dutch. The AddCommutePlaceNotify migration adds the column. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L6DtW2eHhipteRopmy3cif
A hidden trip (Trip.IsHidden, AddTripIsHidden migration) leaves the map, the statistics, the dashboard and the trip log's totals and export, and stays listed under Show hidden trips to show again; nothing is deleted. Join with next trip (two taps) makes a trip and the saved trip after it one, from the first one's start to the second one's end, with the second removed in the same transaction. A purpose someone chose is kept; otherwise it is labelled again from the new ends, so home to a fuel station to work becomes a commute. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L6DtW2eHhipteRopmy3cif
…p, in the widget and Home Assistant VehicleFactsService works out what only GarageStack knows about a car: the APK and its days left, open recalls and insurance from the RDW, the maintenance item due first, and the newest trip. The Homepage widget serves it beside the telemetry, and HomeAssistantPublisher (Api) announces it over MQTT discovery on the car's own device, with one retained state message per car on garagestack/<VIN>/state; a sensor with nothing to show is removed. The Home Assistant broker login may read garagestack/#, nothing more. Checked against a real Mosquitto with the generated ACL. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L6DtW2eHhipteRopmy3cif
…es and maintenance, and the PostgreSQL upgrade - The OpenAPI document is served in every deployment at /api/openapi/v1.json, to whoever is signed in or holds a read-only token, and the README points token users at it instead of at the local demo. - pnpm screenshots retakes the gallery and the manifest's install screenshots from a running demo stack; the gallery is retaken with it (the new sidebar, the RDW card, the trip log's hide and join) and gains Climate schedules. - The README gets sections for climate schedules and maintenance, as the trip log and the RDW have. - docker/all-in-one/README.md says how to move the bundled database to a new PostgreSQL major version by dump and restore, which the README links. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L6DtW2eHhipteRopmy3cif
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.
Pull Request
Summary
Three features from the project review, and the documentation batch (P4).
CommutePlace.Notify, off until switched on).place-departuregoes out on the first position outside the place's radius after the engine started there, so warming the car up sends nothing;place-arrivalon the position of the poll the car parked in, and not for a drive that never left the place it started in. Two new types each device can switch off, in English and Dutch. State lives in the Worker'sPlaceAlerts, fed byTelemetryHandler.Trip.IsHiddenkeeps a trip out of the map, the statistics, the dashboard and the trip log's totals and export; it stays listed under Show hidden trips.POST .../trips/{id}/merge-nextjoins a trip with the next saved one in one transaction (fixes, end, odometer, end address, speed figures, notes); a purpose someone chose is kept, an automatic one is worked out again from the new ends.VehicleFactsServiceworks these out once; the Homepage widget serves them beside the telemetry, andHomeAssistantPublisher(Api) announces them over MQTT discovery on the car's existing device, with one retained state message per car ongaragestack/<VIN>/state. A sensor with nothing to show gets an empty config, which removes it. The Home Assistant broker login may now readgaragestack/#./api/openapi/v1.jsonto signed-in callers and read-only tokens.pnpm screenshotsretakes the gallery and the manifest's install screenshots from a demo stack. All were retaken (the old ones predate the current sidebar and the RDW card), and Climate schedules was added.For the release notes (Upgrade Notes): migrations
AddCommutePlaceNotifyandAddTripIsHidden(columns with defaults). A Home Assistant broker reached through a Mosquitto bridge needstopic garagestack/# in 0added for GarageStack's own sensors (HOME_ASSISTANT.md).Type of Change
Related Issues
Follows #519 and #520.
Checklist
pnpm lint/dotnet build), plusdotnet format --verify-no-changes,has-pending-model-changes, shellcheck, 1458 backend and 1141 frontend testsunraid/garagestack.xmlchanged: not changedAlso checked locally: the generated Mosquitto ACL against a real broker (the Home Assistant login reads
garagestack/#andhomeassistant/#, cannot overwrite the state, and an empty retained config removes a sensor). Not run here: the Docker images, the Playwright smoke tests, the all-in-one PostgreSQL upgrade steps, and the sensors in a real Home Assistant.Generated by Claude Code