Energy · three sites
At 23:15, a closed factory draws power.
Lyon draws 18.7 kW.
At the same moment, the Grenoble laboratory draws 28.4 kW.
Fictional sites · synthetic data
The problem
The same number does not mean the same thing everywhere.
- The meter sends a site code and kW.
- The CSV registry gives the site type and its night threshold.
- Neither one knows a threshold is crossed.
Nothing is changed
The meters, Kafka and the file stay in place.
- The Kafka producer does not change.
- The CSV registry stays where it is.
- No application to build.
What had to be written
when:
- site_id=SITE-LYON
- period=CLOSED
- power_kw>10One night threshold per site.
A 110-line scenario, six declaration files.
What the owner receives
One email, for Lyon only.
Meter MTR-042 at SITE-LYON: 18.7 kW while the site is closed
Real message, replay of 3 November 2026.
Silence is an answer too
The laboratory runs all night.
- 28.4 kW, against a 40 kW threshold.
- Its climate chambers never stop.
- No decision, no email.
The limit
lumnik compares a measurement with a declared threshold.
- It does not say why Lyon draws power.
- “Site closed” comes from the source, not a calendar.
- The owner comes from the CSV, not the message.
Try it
The scenario replays end to end.
Kafka, CSV, entity, policies, email and Grafana: every step is published with its output.


