From e3acc49d5e0aee41c8bab84f34c49b4cf149fef4 Mon Sep 17 00:00:00 2001 From: Ben Hardill Date: Tue, 1 Oct 2024 16:31:28 +0100 Subject: [PATCH 1/3] Allow msg.userProperties to have number values fixes #4899 --- .../node_modules/@node-red/nodes/core/network/10-mqtt.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 db6cfba73..bc6f9644d 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 @@ -158,9 +158,12 @@ module.exports = function(RED) { if(!keys || !keys.length) return null; keys.forEach(key => { let val = srcUserProperties[key]; - if(typeof val == "string") { + if(typeof val === "string") { count++; _clone[key] = val; + } else if (typeof val === "number") { + count++; + _clone[key] = val.toString(); } }); if(count) properties.userProperties = _clone; From a0b4fc83726e647cfc2a6f6db2a529675d10785b Mon Sep 17 00:00:00 2001 From: Ben Hardill Date: Tue, 8 Oct 2024 13:58:29 +0100 Subject: [PATCH 2/3] Convert to string --- .../node_modules/@node-red/nodes/core/network/10-mqtt.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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 bc6f9644d..2b4968483 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 @@ -161,9 +161,13 @@ module.exports = function(RED) { if(typeof val === "string") { count++; _clone[key] = val; - } else if (typeof val === "number") { + } else { count++; - _clone[key] = val.toString(); + try { + _clone[key] = JSON.stringify(val) + } catch (err) { + console.log('MQTT v5 Property value can not be converted to a String') + } } }); if(count) properties.userProperties = _clone; From d50ccea017e97552078a86324c76159957b66614 Mon Sep 17 00:00:00 2001 From: Ben Hardill Date: Tue, 8 Oct 2024 16:51:09 +0100 Subject: [PATCH 3/3] Update packages/node_modules/@node-red/nodes/core/network/10-mqtt.js Co-authored-by: Nick O'Leary --- .../node_modules/@node-red/nodes/core/network/10-mqtt.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 2b4968483..afa0066f4 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 @@ -161,12 +161,12 @@ module.exports = function(RED) { if(typeof val === "string") { count++; _clone[key] = val; - } else { - count++; + } else if (val !== undefined && val !== null) { try { _clone[key] = JSON.stringify(val) + count++; } catch (err) { - console.log('MQTT v5 Property value can not be converted to a String') + // Silently drop property } } });