Collectors
Collectors are small services that speak the protocols on the floor and publish normalised points to the historian. Each collector is declared, not coded, so adding a new PDU model is a configuration change.
collector: epms-hall-b protocol: modbus-tcp targets: - host: 10.20.7.11 unit: 1 template: pdu/schneider-galaxy - host: 10.20.7.12 unit: 1 template: pdu/schneider-galaxy poll: 1s publish: telemetry.hall-b.epms quality: mark-stale-after 5s
- Protocols: Modbus TCP and RTU, BACnet/IP, SNMP v2c and v3, OPC UA, MQTT, and REST adapters for vendor clouds
- Templates for common PDUs, UPS, chillers, CRAC and CRAH units, generators and switchgear
- Store-and-forward when the network to the historian is down
- Read-only by default; writes require a signed capability and an approval policy
Historian
A time-series store built on TimescaleDB with point metadata, quality flags and a calculation layer. PUE, WUE, derated capacity and SLA metrics are defined once as calculations and reused everywhere.
| Capability | Detail |
|---|---|
| Resolution | 1-second raw, automatic 1-minute, 15-minute and hourly rollups |
| Retention | 10 years by default, tiered to object storage after 90 days |
| Calculations | Declarative, versioned, backfilled when definitions change |
| Access | SQL, REST, and a streaming API for dashboards and agents |
| Exports | Snowflake, BigQuery, Parquet to S3 or Azure Blob |
Capacity engine
The capacity engine holds the power tree from utility feed to rack, with redundancy topology and derating rules. It reconciles three numbers that usually live in three departments: contracted, committed and drawn.
tree: campus-north feeds: [A: 40MW, B: 40MW] topology: 2N ups: [S1: 16MW, S2: 16MW] derate: ambient-design-day 31C pdus: from epms contracts: from crm solve: nightly + on contract change outputs: stranded, headroom, scenario deltas, lender pack
- Scenario solver for density changes, cooling upgrades and phased hall fit-outs
- Stranded capacity detection by PDU, row and tenant
- Investor and lender reporting with source links for every figure
Cx records
A system of record for Level 1 to Level 5 commissioning. Scripts are tagged to assets, witnesses sign on a field app that works offline, and the historian captures trends during each test so the evidence is data rather than a photo of a screen.
- Script library with pass criteria, prerequisites and sequencing
- Punch lists linked to scripts, assets and contractors
- Handover package generated the day the last script passes
- Templates for common CxA frameworks and tenant witness requirements
Portals
Three front ends on one API. Tenants see their power, environment, cross-connects and tickets. Investors see delivered capacity, utilisation and efficiency with drill-down to source. The NOC sees a unified alarm feed with agent context.
- SSO with your identity provider, tenant-scoped data access
- White-label theming per campus or brand
- Embeddable widgets for existing customer portals
Agent runtime
An agent runtime for operations, built for OT caution. Agents get read tools over the historian and write tools only behind approval gates. Every action writes a receipt: what was read, what was proposed, who approved and what changed.
agent: noc-watch model: policy/ops # your subscription or key, or a local model tools: read: [historian.trend, alarms.list, cmms.search, contracts.read] write: [cmms.create_wo -> approval:noc, bms.clear_override -> approval:ops-lead] memory: shared/campus-north receipts: ledger + siem
- Model-neutral: Anthropic, OpenAI, Google, Azure, or on-premises models
- No write to a control system without a named approver
- Tamper-evident ledger with content hashes and replay
Deployment
Asgharian Core runs on Kubernetes in your cloud account or on-premises. A single Helm chart deploys the historian, API and portals; collectors deploy as containers or Windows services near the equipment.
- Reference deployments for Azure, AWS and client-managed clusters
- Air-gapped installs with offline registries
- Blue-green upgrades, tested against a replica of your data
Security
- Network: collectors are outbound-only; no inbound ports in the OT network
- Identity: SSO and SCIM, role-based access with tenant scoping
- Data: encrypted in transit and at rest, EU-only regions available
- Change: every write to a control system is approved, logged and reversible
- Assurance: ISO 27001-aligned practices, SOC 2 readiness support for your audit
Licensing
Core modules are licensed per deployment with source access, included in squad and run engagements. There is no per-point or per-user metering. If we stop working together, the licence and the code stay with you.
Report security issues to security@asgharian.dev.