cli: Parse Data Errors

Hi,

Facing an issue with some new LED Strip Controllers. Originally bought these expecting to find an ESP inside to flash with Tasmota, but they use a W600 chip that rules that out…

Version of TuyAPI is 5.3.1.

I noted some similar issues (#23, #64), however all of those seemed to be resolved with protocol changes and some time ago - so wondering if this is yet another new protocol or similar…

Example Set commands:

DEBUG=* tuya-cli set --ip 192.168.2.Z --id XXXXX --key YYYYY --protocol-version 3.3 --dps 1 --set 1
  TuyAPI IP and ID are already both resolved. +0ms
  TuyAPI Connecting to 192.168.2.Z... +11ms
  TuyAPI Socket connected. +59ms
  TuyAPI GET Payload: +1ms
  TuyAPI {
  TuyAPI   gwId: 'XXXXX',
  TuyAPI   devId: 'XXXXX',
  TuyAPI   t: '1595491332',
  TuyAPI   dps: {},
  TuyAPI   uid: 'XXXXX'
  TuyAPI } +0ms
  TuyAPI SET Payload: +12ms
  TuyAPI {
  TuyAPI   devId: 'XXXXX',
  TuyAPI   gwId: 'XXXXX',
  TuyAPI   uid: '',
  TuyAPI   t: 1595491331,
  TuyAPI   dps: { '1': 1 }
  TuyAPI } +0ms
  TuyAPI Received data: 000055aa000000010000000a0000002c000000011fd12f2145a2b4e48d0bc6f78454ef31ce04d93fc98d24d84e47a9045c13e0bd73b5e0ba0000aa55 +7ms
  TuyAPI Error [ERR_UNHANDLED_ERROR]: Unhandled error. ('json obj data unvalid')
  TuyAPI     at TuyaDevice.emit (events.js:304:17)
  TuyAPI     at Socket.<anonymous> (/usr/lib/node_modules/@tuyapi/cli/node_modules/tuyapi/index.js:318:22)
  TuyAPI     at Socket.emit (events.js:315:20)
  TuyAPI     at addChunk (_stream_readable.js:295:12)
  TuyAPI     at readableAddChunk (_stream_readable.js:271:9)
  TuyAPI     at Socket.Readable.push (_stream_readable.js:212:10)
  TuyAPI     at TCP.onStreamRead (internal/stream_base_commons.js:186:23) +4ms
events.js:292
      throw er; // Unhandled 'error' event
      ^

Error [ERR_UNHANDLED_ERROR]: Unhandled error. ('json obj data unvalid')
    at TuyaDevice.emit (events.js:304:17)
    at Socket.<anonymous> (/usr/lib/node_modules/@tuyapi/cli/node_modules/tuyapi/index.js:318:22)
    at Socket.emit (events.js:315:20)
    at addChunk (_stream_readable.js:295:12)
    at readableAddChunk (_stream_readable.js:271:9)
    at Socket.Readable.push (_stream_readable.js:212:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:186:23)
Emitted 'error' event on TuyaDevice instance at:
    at Socket.<anonymous> (/usr/lib/node_modules/@tuyapi/cli/node_modules/tuyapi/index.js:334:18)
    at Socket.emit (events.js:315:20)
    [... lines matching original stack trace ...]
    at TCP.onStreamRead (internal/stream_base_commons.js:186:23) {
  code: 'ERR_UNHANDLED_ERROR',
  context: 'json obj data unvalid'
}
DEBUG=* tuya-cli set --ip 192.168.2.Z --id XXXXX --key YYYYY --protocol-version 3.2 --dps 1 --set 1
  TuyAPI IP and ID are already both resolved. +0ms
  TuyAPI Connecting to 192.168.2.Z... +6ms
  TuyAPI Socket connected. +111ms
  TuyAPI GET Payload: +2ms
  TuyAPI {
  TuyAPI   gwId: 'XXXXX',
  TuyAPI   devId: 'XXXXX',
  TuyAPI   t: '1595491352',
  TuyAPI   dps: {},
  TuyAPI   uid: 'XXXXX'
  TuyAPI } +0ms
  TuyAPI SET Payload: +9ms
  TuyAPI {
  TuyAPI   devId: 'XXXXX',
  TuyAPI   gwId: 'XXXXX',
  TuyAPI   uid: '',
  TuyAPI   t: 1595491352,
  TuyAPI   dps: { '1': 1 }
  TuyAPI } +1ms
  TuyAPI Received data: 000055aa000000010000000a0000002c00000001341e53faf713cd68b0675c61c34f2a87a6efc804260729dec5b4d916506bdcf4c31a296e0000aa55 +22ms
  TuyAPI Parsed: +2ms
  TuyAPI {
  TuyAPI   payload: 'parse data error',
  TuyAPI   leftover: false,
  TuyAPI   commandByte: 10,
  TuyAPI   sequenceN: 1
  TuyAPI } +0ms
  TuyAPI Received data: 000055aa00000002000000070000002c00000001341e53faf713cd68b0675c61c34f2a87a6efc804260729dec5b4d916506bdcf42f0215500000aa55 +15ms
  TuyAPI Parsed: +0ms
  TuyAPI {
  TuyAPI   payload: 'parse data error',
  TuyAPI   leftover: false,
  TuyAPI   commandByte: 7,
  TuyAPI   sequenceN: 2
  TuyAPI } +0ms
  TuyAPI Pinging 192.168.2.36 +10s
  TuyAPI Received data: 000055aa00000000000000090000000c00000000b051ab030000aa55 +35ms
  TuyAPI Parsed: +1ms
  TuyAPI { payload: false, leftover: false, commandByte: 9, sequenceN: 0 } +0ms
  TuyAPI Pong from 192.168.2.Z +1ms
  TuyAPI Pinging 192.168.2.Z +10s
  TuyAPI Received data: 000055aa00000000000000090000000c00000000b051ab030000aa55 +51ms
  TuyAPI Parsed: +1ms
  TuyAPI { payload: false, leftover: false, commandByte: 9, sequenceN: 0 } +0ms
  TuyAPI Pong from 192.168.2.Z +1ms
  TuyAPI Pinging 192.168.2.Z +10s
  TuyAPI Received data: 000055aa00000000000000090000000c00000000b051ab030000aa55 +5ms
  TuyAPI Parsed: +1ms
  TuyAPI { payload: false, leftover: false, commandByte: 9, sequenceN: 0 } +0ms
  TuyAPI Pong from 192.168.2.Z +1ms
  TuyAPI Pinging 192.168.2.Z +10s
  TuyAPI Received data: 000055aa00000000000000090000000c00000000b051ab030000aa55 +97ms
  TuyAPI Parsed: +1ms
  TuyAPI { payload: false, leftover: false, commandByte: 9, sequenceN: 0 } +0ms
  TuyAPI Pong from 192.168.2.Z +0ms
  TuyAPI Pinging 192.168.2.Z +10s
  TuyAPI Received data: 000055aa00000000000000090000000c00000000b051ab030000aa55 +111ms
  TuyAPI Parsed: +1ms
  TuyAPI { payload: false, leftover: false, commandByte: 9, sequenceN: 0 } +0ms
  TuyAPI Pong from 192.168.2.Z +1ms
  TuyAPI Pinging 192.168.2.Z +10s
  TuyAPI Received data: 000055aa00000000000000090000000c00000000b051ab030000aa55 +29ms
  TuyAPI Parsed: +1ms
  TuyAPI { payload: false, leftover: false, commandByte: 9, sequenceN: 0 } +0ms
  TuyAPI Pong from 192.168.2.Z +0ms
^C

Example Get Command

DEBUG=* tuya-cli get --ip 192.168.2.X --id XXXXX --key YYYYY --protocol-version 3.3 --all
  TuyAPI IP and ID are already both resolved. +0ms
  TuyAPI Connecting to 192.168.2.Z... +6ms
  TuyAPI Socket connected. +72ms
  TuyAPI GET Payload: +1ms
  TuyAPI {
  TuyAPI   gwId: 'XXXXX',
  TuyAPI   devId: 'XXXXX',
  TuyAPI   t: '1595490890',
  TuyAPI   dps: {},
  TuyAPI   uid: 'XXXXX'
  TuyAPI } +0ms
  TuyAPI GET Payload: +12ms
  TuyAPI {
  TuyAPI   gwId: 'XXXXX',
  TuyAPI   devId: 'XXXXX',
  TuyAPI   t: '1595490890',
  TuyAPI   dps: {},
  TuyAPI   uid: 'XXXXX'
  TuyAPI } +0ms
  TuyAPI Received data: 000055aa000000010000000a0000002c000000011fd12f2145a2b4e48d0bc6f78454ef31ce04d93fc98d24d84e47a9045c13e0bd73b5e0ba0000aa55 +6ms
  TuyAPI Error [ERR_UNHANDLED_ERROR]: Unhandled error. ('json obj data unvalid')
  TuyAPI     at TuyaDevice.emit (events.js:304:17)
  TuyAPI     at Socket.<anonymous> (/usr/lib/node_modules/@tuyapi/cli/node_modules/tuyapi/index.js:318:22)
  TuyAPI     at Socket.emit (events.js:315:20)
  TuyAPI     at addChunk (_stream_readable.js:295:12)
  TuyAPI     at readableAddChunk (_stream_readable.js:271:9)
  TuyAPI     at Socket.Readable.push (_stream_readable.js:212:10)
  TuyAPI     at TCP.onStreamRead (internal/stream_base_commons.js:186:23) +4ms
events.js:292
      throw er; // Unhandled 'error' event
      ^

Error [ERR_UNHANDLED_ERROR]: Unhandled error. ('json obj data unvalid')
    at TuyaDevice.emit (events.js:304:17)
    at Socket.<anonymous> (/usr/lib/node_modules/@tuyapi/cli/node_modules/tuyapi/index.js:318:22)
    at Socket.emit (events.js:315:20)
    at addChunk (_stream_readable.js:295:12)
    at readableAddChunk (_stream_readable.js:271:9)
    at Socket.Readable.push (_stream_readable.js:212:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:186:23)
Emitted 'error' event on TuyaDevice instance at:
    at Socket.<anonymous> (/usr/lib/node_modules/@tuyapi/cli/node_modules/tuyapi/index.js:334:18)
    at Socket.emit (events.js:315:20)
    [... lines matching original stack trace ...]
    at TCP.onStreamRead (internal/stream_base_commons.js:186:23) {
  code: 'ERR_UNHANDLED_ERROR',
  context: 'json obj data unvalid'
}

About this issue

  • Original URL
  • State: open
  • Created 4 years ago
  • Comments: 17 (9 by maintainers)

Most upvoted comments

Yep, tried using no protocol version, and then iterating from 3.1-3.3.

I’ll try and capture some traffic over the next couple of days