UNPKG

knxultimate

Version:

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

69 lines 2.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const utils_1 = require("../utils"); const KnxLog_1 = require("../KnxLog"); const logger = (0, KnxLog_1.module)('DPT222'); const config = { id: 'DPT222', formatAPDU: (value) => { const apdu_data = Buffer.alloc(6); if (typeof value === 'object' && (0, utils_1.hasProp)(value, 'Comfort') && value.Comfort >= -273 && value.Comfort <= 670760 && (0, utils_1.hasProp)(value, 'Standby') && value.Standby >= -273 && value.Standby <= 670760 && (0, utils_1.hasProp)(value, 'Economy') && value.Economy >= -273 && value.Economy <= 670760) { const ArrComfort = (0, utils_1.getHex)(value.Comfort); apdu_data[0] = ArrComfort[0]; apdu_data[1] = ArrComfort[1]; const ArrStandby = (0, utils_1.getHex)(value.Standby); apdu_data[2] = ArrStandby[0]; apdu_data[3] = ArrStandby[1]; const ArrEconomy = (0, utils_1.getHex)(value.Economy); apdu_data[4] = ArrEconomy[0]; apdu_data[5] = ArrEconomy[1]; return apdu_data; } logger.error('Must supply a payload like, for example: {Comfort:21, Standby:20, Economy:14}'); return null; }, fromBuffer: (buf) => { if (buf.length !== 6) { logger.warn('fromBuffer: buf should be 3x2 bytes long (got %d bytes)', buf.length); return null; } const fComfort = (0, utils_1.getFloat)(buf[0], buf[1]); const fStandby = (0, utils_1.getFloat)(buf[2], buf[3]); const fEconomy = (0, utils_1.getFloat)(buf[4], buf[5]); return { Comfort: fComfort, Standby: fStandby, Economy: fEconomy }; }, basetype: { bitlength: 48, valuetype: 'basic', desc: '3x16-bit floating point value', help: `// Set the temperature setpoints or setpoint shift msg.payload = {Comfort:21.4, Standby:20, Economy:18.2}; return msg;`, helplink: 'https://github.com/Supergiovane/node-red-contrib-knx-ultimate/wiki/-Sample---DPT222', }, subtypes: { 100: { desc: 'DPT_TempRoomSetpSetF16[3]', name: 'Room temperature setpoint (Comfort, Standby and Economy)', unit: '°C', range: [-273, 670760], }, 101: { desc: 'DPT_TempRoomSetpSetShiftF16[3]', name: 'Room temperature setpoint shift (Comfort, Standby and Economy)', unit: 'K', range: [-670760, 670760], }, }, }; exports.default = config; //# sourceMappingURL=dpt222.js.map