@bottobot/td-mcp
Version:
TouchDesigner Documentation MCP Server v2.3 - Pure MCP server for VS Code/Codium with comprehensive operator documentation for 629 operators + 7 tutorials across all categories (TOP, CHOP, SOP, DAT, MAT, COMP, POP). Features experimental POP operators wit
1,415 lines • 57.6 kB
JSON
{
"id": "mqtt_client_dat",
"name": "MQTT Client DAT",
"displayName": "MQTT Client DAT",
"category": "DAT",
"subcategory": "Utilities",
"version": "",
"lastUpdated": "2025-08-07T07:50:04.463Z",
"sourceFile": "C:\\Program Files\\Derivative\\TouchDesigner\\Samples\\Learn\\OfflineHelp\\https.docs.derivative.ca\\MQTT_Client_DAT.htm",
"url": "",
"description": "The MQTT Client DAT receives and sends data from/to MQTT devices via MQTT servers (broker). TouchDesigner can act as a client and another computer needs to act as a MQTT Server. Once a client establishes a connection with a server, it can do two things:",
"summary": "The MQTT Client DAT receives and sends data from/to MQTT devices via MQTT servers (broker). TouchDesigner can act as a client and another computer needs to act as a MQTT Server. Once a client establi",
"details": "",
"usage": "",
"tips": [],
"warnings": [],
"parameters": [
{
"id": null,
"name": "Active",
"label": "Active",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "From Derivative\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tJump to navigation\n\t\tJump to search\n\t\t\nThe MQTT Client receives and sends data from/to MQTT devices via MQTT servers (broker). TouchDesigner can act as a client and another computer needs to act as a MQTT Server. Once a client establishes a connection with a server, it can do two things: \t\t\n\nSend a message to the server to express interest in any data that has a specific \"topic\" string. This is called \"subscribing\". Then the MQTT Client will receive all messages that the server gets with that topic.\nInform the server that it will send messages to the server with a certain topic string, and then send messages with that topic. The messages then get forward to any client that has expressed interest in that topic.See also MQTT, TCP/IP DAT.\nmqttclientDAT_Class\n\nContents\n \n \n \n \n \n \n \n \n\n\n\n\n\n active - Enable the connection.\n\n\n\t\t\n netaddress - The address of the broker to connect to. The address should take the form <protocol>://<host>:<port>. Accepted protocol URIs can include tcp, ssl, ws, and wss.\n\n\n\t\t\n specifyid - Allows naming the client with parameter User Client ID, otherwise automatically and uniquely generated for each connection.\n\n\n\t\t\n usercid - Client name when Specify ID enabled.\n\n\n\t\t\n keepalive - Specifies in seconds, the maximum time to expect without communication. If no data is sent during this time, a lightweight ping message is sent to the server instead. Can be set to 0 to avoid pings.\n\n\n\t\t\n maxinflight - Controls how many messages can be in-flight simultaneously.\n\n\n\t\t\n cleansession - If Specify ID is selected, the server will preserve any state information associated with the connection of that ID, such as subscriptions, delivery attempts, etc.\n\n\n\n verifycert - Enables TLS (transport layer security) certificate verification against the server (ie. broker).\n\n\n\n username - Specify the username for authentication if the server requires it. MQTT servers that support the MQTT v3.1 protocol provide authentication and authorization via username and password.\n\n\n\n password - Specify the password for authentication if the server requires it. MQTT servers that support the MQTT v3.1 protocol provide authentication and authorization via username and password.\n\n\n\n reconnect - Will attempt to reconnect to the MQTT broker.\n\n\n\n\n\n callbacks - The Callbacks contains functions that are called when connections are made, lost or published data arrives. See mqttclientDAT_Class for usage.\n\n\n\t\t\n executeloc - - Determines the location the script is run from.\n\n current - The script is executed from the current node location (for example, where 'cc' points to). callbacks - The script is executed from the location of the specified in the parameter. op - The script is executed from the operator specified in the parameter below.\n\t\t\n fromop - The operator whose state change will trigger the to execute its script when is set to . This operator is also the path that the script will be executed from if the parameter is set to .\n\n\n\t\t\n clamp - The is limited to 100 messages by default but with Clamp Output, this can be set to anything including unlimited.\n\n\n\t\t\n maxlines - Limits the number of messages, older messages are removed from the list first.\n\n\n\t\t\n clear - Deletes all lines except the heading. To clear with a python script op(\"opname\").par.clear.pulse()\n\n\n\t\t\n bytes - Outputs the raw bytes of the message in a separate column.\n\n\n\n\n\n language - - Select how the decides which script language to operate on.\n\n input - The uses the inputs script language. node - The uses it's own script language.\n\n extension - - Select the file extension this should expose to external editors.\n\n dat - various common file extensions. language - pick extension from DATs script language. custom - Specify a custom extension.\n\n customext - Specifiy the custom extension.\n\n\n\n wordwrap - - Enable Word Wrap for Node Display.\n\n input - The uses the inputs setting. on - Turn on Word Wrap. off - Turn off Word Wrap.\n\n\n\nExtra Information for the MQTT Client can be accessed via an Info CHOP.\n\n\n - -\n - Number of rows in this . - Number of columns in this .\n - Number of times the operator has cooked since the process started. - Duration of the last cook in milliseconds. - Frame number when this operator was last cooked relative to the component timeline. - Frame number when this operator was last cooked relative to the absolute time. - Time in milliseconds at which the operator started cooking in the frame it was cooked. - Time in milliseconds at which the operator finished cooking in the frame it was cooked. - 1 if operator was cooked this frame. - Number of warnings in this operator if any. - Number of errors in this operator if any.\nTouchDesigner Build: Latest\\nwikieditor2021.100002018.28070before 2018.28070\nDATs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nAn Operator Family that manipulates text strings: multi-line text or tables. Multi-line text is often a python Script or GLSL Shader, but can be any multi-line text. Tables are rows and columns of cells, each containing a text string.\n\n\n\nThe generic thing that holds an Operator, and includes Flags (display, bypass, lock, render, immune) and its position/size in the network. Whether you \"lay down an Operator\" or \"lay down an Node\", you're doing the same thing.\n\n\n\nAny of the procedural data operators. OPs do all the work in TouchDesigner. They \"cook\" and output data to other OPs, which ultimately result in new images, data and audio being generated. See Node.\n\n\n\nAn Operator Family which operate on Channels (a sequence of numbers (Samples)) which are used for animation, audio, mathematics, simulation, logic, UI construction, and data streamed from/to devices and protocols.\n\n\n\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=MQTT_Client_DAT&oldid=29769\"\n\t\tCategory: DATs",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.457Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Active",
"label": "Active",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "From Derivative\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tJump to navigation\n\t\tJump to search\n\t\t\nThe MQTT Client receives and sends data from/to MQTT devices via MQTT servers (broker). TouchDesigner can act as a client and another computer needs to act as a MQTT Server. Once a client establishes a connection with a server, it can do two things: \t\t\n\nSend a message to the server to express interest in any data that has a specific \"topic\" string. This is called \"subscribing\". Then the MQTT Client will receive all messages that the server gets with that topic.\nInform the server that it will send messages to the server with a certain topic string, and then send messages with that topic. The messages then get forward to any client that has expressed interest in that topic.See also MQTT, TCP/IP DAT.\nmqttclientDAT_Class\n\nContents\n \n \n \n \n \n \n \n \n\n\n\n\n\n active - Enable the connection.\n\n\n\t\t\n netaddress - The address of the broker to connect to. The address should take the form <protocol>://<host>:<port>. Accepted protocol URIs can include tcp, ssl, ws, and wss.\n\n\n\t\t\n specifyid - Allows naming the client with parameter User Client ID, otherwise automatically and uniquely generated for each connection.\n\n\n\t\t\n usercid - Client name when Specify ID enabled.\n\n\n\t\t\n keepalive - Specifies in seconds, the maximum time to expect without communication. If no data is sent during this time, a lightweight ping message is sent to the server instead. Can be set to 0 to avoid pings.\n\n\n\t\t\n maxinflight - Controls how many messages can be in-flight simultaneously.\n\n\n\t\t\n cleansession - If Specify ID is selected, the server will preserve any state information associated with the connection of that ID, such as subscriptions, delivery attempts, etc.\n\n\n\n verifycert - Enables TLS (transport layer security) certificate verification against the server (ie. broker).\n\n\n\n username - Specify the username for authentication if the server requires it. MQTT servers that support the MQTT v3.1 protocol provide authentication and authorization via username and password.\n\n\n\n password - Specify the password for authentication if the server requires it. MQTT servers that support the MQTT v3.1 protocol provide authentication and authorization via username and password.\n\n\n\n reconnect - Will attempt to reconnect to the MQTT broker.\n\n\n\n\n\n callbacks - The Callbacks contains functions that are called when connections are made, lost or published data arrives. See mqttclientDAT_Class for usage.\n\n\n\t\t\n executeloc - - Determines the location the script is run from.\n\n current - The script is executed from the current node location (for example, where 'cc' points to). callbacks - The script is executed from the location of the specified in the parameter. op - The script is executed from the operator specified in the parameter below.\n\t\t\n fromop - The operator whose state change will trigger the to execute its script when is set to . This operator is also the path that the script will be executed from if the parameter is set to .\n\n\n\t\t\n clamp - The is limited to 100 messages by default but with Clamp Output, this can be set to anything including unlimited.\n\n\n\t\t\n maxlines - Limits the number of messages, older messages are removed from the list first.\n\n\n\t\t\n clear - Deletes all lines except the heading. To clear with a python script op(\"opname\").par.clear.pulse()\n\n\n\t\t\n bytes - Outputs the raw bytes of the message in a separate column.\n\n\n\n\n\n language - - Select how the decides which script language to operate on.\n\n input - The uses the inputs script language. node - The uses it's own script language.\n\n extension - - Select the file extension this should expose to external editors.\n\n dat - various common file extensions. language - pick extension from DATs script language. custom - Specify a custom extension.\n\n customext - Specifiy the custom extension.\n\n\n\n wordwrap - - Enable Word Wrap for Node Display.\n\n input - The uses the inputs setting. on - Turn on Word Wrap. off - Turn off Word Wrap.\n\n\n\nExtra Information for the MQTT Client can be accessed via an Info CHOP.\n\n\n - -\n - Number of rows in this . - Number of columns in this .\n - Number of times the operator has cooked since the process started. - Duration of the last cook in milliseconds. - Frame number when this operator was last cooked relative to the component timeline. - Frame number when this operator was last cooked relative to the absolute time. - Time in milliseconds at which the operator started cooking in the frame it was cooked. - Time in milliseconds at which the operator finished cooking in the frame it was cooked. - 1 if operator was cooked this frame. - Number of warnings in this operator if any. - Number of errors in this operator if any.\nTouchDesigner Build: Latest\\nwikieditor2021.100002018.28070before 2018.28070\nDATs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nAn Operator Family that manipulates text strings: multi-line text or tables. Multi-line text is often a python Script or GLSL Shader, but can be any multi-line text. Tables are rows and columns of cells, each containing a text string.\n\n\n\nThe generic thing that holds an Operator, and includes Flags (display, bypass, lock, render, immune) and its position/size in the network. Whether you \"lay down an Operator\" or \"lay down an Node\", you're doing the same thing.\n\n\n\nAny of the procedural data operators. OPs do all the work in TouchDesigner. They \"cook\" and output data to other OPs, which ultimately result in new images, data and audio being generated. See Node.\n\n\n\nAn Operator Family which operate on Channels (a sequence of numbers (Samples)) which are used for animation, audio, mathematics, simulation, logic, UI construction, and data streamed from/to devices and protocols.\n\n\n\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=MQTT_Client_DAT&oldid=29769\"\n\t\tCategory: DATs",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.459Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Active",
"label": "Active",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "The MQTT Client receives and sends data from/to MQTT devices via MQTT servers (broker). TouchDesigner can act as a client and another computer needs to act as a MQTT Server. Once a client establishes a connection with a server, it can do two things: \t\t\n\nSend a message to the server to express interest in any data that has a specific \"topic\" string. This is called \"subscribing\". Then the MQTT Client will receive all messages that the server gets with that topic.\nInform the server that it will send messages to the server with a certain topic string, and then send messages with that topic. The messages then get forward to any client that has expressed interest in that topic.See also MQTT, TCP/IP DAT.\nmqttclientDAT_Class\n\nContents\n \n \n \n \n \n \n \n \n\n\n\n\n\n active - Enable the connection.\n\n\n\t\t\n netaddress - The address of the broker to connect to. The address should take the form <protocol>://<host>:<port>. Accepted protocol URIs can include tcp, ssl, ws, and wss.\n\n\n\t\t\n specifyid - Allows naming the client with parameter User Client ID, otherwise automatically and uniquely generated for each connection.\n\n\n\t\t\n usercid - Client name when Specify ID enabled.\n\n\n\t\t\n keepalive - Specifies in seconds, the maximum time to expect without communication. If no data is sent during this time, a lightweight ping message is sent to the server instead. Can be set to 0 to avoid pings.\n\n\n\t\t\n maxinflight - Controls how many messages can be in-flight simultaneously.\n\n\n\t\t\n cleansession - If Specify ID is selected, the server will preserve any state information associated with the connection of that ID, such as subscriptions, delivery attempts, etc.\n\n\n\n verifycert - Enables TLS (transport layer security) certificate verification against the server (ie. broker).\n\n\n\n username - Specify the username for authentication if the server requires it. MQTT servers that support the MQTT v3.1 protocol provide authentication and authorization via username and password.\n\n\n\n password - Specify the password for authentication if the server requires it. MQTT servers that support the MQTT v3.1 protocol provide authentication and authorization via username and password.\n\n\n\n reconnect - Will attempt to reconnect to the MQTT broker.\n\n\n\n\n\n callbacks - The Callbacks contains functions that are called when connections are made, lost or published data arrives. See mqttclientDAT_Class for usage.\n\n\n\t\t\n executeloc - - Determines the location the script is run from.\n\n current - The script is executed from the current node location (for example, where 'cc' points to). callbacks - The script is executed from the location of the specified in the parameter. op - The script is executed from the operator specified in the parameter below.\n\t\t\n fromop - The operator whose state change will trigger the to execute its script when is set to . This operator is also the path that the script will be executed from if the parameter is set to .\n\n\n\t\t\n clamp - The is limited to 100 messages by default but with Clamp Output, this can be set to anything including unlimited.\n\n\n\t\t\n maxlines - Limits the number of messages, older messages are removed from the list first.\n\n\n\t\t\n clear - Deletes all lines except the heading. To clear with a python script op(\"opname\").par.clear.pulse()\n\n\n\t\t\n bytes - Outputs the raw bytes of the message in a separate column.\n\n\n\n\n\n language - - Select how the decides which script language to operate on.\n\n input - The uses the inputs script language. node - The uses it's own script language.\n\n extension - - Select the file extension this should expose to external editors.\n\n dat - various common file extensions. language - pick extension from DATs script language. custom - Specify a custom extension.\n\n customext - Specifiy the custom extension.\n\n\n\n wordwrap - - Enable Word Wrap for Node Display.\n\n input - The uses the inputs setting. on - Turn on Word Wrap. off - Turn off Word Wrap.\n\n\n\nExtra Information for the MQTT Client can be accessed via an Info CHOP.\n\n\n - -\n - Number of rows in this . - Number of columns in this .\n - Number of times the operator has cooked since the process started. - Duration of the last cook in milliseconds. - Frame number when this operator was last cooked relative to the component timeline. - Frame number when this operator was last cooked relative to the absolute time. - Time in milliseconds at which the operator started cooking in the frame it was cooked. - Time in milliseconds at which the operator finished cooking in the frame it was cooked. - 1 if operator was cooked this frame. - Number of warnings in this operator if any. - Number of errors in this operator if any.\nTouchDesigner Build: Latest\\nwikieditor2021.100002018.28070before 2018.28070\nDATs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nAn Operator Family that manipulates text strings: multi-line text or tables. Multi-line text is often a python Script or GLSL Shader, but can be any multi-line text. Tables are rows and columns of cells, each containing a text string.\n\n\n\nThe generic thing that holds an Operator, and includes Flags (display, bypass, lock, render, immune) and its position/size in the network. Whether you \"lay down an Operator\" or \"lay down an Node\", you're doing the same thing.\n\n\n\nAny of the procedural data operators. OPs do all the work in TouchDesigner. They \"cook\" and output data to other OPs, which ultimately result in new images, data and audio being generated. See Node.\n\n\n\nAn Operator Family which operate on Channels (a sequence of numbers (Samples)) which are used for animation, audio, mathematics, simulation, logic, UI construction, and data streamed from/to devices and protocols.\n\n\n\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=MQTT_Client_DAT&oldid=29769\"",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.461Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Active",
"label": "Active",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "active - Enable the connection.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.461Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Network Address",
"label": "Network Address",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "netaddress - The address of the broker to connect to. The address should take the form <protocol>://<host>:<port>. Accepted protocol URIs can include tcp, ssl, ws, and wss.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.461Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Specify ID",
"label": "Specify ID",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "specifyid - Allows naming the client with parameter User Client ID, otherwise automatically and uniquely generated for each connection.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.461Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "User Client ID",
"label": "User Client ID",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "usercid - Client name when Specify ID enabled.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.461Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Keep Alive Interval",
"label": "Keep Alive Interval",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "keepalive - Specifies in seconds, the maximum time to expect without communication. If no data is sent during this time, a lightweight ping message is sent to the server instead. Can be set to 0 to avoid pings.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.462Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Max in Flight",
"label": "Max in Flight",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "maxinflight - Controls how many messages can be in-flight simultaneously.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.462Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Clean Session",
"label": "Clean Session",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "cleansession - If Specify ID is selected, the server will preserve any state information associated with the connection of that ID, such as subscriptions, delivery attempts, etc.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.462Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Verify Certificate",
"label": "Verify Certificate",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "verifycert - Enables TLS (transport layer security) certificate verification against the server (ie. broker).",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.462Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Username",
"label": "Username",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "username - Specify the username for authentication if the server requires it. MQTT servers that support the MQTT v3.1 protocol provide authentication and authorization via username and password.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.462Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Password",
"label": "Password",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "password - Specify the password for authentication if the server requires it. MQTT servers that support the MQTT v3.1 protocol provide authentication and authorization via username and password.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.462Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Reconnect",
"label": "Reconnect",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "reconnect - Will attempt to reconnect to the MQTT broker.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.462Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Callbacks DAT",
"label": "Callbacks DAT",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "callbacks - The Callbacks contains functions that are called when connections are made, lost or published data arrives. See mqttclientDAT_Class for usage.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.462Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Execute from",
"label": "Execute from",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "executeloc - - Determines the location the script is run from.\n\n current - The script is executed from the current node location (for example, where 'cc' points to). callbacks - The script is executed from the location of the specified in the parameter. op - The script is executed from the operator specified in the parameter below.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.462Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Current Node",
"label": "Current Node",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "current - The script is executed from the current node location (for example, where 'cc' points to). callbacks - The script is executed from the location of the specified in the parameter. op - The script is executed from the operator specified in the parameter below.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.462Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "From Operator",
"label": "From Operator",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "fromop - The operator whose state change will trigger the to execute its script when is set to . This operator is also the path that the script will be executed from if the parameter is set to .",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.462Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Clamp Output",
"label": "Clamp Output",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "clamp - The is limited to 100 messages by default but with Clamp Output, this can be set to anything including unlimited.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.462Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Maximum Lines",
"label": "Maximum Lines",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "maxlines - Limits the number of messages, older messages are removed from the list first.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.462Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Clear Output",
"label": "Clear Output",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "clear - Deletes all lines except the heading. To clear with a python script op(\"opname\").par.clear.pulse()",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.462Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Bytes Column",
"label": "Bytes Column",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "bytes - Outputs the raw bytes of the message in a separate column.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.462Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Language",
"label": "Language",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "language - - Select how the decides which script language to operate on.\n\n input - The uses the inputs script language. node - The uses it's own script language.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.462Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Input",
"label": "Input",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "input - The uses the inputs script language. node - The uses it's own script language.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.462Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Edit/View Extension",
"label": "Edit/View Extension",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "extension - - Select the file extension this should expose to external editors.\n\n dat - various common file extensions. language - pick extension from DATs script language. custom - Specify a custom extension.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.462Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "dat",
"label": "dat",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "dat - various common file extensions. language - pick extension from DATs script language. custom - Specify a custom extension.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.462Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Custom Extension",
"label": "Custom Extension",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "customext - Specifiy the custom extension.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.462Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Word Wrap",
"label": "Word Wrap",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "wordwrap - - Enable Word Wrap for Node Display.\n\n input - The uses the inputs setting. on - Turn on Word Wrap. off - Turn off Word Wrap.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.463Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Input",
"label": "Input",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "input - The uses the inputs setting. on - Turn on Word Wrap. off - Turn off Word Wrap.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.463Z",
"rawData": {},
"sourceElement": null
}
],
"parameterGroups": {},
"codeExamples": [],
"pythonExamples": [],
"expressions": [],
"commonInputs": [],
"commonOutputs": [],
"relatedOperators": [],
"workflowPatterns": [],
"images": [],
"videos": [],
"assets": [],
"keywords": [
"mqtt",
"client",
"dat",
"receives",
"sends",
"data",
"from/to",
"devices",
"servers"
],
"tags": [
"DAT",
"TouchDesigner",
"MQTT Client DAT"
],
"searchWeight": 1,
"contentHash": "",
"processingDate": "2025-08-07T07:50:04.463Z",
"processingVersion": "1.0.0",
"isValid": true,
"validationErrors": []
}