Считывание данных с помощью zigbee USB CC2531

#javascript #serial-port #usb #zigbee #xiaomi

Вопрос:

Недавно я купил приемник CC2531 Zigbee, чтобы создать проект домашней автоматизации и подключить к нему устройства xiaomi. Я купил датчик температуры Aqara для тестирования. Я пытался прочитать данные, которые датчик отправляет в приемник Zigbee через USB-порт. Для этого я написал небольшую программу на java и попробовал ее также на python, чтобы прочитать ее, но я не получаю желаемых результатов. Сценарий java выглядит следующим образом:

 const SerialPort = require('serialport')
const port = new SerialPort('/dev/tty.usbmodem14301', {baudRate: 57600, dataBits:8})
const Readline = SerialPort.parsers.Readline
const parser = new Readline()
port.pipe(parser)
parser.on('data', console.log)

port.on('readable', function () {
    console.log('Data:', port.read())
  })
  
  // Switches the port into "flowing mode"
  port.on('data', function (data) {
    console.log('Data:', data)
  })
 

Я получаю искаженный текст (с именем датчика) и шестнадцатеричные массивы. Я не уверен, есть ли какое-то декодирование, которое мне нужно сделать, чтобы решить эту проблему. Я должен был получить значения температуры, давления, влажности и т. Д., Но вместо этого я получаю этот беспорядок…

Результат:

  lumi.weather��i�D����UE
Data: <Buffer fe 1c 44 81 00 00 02 04 99 85 01 01 00 80 00 55 5a 12 00 00 08 18 45 0a 00 00 29 83 07 99 85 1d ad>
Data: <Buffer fe 1c 44 81 00 00 02 04 99 85 01 01 00 80 00 55 5a 12 00 00 08 18 45 0a 00 00 29 83 07 99 85 1d ad>
)�����D���~aF
Data: <Buffer fe 1c 44 81 00 00 05 04 99 85 01 01 00 7e 00 61 5a 12 00 00 08 18 46 0a 00 00 21 a1 19 99 85 1d 57>
Data: <Buffer fe 1c 44 81 00 00 05 04 99 85 01 01 00 7e 00 61 5a 12 00 00 08 18 46 0a 00 00 21 a1 19 99 85 1d 57>
 

Есть мысли о том, как это решить? Спасибо