UNPKG

knxultimate

Version:

KNX IP protocol implementation for Node. This is the ENGINE of Node-Red KNX-Ultimate node.

67 lines 2.69 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const KnxLog_1 = require("../KnxLog"); const utils_1 = require("../utils"); const dpt9_1 = __importDefault(require("./dpt9")); const logger = (0, KnxLog_1.module)('DPT275'); const config = { id: 'DPT275', formatAPDU(value) { if (typeof value === 'object' && (0, utils_1.hasProp)(value, 'comfort') && (0, utils_1.hasProp)(value, 'standby') && (0, utils_1.hasProp)(value, 'economy') && (0, utils_1.hasProp)(value, 'buildingProtection')) { const comfort = dpt9_1.default.formatAPDU(value.comfort); const standby = dpt9_1.default.formatAPDU(value.standby); const economy = dpt9_1.default.formatAPDU(value.economy); const buildingProtection = dpt9_1.default.formatAPDU(value.buildingProtection); return Buffer.concat([ comfort, standby, economy, buildingProtection, ]); } logger.error('formatAPDU: Must supply all values, for example {comfort:22, standby:21.5, economy:21, buildingProtection:15}'); return null; }, fromBuffer(buf) { if (buf.length !== 8) { logger.warn('fromBuffer: buf should be 8 bytes long (got %d bytes)', buf.length); return null; } const comfort = dpt9_1.default.fromBuffer(buf.subarray(0, 2)); const standby = dpt9_1.default.fromBuffer(buf.subarray(2, 4)); const economy = dpt9_1.default.fromBuffer(buf.subarray(4, 6)); const buildingProtection = dpt9_1.default.fromBuffer(buf.subarray(6, 8)); return { comfort, standby, economy, buildingProtection, }; return null; }, basetype: { bitlength: 64, valuetype: 'basic', desc: 'Quadruple setpoints (comfort,standby,economy,buildingProtection) (4 float with 16 Bit)', help: `// Send comfort, standby, economy mode and buildingProtection temperatures, as n.4 DPT9.001. msg.payload = {comfort:22, standby:21.5, economy:21, buildingProtection:15}; return msg;`, }, subtypes: { 100: { name: 'Quadruple setpoints (comfort,standby,economy,buildingProtection) (4 float with 16 Bit)', desc: 'DPT_TempRoomSetpSetF16[4]', unit: '°C', range: [-273, 670760], }, }, }; exports.default = config; //# sourceMappingURL=dpt275.js.map