@signalk/vedirect-serial-usb 1.4.0 → 1.5.0

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/index.js CHANGED
@@ -37,13 +37,13 @@ module.exports = function (app) {
37
37
  } else {
38
38
  if (options.device) {
39
39
  oldConfig = {vedirect: [{device: 'Serial', connection: options.device, ignoreChecksum: options.ignoreChecksum,
40
- mainBatt: options.mainBatt, auxBatt: options.auxBatt, solar: options.solar}]}
40
+ mainBatt: options.mainBatt, auxBatt: options.auxBatt, bmv: options.bmv, solar: options.solar}]}
41
41
  } else if (options.udpPort) {
42
42
  oldConfig = {vedirect: [{device: 'UDP', port: options.udpPort, ignoreChecksum: options.ignoreChecksum,
43
- mainBatt: options.mainBatt, auxBatt: options.auxBatt, solar: options.solar}]}
43
+ mainBatt: options.mainBatt, auxBatt: options.auxBatt, bmv: options.bmv, solar: options.solar}]}
44
44
  } else if (options.host) {
45
45
  oldConfig = {vedirect: [{device: 'TCP', connection: options.host, port: options.tcpPort, ignoreChecksum: options.ignoreChecksum,
46
- mainBatt: options.mainBatt, auxBatt: options.auxBatt, solar: options.solar}]}
46
+ mainBatt: options.mainBatt, auxBatt: options.auxBatt, bmv: options.bmv, solar: options.solar}]}
47
47
  }
48
48
  parser[0] = new Parser(oldConfig)
49
49
 
@@ -139,6 +139,11 @@ module.exports = function (app) {
139
139
  title: 'Aux Battery name in SK path',
140
140
  default: 'Starter'
141
141
  },
142
+ bmv: {
143
+ type: 'string',
144
+ title: 'BMV name in SK path',
145
+ default: 'bmv'
146
+ },
142
147
  solar: {
143
148
  type: 'string',
144
149
  title: 'Solar name in SK path',
package/lib/Parser.js CHANGED
@@ -7,6 +7,7 @@ const defaults = {
7
7
  defaultUnitId: 'victronDevice',
8
8
  mainBatt: 'house',
9
9
  auxBatt: 'starter',
10
+ bmv: 'bmv',
10
11
  solar: 'solar'
11
12
  }
12
13
 
@@ -358,6 +359,10 @@ class VEDirectParser extends EventEmitter {
358
359
  unitID = this.options.vedirect[items].auxBatt
359
360
  }
360
361
 
362
+ if (field.unitId === 'bmv' && this.options.hasOwnProperty('bmv')) {
363
+ unitID = this.options.vedirect[items].bmv
364
+ }
365
+
361
366
  if (field.unitId === 'solar' && this.options.hasOwnProperty('solar')) {
362
367
  unitID = this.options.vedirect[items].solar
363
368
  }
package/lib/fields.js CHANGED
@@ -241,6 +241,8 @@ module.exports = {
241
241
  RELAY: {
242
242
  name: 'relay',
243
243
  type: 'boolean',
244
+ path: 'electrical.batteries.*.relay',
245
+ unitId: 'bmv',
244
246
  value (value) {
245
247
  value = value.toUpperCase()
246
248
  return value === 'ON' ? 1 : 0
package/lib/tcp.js CHANGED
@@ -4,6 +4,7 @@ let client = [];
4
4
  function makeConnection(host, port, debug, items) {
5
5
  client[items] = new Net.Socket();
6
6
  client[items].connect({ port: port, host: host });
7
+ client[items].setTimeout(5000);
7
8
  debug(`Connection to ${host}:${port}`);
8
9
  return client[items]
9
10
  }
@@ -17,9 +18,8 @@ function onClose(host, port, parser, debug, items) {
17
18
  if(client[items]) {
18
19
  setTimeout(() => {
19
20
  debug('Trying to reconnect');
20
- client[items].destroy();
21
21
  module.exports.connect(host, port, parser, debug, items);
22
- }, 10000)
22
+ }, 10000);
23
23
  }
24
24
  }
25
25
 
@@ -31,11 +31,17 @@ module.exports = {
31
31
  });
32
32
  client[items].on('close', () => {
33
33
  debug('TCP connection closed');
34
+ client[items].destroy();
34
35
  onClose(host, port, parser, debug, items);
35
36
  });
36
37
  client[items].on('error', () => {
37
38
  debug('TCP connection error');
39
+ client[items].destroy();
38
40
  });
41
+ client[items].on('timeout', () => {
42
+ debug('TCP connection timeout');
43
+ client[items].destroy();
44
+ });
39
45
  },
40
46
  close: (debug, items) => {
41
47
  if (client[items]) {
package/migration.js CHANGED
@@ -19,6 +19,7 @@ fs.readFile(path.resolve(jsonPath, 'vedirect-signalk.json'), 'UTF-8', (err, data
19
19
  'ignoreChecksum': obj.configuration.ignoreChecksum,
20
20
  'mainBatt': obj.configuration.mainBatt,
21
21
  'auxBatt': obj.configuration.auxBatt,
22
+ 'bmv': obj.configuration.bmv,
22
23
  'solar': obj.configuration.solar
23
24
  }]
24
25
  } else if (obj.configuration.udpPort) {
@@ -29,6 +30,7 @@ fs.readFile(path.resolve(jsonPath, 'vedirect-signalk.json'), 'UTF-8', (err, data
29
30
  'ignoreChecksum': obj.configuration.ignoreChecksum,
30
31
  'mainBatt': obj.configuration.mainBatt,
31
32
  'auxBatt': obj.configuration.auxBatt,
33
+ 'bmv': obj.configuration.bmv,
32
34
  'solar': obj.configuration.solar
33
35
  }]
34
36
  } else if (obj.configuration.host) {
@@ -39,6 +41,7 @@ fs.readFile(path.resolve(jsonPath, 'vedirect-signalk.json'), 'UTF-8', (err, data
39
41
  'ignoreChecksum': obj.configuration.ignoreChecksum,
40
42
  'mainBatt': obj.configuration.mainBatt,
41
43
  'auxBatt': obj.configuration.auxBatt,
44
+ 'bmv': obj.configuration.bmv,
42
45
  'solar': obj.configuration.solar
43
46
  }]
44
47
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@signalk/vedirect-serial-usb",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "description": "Signal K Node.js server plugin to read VE.Direct data via serial USB",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/standalone.js CHANGED
@@ -30,6 +30,7 @@ class VEDirect extends EventEmitter {
30
30
  ignoreChecksum: true,
31
31
  mainBatt: 'House',
32
32
  auxBatt: 'Starter',
33
+ bmv: 'bmv',
33
34
  solar: 'Main',
34
35
  ...(config || {}),
35
36
  }
@@ -64,4 +65,4 @@ class VEDirect extends EventEmitter {
64
65
  }
65
66
  }
66
67
 
67
- module.exports = VEDirect
68
+ module.exports = VEDirect