Commit graph

12 commits

Author SHA1 Message Date
4845e17cfd Add iOS install hint + Apple PWA meta tags, fix missing beforeinstallprompt handler
iOS Safari has no beforeinstallprompt API, so the portal's Install
button (?install=1) silently did nothing there. IosInstallHint now
shows Share -> Add to Home Screen steps on Safari, or a prompt to
switch to Safari first if opened in another iOS browser/in-app
webview (those can't install PWAs on iOS at all).

Also added apple-mobile-web-app-title + apple-touch-icon so the
home screen icon isn't a page screenshot, and added the
beforeinstallprompt handler that was missing entirely (Android
Install button did nothing either).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-06 14:12:12 +00:00
9bb5645f8d Fix jumping field order, tidy labels/units on Dashboard field list
The unordered plant_asset_latest query could return rows in a different
order after every MQTT upsert, making the field list under each asset card
appear to shuffle. Added ORDER BY, plus a curated label/unit/order table
for the known water-softener fields (Salt Level 42%, Tank A Capacity
1850 L, Regeneration Active Yes/No, ...) with a title-case + alphabetical
fallback for anything not yet mapped.
2026-07-30 09:49:14 +00:00
ff145957fc Trim flow chevrons to fit one row, add water-passing indicator
Regen flow indicators now show 2 chevrons instead of 3 so the diagram row
fits without wrapping on narrow cards. Added a pulsing vertical chevron
stack under each tank's % reading, shown when that tank is actually
in-service and passing water (not regenerating).
2026-07-30 09:46:13 +00:00
0ab98d3a3c Centre brine tank between resin tanks in diagram
Tank A / Brine / Tank B reads more clearly as which side brine is flowing
into than the previous Brine / A / B order. Flow chevrons now point away
from the brine tank toward whichever resin tank is regenerating.
2026-07-30 09:42:52 +00:00
56e672210a Shorten regen tank badge label to fit 2026-07-30 09:12:50 +00:00
9f41a26c6b Fix regen-tank inversion in water softener diagram
The regenerating tank is the one NOT currently in service — on an
alternating twin-tank softener, service switches to the other tank the
moment one depletes, and the just-depleted tank regenerates offline. Was
previously showing regen on the in-service tank. Also splits the flow
indicator so it visually tracks whichever tank is actually regenerating.
2026-07-30 09:08:48 +00:00
4f048a9629 Add configurable water-softener diagram to Dashboard
Per-asset diagram_config (JSONB) maps live MQTT field_keys to brine/resin
tank roles, editable on the Assets page with dropdowns populated from that
asset's actual telemetry. Dashboard renders brine + 1-2 resin tanks with
color-coded fill levels, an "in service" tank indicator, and an animated
flow/regen indicator when regeneration is active.
2026-07-30 09:02:12 +00:00
eca07750d2 Add PWA manifest support and icons
App had no manifest, no service worker, and no icons — not
installable as a PWA at all despite having PWA meta tags in index.html.
2026-07-29 17:28:43 +00:00
bf538df2d9 Revert to fetching MQTT credentials from the shared integration
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-29 07:50:33 +00:00
251c3ead59 Fetch MQTT credentials from plant's own settings integration
Was reading the shared central mqtt integration, which meant plant
silently authenticated as whichever app's credentials were pasted
there (no plant/# ACL on any of them, so no telemetry ever arrived).
Now reads mqtt_plant instead, its own dedicated slug.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-28 22:46:52 +00:00
9245abc6eb Move plant to Hotel category instead of Operations
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-28 22:25:20 +00:00
503b397dff Scaffold plant app - MQTT monitoring for boiler-room equipment
Read-only monitoring/alerting for boilers, water softener, calorifiers
and pumps via a generic MQTT-topic-prefix asset model, so new
equipment can be onboarded without new ingestion code. Threshold and
stale-data alert rules with email + in-app notification.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-28 21:16:02 +00:00