var SerialPort = require('serialport') module.exports = function (RED) { function testnode(config) { RED.nodes.createNode(this, config); var node = this; node.port = new SerialPort(config.serialport, { baudRate: 9600 }) node.port.on('error', function (err) { node.error(`Error: ${err.message}`) }) function showPortOpen() { console.log('port open. Data rate: ' + node.port.baudRate); } node.port.on('open', showPortOpen); function showPortClose() { console.log('port closed.'); } node.port.on('close', showPortClose); receivedData=Buffer.alloc(0) node.port.on('readable', function () { received = node.port.read() receivedData = Buffer.concat([receivedData,received]) console.log('Data:', received) if(receivedData.length > 8) { console.log('total:', receivedData) receivedData=Buffer.alloc(0) } }) ergebnis = node.port.read(); node.on('input', function (msg, send, done) { send = send || function () { node.send.apply(node, arguments) } node.port.write("test"); //ergebnis = node.port.read(); msg.payload = ergebnis; if (done) { done(); } }); node.on('close', function () { node.port.close(); }); } RED.nodes.registerType("testnode", testnode); }