@aurora-blue/signalk-connector 0.2.0-dev.42 → 0.2.0-dev.43

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0-dev.42
1
+ 0.2.0-dev.43
@@ -9,5 +9,6 @@ export declare class NmeaEnergy {
9
9
  private readonly dcTypes;
10
10
  private readonly inverterDcInstances;
11
11
  private readonly states;
12
+ private readonly emittedModes;
12
13
  observe(message: unknown, sources: unknown, now: number): NmeaEnergyObservation[];
13
14
  }
@@ -11,6 +11,7 @@ class NmeaEnergy {
11
11
  dcTypes = new Map();
12
12
  inverterDcInstances = new Map();
13
13
  states = new Map();
14
+ emittedModes = new Map();
14
15
  observe(message, sources, now) {
15
16
  const pgn = object(message), fields = object(pgn.fields);
16
17
  if (![127506, 127508, 127507, 127509].includes(Number(pgn.pgn)) ||
@@ -135,12 +136,24 @@ class NmeaEnergy {
135
136
  charger &&
136
137
  Math.abs(clock - charger.at) <= 10000)
137
138
  mode = chargerModes[charger.value] ?? mode;
138
- if (mode)
139
- emit(`electrical.inverters.${id}.inverterMode`, mode);
139
+ if (mode) {
140
+ const emitted = this.emittedModes.get(key);
141
+ if (!emitted ||
142
+ (clock >= emitted.at &&
143
+ (emitted.value !== mode || clock - emitted.at >= 600_000))) {
144
+ emit(`electrical.inverters.${id}.inverterMode`, mode);
145
+ this.emittedModes.set(key, { value: mode, at: clock });
146
+ }
147
+ }
140
148
  }
141
149
  }
142
150
  }
143
- for (const cache of [this.dcTypes, this.states, this.inverterDcInstances])
151
+ for (const cache of [
152
+ this.dcTypes,
153
+ this.states,
154
+ this.inverterDcInstances,
155
+ this.emittedModes,
156
+ ])
144
157
  while (cache.size > 256)
145
158
  cache.delete(cache.keys().next().value);
146
159
  return observations;
@@ -1 +1 @@
1
- export declare const CONNECTOR_VERSION = "0.2.0-dev.42";
1
+ export declare const CONNECTOR_VERSION = "0.2.0-dev.43";
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CONNECTOR_VERSION = void 0;
4
- exports.CONNECTOR_VERSION = "0.2.0-dev.42";
4
+ exports.CONNECTOR_VERSION = "0.2.0-dev.43";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aurora-blue/signalk-connector",
3
- "version": "0.2.0-dev.42",
3
+ "version": "0.2.0-dev.43",
4
4
  "description": "Signal K edge connector for the Aurora Blue ABOARD ingest protocol",
5
5
  "private": false,
6
6
  "main": "dist/src/index.js",