diff --git a/lib/modem.js b/lib/modem.js index ed29b73..9e3c264 100644 --- a/lib/modem.js +++ b/lib/modem.js @@ -3,6 +3,7 @@ const INTERVAL_BEETWEN_SIGNAL_STRENGTH_MS = 60000; const DELIMITER_WAIT_FOR_OK = '\nOK\r\n'; +const moment = require('moment'); const SerialPort = require('serialport'); const ParserReadline = require('@serialport/parser-readline'); const ParserDelimiter = require('@serialport/parser-delimiter'); @@ -27,6 +28,8 @@ const modemInfo = { networkId: null, networkName: null, signalStrength: null, + signalStrengthTs: null, + signalStrengthTsReadable: null, config: config.modem, }; @@ -107,8 +110,13 @@ parserReadLine.on('data', (data) => { logger.verbose(`* IN: ${data}`); if (data) { if (data.indexOf('+CSQ: ') === 0) { - modemInfo.signalStrength = common.extractValueFromReadLineData(data).trim(); - logger.info(`Signal strength: ${modemInfo.signalStrength}`); + const signalStrength = common.extractValueFromReadLineData(data).trim(); + if (signalStrength) { + modemInfo.signalStrength = signalStrength; + modemInfo.signalStrengthTs = new Date(); + modemInfo.signalStrengthTsReadable = moment(modemInfo.signalStrengthTs).format('YYYY-MM-DD HH:mm:ss'); + logger.info(`Signal strength: ${modemInfo.signalStrength}`); + } } else if (data.indexOf('+CMTI: ') === 0) { onIncomingSMS(data); } else if (data.indexOf('+COPS: ') === 0) {