UNPKG

node-red-contrib-knx-ultimate

Version:

Control your KNX intallation via Node-Red! Single Node KNX IN/OUT with optional ETS group address importer. Easy to use and highly configurable.

64 lines (55 loc) 1.33 kB
/** * (C) 2020 Supergiovane */ // // DPT12.*: 4-byte unsigned value // const knxLog = require('./../KnxLog'); exports.formatAPDU = function (value) { if (!value || typeof value != 'number') knxLog.get().error('DPT12: Must supply a number value'); var apdu_data = Buffer.alloc(4); apdu_data.writeUIntBE(value, 0, 4); return apdu_data; } exports.fromBuffer = function (buf) { if (buf.length != 4) { knxLog.get().warn("DPT12: Buffer should be 4 bytes long, got", buf.length); return null; } else { return buf.readUIntBE(0, 4); } } // DPT12 base type info exports.basetype = { bitlength: 32, signedness: "unsigned", valuetype: "basic", desc: "4-byte unsigned value", "help": `// Send 4-byte unsigned value msg.payload = 12; return msg;` } // DPT12 subtype info exports.subtypes = { // 12.001 counter pulses "001": { "name": "Counter pulses (unsigned)", "desc": "Counter pulses" }, "100": { "name": "Counter timesec (s)", "desc": "Counter timesec (s)" }, "101": { "name": "Counter timemin (min)", "desc": "Counter timemin (min)" }, "102": { "name": "Counter timehrs (h)", "desc": "Counter timehrs (h)" }, "1200": { "name": "Volume liquid (l)", "desc": "Volume liquid (l)" }, "1201": { "name": "Volume (m3)", "desc": "Volume m3" } }