Ga naar hoofdinhoud

MQTT Topic

INDEVOLT MQTT biedt standaard de volgende Topic-structuur. Ontwikkelaars kunnen deze structuur aanpassen volgens de vereisten van de daadwerkelijke implementatie.

TopicBeschrijving
/test/subtopicRapportage van apparaatgegevens
/test/subtopic/controlBesturingsopdrachten
/test/subtopic/control_ackResultaat van de uitvoering van besturingsopdrachten

1. Gegevensrapportage

Het apparaat publiceert actief bedrijfsgegevens via het data Topic.

Topic

/test/subtopic

Subscribe

# Example: connect to a local MQTT Broker
# Replace 127.0.0.1 with your MQTT Broker address if using a remote Broker
mosquitto_sub -h 127.0.0.1 -t "/test/subtopic" -v

Gegevenstypen

Een enkel Topic kan meerdere gegevenstypen bevatten. De client kan het berichttype onderscheiden via het veld dataType.

De Key in het JSON-bericht komt overeen met het gegevenspunt van het apparaat, en de Value vertegenwoordigt de bijbehorende gegevenswaarde. Raadpleeg MQTT Data Points voor de gedetailleerde definitie van de gegevenspunten.

dataTypeBeschrijving
gateway_dataGateway-informatie
battery_dataBatterijgegevens
inv_dataOmvormergegevens
subdevice_infoInformatie over subapparaten
subdevice_dataGegevens van subapparaten

Voorbeeldbericht

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

2. Besturingsopdrachten

Systemen van derden kunnen via het besturings-Topic besturingsverzoeken naar het apparaat verzenden.

Topic

/test/subtopic/control

Publish

# Example: connect to a local MQTT Broker
# Replace 127.0.0.1 with your MQTT Broker address if using a remote Broker
mosquitto_pub -h 127.0.0.1 -t "/test/subtopic/control" -m '{}'

Berichtformaat

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

Beschrijving van velden

VeldTypeBeschrijving
GW_SNStringSerienummer van de gateway.
dataTypeStringBerichttype, vast ingesteld op modbusString.
SN1StringSerienummer van het doelapparaat.
dataMapArrayLijst met Modbus-opdrachten.

Beschrijving van dataMap

dataMap kan één of meerdere Modbus-opdrachten bevatten. Het apparaat voert de opdrachten opeenvolgend uit volgens de volgorde in de array.

VeldTypeBeschrijving
groupNumStringTotaal aantal opdrachten.
groupIDStringNummer van de huidige opdracht, beginnend bij 0.
commandStringStringModbus-opdracht in hexadecimaal tekenreeksformaat.

De inhoud van commandString moet voldoen aan het Modbus-telegramformaat, inclusief apparaatadres, functiecode, registeradres, gegevens en CRC-controle.

Raadpleeg voor de specifieke registeradressen: Modbus-registerbeschrijving.


3. Besturingsantwoord

Nadat het apparaat een besturingsopdracht heeft uitgevoerd, wordt het uitvoeringsresultaat teruggestuurd via het besturingsantwoord-Topic.

Topic

/test/subtopic/control_ack

Subscribe

# Example: connect to a local MQTT Broker
# Replace 127.0.0.1 with your MQTT Broker address if using a remote Broker
mosquitto_sub -h 127.0.0.1 -t "/test/subtopic/control_ack" -v

Voorbeeldbericht

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

Beschrijving van velden

VeldTypeBeschrijving
resultStringResultaat van de uitvoering van de opdracht.
commandResponseStringGeretourneerde Modbus-gegevens.