collect ok-to-mqtt falg

This commit is contained in:
Anton Roslund 2025-04-15 17:27:15 +02:00
parent ff8bb07f7f
commit 342c8dc87a
3 changed files with 12 additions and 0 deletions

View file

@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE `nodes` ADD COLUMN `ok_to_mqtt` BOOLEAN NULL;

View file

@ -51,6 +51,8 @@ model Node {
// this column tracks when an mqtt gateway node uplinked a packet // this column tracks when an mqtt gateway node uplinked a packet
mqtt_connection_state_updated_at DateTime? mqtt_connection_state_updated_at DateTime?
ok_to_mqtt Boolean?
created_at DateTime @default(now()) created_at DateTime @default(now())
updated_at DateTime @default(now()) @updatedAt updated_at DateTime @default(now()) @updatedAt

View file

@ -914,6 +914,7 @@ client.on("message", async (topic, message) => {
else if(portnum === 4) { else if(portnum === 4) {
const user = User.decode(envelope.packet.decoded.payload); const user = User.decode(envelope.packet.decoded.payload);
let isOkToMqtt = null
if(logKnownPacketTypes) { if(logKnownPacketTypes) {
console.log("NODEINFO_APP", { console.log("NODEINFO_APP", {
@ -922,6 +923,11 @@ client.on("message", async (topic, message) => {
}); });
} }
// check if bitfield is available, then check if ok-to-mqtt
if(bitfield != null){
isOkToMqtt = Boolean(bitfield & BITFIELD_OK_TO_MQTT_MASK);
}
// create or update node in db // create or update node in db
try { try {
await prisma.node.upsert({ await prisma.node.upsert({
@ -936,6 +942,7 @@ client.on("message", async (topic, message) => {
is_licensed: user.isLicensed === true, is_licensed: user.isLicensed === true,
role: user.role, role: user.role,
firmware_version: bitfield ? '2.5.0 or newer' : '2.4.3 or older', firmware_version: bitfield ? '2.5.0 or newer' : '2.4.3 or older',
ok_to_mqtt: isOkToMqtt,
}, },
update: { update: {
long_name: user.longName, long_name: user.longName,
@ -944,6 +951,7 @@ client.on("message", async (topic, message) => {
is_licensed: user.isLicensed === true, is_licensed: user.isLicensed === true,
role: user.role, role: user.role,
firmware_version: bitfield ? '2.5.0 or newer' : '2.4.3 or older', firmware_version: bitfield ? '2.5.0 or newer' : '2.4.3 or older',
ok_to_mqtt: isOkToMqtt,
}, },
}); });
} catch (e) { } catch (e) {