node-enocean-ts
Version:
Typescript full implementation of the enocean protocol (ESP3 + EEP2.6)
63 lines • 2.17 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = default_1;
const eepHelper_1 = __importDefault(require("./eepHelper"));
function default_1(eep, data) {
var eepa = eep.split("-");
var choice = eepa[0];
var func = eepa[1];
var type = eepa[2];
var typeNr = parseInt(type, 16);
if (eep === "a5-12-01") {
var sst = data.substring(6, 8) == "8f";
var part = parseInt(data.substring(4, 6), 16);
var nr1 = data.substring(0, 2);
var nr2 = data.substring(2, 4);
var snr1 = {
type: "serialnumber_part1",
unit: "",
value: (sst && part == 0) ? nr1 : null
};
var snr2 = {
type: "serialnumber_part2",
unit: "",
value: (sst && part == 1) ? nr2 + "" + nr1 : null
};
var T1 = 8;
var Unit = "";
var devisor = 1;
var value = 0;
if (data.substring(6, 8) != "8f") {
T1 = eepHelper_1.default.extractBitValue(0, 4, 4, data);
Unit = eepHelper_1.default.extractBitEnum(0, 2, 1, data, ["kWh", "W"]);
devisor = eepHelper_1.default.extractBitEnum(0, 0, 2, data, [1, 10, 100, 1000]);
value = parseInt(data.substring(0, 6), 16) / devisor;
}
const d1 = {
type: "total_tarif_0",
unit: "kWh",
value: (T1 == 0 && Unit == "kWh") ? value : null
};
const d2 = {
type: "current_tarif_0",
unit: "W",
value: (T1 == 0 && Unit == "W") ? value : null
};
const d3 = {
type: "total_tarif_1",
unit: "kWh",
value: (T1 == 1 && Unit == "kWh") ? value : null
};
const d4 = {
type: "current_tarif_1",
unit: "W",
value: (T1 == 1 && Unit == "W") ? value : null
};
return [d1, d2, d3, d4, snr1, snr2];
}
return null;
}
//# sourceMappingURL=eep-a5-12-01.js.map