Aller au contenu

MQTT

Connectez Miravo au broker MQTT intégré ou externe. Configurez les topics UNS, le format de payload, le contrôle et le filtrage par exception (RBE).

Miravo publie chaque membre d’actif comme un topic MQTT individuel. MQTT est activé par défaut.

Miravo démarre un broker aedes intégré sur le port 1883. Aucune infrastructure externe requise.

Fenêtre de terminal
miravo start --template smart-factory

Les topics suivent le patron Unified Namespace (UNS) dérivé du namespace du template et des chemins de navigation :

{enterprise}/{site}/{area}/{line}/{instance}/{membre}

Exemples de topics depuis le template smart-factory :

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

Chaque message est un objet JSON :

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

Avec metadata: "full", des champs supplémentaires sont inclus : access, euRange, kind.

OptionVariable d’envDéfautDescription
--mqtt-portMIRAVO_MQTT_PORT1883Port du broker (0 = éphémère)
--mqtt-hostMIRAVO_MQTT_HOST127.0.0.1Hôte d’écoute du broker
--mqtt-modeMIRAVO_MQTT_MODEembeddedembedded ou external
--mqtt-urlMIRAVO_MQTT_URLURL du broker externe
--mqtt-usernameMIRAVO_MQTT_USERNAMENom d’utilisateur du broker externe
--mqtt-passwordMIRAVO_MQTT_PASSWORDMot de passe du broker externe
--no-mqttDésactiver MQTT entièrement

Ces paramètres se configurent via des variables d’environnement :

Variable d’envDéfautDescription
MIRAVO_MQTT_DRAIN_BUDGET16384Messages max par cycle de drain intégré (512-65536)
MIRAVO_MQTT_BATCH_SIZE2048Publications avant de céder à la boucle événementielle (64-16384)
MIRAVO_MQTT_BROKER_CONCURRENCY500Concurrence interne aedes (10-5000)

Le filtrage RBE ignore la publication quand une valeur n’a pas changé au-delà d’un seuil de bande morte. Configurez-le dans les paramètres de protocole du template ou via l’API admin.

Quand MQTT est activé, Miravo publie des topics de contrôle pour le monitoring :

TopicContenu
$miravo/<nom>/metricsMétriques du moteur (publié tous les 5 ticks)
$miravo/<nom>/stateSnapshot de l’état du moteur (publié tous les 30 ticks)
$miravo/<nom>/cmdEnvoyer des commandes au moteur en JSON
$miravo/<nom>/cmd/resultRésultats d’exécution des commandes

Envoyez des commandes via MQTT :

Fenêtre de terminal
mosquitto_pub -t '$miravo/miravo/cmd' \
-m '{"type":"triggerFault","instanceId":"pump-001","fault":"cavitation"}'

Exécutez avec d’autres protocoles uniquement (ex. OPC UA) :

Fenêtre de terminal
miravo start --template smart-factory --no-mqtt --opcua

Ou désactivez à l’exécution :

Fenêtre de terminal
miravo adapter disable mqtt