Aller au contenu principal

Topic MQTT

INDEVOLT MQTT fournit par défaut la structure de Topics suivante. Les développeurs peuvent la personnaliser selon les besoins du déploiement.

TopicDescription
/test/subtopicRemontée des données de l'appareil
/test/subtopic/controlCommandes de contrôle
/test/subtopic/control_ackRésultat d'exécution des commandes

1. Remontée des données

L'appareil publie activement les données de fonctionnement via le Topic de données.

Topic

/test/subtopic

Subscribe

# Exemple : connexion à un Broker MQTT local
# Remplacez 127.0.0.1 par l'adresse de votre Broker MQTT si vous utilisez un Broker distant
mosquitto_sub -h 127.0.0.1 -t "/test/subtopic" -v

Types de données

Un même Topic peut contenir plusieurs types de données. Le client peut identifier le type de message à l'aide du champ dataType.

La Key dans le message JSON correspond au point de données de l'appareil, et la Value représente la valeur de donnée associée. Pour la définition détaillée des points de données, consultez MQTT Data Points.

dataTypeDescription
gateway_dataInformations de la passerelle
battery_dataDonnées de la batterie
inv_dataDonnées de l'onduleur
subdevice_infoInformations sur les sous-appareils
subdevice_dataDonnées des sous-appareils

Exemple de message

{
"GW_SN": "xxxxxxxx",
"dataType": "gateway_data",
"firmwareVersion": "V140C.0B.0036",
"rssiWifi": "-41",
"ssidWifi": "QXTS",
"bssidWifi": "",
"iP": "190.160.3.167"
}

2. Commandes de contrôle

Les systèmes tiers peuvent envoyer des requêtes de contrôle aux appareils via le Topic de contrôle.

Topic

/test/subtopic/control

Publish

# Exemple : connexion à un Broker MQTT local
# Remplacez 127.0.0.1 par l'adresse de votre Broker MQTT si vous utilisez un Broker distant
mosquitto_pub -h 127.0.0.1 -t "/test/subtopic/control" -m '{}'

Format du message

{
"GW_SN": "xxxxxxxx",
"dataType": "modbusString",
"SN1": "xxxxxxxx",
"dataMap": [
{
"groupNum": "2"
},
{
"groupID": "0",
"commandString": "010300000001840A"
},
{
"groupID": "1",
"commandString": "0110000001020000303A"
}
]
}

Description des champs

ChampTypeDescription
GW_SNStringNuméro de série de la passerelle.
dataTypeStringType de message, fixé à modbusString.
SN1StringNuméro de série de l'appareil cible.
dataMapArrayListe des commandes Modbus.

Description de dataMap

dataMap peut contenir une ou plusieurs commandes Modbus. L'appareil exécute les commandes dans l'ordre des éléments du tableau.

ChampTypeDescription
groupNumStringNombre total de commandes.
groupIDStringNuméro de la commande actuelle, commençant à 0.
commandStringStringCommande Modbus au format chaîne hexadécimale.

Le contenu de commandString doit respecter le format d'une trame Modbus, incluant l'adresse de l'appareil, le code fonction, l'adresse du registre, les données et le contrôle CRC.

Pour connaître les adresses des registres correspondants, consultez : Description des registres Modbus.


3. Réponse de contrôle

Après l'exécution d'une commande de contrôle, l'appareil renvoie le résultat d'exécution via le Topic de réponse de contrôle.

Topic

/test/subtopic/control_ack

Subscribe

# Exemple : connexion à un Broker MQTT local
# Remplacez 127.0.0.1 par l'adresse de votre Broker MQTT si vous utilisez un Broker distant
mosquitto_sub -h 127.0.0.1 -t "/test/subtopic/control_ack" -v

Exemple de message

{
"GW_SN": "xxxxxxxx",
"dataType": "modbusString",
"SN1": "xxxxxxxx",
"dataMap": [
{
"groupNum": "2"
},
{
"groupID": "0",
"result": "success",
"commandResponse": "018302C0F1"
},
{
"groupID": "1",
"result": "success",
"commandResponse": "0190030C01"
}
]
}

Description des champs

ChampTypeDescription
resultStringRésultat d'exécution de la commande.
commandResponseStringDonnées de réponse Modbus.