Link for your Lab

Sign in to access device dashboards, automation rules, and technical support tools.

Powered by Labconco
Link For Your Lab

Notice
Device Onboarding Load a device setup page, provision its MQTT certificate bundle, and keep an eye on preset diagnostics below.
📷

Tap Scan QR and point the camera at the QR code on the device.

You can also enter the device setup URL manually and click Load.

Enter the device's serial number above to issue it a unique MQTT credential during setup.

Captured image
Decoding…

Position the QR code inside the frame

⚠ Unable to display the device page in this viewer.

The device may be blocking embedded views. Open the URL directly in a new tab to configure it, then return here to record the activation.

Diagnostics will appear here while onboarding runs.

Diagnostics

Iframe load, credential issuance, and preset delivery status.

Diagnostics will appear here while onboarding runs.
Device
Online
-
Serial: - Type: - Model: - Last Seen: - -
Location:
—

Key Signals

Schematic View

Name Value Type Timestamp
Ctrl+click to select multiple
Select metrics and a time range, then click Update Chart
0 devices 0 online 0 offline 0 unknown
Monitoring disconnected The portal cannot reach the MQTT broker. Device status shown is the last value received and may be out of date. The portal is reconnecting automatically.

Dashboard Widgets

Connect to broker to discover SparkplugB devices...

🔧 Administrative Tools

Device Certificate Access

Every device authenticates to the broker with a unique X.509 client certificate. Use Revoke Access to block a lost, stolen, or decommissioned device from reconnecting or publishing — a replacement certificate can only be issued from the Onboarding Station during an in-person reconfiguration. If the device is currently connected, revoking does not immediately drop its live session (the broker only re-checks credentials on reconnect); use Force Disconnect All Sessions below if you need to guarantee it's severed right now.

"Revoke All Orphaned" ignores the search box above and the checkboxes below — it always targets every active certificate with no matching fleet device.

Client Identity Serial Number Status Issued Revoked Actions
Loading device certificates...

Runs the daily expiry scan immediately instead of waiting for its 2:30 AM slot — useful when verifying notification delivery during testing.

Emergency action — restarts the MQTT broker, immediately dropping every currently connected device (not just revoked ones). Legitimate devices reconnect automatically within seconds; a device with a revoked certificate cannot.

Revoked Certificate Cleanup

A revoked certificate's row is never deleted automatically -- only this scheduled purge removes it. The credential.revoked audit entry is kept permanently in the Audit Activity report regardless of this setting.

Purge job runs daily at 2:35 AM.

Onboarding Site Defaults

These values are pre-filled on the device setup page when the Onboarding Station is used. Broker host and Sparkplug group are managed here. Port, TLS certificate details, and per-device client certificates are derived elsewhere.

The network-facing IP or hostname devices use to reach this broker.

Derived from broker config:

    Portal Access Users

    Manage website login users and roles (VIEWER, OPERATOR, ADMIN).

    Optional contact info (email/phone) is used for automated report notification routing and audit visibility.

    Display Name Username Roles Email Phone Status Last Login Actions
    Loading users...

    API Key Management

    Issue and manage API keys for external system integration via the Public REST API.

    The raw key value is shown only at creation time and is never stored in recoverable form.

    Name Scope Created By Created Last Used Status Expiry Actions
    Loading API keys...

    Outbound Webhooks

    Push real-time events to external systems (LIMS, ERP, Slack, custom APIs) as they happen.

    Each endpoint can subscribe to specific event types or receive all events.

    Name URL Events Status Last Triggered Actions
    Loading webhooks...

    Activity Log

    When enabled, received MQTT messages are included in the Logback-managed activity log stream (configured in logback-spring.xml).


    IFTTT Integration

    Configure your IFTTT Webhooks API key. This key is shared across all IFTTT automation rules and stored securely on the server — it is never returned to the browser after saving.

    Applet Event Names

    Save your IFTTT event names here so you can pick from a list when creating rules instead of typing them manually.


    Default Webhook URL

    Set a default webhook endpoint used to pre-fill webhook destinations in Automation Rules and Scheduled Report notifications.


    Chat Integrations

    Configure named Slack and Microsoft Teams incoming webhook destinations. Automation Rules and Scheduled Report notifications reference these by name — the webhook URL is write-only and never shown after saving.


    SMTP Email (Native)

    Configure native SMTP email delivery in a dedicated settings dialog.


    SMS Delivery

    Configure optional SMS delivery for short alert-style notifications. The log provider is ideal for local testing because it records sends in the portal logs without contacting an external SMS service.


    System Notification Webhook

    Shared by every system notification — Database Backup failures, System Health Alerts, and MQTT client certificate expiry warnings — instead of a separate webhook per feature. Optional; email/SMS above work independently of this.


    Portal Public Base URL

    Used to build absolute report links in webhook notifications (deep links and artifact downloads). Example: https://portal.example.com


    Subscription Plan

    Enter your entitlement key to activate a Premium or Enterprise subscription. The key is validated server-side and never returned to the browser after saving.


    Portal-Wide Notification

    Publish a high-visibility message to all logged-in users (for maintenance windows, service restarts, and outage communications).

    Leave blank and click Save to clear the current notification.


    Document Storage

    Document files and every retained version are stored in the portal database. Warning thresholds notify uploaders; hard limits block only future uploads.

    Enter 0 to disable a warning or hard limit. Lowering a limit does not delete existing documents.


    Database Backup

    Automatic backup is not available when running . Use your database server's native backup tools instead — for example, pg_dump and point-in-time recovery for Postgres.

    Portal databases are backed up automatically each day at 2:00 AM. Backups use SQLite's VACUUM INTO for a safe, consistent snapshot — concurrent historian writes are never blocked.

    Sends an alert to all Admin users with a configured email or phone number, plus the System Notification Webhook below if one is configured. Uses the SMTP and SMS settings configured above.

    Available Backups

    To restore: click Schedule Restore next to a backup, then restart the portal. The selected backup will be swapped in at startup before any connections open.


    System Health Alerts

    Sends an alert to Admin users (and the System Notification Webhook, if configured) if the MQTT broker connection stays down past the threshold below, or if live dashboard updates start backing up. Without this, the only way to learn about an outage is noticing the dashboard or a customer calling.

    Sends an alert to all Admin users with a configured email or phone number. Uses the SMTP and SMS settings configured above. A recovery alert is sent when the broker reconnects.


    Historian Retention

    Choose how long raw historian metric rows are kept before the daily cleanup job removes older data.

    Allowed range: 30 to 730 days. Cleanup runs daily at 2:00 AM using this setting.

    Dashboard Refresh Interval

    How often the dashboard's live metric values (and their sparklines) refresh in place on the device grid. Alarm and online/offline status changes are unaffected by this setting — those always update immediately.

    Allowed range: 5 to 120 seconds. Takes effect the next time the dashboard is loaded.

    Stale Device Cleanup

    Fleet devices that have not reported (sent an NBIRTH) within the archive threshold are automatically moved to archived status. Archived devices that remain silent past the purge threshold are permanently deleted.

    Archive job runs daily at 2:30 AM. Archived devices appear in Fleet Inventory → Archived where they can be manually restored or deleted.

    Automation

    Rules

    Define automation rules that run when a device metric crosses a threshold. Rules apply fleet-wide by model number or device type.

    No automation rules defined. Click "+ Add" to create one.
    Name Target Condition Trigger Actions Cooldown Status Actions

    Webhook Test Inbox

    Point a rule's webhook URL at the address below to capture and inspect the exact payload that gets sent.

    No webhooks received yet. Create a rule using the URL above and trigger it.

    Scheduled Reports

    Schedule report runs by selected day(s) and hour(s), track run history, and download generated artifacts.

    Report artifacts are stored in the database, not on disk — a longer retention period keeps more generated PDFs (typically tens of KB to a few MB each) in the database. Size for retention days × schedule frequency × typical report size.

    No scheduled reports configured.
    Name Report Type Schedule Status Last Run Next Run Actions

    Key Signal Thresholds

    Define when a numeric Key Signal shows as out-of-band on the Dashboard and device detail. Thresholds always apply by device type, optionally narrowed by model configuration — independent of notifications.

    No key signal thresholds defined. Click "+ Add" to create one.
    Name Device Type Key Signal Range Gate Conditions Deadband Actions

    Fleet

    Serial Display Name Model Firmware Last Seen Location
    Devices awaiting permanent deletion. They will be purged after the configured grace period unless restored.
    Serial Display Name Model Archived Purge In
    Device Location Tracked Items Most Urgent Due Actions
    Select a reservation card to edit, or drag on the calendar to draft a new reservation.
    Loading schedule...
    Devices

    Reservation Details

    Series

    Create, review, or update a reservation for the selected device.

    day(s)
    First reservation counts as the first occurrence.
    Locations
    Loading...
    Select a location to view details.
    Name Target Message Preview Active Until Cooldown Dismissal Devices Sent Status

    Reports

    Generate tabular fleet reports with filters and export options.

    Operations
    Compliance & Quality
    Fleet & Location
    Trends

    Fleet Inventory

    Current fleet inventory with status, versions, and location context.

    Total
    0
    Online
    0
    Offline
    0
    Unknown
    0
    Assigned
    0
    Unassigned
    0
    Last run: —
    Run the report to see results.
    Serial Display Name Device Type Model Firmware Status Last Seen Location
    Last run: —
    Run the report to see results.
    Assigned At Serial Display Name Location Ended At Assigned By Reason
    Last run: —
    Run the report to see results.
    Serial Display Name Device Type App Version IOB Version Target Status Reason
    Software Update Campaigns
    No campaigns yet.
    Name Scope Status Schedule Counts Actions
    Last run: —
    Run the report to see results.
    Serial Display Name Device Type Model Last Seen Minutes Since Seen Status Location
    Total Devices
    0
    Avg Uptime
    0%
    Downtime (min)
    0
    Meeting SLA
    0
    Below SLA
    0
    SLA Target
    99%
    Last run: —
    Run the report to see results.
    Location Devices Avg Uptime % Downtime (min) SLA Meet SLA Below
    Serial Display Name Device Type Model Uptime % Downtime (min) Outages SLA Status Location
    Last run: —
    Run the report to see results.
    Rule Enabled Target Firings (window) Devices Impacted Recent Firing Last Fired (rule)
    Active
    0
    Cleared
    0
    Open
    0
    MTTA (min)
    N/A
    MTTR (min)
    0
    Last run: —
    Run the report to see results.
    Alarm Active Cleared Open Devices MTTA (min) MTTR (min)
    Last run: —
    Run the report to see results.
    When Actor Role Action Entity Context Summary
    Last run: —
    Run the report to see results.
    When Type Actor Action Target Entity Detail
    Total Locations
    0
    Assigned
    0
    Empty
    0
    Fleet Avg Uptime
    —
    Total Devices
    0
    Assigned Devices
    0
    Unassigned Devices
    0
    Total Alarms
    0
    Assigned Devices with Event History
    0
    Assigned Devices with Estimated Uptime
    0
    Most Active: —    Least Utilized: —
    Last run: —
    Run the report to see results.
    Location Path Type Total Online Offline Online % Avg Uptime % Est. Uptime Devs Connects Alarms Avg Telemetry / Dev / Day
    Current Fleet Size
    0
    Active This Month
    —
    New in Window
    0
    Avg Monthly Growth
    —
    12-Mo Projection
    —
    Total Metric Records
    —
    Peak Connection Month
    —
    Months Analyzed
    0
    Avg MoM Growth
    —
    Recent 3-Mo Trend
    —
    Fleet Composition: —
    Last run: —
    Run the report to see results.
    Period New Devices Cumulative MoM % Active Connects Disconnects Reconnect Rate Alarms Metric Records
    Devices Evaluated
    0
    Avg Score
    0
    Critical
    0
    Stale > 24h
    0
    Missed Heartbeat Windows
    0
    Last run: —
    Run the report to see results.
    Serial Display Name Device Type Score Status Stale (min) Missed Heartbeat Windows Dupes Blank Longest Gap (min) Top Issue
    Last run: —
    Report Stub
    This report is stubbed and ready for implementation.

    Find an authorized Labconco servicer near you.

    Mosquitto MQTT Broker Management Portal | Remember to restart Mosquitto after configuration changes

    Select Location

    Filter by Device Types

    Filter by Device Types

    Filter by Device Types

    Create Software Update Campaign

    Name this campaign

    Who should this campaign reach?

    Loading matching devices...

    Review & confirm

    Serial Location Scope Status

    Campaign Detail

    Loading campaign...
    Serial Scope Target Status Reason

    New Notification

    ✓ Schedule Summary
    Select at least one day and hour to see the next run times.
    Use webhook for reliable off-session delivery (email/SMS/Slack/Discord via your notification service).
    No roles selected = no location contacts.
    Notifications include a deep link back to scheduled report run history.
    Report—
    Type—
    Schedule—
    Filters—
    Notifications
    —

    Scheduled Report Run History

    Started Finished Status Error Notify Artifact
    Loading...

    Assign Location

    Create Location

    Add Child Location

    Edit Contacts

    Contacts are available for automation alerts and quick reference when a device in this location needs attention.

    Location History

    Configure Key Signals

    Select up to 3 sensor metrics to highlight on the device detail view. Mark which of those should also show "On card" on the dashboard grid.

    Configure Maintenance Thresholds

    Applies to every device across your fleet.

    Maintenance Item Warning At Critical At Reorder Suggestion
    Notify location contacts
    Email the configured contact for a device's location when an item crosses its threshold.
    Per device and item, so a contact isn't emailed daily while something sits unresolved.

    Contact a Certified Service Technician

    This device is out of warranty, or its warranty status could not be confirmed, so this service must be scheduled directly with a Labconco-authorized service technician near you rather than through the portal.

    On the Service tab, use the map to navigate to your location, then click one of the green (active) location pins to see contact information for a certified technician in your area.

    Request Service

    This device is within its warranty period. Submit a service request below.

    Service Request Form
    This form is stubbed and ready for implementation.

    Order Item

    Documents

    Upload Document
    PDF, PNG, JPEG, TXT, CSV, DOCX, or XLSX up to 20 MB. Drop a file anywhere in this dialog or choose a file.
    No file chosen

    Document Preview

    Logcat

    Configure Schematic

    Premium Feature

    This area is available in paid plans.

    Rename Device

    MQTT Client Certificate

    Loading…

    Revoke Device Access

    This revokes the MQTT client certificate for (serial ) and asks Mosquitto to reload so it can no longer authenticate. A replacement certificate can only be issued in person from the Onboarding Station. If the confirmation afterward shows a warning instead of success, the reload command failed and the device may still be able to reconnect until that's resolved. If this device is currently connected, its live session is not guaranteed to drop immediately even when the reload succeeds — use Force Disconnect All Sessions afterward if you need that guaranteed right now. This action cannot be undone from this screen.

    Revoke Multiple Certificates

    This revokes MQTT client certificate(s) and asks Mosquitto to reload for each so they can no longer authenticate. A replacement certificate can only be issued in person from the Onboarding Station. If the result afterward reports any without a successful reload, treat those devices as not yet blocked. This action cannot be undone from this screen.

    Force Disconnect All Sessions

    This restarts the MQTT broker, which immediately drops every currently connected device — not just revoked ones. Legitimate devices will reconnect automatically within seconds; a device with a revoked certificate will not be able to. Only use this when you need to guarantee a live session is severed right now (e.g. a stolen device that's still connected).

    Sign In

    Sign in to access the portal.

    Verify Sign In

    Enter the 6-digit code from your authenticator app.

    Change Password

    Protect Your Account

    Your password has been updated. You can add an authenticator app for extra security when signing in.

    Authenticator App MFA
    This is optional, but recommended. Setup usually takes about a minute.
    If you skip this for now, you can enable it later from your profile panel under Authenticator App MFA.
    Menu
    Display Name
    Email
    Phone
    Password ••••••••••••
    Authenticator App MFA
    System Health
    Broker
    Checking…
    App Database
    Checking…
    Historian Database
    Checking…
    Shared Database
    Checking…
    Secrets Encryption
    Checking…
    Disk Space
    Checking…
    Checking...

    Authenticator App MFA

    Use an authenticator app such as Google Authenticator, Authy, or 1Password.

    Not enabled
    1. Click Start Setup to generate your MFA secret.
    2. In your authenticator app, scan the QR code. If the QR code does not appear, copy the manual entry secret instead.
    3. Enter the 6-digit code from the authenticator app and click Enable MFA.
    After you click Start Setup, scan the QR code with your authenticator app.
    Authenticator app QR code
    Manual entry secret
    Use this only if your authenticator app cannot scan the QR code.
    Open your authenticator app, find this account, and enter the current 6-digit code shown there.

    MFA is currently enabled for your account.

    Add Portal User

    Create a login account and optional notification contact info.

    Add Chat Integration

    Create a named Slack or Teams destination for automation and scheduled report notifications.

    Leave blank to keep the existing URL.

    Edit Portal User

    Update roles and optional contact info used for automated report notifications.


    Reset Password

    The user will be required to change their password on next login.


    Multi-Factor Authentication

    Authenticator app MFA is not enabled for this user.

    Comma-separated Properties/modelConfiguration values to narrow this rule to within the device type above — values don't need to be currently reported by any device. Leave blank to apply to every configuration.

    Prevents repeated notifications while a condition stays triggered — the actions fire once, then wait this many minutes before they can fire again.
    ✓ Condition Summary
    —
    Complete the rule definition first, then add one or more actions.
    Each action runs when the rule triggers. Use Webhook for HTTP endpoints, Email for SMTP alert delivery, IFTTT for event names, or Command for Sparkplug NCMD metric names (for example, Node Control/Rebirth). Command values support Boolean, Number, or String.
    Escalation Tiers
    Send a follow-up notification if this alarm goes unacknowledged. Tier 1 is the actions above; Tiers 2 and 3 fire after the delays below.
    Tier 2
    minutes unacknowledged
    minutes unacknowledged
    Rule—
    Applies To—
    Condition—
    Actions—
    —
    —

    Add Key Signal Threshold

    Defines when a numeric Key Signal shows as out-of-band on the Dashboard and device detail — reuses the same targeting as automation rules, independent of any notification.

    Apply To

    Comma-separated Properties/modelConfiguration values — you can also enter values not yet reported. Leave blank to apply to every configuration.

    Key Signal

    The next step defines the numeric range that counts as out-of-band for this metric.

    Threshold
    The numeric range that counts as out-of-band for the Key Signal chosen in the previous step. Every condition below applies to that same metric.
    Gate Conditions (optional)
    Additional conditions — on any other metric — that must also be true for this threshold to apply. Never shown as out-of-band themselves, even if numeric.

    Name—
    Applies To—
    Key Signal—
    Range—
    Gate Conditions—
    Deadband—
    ✓ Live Summary
    —
    —

    SMTP Settings

    System Notification Webhook

    SMS Settings

    Add Webhook Endpoint

    Webhook Delivery Log

    Endpoint:

    Create API Key

    The raw key value will be shown once after creation. Store it securely — it cannot be retrieved later.

    API Key

    Copy this key now. It will not be shown again after you close this dialog.

    Rotate API Key

    A new key will be issued. The old key stays valid during the grace period so integrations can update without downtime.

    The old key expires after this many hours. Set to 0 for immediate revocation of the old key.

    Disable API Key

    Temporarily suspend this key. Use the Enable action to restore access before the duration ends.

    Export Data

    Add Widget

    Ctrl+click to select multiple
    The value appears as soon as data exists — if these devices haven't reported yet, it can take up to 10 minutes to show for the first time.
    Thresholds themselves are set once, fleet-wide, under Fleet > Maintenance > Configure Thresholds — not here.