48Industries
500+Subsystems
1000+Projects
18Years
Part 12 of 12

Reference & roadmap

Integration with other systems, the reference for events, settings and the data model, step-by-step guides to daily work, FAQ and the roadmap.

Reference & roadmap
24

Integration Guide and API Reference

All four services expose a REST API with OpenAPI (Swagger) documentation. The Digital Twin system has the broadest surface, with 1,066 operations across two namespaces — public (/api, with a project key) and administrative (/internal/api, with an admin session); WebSocket for live data and commands, Webhook for outbound events.

Digital Twin System API Families (Selected)

FamilyOperationsPurpose
SNMP management64Devices, OID mapping, templates, MIB, forced polling, traps
Logic management47 + 19Rules, limits, scripts, state machines, scenarios, test runs, expression validation
Redfish management46 + 9Servers/BMC, resource mapping, templates, tree browsing, writes
Modbus management42 + 21Devices, registers, templates, scanning, coil and register read/write
Equipment catalog (in-system)31 + 29 + 14Models, brands, categories, device creation from a model, sync with the catalog service
PLC30 + 10PLC devices, tags, protocols, read/write
Equipment and groups30 + 12 + 14Device CRUD, serials, grouping, conversion to a protocol device
Assets and maintenance30 + 10Assets, cost, maintenance, relationships, transfer, reporting
Points (ACV)27 + 8 + 9Point CRUD, real-time values, alarmed points, ID parsing, reload
Notification27 + 10Channels, groups, recipients, templates, logs, channel testing, escalation policy
Battery and UPS28 + 19 + 13 + 9 + 11UPS status, battery nodes, history, control commands (node reboot…)
Tuya · MQTT · OPC UA · KNX · BACnet · M‑Bus24 · 28 · 32 · 19 · 34 · 15Devices, mappings, discovery, read/write for each protocol
Project structure20 + 9 + 9 + 11 + 10 + 14Project, organization, building, floor, space; floor cloning
Media20 + 12File upload/serving, dashboard images, 3D models
People, users, roles, permissions, keys20 + 19 + 9 + 16 + 9Identity, roles, permission assignment, project keys
Ticketing18Tickets, comments, status, SLA
Protocol mapping and registry18 + 13Bidirectional ID ↔ OID/register mapping, writes by ID
Smart assistant17Chat, conversations, memories, knowledge, action confirm/cancel
Dashboards14Dashboard CRUD, elements, cloning, export
Energy11 + 9 + …Meters, tariffs, cost, demand, real-time
Settings, logging, monitoring, queues, system15 + 18 + 10 + 8 + 8335 settings, per-category log level, GC, restart, queue stats
Simulator, SMPP, internal services15 + 14 + 12Simulator control, SMPP connection, service start/stop

Companion Services

ServiceOperationsFamilies
Equipment catalog69Models (11), categories (11), brands (8), tags (8), protocol specs (6), ports (6), accessories (6), documents (6), images (4), discovery (5), enrichment agent (5), reference (5), sync (2), import/export (2), search, stats
ARG AI145ML analysis (68), chat (8), alerts (8), multi-site (7), providers (7), auto-remediation (7), prompts (6), data ingestion (6), ML reports (5), compliance (5), settings and health (5), reporting (4), twin (4), dashboard (4), mobile (4), Webhook (4), analytics (4), auth (3), export (2), CSV (1)
Offline map18Regions (11), downloads (7), z/x/y tile service (2)
Twin Designer14Types, drafts, validation, compatibility, publishing, lifecycle, Modbus templates, code generation

Integration Patterns

Reading Live Data

WebSocket connection with a project key → authenticate → enid_subscribe for the desired points → receive batch packets every 75 ms. For systems without WebSocket: poll the REST endpoint for real-time values periodically.

Sending a Command

set_enid_value over WebSocket, or a REST command call with a key that has control permission and a unique command key; the execution receipt comes back as COMMAND_RECEIPT_UPDATE.

Receiving Events

Webhooks from rules and notifications (JSON with point ID, value, severity, timestamp); or query the REST events and notification-log endpoints.

Onboarding Structure and Equipment

Structure API (project → … → space) and equipment, or a bulk-import Excel file; generate points from the catalog with a single call; sync the central catalog with full-snapshot and changes.

25

References: Events, Settings, Functions, Elements

Event Types and Severity

EventWhen It Is Logged
RULE_FIRED · STATE_CHANGED · SCRIPT_EXECUTEDRule execution, state-machine transition, script completion (with result)
ACV_ALARM · ACV_LIMIT_EXCEEDED · ACV_VALUE_CHANGEDA point entering alarm state, crossing a limit, value change (optional, for important points)
DEVICE_CONNECTED · DEVICE_DISCONNECTEDChange in a device's online status on any channel
SERVICE_STARTED · SERVICE_STOPPEDStart/stop of protocol and notification services
USER_LOGIN · USER_LOGOUT · SETTINGS_CHANGED · MANUAL_COMMAND · CUSTOMLogin/logout, settings change, manual operator command, custom event from a script
SeverityINFO · WARNING · CRITICAL · ERROR — filterable in the event log and usable in escalation policy

Server Settings Categories (335 Settings)

systemprojectcorequeuetcpwebsocketscadasnmpmodbusbacnetknxbmsupshistoricaldatabasebackuploggingperformancesecuritynotificationsmsemailtelegramupload

Each setting has a data type and validation, is stored in a file and mirrored in the settings table; scheduling intervals (batching, history, energy) are read from here. Export/import lets configuration move between environments.

Expression Language Functions

FunctionMeaning
ACV['enid']Current value of the point
HOUR() MINUTE() SECOND()Current server time
DAY_OF_WEEK() DAY_OF_MONTH() MONTH() YEAR()Date components
TIME_IN_RANGE(h1,m1,h2,m2)True if the current time is within the range (overnight ranges are also supported)
IS_WEEKDAY() IS_WEEKEND()Workday / weekend
TIMESTAMP()Unix time
AVG(enid,n) MIN(enid,n) MAX(enid,n)Statistics over the point's last n values
LAST_N(enid,n)The last n values
CHANGED(enid) RISING(enid) FALLING(enid)Change / upward trend / downward trend in the recent buffer
HISTORY_SIZE(enid)Number of values in the buffer

Common Properties of 2D Elements

Position and size, rotation, layer (z), lock, hide, background/border/text color, font and size, corner radius, shadow, opacity, display condition, link to another dashboard, point binding (single or multiple points with aggregation), value mapping (discrete/range), unit and decimal precision, command (type, value, confirmation).

BMS Animation Categories (153)

HVAC 14Pump 10Fan 8Valve 12Pipe 9Tank 8Meter 6Agriculture 6Arrow 20Wiring 13Electrical 11Fire suppression 4Sensor 8Status 12Access 7Miscellaneous 5

Permission Domains (12 × 7 Actions)

Domains: dashboard, structure, equipment, points, logic, alerts, energy, assets, users, settings, media, reports. Actions: view, create, edit, delete, control, export, administer. Default roles: system administrator, project manager, operator, technician, energy manager, security, visitor.

28

FAQ and Glossary

Frequently Asked Questions

Does the system work without internet access?

Yes. All components run inside the customer's network; the map is served from the offline map server, and the assistant's language model can be local. Only Telegram notifications and some language-model providers need internet access.

What if a device is not in the catalog?

It can be created directly in that project through the "Request to add equipment" interface, or with manual OID/register/tag mapping; it can then be added to the catalog so it is ready for future projects.

How many points does it support?

This document's reference sample is 427 pieces of equipment and 3,964 points across three projects. The distribution engine delivered 69,000 updates per second on an ordinary server without loss (Chapter 31); each project has its own independent history store, and very large sites are split into independent units.

What happens with a mistaken or duplicate command?

A command requires control permission and password confirmation, executes only once per unique key, and the equipment's receipt is logged. Smart-assistant actions are never executed without confirmation.

Where is the data stored?

In PostgreSQL on the customer's server (or a dedicated cloud instance); daily backups; no data is sent to any external service except the language-model provider the customer chooses.

Can the customer's existing system be kept?

Yes. It connects to the existing system via OPC UA, Modbus, MQTT or WebSocket and can sit on top of it as a visualization/analytics layer; frames from ARG's previous-generation SCADA are also accepted.

Glossary

TermMeaning in This System
Digital twinThe digital counterpart of a piece of equipment or a site that carries its live values, status, history, limits and behavior
Point (ACV)An active control variable; an input or output signal with a unit, scale and limits
ENIDA unique 16-digit identifier for each point across the entire system
Twin typeA data-driven definition of an equipment type (points, events, commands, protocol mapping) from which executable code is generated
Limit with hysteresisA threshold that requires crossing the threshold ± a safety margin to clear, so it doesn't generate flapping alerts
ScenarioA set of actions that can be activated/deactivated, with a trigger and a shutoff condition
State machineA behavioral model with states and transitions whose current state persists
Product profileA cut of the menus and modules for a customer type (BMS, DCIM, IoT…)
Equipment catalogA central knowledge base of equipment models with ready-made points and protocol specs
MBTilesThe standard map-tile package format for offline use
DCIM · PUEData center infrastructure management · ratio of total power to IT power
29

Step-by-Step Guide — Everyday Tasks in the System

Seven common routines, exactly as a user performs them in the system interface. Each routine is illustrated with real screens.

A · Adding a New Device from the Catalog

1System Design → Structure Management → Devices → "Add Device"
2General Info tab: name, space/floor, serial number (from the catalog or manual)
3Connection tab: IP, port, protocol; Protocol/SNMP tab: version, community string or v3 user
4Select a model from the "Catalog Browser" → points and protocol mapping are generated automatically
5Protocol tester: force a read and see each point's value
6Monitoring tab: polling interval, limits and notification for each point; save
Device creation form
Device creation form · Info, connection, protocol, SNMP, monitoring, location, and advanced tabs
Selecting a model from the catalog
Selecting a model from the catalog
Validating with the protocol tester
Validating with the protocol tester

B · Defining a Computed or Manual Point

1Points Management → "Define Point"
2Equipment, category (temperature, humidity, status…), input/output direction, data type
3The ID is generated automatically; unit, scale (factor/offset), decimal precision
4Four-level limits + hysteresis; notification delay and bandwidth
5A computed expression (e.g., the average of two sensors), if needed
6Flags for saving to history and broadcasting on the network; save

C · Building a 2D Dashboard

1Dashboard Design → "New Dashboard" or pick from templates
2Background: a floor plan from Media Management; canvas size and grid
3Drag elements from the palette (value, gauge, chiller animation, button…)
4Properties panel: bind to a point (search by name/ID), color/level mapping
5Preview with live values; Undo/Redo; save (auto-saves every 30 seconds)
6Share with roles, or set as default; export as ZIP for migration
Step 3 — Component palette
Step 3 — Component palette
Step 4 — Properties panel for the selected element
Step 4 — Properties panel for the selected element

D · Building a 3D Scene

1My Dashboards → "New 3D Dashboard" → the scene builder opens
2Floor/wall from the building category; set numeric dimensions
3Drag equipment (rack, chiller, pump…) with snapping to the grid/floor
4Pipe/cable routing mode between connection ports; standard color coding
5Binding panel: each object's points, value-to-color/intensity mapping; command
6Default camera and lighting; save; live display on the dashboard
Step 3 — Laying out fuel station equipment
Step 3 — Laying out fuel station equipment
Step 6 — The same scene live on the dashboard
Step 6 — The same scene live on the dashboard

E · Writing and Testing a Rule

1Logic Design → Rule Engine → "New Rule" (form-based or visual)
2Condition: point, operator, value; AND/OR combinations; time range and days
3Action: set a value (with delay), notify a group, log an event, Webhook
4Priority, quiet period, hourly execution cap
5"Test Run" with arbitrary values; or the logic test lab with the simulator
6Activation; track "last run" and the event log
Step 1 — New rule in the visual editor
Step 1 — New rule in the visual editor
Step 5 — The logic test lab
Step 5 — The logic test lab

F · Setting Up SMS Notification and Escalation

1Settings → Notification → SMS channel (carrier SMPP) or email/Telegram
2"Test Channel" to send a test message
3Recipient group (security, facilities, manager) and message template
4Escalation policy: level 1, after 5 minutes without acknowledgment → level 2
5Assign the channel/group to points or rules
6Track in the notification log; acknowledge alerts from the dashboard

G · Conversing with the Assistant to Get Things Done

1The assistant button on every page; ask in Persian
2"Build me a temperature and humidity dashboard for floor 3"
3The assistant finds the points and shows the proposal as a card
4Review the card's details; confirm or cancel
5Result (dashboard ID) and a link; if the designer is open, "apply to canvas"
6Save preferences to memory: "From now on, show temperature in Fahrenheit"
The assistant on a dashboard
The assistant on a dashboard · Query, confirmation card, memory and knowledge
38

Data Model Reference — Types, Categories and States

Data Type and Point Direction

Data types: boolean, integer, float, enumerated, string. Direction: input (read-only) or output (command-capable). Output points are written through the protocol driver (SET, register, node, topic, datapoint).

Point Status

Inactive · Normal · Warning · Critical · Error. Warning/Critical are computed from two-level limits on each side (Low/LowLow, High/HighHigh); Error is for values outside the valid range or a failed read.

Point Types (55)

Digital and analog input/output, counter, timer, variable, time, system status, SMS, email, and equipment-specific types (UPS, generator, ATS, PDU, HVAC, access…).

Signal Categories (~500)

Sensors (temperature, humidity, CO₂, pressure, flow, level, vibration, light, occupancy…), generator (GEN_*), HVAC (AC_*), telecom (GSM_*), energy (ENERGY_*), mains/grid (MAIN_*), statuses and commands.

ID Base Ranges (Sample)

BaseMeaning
2000–2005Variable, date/time, timer, system status, SMS, email
4000 · 5000Person, person group (physical access)
6000–6800Equipment family: UPS, generator, ATS, PDU, AHU, FCU, chiller, boiler, elevator, access controller, parking controller, LPR camera, VFD…
9000–9011AC, SNMP (9004), Modbus (9005), KNX (9006), BACnet (9007), LonWorks (9008), M‑Bus (9009), PLC (9010), Redfish (9011)
9024–9027 · 9065S7, FINS, MC, ADS · Tuya

Hierarchy and Related Entities

Project (keys, settings, profile) → organization → building → floor → space → equipment (group, serial, catalog model, protocol) → point. Related entities: dashboards (2D/3D/list/map, owner, sharing), media, rules/limits/scripts/state machines/scenarios, notification channels/groups/templates, escalation policies, events, assets, tickets, meters/tariffs, UPS/battery nodes, people/roles/permissions, twins and twin events.

39

Roadmap

Items that this document does not claim as existing capabilities, and that are on the development roadmap.

ItemStatus
Active-active clustering of the application layer and horizontal collector nodesPlanned Today: database HA, standby-ready nodes, splitting a site into independent units
A multi-threaded ingest path for refinery-scale volume (hundreds of thousands of points with second-level updates)Planned The distribution engine today handles ~70,000 updates per second; the full processing path is being optimized
BACnet/IP and MS/TP, KNX, M‑BusPlanned The UI, data model and polling loop are ready; the protocol layer is being completed
PLC: OPC UA inside the PLC driver, Beckhoff ADSPlanned (standalone OPC UA is already complete)
Generic twin types on the server (chiller, pump, AHU)Planned Today they exist in Twin Designer and the UI layer; the server runs the UPS type
Live data connectivity for the hotel, production and agriculture modulesIn development Pages and workflow are ready; the connection to points and server entities is being completed
Dedicated pages for solar, water, EV charging, fleet, indoor positioning, and fire suppression with live dataIn development The UI is complete on sample data; real monitoring is possible through the generic point model
A native mobile app and full offline mode (PWA)Planned A responsive web version and the ARG AI mobile API already exist
A 3D globe map inside the system (Cesium/Mapbox)Planned A 2D map with 8 tile sources, and a 3D globe on the offline map server, are already active
ARG Systems · ARG Smart Systems · argsrv.com · Contact us for a demo or inquiry.

See the Digital Twin live

The live ArgBMS demo with real 3D twins, dashboards and logic.