From 800dcfef786731abe0c9e0c58c79c6b56f6ab229 Mon Sep 17 00:00:00 2001 From: Anton Roslund Date: Wed, 23 Jul 2025 08:04:04 +0200 Subject: [PATCH] Only change firmware version and ok_to_mqtt if bitfield is present. --- src/mqtt.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/mqtt.js b/src/mqtt.js index b4446fa..329ddde 100644 --- a/src/mqtt.js +++ b/src/mqtt.js @@ -944,8 +944,15 @@ client.on("message", async (topic, message) => { hardware_model: user.hwModel, is_licensed: user.isLicensed === true, role: user.role, - firmware_version: (bitfield != null) ? '2.5.0 or newer' : '2.4.3 or older', - ok_to_mqtt: isOkToMqtt, + // Since packages beeing forwarded by older firmwars dropps the bitfield + // We only want to set form nodes that have the bitfield set. + // That way we can get a more correct reading firmware status in the mesh. + // This works since we had the old code: + // firmware_version: (bitfield != null) ? '2.5.0 or newer' : '2.4.3 or older', + ...(bitfield != null && { + firmware_version: '2.5.0 or newer', + ok_to_mqtt: isOkToMqtt, + }), }, update: { long_name: user.longName, @@ -954,7 +961,10 @@ client.on("message", async (topic, message) => { is_licensed: user.isLicensed === true, role: user.role, firmware_version: (bitfield != null) ? '2.5.0 or newer' : '2.4.3 or older', - ok_to_mqtt: isOkToMqtt, + ...(bitfield != null && { + firmware_version: '2.5.0 or newer', + ok_to_mqtt: isOkToMqtt, + }), }, }); } catch (e) {