queclink-parser 1.9.18 → 1.9.22

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/src/gv800w.js CHANGED
@@ -125,8 +125,14 @@ const parse = raw => {
125
125
  adc: parsedData[23] !== '' ? parseFloat(parsedData[23]) / 1000 : null,
126
126
  add: parsedData[24] !== '' ? parseFloat(parsedData[24]) / 1000 : null
127
127
  },
128
- mcc: parsedData[14] !== '' ? utils.latamMcc[parseInt(parsedData[14], 10)] : null,
129
- mnc: parsedData[15] !== '' ? utils.getMNC(parsedData[14], parsedData[15]) : null,
128
+ mcc:
129
+ parsedData[14] !== ''
130
+ ? utils.latamMcc[parseInt(parsedData[14], 10)]
131
+ : null,
132
+ mnc:
133
+ parsedData[15] !== ''
134
+ ? utils.getMNC(parsedData[14], parsedData[15])
135
+ : null,
130
136
  lac: parsedData[16] !== '' ? parseInt(parsedData[16], 16) : null,
131
137
  cid: parsedData[17] !== '' ? parseInt(parsedData[17], 16) : null,
132
138
  odometer: parsedData[19] !== '' ? parseFloat(parsedData[19]) : null,
@@ -233,8 +239,14 @@ const parse = raw => {
233
239
  adc: parsedData[24] !== '' ? parseFloat(parsedData[24]) / 1000 : null,
234
240
  add: parsedData[25] !== '' ? parseFloat(parsedData[25]) / 1000 : null
235
241
  },
236
- mcc: parsedData[15] !== '' ? utils.latamMcc[parseInt(parsedData[15], 10)] : null,
237
- mnc: parsedData[16] !== '' ? utils.getMNC(parsedData[15], parsedData[16]) : null,
242
+ mcc:
243
+ parsedData[15] !== ''
244
+ ? utils.latamMcc[parseInt(parsedData[15], 10)]
245
+ : null,
246
+ mnc:
247
+ parsedData[16] !== ''
248
+ ? utils.getMNC(parsedData[15], parsedData[16])
249
+ : null,
238
250
  lac: parsedData[17] !== '' ? parseInt(parsedData[17], 16) : null,
239
251
  cid: parsedData[18] !== '' ? parseInt(parsedData[18], 16) : null,
240
252
  odometer: parsedData[20] !== '' ? parseFloat(parsedData[20]) : null,
@@ -319,8 +331,14 @@ const parse = raw => {
319
331
  ada: null,
320
332
  adb: null
321
333
  },
322
- mcc: parsedData[14] !== '' ? utils.latamMcc[parseInt(parsedData[14], 10)] : null,
323
- mnc: parsedData[15] !== '' ? utils.getMNC(parsedData[14], parsedData[15]) : null,
334
+ mcc:
335
+ parsedData[14] !== ''
336
+ ? utils.latamMcc[parseInt(parsedData[14], 10)]
337
+ : null,
338
+ mnc:
339
+ parsedData[15] !== ''
340
+ ? utils.getMNC(parsedData[14], parsedData[15])
341
+ : null,
324
342
  lac: parsedData[16] !== '' ? parseInt(parsedData[16], 16) : null,
325
343
  cid: parsedData[17] !== '' ? parseInt(parsedData[17], 16) : null,
326
344
  odometer: parsedData[19] !== '' ? parseFloat(parsedData[19]) : null,
@@ -353,8 +371,14 @@ const parse = raw => {
353
371
  adc: null,
354
372
  add: null
355
373
  },
356
- mcc: parsedData[14] !== '' ? utils.latamMcc[parseInt(parsedData[14], 10)] : null,
357
- mnc: parsedData[15] !== '' ? utils.getMNC(parsedData[14], parsedData[15]) : null,
374
+ mcc:
375
+ parsedData[14] !== ''
376
+ ? utils.latamMcc[parseInt(parsedData[14], 10)]
377
+ : null,
378
+ mnc:
379
+ parsedData[15] !== ''
380
+ ? utils.getMNC(parsedData[14], parsedData[15])
381
+ : null,
358
382
  lac: parsedData[16] !== '' ? parseInt(parsedData[16], 16) : null,
359
383
  cid: parsedData[17] !== '' ? parseInt(parsedData[17], 16) : null,
360
384
  odometer: parsedData[19] !== '' ? parseFloat(parsedData[19]) : null,
@@ -420,8 +444,14 @@ const parse = raw => {
420
444
  adc: null,
421
445
  add: null
422
446
  },
423
- mcc: parsedData[11] !== '' ? utils.latamMcc[parseInt(parsedData[11], 10)] : null,
424
- mnc: parsedData[12] !== '' ? utils.getMNC(parsedData[11], parsedData[12]) : null,
447
+ mcc:
448
+ parsedData[11] !== ''
449
+ ? utils.latamMcc[parseInt(parsedData[11], 10)]
450
+ : null,
451
+ mnc:
452
+ parsedData[12] !== ''
453
+ ? utils.getMNC(parsedData[11], parsedData[12])
454
+ : null,
425
455
  lac: parsedData[13] !== '' ? parseInt(parsedData[13], 16) : null,
426
456
  cid: parsedData[14] !== '' ? parseInt(parsedData[14], 16) : null,
427
457
  odometer: null,
@@ -456,8 +486,14 @@ const parse = raw => {
456
486
  adc: null,
457
487
  add: null
458
488
  },
459
- mcc: parsedData[12] !== '' ? utils.latamMcc[parseInt(parsedData[12], 10)] : null,
460
- mnc: parsedData[13] !== '' ? utils.getMNC(parsedData[12], parsedData[13]) : null,
489
+ mcc:
490
+ parsedData[12] !== ''
491
+ ? utils.latamMcc[parseInt(parsedData[12], 10)]
492
+ : null,
493
+ mnc:
494
+ parsedData[13] !== ''
495
+ ? utils.getMNC(parsedData[12], parsedData[13])
496
+ : null,
461
497
  lac: parsedData[14] !== '' ? parseInt(parsedData[14], 16) : null,
462
498
  cid: parsedData[15] !== '' ? parseInt(parsedData[15], 16) : null,
463
499
  odometer: null,
@@ -488,8 +524,14 @@ const parse = raw => {
488
524
  adc: null,
489
525
  add: null
490
526
  },
491
- mcc: parsedData[12] !== '' ? utils.latamMcc[parseInt(parsedData[12], 10)] : null,
492
- mnc: parsedData[13] !== '' ? utils.getMNC(parsedData[12], parsedData[13]) : null,
527
+ mcc:
528
+ parsedData[12] !== ''
529
+ ? utils.latamMcc[parseInt(parsedData[12], 10)]
530
+ : null,
531
+ mnc:
532
+ parsedData[13] !== ''
533
+ ? utils.getMNC(parsedData[12], parsedData[13])
534
+ : null,
493
535
  lac: parsedData[14] !== '' ? parseInt(parsedData[14], 16) : null,
494
536
  cid: parsedData[15] !== '' ? parseInt(parsedData[15], 16) : null,
495
537
  odometer: null,
@@ -520,8 +562,14 @@ const parse = raw => {
520
562
  adc: null,
521
563
  add: null
522
564
  },
523
- mcc: parsedData[12] !== '' ? utils.latamMcc[parseInt(parsedData[12], 10)] : null,
524
- mnc: parsedData[13] !== '' ? utils.getMNC(parsedData[12], parsedData[13]) : null,
565
+ mcc:
566
+ parsedData[12] !== ''
567
+ ? utils.latamMcc[parseInt(parsedData[12], 10)]
568
+ : null,
569
+ mnc:
570
+ parsedData[13] !== ''
571
+ ? utils.getMNC(parsedData[12], parsedData[13])
572
+ : null,
525
573
  lac: parsedData[14] !== '' ? parseInt(parsedData[14], 16) : null,
526
574
  cid: parsedData[15] !== '' ? parseInt(parsedData[15], 16) : null,
527
575
  odometer: parsedData[18] !== '' ? parseFloat(parsedData[18]) : null,
@@ -555,8 +603,14 @@ const parse = raw => {
555
603
  adc: null,
556
604
  add: null
557
605
  },
558
- mcc: parsedData[13] !== '' ? utils.latamMcc[parseInt(parsedData[13], 10)] : null,
559
- mnc: parsedData[14] !== '' ? utils.getMNC(parsedData[13], parsedData[14]) : null,
606
+ mcc:
607
+ parsedData[13] !== ''
608
+ ? utils.latamMcc[parseInt(parsedData[13], 10)]
609
+ : null,
610
+ mnc:
611
+ parsedData[14] !== ''
612
+ ? utils.getMNC(parsedData[13], parsedData[14])
613
+ : null,
560
614
  lac: parsedData[15] !== '' ? parseInt(parsedData[15], 16) : null,
561
615
  cid: parsedData[16] !== '' ? parseInt(parsedData[16], 16) : null,
562
616
  odometer: parsedData[18] !== '' ? parseFloat(parsedData[18]) : null,
@@ -591,8 +645,14 @@ const parse = raw => {
591
645
  adc: null,
592
646
  add: null
593
647
  },
594
- mcc: parsedData[13] !== '' ? utils.latamMcc[parseInt(parsedData[13], 10)] : null,
595
- mnc: parsedData[14] !== '' ? utils.getMNC(parsedData[13], parsedData[14]) : null,
648
+ mcc:
649
+ parsedData[13] !== ''
650
+ ? utils.latamMcc[parseInt(parsedData[13], 10)]
651
+ : null,
652
+ mnc:
653
+ parsedData[14] !== ''
654
+ ? utils.getMNC(parsedData[13], parsedData[14])
655
+ : null,
596
656
  lac: parsedData[15] !== '' ? parseInt(parsedData[15], 16) : null,
597
657
  cid: parsedData[16] !== '' ? parseInt(parsedData[16], 16) : null,
598
658
  odometer: parsedData[18] !== '' ? parseFloat(parsedData[18]) : null,
@@ -624,8 +684,14 @@ const parse = raw => {
624
684
  adc: null,
625
685
  add: null
626
686
  },
627
- mcc: parsedData[12] !== '' ? utils.latamMcc[parseInt(parsedData[12], 10)] : null,
628
- mnc: parsedData[13] !== '' ? utils.getMNC(parsedData[12], parsedData[13]) : null,
687
+ mcc:
688
+ parsedData[12] !== ''
689
+ ? utils.latamMcc[parseInt(parsedData[12], 10)]
690
+ : null,
691
+ mnc:
692
+ parsedData[13] !== ''
693
+ ? utils.getMNC(parsedData[12], parsedData[13])
694
+ : null,
629
695
  lac: parsedData[14] !== '' ? parseInt(parsedData[14], 16) : null,
630
696
  cid: parsedData[15] !== '' ? parseInt(parsedData[15], 16) : null,
631
697
  odometer: null,
@@ -654,8 +720,14 @@ const parse = raw => {
654
720
  ada: null,
655
721
  adb: null
656
722
  },
657
- mcc: parsedData[13] !== '' ? utils.latamMcc[parseInt(parsedData[13], 10)] : null,
658
- mnc: parsedData[14] !== '' ? utils.getMNC(parsedData[13], parsedData[14]) : null,
723
+ mcc:
724
+ parsedData[13] !== ''
725
+ ? utils.latamMcc[parseInt(parsedData[13], 10)]
726
+ : null,
727
+ mnc:
728
+ parsedData[14] !== ''
729
+ ? utils.getMNC(parsedData[13], parsedData[14])
730
+ : null,
659
731
  lac: parsedData[15] !== '' ? parseInt(parsedData[15], 16) : null,
660
732
  cid: parsedData[16] !== '' ? parseInt(parsedData[16], 16) : null,
661
733
  odometer: null,
@@ -687,8 +759,14 @@ const parse = raw => {
687
759
  adc: null,
688
760
  add: null
689
761
  },
690
- mcc: parsedData[15] !== '' ? utils.latamMcc[parseInt(parsedData[15], 10)] : null,
691
- mnc: parsedData[16] !== '' ? utils.getMNC(parsedData[15], parsedData[16]) : null,
762
+ mcc:
763
+ parsedData[15] !== ''
764
+ ? utils.latamMcc[parseInt(parsedData[15], 10)]
765
+ : null,
766
+ mnc:
767
+ parsedData[16] !== ''
768
+ ? utils.getMNC(parsedData[15], parsedData[16])
769
+ : null,
692
770
  lac: parsedData[17] !== '' ? parseInt(parsedData[17], 16) : null,
693
771
  cid: parsedData[18] !== '' ? parseInt(parsedData[18], 16) : null,
694
772
  odometer: null,
@@ -720,8 +798,14 @@ const parse = raw => {
720
798
  adc: null,
721
799
  add: null
722
800
  },
723
- mcc: parsedData[15] !== '' ? utils.latamMcc[parseInt(parsedData[15], 10)] : null,
724
- mnc: parsedData[16] !== '' ? utils.getMNC(parsedData[15], parsedData[16]) : null,
801
+ mcc:
802
+ parsedData[15] !== ''
803
+ ? utils.latamMcc[parseInt(parsedData[15], 10)]
804
+ : null,
805
+ mnc:
806
+ parsedData[16] !== ''
807
+ ? utils.getMNC(parsedData[15], parsedData[16])
808
+ : null,
725
809
  lac: parsedData[17] !== '' ? parseInt(parsedData[17], 16) : null,
726
810
  cid: parsedData[18] !== '' ? parseInt(parsedData[18], 16) : null,
727
811
  odometer: parsedData[20] !== '' ? parseFloat(parsedData[20]) : null,
@@ -777,8 +861,14 @@ const parse = raw => {
777
861
  adc: parsedData[23] !== '' ? parseFloat(parsedData[23]) / 1000 : null,
778
862
  add: parsedData[24] !== '' ? parseFloat(parsedData[24]) / 1000 : null
779
863
  },
780
- mcc: parsedData[14] !== '' ? utils.latamMcc[parseInt(parsedData[14], 10)] : null,
781
- mnc: parsedData[15] !== '' ? utils.getMNC(parsedData[14], parsedData[15]) : null,
864
+ mcc:
865
+ parsedData[14] !== ''
866
+ ? utils.latamMcc[parseInt(parsedData[14], 10)]
867
+ : null,
868
+ mnc:
869
+ parsedData[15] !== ''
870
+ ? utils.getMNC(parsedData[14], parsedData[15])
871
+ : null,
782
872
  lac: parsedData[16] !== '' ? parseInt(parsedData[16], 16) : null,
783
873
  cid: parsedData[17] !== '' ? parseInt(parsedData[17], 16) : null,
784
874
  odometer: parsedData[19] !== '' ? parseFloat(parsedData[19]) : null,
@@ -812,8 +902,14 @@ const parse = raw => {
812
902
  adc: null,
813
903
  add: null
814
904
  },
815
- mcc: parsedData[62] !== '' ? utils.latamMcc[parseInt(parsedData[62], 10)] : null,
816
- mnc: parsedData[63] !== '' ? utils.getMNC(parsedData[62], parsedData[63]) : null,
905
+ mcc:
906
+ parsedData[62] !== ''
907
+ ? utils.latamMcc[parseInt(parsedData[62], 10)]
908
+ : null,
909
+ mnc:
910
+ parsedData[63] !== ''
911
+ ? utils.getMNC(parsedData[62], parsedData[63])
912
+ : null,
817
913
  lac: parsedData[64] !== '' ? parseInt(parsedData[64], 16) : null,
818
914
  cid: parsedData[65] !== '' ? parseInt(parsedData[65], 16) : null,
819
915
  odometer: null,
@@ -904,8 +1000,14 @@ const parse = raw => {
904
1000
  adc: null,
905
1001
  add: null
906
1002
  },
907
- mcc: parsedData[15] !== '' ? utils.latamMcc[parseInt(parsedData[15], 10)] : null,
908
- mnc: parsedData[16] !== '' ? utils.getMNC(parsedData[15], parsedData[16]) : null,
1003
+ mcc:
1004
+ parsedData[15] !== ''
1005
+ ? utils.latamMcc[parseInt(parsedData[15], 10)]
1006
+ : null,
1007
+ mnc:
1008
+ parsedData[16] !== ''
1009
+ ? utils.getMNC(parsedData[15], parsedData[16])
1010
+ : null,
909
1011
  lac: parsedData[17] !== '' ? parseInt(parsedData[17], 16) : null,
910
1012
  cid: parsedData[18] !== '' ? parseInt(parsedData[18], 16) : null,
911
1013
  odometer: null,
@@ -1004,8 +1106,14 @@ const parse = raw => {
1004
1106
  adc: null,
1005
1107
  add: null
1006
1108
  },
1007
- mcc: parsedData[13] !== '' ? utils.latamMcc[parseInt(parsedData[13], 10)] : null,
1008
- mnc: parsedData[14] !== '' ? utils.getMNC(parsedData[13], parsedData[14]) : null,
1109
+ mcc:
1110
+ parsedData[13] !== ''
1111
+ ? utils.latamMcc[parseInt(parsedData[13], 10)]
1112
+ : null,
1113
+ mnc:
1114
+ parsedData[14] !== ''
1115
+ ? utils.getMNC(parsedData[13], parsedData[14])
1116
+ : null,
1009
1117
  lac: parsedData[15] !== '' ? parseInt(parsedData[15], 16) : null,
1010
1118
  cid: parsedData[16] !== '' ? parseInt(parsedData[16], 16) : null,
1011
1119
  odometer: null,
package/src/index.js CHANGED
@@ -16,15 +16,36 @@ const gv50p = require('./gv50p.js')
16
16
  const gv310lau = require('./gv310lau.js')
17
17
  const gv58lau = require('./gv58lau.js')
18
18
  const gv57cg = require('./gv57cg.js')
19
+ const gl533cg = require('./gl533cg.js')
20
+
21
+ /*
22
+ Checks if raw is a GL533CG (hex) message
23
+ */
24
+ const isHex = raw => {
25
+ return (
26
+ (Buffer.isBuffer(raw) &&
27
+ (raw[0] === 0x2b || raw[0] === 0x2d) &&
28
+ raw[1] === 0x00 &&
29
+ raw[raw.length - 1] === 0x24) ||
30
+ (typeof raw === 'string' && /^\+.*[$]$/.test(raw))
31
+ )
32
+ }
19
33
 
20
34
  /*
21
35
  Checks if raw comes from a Queclink device
22
36
  */
23
37
  const isQueclink = raw => {
24
38
  if (
39
+ // Normal Queclink devices
25
40
  utils.patterns.message.test(raw.toString()) ||
26
41
  utils.patterns.ack.test(raw.toString()) ||
27
- utils.patterns.buffer.test(raw.toString())
42
+ utils.patterns.buffer.test(raw.toString()) ||
43
+ utils.patterns.nack.test(raw.toString())
44
+ ) {
45
+ return true
46
+ } else if (
47
+ // GL533CG (hex)
48
+ isHex(raw)
28
49
  ) {
29
50
  return true
30
51
  }
@@ -91,14 +112,18 @@ const parse = (raw, options) => {
91
112
  if (
92
113
  utils.patterns.message.test(raw.toString()) ||
93
114
  utils.patterns.ack.test(raw.toString()) ||
94
- utils.patterns.buffer.test(raw.toString())
115
+ utils.patterns.nack.test(raw.toString()) ||
116
+ utils.patterns.buffer.test(raw.toString()) ||
117
+ isHex(raw)
95
118
  ) {
96
- const device = utils.getDevice(raw.toString())
119
+ const device = isHex(raw) ? 'GL533CG' : utils.getDevice(raw.toString())
97
120
  if (
98
121
  utils.patterns.ack.test(raw.toString()) &&
99
122
  !utils.patterns.heartbeat.test(raw.toString())
100
123
  ) {
101
124
  result = getAckCommand(raw.toString(), options.lang)
125
+ } else if (utils.patterns.nack.test(raw.toString())) {
126
+ result = getNackCommand(raw.toString(), options.lang)
102
127
  } else if (device === 'GV300W') {
103
128
  result = gv300w.parse(raw.toString())
104
129
  } else if (device === 'GV310LAU') {
@@ -129,6 +154,8 @@ const parse = (raw, options) => {
129
154
  result = gl50.parse(raw.toString())
130
155
  } else if (device === 'GV50P') {
131
156
  result = gv50p.parse(raw.toString())
157
+ } else if (device === 'GL533CG') {
158
+ result = gl533cg.parse(raw)
132
159
  }
133
160
  }
134
161
  return result
@@ -142,6 +169,7 @@ const getAckCommand = (raw, lang) => {
142
169
  const rawData = raw.substr(0, raw.length - 1)
143
170
  const parsedData = rawData.split(',')
144
171
  const command = parsedData[0].split(':')
172
+ const isGT = command[1].startsWith('GT')
145
173
 
146
174
  let data = {
147
175
  raw: rawData,
@@ -158,7 +186,9 @@ const getAckCommand = (raw, lang) => {
158
186
  parsedData[parsedData.length - 2] !== ''
159
187
  ? utils.parseDate(parsedData[parsedData.length - 2])
160
188
  : null,
161
- message: messages['+ACK'][command[1]] || messages.default
189
+ message: isGT
190
+ ? messages['+ACK'][command[1]]
191
+ : messages['+ACK'][`GT${command[1]}`] || messages.default
162
192
  }
163
193
 
164
194
  if (command[1] === 'GTSPD') {
@@ -183,6 +213,39 @@ const getAckCommand = (raw, lang) => {
183
213
  return data
184
214
  }
185
215
 
216
+ /*
217
+ Returns the Nack command
218
+ */
219
+ const getNackCommand = (raw, lang) => {
220
+ const rawData = raw.substr(0, raw.length - 1)
221
+ const parsedData = rawData.split(',')
222
+ const command = parsedData[0].split(':')
223
+ const nackCause =
224
+ utils.nackCauses[
225
+ utils.hex2dec(parsedData[parsedData.length - 4]).toString()
226
+ ] || 'Unknown'
227
+
228
+ let data = {
229
+ raw: rawData,
230
+ rawCommand: command[1],
231
+ manufacturer: 'queclink',
232
+ device: 'Queclink-COMMAND-NOT-OK',
233
+ type: 'notok',
234
+ serial:
235
+ parsedData[parsedData.length - 3] !== ''
236
+ ? parseInt(utils.hex2dec(parsedData[parsedData.length - 3]), 10)
237
+ : null,
238
+ counter: parseInt(utils.hex2dec(parsedData[parsedData.length - 1]), 10),
239
+ datetime:
240
+ parsedData[parsedData.length - 2] !== ''
241
+ ? utils.parseDate(parsedData[parsedData.length - 2])
242
+ : null,
243
+ message: `${nackCause} en instrucción ${command[1]}`
244
+ }
245
+
246
+ return data
247
+ }
248
+
186
249
  /*
187
250
  Parses the Websocket command into Queclink Command
188
251
  */
@@ -233,13 +296,17 @@ const parseCommand = data => {
233
296
  const do5 = `${outputs[4]},${prevDurations['5']},${prevToggles['5']}`
234
297
  const longOperation = data.longOperation || false ? '1' : ''
235
298
  const dosReport = data.dosReport || false ? data.dosReport : 0
236
- const dos = `${outputs[port - 1]},${prevDurations[_data[0]]},${prevToggles[_data[0]]}`.split(',')
237
- // const wave5 = dosReport ?
299
+ // const dos = `${outputs[port - 1]},${prevDurations[_data[0]]},${prevToggles[_data[0]]}`.split(',')
300
+ // const wave5 = dosReport ?
238
301
  if (data.device_serie === 'GV' && password === 'gv57cg') {
239
302
  command = `AT+GTDOS=${password},,,1,${do1},,,${dosReport},0,5,,,,${serialId}$`
240
303
  } else if (data.device_serie === 'GV' && password === 'gv58lau') {
241
304
  command = `AT+GTDOS=${password},0,3,1,${do1},0,,2,${do2},0,,3,${do3},0,,0,,,${dosReport},,,${serialId}$`
242
- } else if (data.device.serie === 'GV' && password.includes('lau')) {
305
+ } else if (
306
+ data.device &&
307
+ data.device.serie === 'GV' &&
308
+ password.includes('lau')
309
+ ) {
243
310
  command = `AT+GTOUT=${password},${do1},${do2},${do3},${do4},${longOperation},${dosReport},,,${serialId}$`
244
311
  } else if (data.device_serie === 'GV') {
245
312
  // command = `AT+GTOUT=${password},${do1},${do2},${do3},${do4},${longOperation},${dosReport},,,${serialId}$`
@@ -298,7 +365,7 @@ const parseCommand = data => {
298
365
  const alarmId = data.alarmId || 0
299
366
  const sensorId = data.sensorId || '0000000000000000'
300
367
  const index = data.sensor_index || 2
301
- const sensorType = utils.bleTempHumSensors[data.sensor_type]
368
+ const sensorType = utils.bleTempHumSensors[data.sensor_type] || '0'
302
369
  const minTemp = data.minTemp || 0
303
370
  const maxTemp = data.maxTemp || 0
304
371
  if (sensorType === '0') {
@@ -306,7 +373,6 @@ const parseCommand = data => {
306
373
  } else {
307
374
  command = `AT+GTBAS=${password},${index},6,${sensorType},,${sensorId},83F,,2400,,${mode},${minTemp},${maxTemp},2,,,,,,,,0,0,0,0,,,${serialId}$`
308
375
  }
309
-
310
376
  } else if (/^copiloto_temp_alarm_(on|off)(E)?$/.test(data.instruction)) {
311
377
  // AT+GTDAT=gv300w,2,,>CMD3005,60,18,0,5,-3<,0,,,,FFFF$
312
378
  // Temperature Alarm
@@ -14,7 +14,8 @@
14
14
  "GTSVR": {
15
15
  "0": "Se perdió conexión con el dispositivo",
16
16
  "1": "Se volvió a conectar el dispositivo",
17
- "2": "Falló la conexión del dispositivo durante la instalación"
17
+ "2": "Falló la primera conexión del dispositivo",
18
+ "3": "Se estableció la primera conexión con el dispositivo"
18
19
  },
19
20
  "GTFLA": "Combustible reducido en consumption%",
20
21
  "GTTMP": {
@@ -255,9 +256,18 @@
255
256
  "2": "Batería baja en el WTH100",
256
257
  "3": "Batería baja en el botón SOS bluetooth"
257
258
  },
259
+ "GSENSOR": {
260
+ "0": "Dispositivo en reposo",
261
+ "1": "Dispositivo en movimiento",
262
+ "2": "Estado de movimiento desconocido"
263
+ },
264
+ "LIGHT": "Dispositivo removido (fotosensor)",
258
265
  "+ACK": {
259
266
  "GTBSI": "Config: APN",
267
+ "GTAPN": "Config: APN",
268
+ "GTNET": "Config: tecnología de red",
260
269
  "GTSRI": "Config: servidor backend",
270
+ "GTBSS": "Config: servidor backend",
261
271
  "GTQSS": "Config: APN y servidor backend",
262
272
  "GTMQT": "Config: servidor MQTT",
263
273
  "GTTLS": "Config: encritado de datos",
@@ -269,7 +279,11 @@
269
279
  "GTPDS": "Config: preservar estados",
270
280
  "GTUPC": "Actualización OTA",
271
281
  "GTFRI": "Config: reportes de ubicación",
282
+ "GTQRC": "Config: reportes de rastreo",
272
283
  "GTFFC": "Config: frecuencia de reporte FRI",
284
+ "GTPSM": "Config: modo de ahorro de energía",
285
+ "GTHBD": "Config: frecuencia de heartbeat",
286
+ "GTGNSSCFG": "Config: configuración GNSS global",
273
287
  "GTTOW": "Alarma configurada: remolque",
274
288
  "GTSPD": "Alarma configurada: velocidad",
275
289
  "GTSPA": "Alarma configurada: exceso de velocidad",