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.
Broker intégré vs externe
Section intitulée « Broker intégré vs externe »Miravo démarre un broker aedes intégré sur le port 1883. Aucune infrastructure externe requise.
miravo start --template smart-factoryConnectez-vous à un broker MQTT existant :
miravo start --template smart-factory \ --mqtt-mode external \ --mqtt-url mqtt://broker.example.com:1883Avec authentification :
miravo start --template smart-factory \ --mqtt-mode external \ --mqtt-url mqtt://broker.example.com:1883 \ --mqtt-username user \ --mqtt-password passStructure des topics
Section intitulée « Structure des topics »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_feedbackMiravoWorks/smart-factory/production/line-1/centrifugal-pump-001/discharge_pressureMiravoWorks/smart-factory/utilities/compressed-air/air-compressor-001/header_pressureFormat du payload
Section intitulée « Format du payload »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.
Configuration
Section intitulée « Configuration »| Option | Variable d’env | Défaut | Description |
|---|---|---|---|
--mqtt-port | MIRAVO_MQTT_PORT | 1883 | Port du broker (0 = éphémère) |
--mqtt-host | MIRAVO_MQTT_HOST | 127.0.0.1 | Hôte d’écoute du broker |
--mqtt-mode | MIRAVO_MQTT_MODE | embedded | embedded ou external |
--mqtt-url | MIRAVO_MQTT_URL | — | URL du broker externe |
--mqtt-username | MIRAVO_MQTT_USERNAME | — | Nom d’utilisateur du broker externe |
--mqtt-password | MIRAVO_MQTT_PASSWORD | — | Mot de passe du broker externe |
--no-mqtt | — | — | Désactiver MQTT entièrement |
Paramètres avancés
Section intitulée « Paramètres avancés »Ces paramètres se configurent via des variables d’environnement :
| Variable d’env | Défaut | Description |
|---|---|---|
MIRAVO_MQTT_DRAIN_BUDGET | 16384 | Messages max par cycle de drain intégré (512-65536) |
MIRAVO_MQTT_BATCH_SIZE | 2048 | Publications avant de céder à la boucle événementielle (64-16384) |
MIRAVO_MQTT_BROKER_CONCURRENCY | 500 | Concurrence interne aedes (10-5000) |
Report by Exception (RBE)
Section intitulée « Report by Exception (RBE) »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.
Transport de contrôle
Section intitulée « Transport de contrôle »Quand MQTT est activé, Miravo publie des topics de contrôle pour le monitoring :
| Topic | Contenu |
|---|---|
$miravo/<nom>/metrics | Métriques du moteur (publié tous les 5 ticks) |
$miravo/<nom>/state | Snapshot de l’état du moteur (publié tous les 30 ticks) |
$miravo/<nom>/cmd | Envoyer des commandes au moteur en JSON |
$miravo/<nom>/cmd/result | Résultats d’exécution des commandes |
Envoyez des commandes via MQTT :
mosquitto_pub -t '$miravo/miravo/cmd' \ -m '{"type":"triggerFault","instanceId":"pump-001","fault":"cavitation"}'Désactiver MQTT
Section intitulée « Désactiver MQTT »Exécutez avec d’autres protocoles uniquement (ex. OPC UA) :
miravo start --template smart-factory --no-mqtt --opcuaOu désactivez à l’exécution :
miravo adapter disable mqtt