node-red-contrib-victron-ble
Version:
node-red node to parse Instant Readout advertisement data from Victron BLE devices
38 lines (37 loc) • 1.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.LynxSmartBMS = void 0;
const base_1 = require("./base");
class LynxSmartBMS extends base_1.Device {
errorFlags;
remainingMins;
voltage;
current;
ioStatus;
alarmFlags;
soc;
consumedAh;
batteryTemperature;
parseDecrypted(decrypted) {
const reader = new base_1.BitReader(decrypted);
const error_flags = reader.readUnsignedInt(8);
const remaining_mins = reader.readUnsignedInt(16);
const voltage = reader.readSignedInt(16);
const current = reader.readSignedInt(16);
const io_status = reader.readUnsignedInt(16);
const alarm_flags = reader.readUnsignedInt(18);
const soc = reader.readUnsignedInt(10);
const consumed_ah = reader.readUnsignedInt(20);
const temperature = reader.readUnsignedInt(7);
this.errorFlags = error_flags;
this.remainingMins = remaining_mins !== 0xFFFF ? remaining_mins : undefined;
this.voltage = voltage !== 0x7FFF ? voltage / 100 : undefined;
this.current = current !== 0x7FFF ? current / 10 : undefined;
this.ioStatus = io_status;
this.alarmFlags = alarm_flags;
this.soc = soc !== 0x3FFF ? soc / 10.0 : undefined;
this.consumedAh = consumed_ah !== 0xFFFFF ? consumed_ah / 10 : undefined;
this.batteryTemperature = temperature !== 0x7F ? (temperature - 40) : undefined;
}
}
exports.LynxSmartBMS = LynxSmartBMS;