diff --git a/packages/node_modules/@node-red/nodes/core/network/10-mqtt.html b/packages/node_modules/@node-red/nodes/core/network/10-mqtt.html index 747281ad0..ecef71366 100644 --- a/packages/node_modules/@node-red/nodes/core/network/10-mqtt.html +++ b/packages/node_modules/@node-red/nodes/core/network/10-mqtt.html @@ -480,6 +480,7 @@ willRetain: {value:false}, willPayload: {value:""}, willMsg: { value: {}}, + userProps: { value: ""}, sessionExpiry: {value:0} }, credentials: { @@ -609,6 +610,7 @@ default: !this.userProps ? 'none':'json', types: [typedInputNoneOpt, 'json'] }); + $("#node-config-input-userProps").typedInput('value',this.userProps); if (typeof this.keepalive === 'undefined') { this.keepalive = 15; $("#node-config-input-keepalive").val(this.keepalive); @@ -718,6 +720,14 @@ } if (v5) { + this.userProps = ""; + const userPropsType = $("#node-config-input-userProps").typedInput("type"); + if(userPropsType == "json") { + const userProps = $("#node-config-input-userProps").val(); + if (userProps && typeof userProps === "string") { + this.userProps = userProps.trim(); + } + } this.birthMsg = saveV5Message("birth"); this.closeMsg = saveV5Message("close"); this.willMsg = saveV5Message("will"); diff --git a/packages/node_modules/@node-red/nodes/core/network/10-mqtt.js b/packages/node_modules/@node-red/nodes/core/network/10-mqtt.js index a026fdc29..1e8f8ce9c 100644 --- a/packages/node_modules/@node-red/nodes/core/network/10-mqtt.js +++ b/packages/node_modules/@node-red/nodes/core/network/10-mqtt.js @@ -415,8 +415,12 @@ module.exports = function(RED) { setIfHasProperty(opts, node, "topicAliasMaximum", init); setIfHasProperty(opts, node, "maximumPacketSize", init); setIfHasProperty(opts, node, "receiveMaximum", init); - setIfHasProperty(opts, node, "userProperties", init);//https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901116 - setIfHasProperty(opts, node, "userPropertiesType", init); + //https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901116 + if (hasProperty(opts, "userProperties")) { + node.userProperties = opts.userProperties; + } else if (hasProperty(opts, "userProps")) { + node.userProperties = opts.userProps; + } function createLWT(topic, payload, qos, retain, v5opts, v5SubPropName) { let message = undefined;