Nyheder:

Følg NBE Production A/S på
Facebook, se hvad vi laver :-)

Hovedmenu

Seriel kommunikation med NodeJS

Startet af SteenSN, Jun 10, 2021, 20:00

0 Brugere og 1 Gæst læser dette emne.

SteenSN

Lige som PellMon med Python burde det vel være muligt at lege med en version 6 styring med NodeJS - har nogen rodet med det? Jeg kan forbinde til COM3 (og Stokerkontrol fungerer fint på COM3), porten åbnes fint og specifikationerne for COM3-porten vises, men der kommer ingen data. Skal jeg sende en kommando før det kommer data? Eller er der noget helt grundlæggende, jeg har misforstået? Koden er helt simpel:

const SerialPort = require('serialport')
const Readline = require('@serialport/parser-readline')
const port = new SerialPort('COM3', {
    baudRate: 9600 
})

const parser = port.pipe(new Readline({ delimiter: '\r\n' }))

port.on("open", () => {
    console.log("Port opened");
    SerialPort.list().then(
        ports => ports.forEach(console.log),
        err => console.error(err)
      )     
})
parser.on("data", (data) => {
  console.log(data);
} );
Woody 16kw, chip 6.88, stokerversion 3.20, kompressorrens, Pannex solvarme 300 L, permanent VVB prioritering gennem topspiral, manuel shunt, trækstabilisator, 240 m2 fra 1905 + 18 m2 kælder + 14 m2 uisoleret fyrrum - forbrug 12 mdr 5900 kg https://www.svhfvuc.dk/steenstoker

motoz

The controller doesn't send anything spontaneously, it only responds to correctly formatted frames you send to it. A kind of protocol specification used to be found from the old NBE website, but I don't think it's anywhere anymore. You could use the pellmon python source as specification to work out the details. Basically you could get an answer by sending a simple 'frame read' command like 'Z000000' but it's a bit more complicated since the controller wants a correct checksum at the end of the request before it answers anything. And then you need to parse the result, every response contain a bunch of different measurement/setting values.
Python code for the v4-5-6 serial protocol here: https://github.com/motoz/PellMon/tree/master/src/Scotteprotocol
Bio Comfort 30kW, compressor cleaning, lambda. Termax 25cr boiler. Matene vertical pellet conveyor. PellMon open source pellet logger: https://github.com/motoz/PellMon

SteenSN

Tak for svaret og linket til Pellmon. Jeg prøvede at sende 'Z0000000'  og ' Z560000Y' og fik svar tilbage, så det virker fint. Svaret på det første var:
<Buffer 45>
<Buffer 30 75>

og på 'Z560000Y' kom fx:

<Buffer 36 32 20 20 20 34 39 20 20 20 32 37 20 20 20 20 31 31 30 30 30 30 31 30 30 30>

Godt at det kun er et hobbyprojekt....
Woody 16kw, chip 6.88, stokerversion 3.20, kompressorrens, Pannex solvarme 300 L, permanent VVB prioritering gennem topspiral, manuel shunt, trækstabilisator, 240 m2 fra 1905 + 18 m2 kælder + 14 m2 uisoleret fyrrum - forbrug 12 mdr 5900 kg https://www.svhfvuc.dk/steenstoker