mqtt-devices-parser 1.0.13 → 1.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/Changelog.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.0.14
4
+ Fixes check FOTA mechanism and response
5
+
3
6
  ## 1.0.13
4
7
  adds 2 new tables to db:
5
8
  Adds 5 new columns to devices
package/Release.md CHANGED
@@ -8,4 +8,7 @@
8
8
 
9
9
  ## Releasing
10
10
 
11
+ launch release on git:
12
+ >> gh release create ${tag}
13
+
11
14
  npm publish
@@ -4,6 +4,9 @@ module.exports = (sequelize,DataTypes)=>{
4
4
  type: DataTypes.INTEGER,
5
5
  unique: true,
6
6
  },
7
+ model_id: {
8
+ type: DataTypes.INTEGER,
9
+ },
7
10
  target_version: {
8
11
  type: DataTypes.STRING,
9
12
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mqtt-devices-parser",
3
- "version": "1.0.13",
3
+ "version": "1.0.14",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/src/db/fota.js CHANGED
@@ -7,7 +7,7 @@ var self = module.exports = {
7
7
 
8
8
  return new Promise((resolve,reject) => {
9
9
 
10
- let query = `SELECT COUNT(*) FROM ?? where
10
+ let query = `SELECT * FROM ?? where
11
11
  device_id = ? and
12
12
  target_version = ? and
13
13
  target_app_version = ? and
@@ -91,13 +91,13 @@ var self = module.exports = {
91
91
  obj['createdAt'] = moment().utc().format('YYYY-MM-DD HH:mm:ss');
92
92
  obj['device_id'] = deviceId;
93
93
 
94
- $.db.insert("fota",obj)
95
- .then (rows => {
96
- return resolve(rows[0]);
97
- })
98
- .catch(error => {
99
- return reject(error);
100
- });
94
+ $.db.insert("fota",obj)
95
+ .then (rows => {
96
+ return resolve(rows[0]);
97
+ })
98
+ .catch(error => {
99
+ return reject(error);
100
+ });
101
101
 
102
102
  }else{
103
103
 
@@ -106,18 +106,18 @@ var self = module.exports = {
106
106
  };
107
107
 
108
108
  $.db.update("fota",obj,filter)
109
- .then (rows => {
110
- return resolve(rows[0]);
111
- })
112
- .catch(error => {
113
- return reject(error);
114
- });
109
+ .then (rows => {
110
+ return resolve(rows[0]);
111
+ })
112
+ .catch(error => {
113
+ return reject(error);
114
+ });
115
115
  }
116
116
 
117
117
  });
118
118
  },
119
119
 
120
- getDeviceLastLog : async(deviceId)=>{
120
+ getFotaLastLog : async(deviceId)=>{
121
121
 
122
122
  return new Promise((resolve,reject) => {
123
123
 
@@ -127,7 +127,7 @@ var self = module.exports = {
127
127
  LIMIT 1`;
128
128
 
129
129
  let table = [
130
- "fota",
130
+ "logs_fota",
131
131
  deviceId,
132
132
  ];
133
133
  query = mysql.format(query,table);
@@ -195,7 +195,7 @@ var self = module.exports = {
195
195
 
196
196
  return new Promise(async (resolve,reject) => {
197
197
 
198
- const log = await getDeviceLastLog(deviceId);
198
+ const log = await self.getFotaLastLog(deviceId);
199
199
 
200
200
  if(log?.createdAt != log?.updatedAt)
201
201
 
@@ -314,12 +314,15 @@ var self = module.exports = {
314
314
 
315
315
  for (const model of models) {
316
316
 
317
+ console.log("model:",model?.name);
317
318
  if(!model?.id)
318
319
  continue;
319
320
 
320
321
  try{
321
322
  const latestVersion = await $.db_firmware.getLatestVersion(model.id,release);
322
323
  const latestAppVersion = await $.db_firmware.getLatestAppVersion(model.id,release);
324
+ console.log("latestVersion:",latestVersion?.version);
325
+ console.log("latestAppVersion:",latestAppVersion?.app_version);
323
326
 
324
327
  const devices = await $.db_device.listByModel(model.id);
325
328
 
@@ -356,12 +359,21 @@ var self = module.exports = {
356
359
  };
357
360
  }
358
361
  if(obj != null){
359
- try{
360
- let res = await $.db_fota.getEntry(device.id,obj);
361
- if(res == null)
362
- $.db_fota.update(device.id,obj);
363
- }catch(error){
364
- console.error(error)
362
+ try {
363
+
364
+ let res = await $.db_fota.getEntry(device.id, obj);
365
+
366
+ if (res == null) {
367
+ try {
368
+ console.log("add fota entry for device:", device.uid);
369
+ await $.db_fota.update(device.id, obj);
370
+ } catch (err) {
371
+ console.error("Error updating FOTA entry:", err);
372
+ }
373
+ }
374
+
375
+ } catch (error) {
376
+ console.error("Error getting or processing FOTA entry:", error);
365
377
  }
366
378
  }
367
379
  }
@@ -409,7 +421,7 @@ var self = module.exports = {
409
421
  topic = mqtt_prefix+"/fw/fota/update/set";
410
422
  }
411
423
  let link = `${$.config.web.protocol}${$.config.web.domain}${$.config.web.fw_path}${firmware?.filename}/download?token=${firmware?.token}`;
412
- console.log(`Requesting firmware update of ${device.uid} to ${firmware?.filename}`);
424
+ console.log(`Requesting firmware update for ${device.uid} to ${firmware?.filename}`);
413
425
  $.mqtt_client.publish(topic,`{"url":"${link}"}`,{qos:1,retain:false});
414
426
 
415
427
  let obj = {
@@ -448,14 +460,14 @@ var self = module.exports = {
448
460
  object = {
449
461
  success : 1,
450
462
  }
451
- await $.db_fota.updateLog(deviceId,obj);
463
+ await $.db_fota.updateLog(deviceId,object);
452
464
  },
453
465
 
454
466
  handleFotaError : async (deviceId, error) => {
455
467
  let object = {
456
468
  error : error,
457
469
  }
458
- await $.db_fota.updateLog(deviceId,obj);
470
+ await $.db_fota.updateLog(deviceId,object);
459
471
  }
460
472
  }
461
473