New Customer Setup Guide
← Admin ⬇ Download

New Customer Setup Guide

RESPA Monitoring System — New Customer / Device Setup  ·  NB Industries · Version 1.0 · March 2026

RESPA Monitoring System

New Customer / Device Setup Guide

NB Industries | Version 1.0 | March 2026

Overview

This document provides step-by-step instructions for setting up a new customer portal or adding a new device to an existing customer on the RESPA Monitoring System. The system uses Sorba Edge platform with Grafana dashboards for multi-tenant fleet monitoring.

Prerequisites:

Section A: New Customer Setup

Follow these steps when onboarding an entirely new customer (e.g., BMA, Whitehaven).

Step 1: Create Grafana Organisation

Each customer gets their own Grafana organisation for complete dashboard isolation.

curl -k -X POST https://192.168.1.206/dashboard/api/orgs \

-H "Content-Type: application/json" \

-u sorba_admin:'sbrQp10.' \

-d '{"name": "CUSTOMER_NAME"}'

Note the orgId returned (e.g., orgId: 5). You will need this for subsequent steps.

Step 2: Add InfluxDB Datasource to New Org

Switch to the new org and add the InfluxDB datasource:

# Switch to new org (replace ORG_ID)

curl -k -X POST https://192.168.1.206/dashboard/api/user/using/ORG_ID \

-u sorba_admin:'sbrQp10.'

# Add InfluxDB datasource

curl -k -X POST https://192.168.1.206/dashboard/api/datasources \

-H "Content-Type: application/json" \

-u sorba_admin:'sbrQp10.' \

-d '{"name":"InfluxDB","type":"influxdb","url":"http://localhost:8086",

"database":"sorba_sde","user":"admin",

"secureJsonData":{"password":"sbrQp10."},

"access":"proxy","isDefault":true}'

Step 3: Create Admin and Viewer Users

Create an admin user (for NBI management) and a viewer user (for customer access):

# Admin user

curl -k -X POST https://192.168.1.206/dashboard/api/admin/users \

-H "Content-Type: application/json" \

-u sorba_admin:'sbrQp10.' \

-d '{"name":"CUSTOMER Admin","email":"admin@customer.com",

"login":"customer_admin","password":"PASSWORD","OrgId":ORG_ID}'

# Viewer user (for customer access)

curl -k -X POST https://192.168.1.206/dashboard/api/admin/users \

-H "Content-Type: application/json" \

-u sorba_admin:'sbrQp10.' \

-d '{"name":"CUSTOMER Viewer","email":"viewer@customer.com",

"login":"customer_viewer","password":"PASSWORD","OrgId":ORG_ID}'

Step 4: Create Fleet Overview Dashboard

Ask Claude to generate a Fleet Overview dashboard for the new customer. Provide:

Claude will generate the JSON and provide the curl commands to push it.

Step 5: Set Home Dashboard

Set the Fleet Overview as the home dashboard for the org:

curl -k -X PUT https://192.168.1.206/dashboard/api/org/preferences \

-H "Content-Type: application/json" \

-u sorba_admin:'sbrQp10.' \

-d '{"homeDashboardUID":"FLEET_DASHBOARD_UID"}'

Step 6: Switch Back to Main Org

curl -k -X POST https://192.168.1.206/dashboard/api/user/using/1 \

-u sorba_admin:'sbrQp10.'

Section B: Adding a New Device

Follow these steps when adding a new Senquip device to an existing customer.

Step 1: Configure Senquip Device

In the Senquip portal, configure the device MQTT settings:

Setting Value
Broker Address 43.245.171.129
Port 8883 (TLS)
Client ID DEVICE_ID (e.g., RR2EW78BF)
Username sorba_sde
Topic sorba/DEVICE_ID/data
TLS Certificate NBI CA certificate

IMPORTANT: Do NOT change the Senquip Device ID after setup. It forms the basis of the entire data pipeline.

Step 2: Verify MQTT Data Flow

SSH to the Sorba server and verify data is arriving:

mosquitto_sub -h localhost -t "sorba/DEVICE_ID/data" -v

You should see JSON payloads arriving every 10 seconds.

Step 3: Verify Sorba Auto-Discovery

Sorba should auto-create the asset in the workspace tree:

Instances > Respa > Assets > DEVICE_ID > data

If it does not appear, restart data-auto-sync:

sudo supervisorctl restart data-auto-sync

Step 4: Configure Tag Aliases

In the Sorba Workspace, navigate to the device data tags and set aliases. The tag mapping table below shows the standard RESPA configuration:

Tag Alias Description Type
cp1 cp1 Differential Pressure (Pa) Real
cp2 cp2 CO2 Concentration (ppm) Real
cp3 cp3 Dust Concentration (ug/m3) Real
cp8 cp8 Inlet Valve Status (Base64) String
cp9 cp9 Outlet Valve Status (Base64) String
cp10 cp10 Pressure Alarm (Base64) String
cp11 cp11 CO2 Alarm (Base64) String
cp12 cp12 Dust Alarm (Base64) String
cp13 cp13 PFX Status (Base64) String
cp14 cp14 CO2 Alarm Threshold (ppm) Real

Step 5: Create Alarm Code Tags

Create six new tags for the decoded alarm codes. In Sorba Workspace, add these tags under the device data group:

Tag Name Type Default Data Logging
cp8_code Real 0 Enabled, Raw Time, 10 sec
cp9_code Real 0 Enabled, Raw Time, 10 sec
cp10_code Real 0 Enabled, Raw Time, 10 sec
cp11_code Real 0 Enabled, Raw Time, 10 sec
cp12_code Real 0 Enabled, Raw Time, 10 sec
cp13_code Real 0 Enabled, Raw Time, 10 sec

Step 6: Configure Alarm Decoder Script

In Sorba Script Engine, create or update the RESPA_Alarm_Decoder script to include the new device. The script reads Base64-encoded alarm strings from cp8-cp13 and writes decoded numeric codes to the _code tags.

Note the Redis tag IDs for the new device - these are needed in the script. Get them from:

redis-cli LRANGE rt_data:key_list 0 -1 | while read key; do

val=$(redis-cli GET "rt_data:$key")

echo "$key: $val"

done | grep "DEVICE_ID"

Step 7: Set Up Alarm Sync Loop

Until Sorba data-auto-sync reliably writes _code tags, use the alarm sync workaround. Update /home/bradley/alarm_sync.sh to include the new device Redis tag IDs.

Alarm code mappings:

Tag Values Meaning
cp8_code 1 = Connected, 0 = Disconnected Inlet Valve
cp9_code 1 = Connected, 0 = Disconnected Outlet Valve
cp10_code 0 = Normal, 1 = Low, 2 = High Pressure Alarm
cp11_code 0 = Normal, 1 = High CO2 CO2 Alarm
cp12_code 0 = Normal, 1 = High Dust Dust Alarm
cp13_code 1 = Opened, 0 = Closed PFX Status

Step 8: Create Device Detail Dashboard

Ask Claude to create a RESPA device detail dashboard. Provide:

Claude will generate the dashboard JSON based on the proven v7 template and push it to the correct org.

Step 9: Update Fleet Overview

The Fleet Overview table query needs a new row for each device. Claude will add a UNION query to the existing fleet dashboard and update the value mapping for the new device ID and Equipment Number.

Step 10: Test and Verify

  1. Log in as the customer viewer user in an incognito browser

  2. Verify Fleet Overview shows the new device with live data

  3. Click device name to verify drill-down to detail dashboard

  4. Verify alarm status panels are showing correct states

  5. Verify GPS map shows device location

  6. Check trend data is recording over time

Reference: Current System Configuration

Existing Grafana Organisations

Org ID Name Admin Login Viewer Status
1 Main (Sorba) sorba_admin - System
2 NBI nbi_viewer Active
3 BMA bma_viewer Placeholder
4 Spare spare_viewer Placeholder

Existing Devices

Eq # Device ID Customer Type Org ID
DRE01 RR2EW78BF NBI Dragline 2

Server Access

Resource Details
Sorba Server (LAN) 192.168.1.206
Sorba Server (Public) 43.245.171.129:8080
Grafana Login https://192.168.1.206/dashboard/login
Grafana Public https://43.245.171.129:8080/dashboard/login
InfluxDB localhost:8086 (admin / sbrQp10.)
Redis localhost:6379 (no auth)
Mosquitto MQTT Port 1883 (plain) / 8883 (TLS)
Sorba Serial 1762318931158

ISO 23875 Alarm Thresholds

Measurement Green Yellow Red
CO2 (ppm) 0 - 800 800 - 1000 1000+
Dust (ug/m3) 0 - 25 25 - 50 50+
Pressure (Pa) > 20 Pa < 20 Pa Negative