A simple Insteon packet parser to be used by Node Serialport and a PowerLinc Modem (PLM) library or program.
If you see any problems, have any advice, or want to help out please open an issue.
const SerialPort = require('serialport');
const {InsteonParser} = require('../dist/main');
/* Open serial port */
const port = new SerialPort('/dev/tty.usbserial-A60336ZZ', {
baudRate: 19200,
dataBits: 8,
stopBits: 1,
parity: 'none'
});
/* Creating new parser */
const parser = new InsteonParser();
/* Porting serial port to parser */
port.pipe(parser);
/* On data */
parser.on('data', (data)=> console.info(data));
/* Result
{
id: 0x73,
type: 'Get IM Configuration',
autoLinking: true,
monitorMode: true,
autoLED: true,
deadman: true,
success: true
}
*/
/* On serial port opened send command */
port.on('open', () => {
const buf = Buffer.alloc(2);
buf.writeUInt8(0x02, 0);
buf.writeUInt8(0x73,1);
port.write(buf, (error) => {
if(error){
console.error(`Error: ${error}`);
}
});
});