Repository navigation
feat(notifications): alerts you can trust - #451
Merged
Merged
Conversation
Switching a notification type off only hid it in the panel: the server pushed every alert to every device and the service worker showed them all. Each subscription now carries the types its device switched off (new ExcludedCategories column), and the Worker leaves that device out of the push. The panel still records every alert for everyone. Settings gains a "Push notifications on this device" switch. Before, a fresh device only subscribed when the number of unticked types changed, so turning push on meant unticking and re-ticking a type. The checklist no longer subscribes or unsubscribes; it only tells the server which types to leave out, so ticking a box never brings up a permission prompt. The settings section is now called Notifications. Tyre and low EV alerts went out every hour while the latest data still showed the problem, so a car asleep overnight with a soft tyre pushed all night. Level alerts now go out once per report, judged by the gateway's own poll stamps, so a replayed message cannot re-arm them. New alerts, all switchable per device: - Low 12V battery: below AUX_BATTERY_LOW_VOLT (12.0 V) on several polls in a row while parked. - Low fuel: below LOW_FUEL_PERCENT (15 %), hybrids and plug-in hybrids. - No data from the car: nothing reported for STALE_DATA_HOURS (48). - MG sign-in failed: the gateway's account/lastLoginError, once per outage (until the next account/lastLogin). Account topics were dropped before any handler saw them; MqttTopicParser now parses them. LOW_EV_PERCENT (20) replaces the hardcoded low EV level. Zero switches any of these alerts off. The variables are in compose, .env.example, CONFIGURATION.md, the README and the Unraid template. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
joszz
added a commit
to joszz/unraid-community-apps
that referenced
this pull request
Oct 11, 2026
Adds the alert level variables from joszz/GarageStack#451: AUX_BATTERY_LOW_VOLT, LOW_FUEL_PERCENT, LOW_EV_PERCENT, STALE_DATA_HOURS. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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
Alerts you can trust: three notification bugs fixed, and four alerts added for data GarageStack already stored but never watched.
Fixes
PushSubscription.ExcludedCategories, migrationAddPushSubscriptionExcludedCategories), andPushSenderServiceleaves that device out. The in-app panel still records every alert.LastVehicleStateAt/LastChargeStateAt), so a message the broker replays on reconnect cannot re-arm them. This is the same rule the parked alerts already used.New alerts
AUX_BATTERY_LOW_VOLT(12.0)LOW_FUEL_PERCENT(15)STALE_DATA_HOURS(48)account/lastLoginError, once per outage (until the nextaccount/lastLogin)LOW_EV_PERCENT(20) replaces the hardcoded low EV level, and0switches any of these off. The defaults match the dashboard's warning colours.Account topics (
saic/{user}/account/...) used to be dropped before any handler saw them.MqttTopicParser.TryParseAccountand the newAccountStatusHandlerread them. The account is an email address, so it never reaches the log. Retained failures are ignored on resubscribe, and the gateway retries every 15 minutes, so the alert is held back while one has gone out since the last good sign-in.Type of Change
Related Issues
None.
Checklist
pnpm lint/dotnet build,dotnet format --verify-no-changes,vue-tsc)unraid/garagestack.xmlchanged: copied tojoszz/unraid-community-appsafter merge (four new Config entries)Verification
{}(wants every type).🤖 Generated with Claude Code