Zum Hauptinhalt springen

MQTT Topic

INDEVOLT MQTT stellt standardmäßig die folgende Topic-Struktur bereit. Entwickler können diese entsprechend den Anforderungen ihrer Bereitstellung anpassen.

TopicBeschreibung
/test/subtopicÜbertragung von Gerätedaten
/test/subtopic/controlSteuerbefehle
/test/subtopic/control_ackAusführungsergebnis der Steuerbefehle

1. Datenübertragung

Das Gerät veröffentlicht Betriebsdaten aktiv über das Daten-Topic.

Topic

/test/subtopic

Subscribe

# Beispiel: Verbindung zu einem lokalen MQTT Broker
# Ersetzen Sie 127.0.0.1 durch die Adresse Ihres MQTT Brokers, wenn Sie einen entfernten Broker verwenden
mosquitto_sub -h 127.0.0.1 -t "/test/subtopic" -v

Datentypen

Ein einzelnes Topic kann verschiedene Datentypen enthalten. Der Client kann den Nachrichtentyp anhand des Feldes dataType unterscheiden.

Der Key in der JSON-Nachricht entspricht dem Datenpunkt des Geräts, und der Value stellt den zugehörigen Datenwert dar. Eine detaillierte Definition der Datenpunkte finden Sie unter MQTT Data Points.

dataTypeBeschreibung
gateway_dataGateway-Informationen
battery_dataBatteriedaten
inv_dataWechselrichterdaten
subdevice_infoInformationen zu Subgeräten
subdevice_dataSubgerätedaten

Beispielnachricht

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

2. Steuerbefehle

Drittanbietersysteme können über das Steuer-Topic Steueranforderungen an das Gerät senden.

Topic

/test/subtopic/control

Publish

# Beispiel: Verbindung zu einem lokalen MQTT Broker
# Ersetzen Sie 127.0.0.1 durch die Adresse Ihres MQTT Brokers, wenn Sie einen entfernten Broker verwenden
mosquitto_pub -h 127.0.0.1 -t "/test/subtopic/control" -m '{}'

Nachrichtenformat

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

Feldbeschreibung

FeldTypBeschreibung
GW_SNStringSeriennummer des Gateways
dataTypeStringNachrichtentyp, fest auf modbusString gesetzt
SN1StringSeriennummer des Zielgeräts
dataMapArrayListe der Modbus-Befehle

Beschreibung von dataMap

dataMap kann einen oder mehrere Modbus-Befehle enthalten. Das Gerät führt die Befehle entsprechend der Reihenfolge im Array aus.

FeldTypBeschreibung
groupNumStringAnzahl der Befehle
groupIDStringAktuelle Befehlsnummer, beginnend bei 0
commandStringStringModbus-Befehl im Format eines Hexadezimal-Strings

Der Inhalt von commandString muss dem Modbus-Nachrichtenformat entsprechen und Geräteadresse, Funktionscode, Registeradresse, Daten sowie CRC-Prüfsumme enthalten.

Weitere Informationen zu den Registeradressen finden Sie unter: Modbus-Registerbeschreibung


3. Steuerantwort

Nach der Ausführung eines Steuerbefehls sendet das Gerät das Ausführungsergebnis über das Steuerantwort-Topic zurück.

Topic

/test/subtopic/control_ack

Subscribe

# Beispiel: Verbindung zu einem lokalen MQTT Broker
# Ersetzen Sie 127.0.0.1 durch die Adresse Ihres MQTT Brokers, wenn Sie einen entfernten Broker verwenden
mosquitto_sub -h 127.0.0.1 -t "/test/subtopic/control_ack" -v

Beispielnachricht

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

Feldbeschreibung

FeldTypBeschreibung
resultStringAusführungsergebnis des Befehls
commandResponseStringVon Modbus zurückgegebene Daten