node-enocean-ts
Version:
Typescript full implementation of the enocean protocol (ESP3 + EEP2.6)
76 lines • 2.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = default_1;
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-11-02") {
var rawVal = ((parseInt(data, 16) & 0xff00) >>> 8);
var Smin = 0;
var Smax = 51.2;
var val1 = ((Smax - Smin) / 255) * (rawVal) + Smin;
rawVal = ((parseInt(data, 16) & 0xff000000) >>> 24);
Smin = 0;
Smax = 100;
var val2 = ((Smax - Smin) / 255) * (rawVal) + Smin;
var i = ((parseInt(data, 16) & 0xff0000) >>> 16);
var fanstages = [];
fanstages[0] = "Stage 0 Manual";
fanstages[1] = "Stage 1 Manual";
fanstages[2] = "Stage 2 Manual";
fanstages[3] = "Stage 3 Manual";
fanstages[16] = "Stage 0 Automatic";
fanstages[17] = "Stage 1 Automatic";
fanstages[18] = "Stage 2 Automatic";
fanstages[19] = "Stage 3 Automatic";
fanstages[255] = "Not Available";
var i1 = (parseInt(data, 16) & 4) >>> 2;
var NRG = ["Normal", "Energy hold-off/Dew point"];
var i2 = (parseInt(data, 16) & 3);
var occu = ["Occupied", "Unoccupied", "StandBy", "Frost"];
var i3 = (parseInt(data, 16) & 16) >>> 4;
var CState = ["Automatic", "Override"];
var i4 = (parseInt(data, 16) & 128) >>> 7;
var Alarm = ["No alarm", "Alarm"];
var i5 = (parseInt(data, 16) & 96) >>> 6;
var mode = ["Heating", "Cooling", "Off"];
return [{
type: "setpoint_temperature",
unit: "°C",
value: val1
}, {
type: "controller_value",
unit: "%",
value: val2
}, {
type: "fan_stage",
unit: "",
value: fanstages[i]
}, {
type: "occupancy",
unit: "",
value: occu[i2]
}, {
type: "energy_hold-off",
unit: "",
value: NRG[i1]
}, {
type: "controller_state",
unit: "",
value: CState[i3]
}, {
type: "alarm",
unit: "",
value: Alarm[i4]
}, {
type: "controller_mode",
unit: "",
value: mode[i5]
}];
}
return null;
}
//# sourceMappingURL=eep-a5-11-02.js.map