Skip to main content
Challenge

Build a Sparkplug B Industrial Energy Demand Shifting Planner

Parse electrical telemetry and plant operational state messages encoded in Sparkplug B payloads. Synthesize off-peak batch rescheduling proposals to avoid peak tariff surcharges.

EngineeringHosted by Vera
Challenge brief

What you are building

The core problem, expected build, and operating context for this challenge.

Parse electrical telemetry and plant operational state messages encoded in Sparkplug B payloads. Synthesize off-peak batch rescheduling proposals to avoid peak tariff surcharges.

Plant Energy and Utilities Manager

Collect power consumption metrics and operational states published across Sparkplug B topic trees.

Cross-reference real-time aggregate power draw against utility peak tariff schedule windows.

Identify flexible batch process units such as wash tanks and heat treat ovens currently active in peak hours.

Formulate non-binding schedule shift recommendations to move energy-intensive steps to off-peak periods.

Terminal and web interface presenting load demand curves, tariff brackets, and shift proposals.

Create synthetic MQTT Sparkplug B payloads containing kilowatt demand metrics and batch unit state updates. Starter examples below are synthetic. They are not downloaded records.

Eclipse Sparkplug Extracts Sparkplug B metric datasets and time-series telemetry properties according to Eclipse Tahu standards.

agno, pydantic, pytest. Agno provides lightweight structured agent flows for energy data processing and advisory schedule drafting. Requires standard text reasoning LLM via hosted API or local inference server.

Submit runnable source, pinned dependencies, setup commands, a working interface, example outputs, and a recorded end-to-end demo. Include tests and an action log.

Parses Sparkplug B power metric payloads and computes aggregate line consumption.

Identifies process units operating during defined high-tariff windows.

Generates rescheduling proposals that maintain daily throughput targets.

Flags incomplete telemetry feeds when power readings fail to report.

```json [ { "input": { "current_time": "2025-05-15T14:15:00Z", "peak_window": { "start": "14:00:00Z", "end": "18:00:00Z" }, "devices": [ { "device_id": "Oven_HT01", "kw_draw": 145, "batch_id": "B-912", "can_pause": true }, { "device_id": "Conveyor_CV01", "kw_draw": 12, "batch_id": "B-912", "can_pause": false } ], "max_allowed_peak_kw": 120 }, "expected_output": { "alert": "PEAK_DEMAND_EXCEEDED", "total_kw": 157, "recommended_shifts": [ { "device_id": "Oven_HT01", "batch_id": "B-912", "suggested_start": "2025-05-15T18:05:00Z", "estimated_kw_reduction": 145 } ], "projected_kw_after_shift": 12 } }, { "input": { "current_time": "2025-05-15T10:00:00Z", "peak_window": { "start": "14:00:00Z", "end": "18:00:00Z" }, "devices": [ { "device_id": "Oven_HT01", "kw_draw": 145, "batch_id": "B-910", "can_pause": true } ], "max_allowed_peak_kw": 120 }, "expected_output": { "alert": "NORMAL_OPERATION", "total_kw": 145, "recommended_shifts": [], "projected_kw_after_shift": 145 } } ] ```

Strictly advisory schedule recommendations; does not alter PLC registers, breakers, or batch timers. Use mock external writes. Require human review before any real deployment.

Rules

Participation guide

Strictly advisory schedule recommendations; does not alter PLC registers, breakers, or batch timers. Use mock external writes and human review.

Delivery guide

How work is evaluated

Evaluation

Parses Sparkplug B power metric payloads and computes aggregate line consumption. Identifies process units operating during defined high-tariff windows. Generates rescheduling proposals that maintain daily throughput targets. Flags incomplete telemetry feeds when power readings fail to report.

Submission format

Runnable source, pinned dependencies, setup commands, working interface, example outputs, recorded demo, tests, and action logs.

Datasets

Challenge datasets

Public datasets, plus the private datasets you have access to.

Evaluation rubric

How submissions are scored

These dimensions define what the evaluator checks and which criteria separate a passable run from a strong one.

Dimensions
4 scoring checks
Binary
1 pass or fail dimensions
Ordinal
3 scaled dimensions
Dimension 1

Complete workflow

Collect power consumption metrics and operational states published across Sparkplug B topic trees. Cross-reference real-time aggregate power draw against utility peak tariff schedule windows. Identify flexible batch process units such as wash tanks and heat treat ovens currently active in peak hours. Formulate non-binding schedule shift recommendations to move energy-intensive steps to off-peak periods.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 2

Correctness and evidence

Parses Sparkplug B power metric payloads and computes aggregate line consumption. Identifies process units operating during defined high-tariff windows. Generates rescheduling proposals that maintain daily throughput targets. Flags incomplete telemetry feeds when power readings fail to report.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 3

Review interface

Terminal and web interface presenting load demand curves, tariff brackets, and shift proposals.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 4

Safe execution

Strictly advisory schedule recommendations; does not alter PLC registers, breakers, or batch timers.

Binary check

This dimension contributes its full weight only when the submission satisfies the requirement. Partial credit is not awarded.

Learning goals

What you should walk away with

  • Collect power consumption metrics and operational states published across Sparkplug B topic trees.

  • Cross-reference real-time aggregate power draw against utility peak tariff schedule windows.

  • Identify flexible batch process units such as wash tanks and heat treat ovens currently active in peak hours.

  • Formulate non-binding schedule shift recommendations to move energy-intensive steps to off-peak periods.

Resources and assets

Reference links and supporting material

Dataset notes

Create synthetic MQTT Sparkplug B payloads containing kilowatt demand metrics and batch unit state updates. Supplied starter examples are synthetic, not source extracts.

Challenge setup

Configuration summary for this challenge.

Challenge input

Input details are not configured.

Agno

Framework for multimodal agents.

Evaluated output

No output checks are configured.

Evaluation checks
  • Collect power consumption metrics and operational states published across Sparkplug B topic trees. Cross-re...
  • Parses Sparkplug B power metric payloads and computes aggregate line consumption. Identifies process units...
  • Terminal and web interface presenting load demand curves, tariff brackets, and shift proposals.
Configured evaluation evidence
  • 2 public reference cases
Configured runtime
  • 2 configured tools

Summary shows the first task, up to three tools, and up to three evidence items. Open the technical recipe to view all configured items.

View technical recipe

Configured tools

Action Space
  • Agno · Optional
Orchestration
  • Agno · Optional

Evaluation contract

  • Complete workflow · Weight 40
  • Correctness and evidence · Weight 30
  • Review interface · Weight 20
  • Safe execution · Weight 10

Reference cases

  • 2 public reference cases

Workflow tasks

No workflow tasks are configured.

Recipe freeze marker

No recipe freeze time is recorded.

Frequently Asked Questions about Build a Sparkplug B Industrial Energy Demand Shifting Planner