Proactive alert channels
Push offline and fault alerts to Teams, email or webhooks. Today, alerting is the portal's hotlist and live notifications.
For the client: The right person is told immediately, wherever they work.
This is what a client sees when they sign in. Try it: open an issue, watch the live chart, queue an action. It runs on demo data.
Memory creeping up is the kind of trend the service desk spots early and schedules a restart out of hours for.
| Room | Occupied (h) | Booked but empty (h) | Rating |
|---|---|---|---|
| Board Room | 22 | 3 | 4.6 |
| Town Hall | 14 | 9 | 4.1 |
| Huddle 3 | 31 | 2 | 4.8 |
| Training 2 | 9 | 12 | 3.2 |
| Exec Suite | 18 | 5 | 4.4 |
Training 2 is booked for 21 hours but empty for 12 of them, and rated 3.2★. That's evidence for the client's estates team.
The package is checked for compatibility with each processor before it's sent. Every action is logged with who sent it and its result.
Different people at the client care about different things. Here's what each one gets, and the question it answers for them.
Room usage, ghost bookings, occupancy, energy and satisfaction, per building and floor.
“Which rooms should we refit, resize or repurpose?”
Their own SSO, custom roles, scoped API keys, outbound-only connections and an audit trail.
“Is this safe on our network, and who can do what?”
Rooms that work when they walk in, and a one-tap way to rate the room from the panel.
“Why doesn't the screen work?” Asked less often.
The live hotlist, remote fixes, version control of every room and an assistant to ask.
“What's broken, and is it fixed?”
Every capability, its status, and what it means for the client. Filter by area.
Push offline and fault alerts to Teams, email or webhooks. Today, alerting is the portal's hotlist and live notifications.
For the client: The right person is told immediately, wherever they work.
Per-tenant keys with limited permissions for integrations and automation.
For the client: Plug proAV.Net into the client's own tools safely.
DeviceRegistry.Api/Endpoints/ApiKeyEndpoints.csLive config editor, setup wizard, templates, every revision kept with diffs, and property-list backup/restore.
For the client: Every change is recorded and reversible. Swap a failed processor and restore it in minutes.
DeviceRegistry.Api/Endpoints/ConfigEndpoints.csDevices and locations plotted on a map, with health at a glance.
For the client: Multi-site clients see their whole estate geographically.
dashboard-ui/src/app/cloud/components/device-map/Add an update and another screenshot to an earlier report.
For the client: Conversations stay on one thread instead of duplicate tickets.
DeviceRegistry.Api/Endpoints/PortalFeedbackEndpoints.csBrowse, preview, upload and download files on a processor.
For the client: No more FTP clients and site VPNs to swap a file.
DeviceRegistry.Api/Endpoints/FileExplorerEndpoints.csFirmware per model, with which processors are current or outdated across the fleet.
For the client: Security and stability patches tracked and applied deliberately, not forgotten.
DeviceRegistry.Api/Endpoints/FirmwareEndpoints.csOne screen ranks every issue across every site — offline processors, missing equipment, failing check-ins.
For the client: The service desk starts the day knowing exactly which rooms need attention, before anyone calls.
dashboard-ui/src/app/cloud/components/hotlist/Raise and track issues against a client's control-system package, with labels, comments and activity.
For the client: A fault seen in the portal lands with the engineers who own the code, with context attached.
DeviceRegistry.Api/Endpoints/GitHubEndpoints.csDisplays, codecs, DSPs, cameras and PDUs each processor controls — with online / missing state and driver warnings.
For the client: See the whole room, not just the control processor. "The projector is offline" arrives before the user does.
dashboard-ui/src/app/cloud/pages/device/linked-devices/Device changes are pushed straight to every open dashboard over WebSockets, fanned out across cloud instances.
For the client: What you see is what is happening now — no refresh button, no stale status.
DeviceRegistry.Api/Realtime/Each client is an isolated tenant with its own logo, sign-in domains, working hours and building → floor → room tree.
For the client: One platform for every client, with strict separation between them.
DeviceRegistry.Api/Endpoints/NamespaceEndpoints.csPing, autodiscovery, IP table, CresNet, VC-4 status, BACnet and network tests — run from the processor itself.
For the client: See the network from the room's point of view. Settle "is it AV or IT?" in seconds.
DeviceRegistry.Api/Endpoints/NetworkDiagnosticsEndpoints.csThe portal and panels use Firebase only to sign in — every read and write of client data goes through the API's tenant and role checks.
For the client: A straightforward answer for client security questionnaires.
dashboard-ui/src/app/cloud/services/firebase-auth.service.tsA processor that misses check-ins for five minutes is flagged offline, and its noise is suppressed until it returns.
For the client: Clear, single alerts instead of a flood — the real problem is obvious.
DeviceRegistry.Api/Endpoints/DeviceEndpoints.csEvery control-system program version with release notes, git commit and branch — deploy to one device or many after a compatibility check.
For the client: Consistent rollouts across an estate, and you always know exactly what is running where.
DeviceRegistry.Api/Endpoints/PackageEndpoints.csShare a specific build with a short public download link.
For the client: Hand a build to a partner or site engineer in one click.
DeviceRegistry.Api/Endpoints/PackageLinkEndpoints.csUsers send feedback with screenshots attached and follow its status.
For the client: A direct line from client to product team.
dashboard-ui/src/app/cloud/components/portal-feedback/Reboot, restart, update, apply a template, update firmware or move a device to another cloud — now or on a schedule.
For the client: Out-of-hours maintenance without anyone on site; fixes in minutes instead of a truck roll.
DeviceRegistry.Api/Services/ScheduledActionDispatcher.csSSH, Telnet and CTP sessions to processors and network devices, tunnelled through the cloud.
For the client: Engineer-level access to any site from the browser, without VPNs.
DeviceRegistry.Api/Endpoints/RemoteConsoleEndpoints.csEvery processor's logs, searchable by time range from anywhere.
For the client: Diagnose without a site visit or a laptop on a ladder.
DeviceRegistry.Api/Endpoints/LogEndpoints.csOperate the room's touch-panel UI and switch PDU outlets from the portal.
For the client: See exactly what the user sees and power-cycle a frozen display remotely.
DeviceRegistry.Api/Endpoints/UiProxyEndpoints.csProcessors upload reports that can be browsed and downloaded per device or tenant.
For the client: Hand clients a documented record of their system.
DeviceRegistry.Api/Endpoints/ReportEndpoints.cskWh, average and peak watts per room from metered PDUs.
For the client: Sustainability reporting and evidence for switch-off policies.
proAV.Net.Core/DeviceSupport/Power/End users rate rooms from the touch panel; averages and comments roll up per room, location and tenant.
For the client: The voice of the meeting-room user, measured. Prove service quality and catch bad rooms early.
DeviceRegistry.Api/Endpoints/FeedbackEndpoints.csHours occupied, booked, and booked-but-empty per room, from occupancy sensors and room calendars combined.
For the client: Real evidence for estate decisions — which rooms are over-booked, which are ghost bookings, which to refit.
dashboard-ui/src/app/cloud/components/room-usage/Sign-in routed by email domain to Firebase or the client's SSO; custom roles built from fine-grained capabilities.
For the client: The client's IT team controls who sees and does what, with their own identity provider.
DeviceRegistry.Api/Endpoints/RoleEndpoints.csCPU, memory and disk sampled every 10 seconds on each processor, with 7 days of history.
For the client: Spot a struggling processor trending towards trouble long before it fails in a meeting.
dashboard-ui/src/app/shared/system-monitor-chart/