Forfatter Emne: Seriel kommunikation med NodeJS  (Læst 10854 gange)

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

Offline SteenSN

  • Øvet
  • **
  • Indlæg: 30
  • Respekt optjent: +1/-2
    • Steens stoker
Seriel kommunikation med NodeJS
« Dato: Jun 10, 2021, 20:00 »
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

Offline motoz

  • Top of the pop
  • *****
  • Indlæg: 255
  • Respekt optjent: +18/-0
Sv: Seriel kommunikation med NodeJS
« Svar #1 Dato: Jun 14, 2021, 09:44 »
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

Offline SteenSN

  • Øvet
  • **
  • Indlæg: 30
  • Respekt optjent: +1/-2
    • Steens stoker
Sv: Seriel kommunikation med NodeJS
« Svar #2 Dato: Jul 01, 2021, 09:28 »
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