Model
Estimated reading time: 9 minutes
Workload Orchestrator Models allow you to add devices that connect to Workload Orchestrator with different protocols. Supported protocols include MQTT, LWM2M, and DTLS.
What is a Model?
Workload Orchestrator Models are JSON templates for connecting to Devices. Models define what parameters are needed for devices to communicate with Workload Orchestrator. Parameters include values like Host Name, Port, Password, and ClientId. You can add one or more templates to a device model to enable multiple features
- When you add a device to Workload Orchestrator and set up connectivity in OT Link Platform, the template will apply and the values will fill in automatically for the new device and cloud connection.
- Models and Devices are specific to a Project.
- The device model identifies which protocols devices will use to communicate.
- Device models dictate a device’s configuration. Model protocols include: HTTP, HTTPS, MQTT, MQTTS, LWM2M, and LWM2M with DTLS.
- Device models can also have custom data blocks.
Protocols and Port Requirements
The following ports must be open to access the full set of Workload Orchestrator features:
Acronym | Full Name | Port | Description |
---|---|---|---|
HTTP | Hypertext Transfer Protocol | 80 | This client-server protocol enables web data exchange between browsers and servers. |
HTTPS | Hypertext Transfer Protocol - Secure | 443 | The secure version of the HTTP protocol encrypts all requests and responses with Transport Layer Security (TLS) or Secure Socket Layer (SSL). |
LWM2M | Lightweight Machine-to-Machine | 5683 |
This OMA (Open Mobile Alliance) Lightweight Machine-to-Machine (LWM2M) protocol provides device management via client-server application layer communication. HPE provides the LWM2M server. LWM2M-compatible devices, like OT Link Platform-enabled devices, are the clients. |
LWM2M with DTLS | Lightweight Machine-to-Machine - Secure | 5684 | The secure version of the LWM2M protocol uses Datagram Transport Layer Security (DTLS). |
BS | Bootstrap | 15683 | Bootstrap is related to LWM2M. It allows the device to initialize configuration parameters from the bootstrap server when it first powers-on. |
BS with DTLS | Bootstrap - Secure | 15684 | The secure version of Bootstrap uses Datagram Transport Layer Security (DTLS). |
MQTT | Message Queuing Telemetry Transport | 1883 |
A lightweight messaging protocol for data transfer to/from IoT devices that is optimized to minimize network bandwidth consumption. MQTT is designed for event-driven interactions with objects that measure physical quantities such as light, gas, temperature, dust, motion, sound, and pressure. |
MQTT TLS/SSL | Message Queuing Telemetry Transport - Secure | 8883 | The secure version of the MQTT protocol uses Transport Layer Security (TLS)/Secure Socket Layer (SSL) to provide a secure connection. |
OTA |
Over-the-Air | Not Applicable | Over-the-Air updates facilitate device firmware updates. OTA refers to the methods for distributing software, configuration settings, and updating encryption keys. |
Minio |
|
9443 | Open this port to enable offline deployments from the Minio storage system. |
Example Models
The following examples show the JSON for Device Model templates and what each of the fields mean:
Template Name | JSON | Parameters |
---|---|---|
LWM2M Bootstrap. DTLS connection. Pre-shared keys mode |
{ "lwm2mBsHostName": "%LWM2M_BS_HOST%", "lwm2mBsPortDtls": "%LWM2M_BS_DTLS_PORT%", "lwm2mEndpoint": "%LWM2M_ENDPOINT%", "lwm2mBsPSKIdentity": "%LWM2M_BS_PSK_IDENTITY%", "lwm2mBsPSKValue": "%LWM2M_BS_PSK_VALUE%", "lwm2mBsPSKValueHex": "%LWM2M_BS_PSK_VALUE%", "forceAccessControl": "false", "remoteNetwork": "%REMOTE_NETWORK%" } |
|
LWM2M Bootstrap. Not secured connection parameters |
{ "lwm2mBsHostName": "%LWM2M_BS_HOST%", "lwm2mBsPortNoSec": "%LWM2M_BS_NOSEC_PORT%", "lwm2mEndpoint": "%LWM2M_ENDPOINT%", "forceAccessControl": "false", "remoteNetwork": "%REMOTE_NETWORK%" } |
|
LWM2M. DTLS connection. Pre-shared keys mode |
{ "lwm2mHostName": "%LWM2M_HOST%", "lwm2mPortDtls": "%LWM2M_DTLS_PORT%", "lwm2mEndpoint": "%LWM2M_ENDPOINT%", "lwm2mPSKIdentity": "%LWM2M_PSK_IDENITY%", "lwm2mPSKValue": "%LWM2M_PSK_VALUE%", "lwm2mPSKValueHex": "%LWM2M_PSK_VALUE_HEX%", "remoteNetwork": "%REMOTE_NETWORK%" } |
|
LWM2M. Not secured connection parameters |
{ "lwm2mHostName": "%LWM2M_HOST%", "lwm2mPortNoSec": "%LWM2M_NOSEC_PORT%", "lwm2mEndpoint": "%LWM2M_ENDPOINT%", "remoteNetwork": "%REMOTE_NETWORK%" } |
|
MQTT HTTP connection parameters |
{ "httpUrl": "%MQTT_HTTP%", "mqttUserName": "%MQTT_USERNAME%", "mqttPassword": "%MQTT_PASSWORD%", "mqttClientId": "%MQTT_CLIENT_ID%", "mqttReqTopicName": "%MQTT_REQ_TOPIC%", "mqttRespTopicName": "%MQTT_RESP_TOPIC%", "mqttDataTopicName": "%MQTT_DATA_TOPIC%", "remoteNetwork": "%REMOTE_NETWORK%" } |
|
MQTT https connection parameters |
{ "httpsUrl": "%MQTT_HTTPS%", "mqttUserName": "%MQTT_USERNAME%", "mqttPassword": "%MQTT_PASSWORD%", "mqttClientId": "%MQTT_CLIENT_ID%", "mqttReqTopicName": "%MQTT_REQ_TOPIC%", "mqttRespTopicName": "%MQTT_RESP_TOPIC%", "mqttDataTopicName": "%MQTT_DATA_TOPIC%", "remoteNetwork": "%REMOTE_NETWORK%" } |
|
MQTT plain TCP connection parameters |
{ "mqttHostName": "%MQTT_HOST%", "mqttTcpPort": "%MQTT_TCP_PORT%", "mqttUserName": "%MQTT_USERNAME%", "mqttPassword": "%MQTT_PASSWORD%", "mqttClientId": "%MQTT_CLIENT_ID%", "mqttReqTopicName": "%MQTT_REQ_TOPIC%", "mqttRespTopicName": "%MQTT_RESP_TOPIC%", "mqttDataTopicName": "%MQTT_DATA_TOPIC%", "remoteNetwork": "%REMOTE_NETWORK%" } |
|
MQTT TLS/SSL connection parameters |
{ "mqttHostName": "%MQTT_HOST%", "mqttSslPort": "%MQTT_SSL_PORT%", "mqttServerCA": "%MQTT_CA_CERT%", "mqttUserName": "%MQTT_USERNAME%", "mqttPassword": "%MQTT_PASSWORD%", "mqttClientId": "%MQTT_CLIENT_ID%", "mqttReqTopicName": "%MQTT_REQ_TOPIC%", "mqttRespTopicName": "%MQTT_RESP_TOPIC%", "mqttDataTopicName": "%MQTT_DATA_TOPIC%", "remoteNetwork": "%REMOTE_NETWORK%" } |
|
Over-The-Air device parameters |
{ "otaPrivateKey": "%OTA_PRIVATE_KEY%", "otaCert": "%OTA_CERT%", "otaCaCert": "%OTA_CA_CERT%", "otaDDIUrl": "%OTA_DDI_URL%" } |
|