Skip to content

Quick Start

Run your first Miravo simulation and see data flowing in under two minutes. Start with Docker, subscribe to MQTT topics, inject faults, and switch templates.

Get data flowing over industrial protocols in under two minutes.

Terminal window
docker run --rm -p 1883:1883 -p 8080:8080 amineamaach/miravo:latest

Miravo auto-selects the smart-factory template and starts an embedded MQTT broker on port 1883.

Open a second terminal and subscribe to all topics using any MQTT client:

Using mosquitto_sub (install: apt install mosquitto-clients or brew install mosquitto):

Terminal window
mosquitto_sub -h 127.0.0.1 -t '#' -v

Or using MQTTX CLI (install: npm install -g mqttx):

Terminal window
mqttx sub -t '#' -h localhost

Topics follow the Unified Namespace structure:

MiravoWorks/smart-factory/production/line-1/belt-conveyor-001/speed_feedback
MiravoWorks/smart-factory/production/line-1/centrifugal-pump-001/discharge_pressure
MiravoWorks/smart-factory/utilities/compressed-air/air-compressor-001/header_pressure

Each message is a JSON payload:

{
"value": 5.21,
"timestamp": 1710000000000,
"quality": "good",
"unit": "bar",
"instanceId": "centrifugal-pump-001",
"model": "centrifugal-pump",
"dataType": "Double"
}

View the simulation state through the admin API:

Terminal window
curl -s http://127.0.0.1:8080/state | jq .

Or open the web console at http://127.0.0.1:8080 for a real-time dashboard with instance status, metrics, and live events.

Trigger a fault on a running pump:

Terminal window
curl -s http://127.0.0.1:8080/commands \
-H 'content-type: application/json' \
-d '{"type":"triggerFault","instanceId":"centrifugal-pump-001","fault":"cavitation"}'

Watch the MQTT subscriber — vibration values spike, flow rate drops.

Terminal window
docker run --rm -p 1883:1883 -p 8080:8080 \
amineamaach/miravo:latest start --template water-treatment

Four built-in templates are available: smart-factory, water-treatment, commercial-building, and backup-power.