Hybrid Track: Monitor Without Replacing
You have meters. You have a BMS. Now add governance.
What You'll Achieve
By the end of this track:
- Unified consumption view across all meters and sources
- Governed queries for cost allocation and sustainability
- Full audit trail of every report and insight
- MCP connection for AI-powered analysis
All without touching your existing metering infrastructure.
Phase 1: Connect Your Data
Step 1.1: Create IoT Hub Connection
Connect your existing meter data to OpenIndustrial.
Option A: Using the UI
- Open your workspace
- Drag a Connection node from the Node Bank onto your canvas
- Click the node to open the Inspector
- In Settings, configure for Azure IoT Hub
- Enter your connection string
- Commit your changes (click the save icon in the top-left)
Option B: Ask Azi
Step 1.2: Common Energy Data Sources
| Source | Protocol | OI Connection |
|---|---|---|
| Smart meters | Modbus/MQTT | IoT Hub |
| BMS (Building Management) | BACnet via Edge | IoT Hub |
| Utility feeds | API/CSV | Database |
| Submeters | MQTT | IoT Hub |
Start with your main building meter. You can add submeters later without changing your queries.
Phase 2: Create Consumption Surfaces
Surfaces organize your energy data for efficient querying.
Step 2.1: Create Building Surface
Ask Azi:
"Create a surface for building energy monitoring that includes electrical, gas, and water meters."
Azi proposes:
- Surface name:
Building-Energy - Nodes: ElectricMain, GasMeter, WaterMeter
- Description: Main building utility consumption
Review and approve.
Step 2.2: Create Line-Level Surfaces
For granular allocation, create surfaces per production area:
| Surface | Nodes | Purpose |
|---|---|---|
Production-Line-1 | Line1Electric, Line1Compressed | Line-specific consumption |
HVAC-Systems | ChillerPower, AHU1, AHU2 | Building systems |
Lighting | LightingZone1, LightingZone2 | Area-specific lighting |
Each surface becomes a governed scope. Queries within a surface inherit its permissions and audit context.
Phase 3: Build Cost Allocation Queries with Azi
This is where governance delivers value. Every query is tracked and auditable.
Step 3.1: Total Consumption Query
Ask Azi:
"Create a warm query that calculates total electricity consumption by day for the last 30 days."
Azi proposes:
EnergyData
| where MeterType == "Electric"
| where Timestamp > ago(30d)
| summarize TotalKWh = sum(kWh), PeakKW = max(kW) by bin(Timestamp, 1d)
| order by Timestamp asc
Review, approve, save.
Step 3.2: Cost Allocation by Area
Ask Azi:
"Build a query that allocates electricity cost to each production line based on consumption."
Azi proposes:
EnergyData
| where MeterType == "Electric"
| where Timestamp > ago(1d)
| summarize Consumption = sum(kWh) by Area
| extend CostPerKWh = 0.12 // Update with your rate
| extend AllocatedCost = Consumption * CostPerKWh
| order by AllocatedCost desc
Step 3.3: Peak Demand Analysis
Ask Azi:
"Create a query that identifies our top 10 peak demand periods in the last month."
Azi proposes:
EnergyData
| where MeterType == "Electric"
| where Timestamp > ago(30d)
| summarize PeakKW = max(kW), Hour = bin(Timestamp, 1h) by bin(Timestamp, 1h)
| top 10 by PeakKW desc
| project Hour, PeakKW, DayOfWeek = dayofweek(Hour)
Phase 4: Access Your APIs
Every warm query gets a REST API endpoint for integration.
Step 4.1: Find Your Endpoint
- Open the APIs menu in the top bar
- Select Warm Query Manager
- Choose your warm query from the dropdown
- Copy the endpoint URL and code examples
Step 4.2: Integrate with Your Systems
| Integration | Use Case |
|---|---|
| ERP | Monthly cost allocation posting |
| Dashboard | Real-time consumption display |
| Sustainability platform | Automated emissions reporting |
| Alerting | Peak demand notifications |
Step 4.3: Example cURL
curl -X GET 'https://www.openindustrial.co/api/workspaces/explorer/warm-queries/daily-consumption' \
-H 'Authorization: Bearer YOUR_TOKEN'
Phase 5: Connect MCP-Native AI
Enable AI-powered energy analysis on your governed data.
Step 5.1: Get MCP Configuration
- Open the APIs menu in the top bar
- Select API Keys to generate a JWT token
- Use the configuration below with your workspace ID and token
Step 5.2: Configure Claude Desktop
{
"mcpServers": {
"energy-data": {
"command": "npx",
"args": [
"-y",
"@openindustrial/mcp-server",
"--workspace", "YOUR_WORKSPACE_ID",
"--token", "YOUR_TOKEN"
]
}
}
}
Step 5.3: Ask Energy Questions
Now you can ask Claude:
"What's driving our electricity costs this month compared to last month?"
Claude queries your governed data and provides insights—all logged in the audit trail.
When AI identifies an optimization opportunity, you can trace exactly what data it used and what queries it ran.
What You Built
| Component | Status |
|---|---|
| IoT Hub connection | ✓ Connected to meters |
| Consumption surfaces | ✓ Organized by building/line |
| Allocation queries | ✓ 3+ governed warm queries |
| API endpoints | ✓ REST access for integrations |
| MCP integration | ✓ Claude analyzing energy data |
Category Metrics
| Metric | Your Result |
|---|---|
| Time to First Governed Query | ~30 minutes |
| Queries built | 3+ |
| Audit coverage | 100% |
| AI connected | Claude Desktop |
Before vs After
| Before Control Plane | After Control Plane |
|---|---|
| "The meter showed this" | "Here's the query, who ran it, full trail" |
| Spreadsheet reports | Governed, auditable queries |
| AI guesses | AI insights with data lineage |
| Manual allocation | Automated, traceable allocation |
Next Steps
| If you want to... | Go to... |
|---|---|
| Try the Full track | Full Track → |
| See query patterns | Patterns → |
| Deep-dive on MCP | MCP Guide → |
| Explore other journeys | Manufacturing → |
On this page
- FrontmatterVersion: 1 DocumentType: Guide Title: "Energy Monitoring — Hybrid Rollout" Summary: "Keep your meters and BMS where they are, and add cost allocation and sustainability queries over them, reachable by API and by any MCP client." Created: 2026-01-19
- Hybrid Track: Monitor Without Replacing