Skip to content
Henry Arce automation · AI · data

Open source · Apache NiFi · 2026

From the machine to Power BI with Apache NiFi

Problem
In many plants OEE is worked out by hand in Excel once a month: by the time the number looks bad nobody remembers what happened, and each supervisor logs stoppages their own way.
What I did
A complete pipeline with made-up data: three simulated machines publish over MQTT whether they are running or stopped, the reason and the good and bad parts. Apache NiFi 2 reads it, validates the JSON against a schema, applies the business rules, adds the shift and the machine name from the PostgreSQL master table and stores it. Bad messages go to an error queue, each with its reason.
Result
OEE (availability × performance × quality) per machine and shift, downtime by reason and scrap come out of SQL views ready for Power BI. Everything starts with a single docker compose up in about two minutes and, in testing, none of the 12,960 history messages was lost. It includes the NiFi flow template in JSON and a guide to scaling NiFi: back pressure, queue prioritization and when to move to a cluster.
The project's Power BI report: OEE, availability, performance and quality; OEE by day and machine; OEE by machine and shift; downtime minutes by reason and the current state of each machine
The Power BI report included in the repository, with the simulator's made-up data.

Apache NiFi 2 · MQTT · PostgreSQL · Power BI · Python · Docker

View on GitHub

Related service: Power BI for factories: OEE, downtime and scrap

If your team has tasks that keep repeating or data that doesn’t add up, tell me about it: info@arcedatalab.com

Other projects

Back to all projects

Leave Henry a message

It goes straight to Henry. Your details are only used to reply to you.