Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Another json obj data unvalid, floodlight with camera #577

Open
truongsinh opened this issue May 5, 2022 · 4 comments
Open

Another json obj data unvalid, floodlight with camera #577

truongsinh opened this issue May 5, 2022 · 4 comments

Comments

@truongsinh
Copy link

truongsinh commented May 5, 2022

Describe the bug

  • Device: https://www.costco.com/feit-electric-led-1080p-hd-smart-flood-security-light.product.100499570.html
  • Using (modified) example code, I get json obj data unvalid
  • Cannot set or get anything
  • When setting attribute via mobile app, no data observed (or just another json obj data unvalid)
  • HOWEVER, when my app starts to connect to this device (to be precise, the app ask TUYA server about this device, and then TUYA connects to this device, and relay data between app and device), I can observed some data

** Code **

const TuyAPI = require('./tuyapi');

const device = new TuyAPI({
  ip: '192.168.8.215',
  id: 'ebbc025aa0190d3a2cupmr',
  key: 'd18579be1d0c1295',
  version: '3.1',
});

let stateHasChanged = false;

// Find device on network
device.find().then(() => {
  console.log('Found device!');
  // Connect to device
  device.connect();
});

// Add event listeners
device.on('connected', () => {
  console.log('Connected to device!');

  randomSet();
});

device.on('disconnected', () => {
  console.log('Disconnected from device.');
});

device.on('error', error => {
  console.log('Error!', error);
});

device.on('data', data => {
  console.log('Data from device:', data);
  device.set({ set: 0 });

  if (data.dps) {
    console.log(`Boolean status of default property: ${data.dps['1']}.`);
  }


  // // Set default property to opposite
  // if (!stateHasChanged) {
  //   device.set({set: !(data.dps['1'])});

  //   // Otherwise we'll be stuck in an endless
  //   // loop of toggling the state.
  //   stateHasChanged = true;
  // }
});

let toggle = false;
const randomSet = () => {
  console.log(`randomSet, ${toggle}`);

  device.get({dps: 0}).then(data => console.log("get d 0", data), (e) => {console.log(`e get`, e)});
  device.get({dps: 1}).then(data => console.log("get d 1", data), (e) => {console.log(`e get`, e)});
  device.get({dps: 2}).then(data => console.log("get d 2", data), (e) => {console.log(`e get`, e)});
  device.get({schema: true}).then(data => console.log("get d schema", data), (e) => {console.log(`e get`, e)});
  device.set({
    multiple: true,
    data: {
      '0': toggle,
      '1': toggle,
      '2': toggle,
      '3': toggle,
      '4': toggle,
      '6': toggle,
      '7': toggle,
      '8': toggle,
      '9': toggle,
    }
  }).then((d) => {console.log(`data d`, d)}, (e) => {console.log(`e`, e)});
  toggle = !toggle;
  setTimeout(randomSet, Math.random()*5000+5000);
};

Debug Output
This debug log is long, but please look for az1624739893303h7XJq, it's the only time when tuyapi was able to parse the data (happens when Smart Thing app was closed on my smartphone)

truongsinh@TranNguyensMBP localtuya %  DEBUG="*" node a.js
  TuyAPI IP and ID are already both resolved. +0ms
Found device!
  TuyAPI Connecting to 192.168.8.215... +4ms
  TuyAPI Socket connected. +14ms
Connected to device!
randomSet, false
  TuyAPI GET Payload: +0ms
  TuyAPI {
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   t: '1651728097',
  TuyAPI   dps: {},
  TuyAPI   uid: 'ebbc025aa0190d3a2cupmr'
  TuyAPI } +0ms
  TuyAPI GET Payload: +4ms
  TuyAPI {
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   t: '1651728097',
  TuyAPI   dps: {},
  TuyAPI   uid: 'ebbc025aa0190d3a2cupmr'
  TuyAPI } +0ms
  TuyAPI GET Payload: +0ms
  TuyAPI {
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   t: '1651728097',
  TuyAPI   dps: {},
  TuyAPI   uid: 'ebbc025aa0190d3a2cupmr'
  TuyAPI } +0ms
  TuyAPI GET Payload: +0ms
  TuyAPI {
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   t: '1651728097',
  TuyAPI   dps: {},
  TuyAPI   uid: 'ebbc025aa0190d3a2cupmr'
  TuyAPI } +0ms
  TuyAPI SET Payload: +1ms
  TuyAPI {
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   uid: '',
  TuyAPI   t: 1651728096,
  TuyAPI   dps: {
  TuyAPI     '0': false,
  TuyAPI     '1': false,
  TuyAPI     '2': false,
  TuyAPI     '3': false,
  TuyAPI     '4': false,
  TuyAPI     '6': false,
  TuyAPI     '7': false,
  TuyAPI     '8': false,
  TuyAPI     '9': false
  TuyAPI   }
  TuyAPI } +0ms
  TuyAPI GET Payload: +2ms
  TuyAPI {
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   t: '1651728097',
  TuyAPI   dps: {},
  TuyAPI   uid: 'ebbc025aa0190d3a2cupmr'
  TuyAPI } +0ms
  TuyAPI Received data: 000055aa000000010000000a0000002c00000001683483b1c0730f381ef013cc7fdf16a7181ea1c34d49c2d16295f431b232b7a812efe1260000aa55 +7ms
  TuyAPI Received data: U�
  TuyAPI ,h4���s8������MI��b��1�2����&�U +0ms
  TuyAPI Parsed: +1ms
  TuyAPI {
  TuyAPI   payload: 'parse data error',
  TuyAPI   leftover: false,
  TuyAPI   commandByte: 10,
  TuyAPI   sequenceN: 1
  TuyAPI } +0ms
  TuyAPI Received DATA packet +0ms
Data from device: parse data error
  TuyAPI SET Payload: +0ms
  TuyAPI {
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   uid: '',
  TuyAPI   t: 1651728096,
  TuyAPI   dps: { '1': 0 }
  TuyAPI } +0ms
  TuyAPI Received data: 000055aa000000020000000a0000002c00000001683483b1c0730f381ef013cc7fdf16a7181ea1c34d49c2d16295f431b232b7a82d249fb30000aa55 +11ms
  TuyAPI Received data: U�
  TuyAPI ,h4���s8������MI��b��1�2��-$���U +0ms
  TuyAPI Parsed: +0ms
  TuyAPI {
  TuyAPI   payload: 'parse data error',
  TuyAPI   leftover: false,
  TuyAPI   commandByte: 10,
  TuyAPI   sequenceN: 2
  TuyAPI } +0ms
  TuyAPI Received DATA packet +0ms
Data from device: parse data error
  TuyAPI SET Payload: +0ms
  TuyAPI {
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   uid: '',
  TuyAPI   t: 1651728096,
  TuyAPI   dps: { '1': 0 }
  TuyAPI } +0ms
  TuyAPI Received data: 000055aa000000030000000a0000002c00000001683483b1c0730f381ef013cc7fdf16a7181ea1c34d49c2d16295f431b232b7a88eb2b7ff0000aa55000055aa000000040000000a0000002c00000001683483b1c0730f381ef013cc7fdf16a7181ea1c34d49c2d16295f431b232b7a852b262990000aa55 +4ms
  TuyAPI Received data: U�
  TuyAPI ,h4���s8������MI��b��1�2�������UU�
  TuyAPI ,h4���s8������MI��b��1�2��R�b��U +0ms
  TuyAPI Parsed: +0ms
  TuyAPI {
  TuyAPI   payload: 'parse data error',
  TuyAPI   leftover: <Buffer 00 00 55 aa 00 00 00 04 00 00 00 0a 00 00 00 2c 00 00 00 01 68 34 83 b1 c0 73 0f 38 1e f0 13 cc 7f df 16 a7 18 1e a1 c3 4d 49 c2 d1 62 95 f4 31 b2 32 ... 10 more bytes>,
  TuyAPI   commandByte: 10,
  TuyAPI   sequenceN: 3
  TuyAPI } +1ms
  TuyAPI Received DATA packet +0ms
Data from device: parse data error
  TuyAPI SET Payload: +0ms
  TuyAPI {
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   uid: '',
  TuyAPI   t: 1651728096,
  TuyAPI   dps: { '1': 0 }
  TuyAPI } +0ms
  TuyAPI Parsed: +0ms
  TuyAPI {
  TuyAPI   payload: 'parse data error',
  TuyAPI   leftover: false,
  TuyAPI   commandByte: 10,
  TuyAPI   sequenceN: 4
  TuyAPI } +0ms
  TuyAPI Received DATA packet +1ms
Data from device: parse data error
  TuyAPI SET Payload: +0ms
  TuyAPI {
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   uid: '',
  TuyAPI   t: 1651728096,
  TuyAPI   dps: { '1': 0 }
  TuyAPI } +0ms
  TuyAPI Received data: 000055aa00000005000000070000002c00000001683483b1c0730f381ef013cc7fdf16a7181ea1c34d49c2d16295f431b232b7a822f7087e0000aa55 +10ms
  TuyAPI Received data: U�,h4���s8������MI��b��1�2��"~�U +0ms
  TuyAPI Parsed: +0ms
  TuyAPI {
  TuyAPI   payload: 'parse data error',
  TuyAPI   leftover: false,
  TuyAPI   commandByte: 7,
  TuyAPI   sequenceN: 5
  TuyAPI } +0ms
  TuyAPI Received DATA packet +0ms
Data from device: parse data error
  TuyAPI SET Payload: +1ms
  TuyAPI {
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   uid: '',
  TuyAPI   t: 1651728096,
  TuyAPI   dps: { '1': 0 }
  TuyAPI } +0ms
  TuyAPI Received data: 000055aa000000060000000a0000002c00000001683483b1c0730f381ef013cc7fdf16a7181ea1c34d49c2d16295f431b232b7a8ceef34400000aa55 +3ms
  TuyAPI Received data: U�
  TuyAPI ,h4���s8������MI��b��1�2����4@�U +0ms
  TuyAPI Parsed: +1ms
  TuyAPI {
  TuyAPI   payload: 'parse data error',
  TuyAPI   leftover: false,
  TuyAPI   commandByte: 10,
  TuyAPI   sequenceN: 6
  TuyAPI } +0ms
  TuyAPI Received DATA packet +0ms
Data from device: parse data error
  TuyAPI SET Payload: +0ms
  TuyAPI {
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   uid: '',
  TuyAPI   t: 1651728096,
  TuyAPI   dps: { '1': 0 }
  TuyAPI } +0ms
Error! Timeout waiting for status response from device id: ebbc025aa0190d3a2cupmr
data d undefined
  TuyAPI Received data: 000055aa00000007000000070000002c00000001683483b1c0730f381ef013cc7fdf16a7181ea1c34d49c2d16295f431b232b7a8beaa5ea70000aa55 +5s
  TuyAPI Received data: U�,h4���s8������MI��b��1�2����^��U +0ms
  TuyAPI Parsed: +0ms
  TuyAPI {
  TuyAPI   payload: 'parse data error',
  TuyAPI   leftover: false,
  TuyAPI   commandByte: 7,
  TuyAPI   sequenceN: 7
  TuyAPI } +0ms
  TuyAPI Received DATA packet +0ms
Data from device: parse data error
  TuyAPI SET Payload: +0ms
  TuyAPI {
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   uid: '',
  TuyAPI   t: 1651728101,
  TuyAPI   dps: { '1': 0 }
  TuyAPI } +0ms
  TuyAPI Received data: 000055aa00000000000000200000010c0000000026690916c17fadb4aa8ba3eaf3d437fd08ff2a7beca62d0cce99259fd9866a0a07c072aa41d997da1155b518f5ebdebc2a5a966fde1609c3fa57a5552d01325901f8770e691d2476f789292bbb3ffd97fa10f7c8479b52e62580c005f02b4dd629ee05721bc1166bf14d9644f7a56760895cb16dd1e5908cf3dd780f4f2d5b0cc842161d03d0909c2e95cecabd1b230a903acdb9925ba7406fcfff55d721fd83ec4817a61eae071a4aac963e3c6ba481eb741672c5fb48c39c3116e52b59a3e5817e32f0eaaea152d0125012ba7c15ad1927c600c50f28fd8f06f1bde46226df2ccd95b11338c79a05a3fb6ae79350203e29147f136df4d1897543498a207862221f66b80000aa55 +344ms
  TuyAPI Received data: U� 
                           &i	���������7�*{�-
                                               Ι%�نj
  TuyAPI �r�Aٗ�U���޼*Z�o�	��W�U-2Y�wi$v��)+�?�����G�R�%���+M�)�r��M�D��g`�\�m�同��xO-[
                                                                                            �BА�.��ʽ
 TuyAPI �:͹�[�@o��U�!���H��J��><k���tr��HÜ1�+Y��~2�ꮡR�P�|�'��(����b&�,͕�8ǚ��j�P >)m�щuCI� xb"f��U +0ms
  TuyAPI Parsed: +0ms
  TuyAPI {
  TuyAPI   payload: {
  TuyAPI     header: {
  TuyAPI       from: 'ebbc025aa0190d3a2cupmr',
  TuyAPI       to: 'az1624739893303h7XJq',
  TuyAPI       sessionid: 'ebbc025aa0190d3a2cupmr1651728050G0A2vdom',
  TuyAPI       moto_id: '',
  TuyAPI       type: 'disconnect',
  TuyAPI       trace_id: 'ipc_p2p_android_ebbc025aa0190d3a2cupmr_1651728050645',
  TuyAPI       path: 'lan'
  TuyAPI     },
  TuyAPI     msg: {}
  TuyAPI   },
  TuyAPI   leftover: false,
  TuyAPI   commandByte: 32,
  TuyAPI   sequenceN: 0
  TuyAPI } +0ms
  TuyAPI Received DATA packet +1ms
Data from device: {
  header: {
    from: 'ebbc025aa0190d3a2cupmr',
    to: 'az1624739893303h7XJq',
    sessionid: 'ebbc025aa0190d3a2cupmr1651728050G0A2vdom',
    moto_id: '',
    type: 'disconnect',
    trace_id: 'ipc_p2p_android_ebbc025aa0190d3a2cupmr_1651728050645',
    path: 'lan'
  },
  msg: {}
}
  TuyAPI SET Payload: +0ms
  TuyAPI {
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   uid: '',
  TuyAPI   t: 1651728102,
  TuyAPI   dps: { '1': 0 }
  TuyAPI } +0ms
randomSet, true
  TuyAPI GET Payload: +684ms
  TuyAPI {
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   t: '1651728103',
  TuyAPI   dps: {},
  TuyAPI   uid: 'ebbc025aa0190d3a2cupmr'
  TuyAPI } +0ms
  TuyAPI GET Payload: +0ms
  TuyAPI {
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   t: '1651728103',
  TuyAPI   dps: {},
  TuyAPI   uid: 'ebbc025aa0190d3a2cupmr'
  TuyAPI } +0ms
  TuyAPI GET Payload: +0ms
  TuyAPI {
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   t: '1651728103',
  TuyAPI   dps: {},
  TuyAPI   uid: 'ebbc025aa0190d3a2cupmr'
  TuyAPI } +0ms
  TuyAPI GET Payload: +0ms
  TuyAPI {
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   t: '1651728103',
  TuyAPI   dps: {},
  TuyAPI   uid: 'ebbc025aa0190d3a2cupmr'
  TuyAPI } +1ms
  TuyAPI SET Payload: +0ms
  TuyAPI {
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   uid: '',
  TuyAPI   t: 1651728102,
  TuyAPI   dps: {
  TuyAPI     '0': true,
  TuyAPI     '1': true,
  TuyAPI     '2': true,
  TuyAPI     '3': true,
  TuyAPI     '4': true,
  TuyAPI     '6': true,
  TuyAPI     '7': true,
  TuyAPI     '8': true,
  TuyAPI     '9': true
  TuyAPI   }
  TuyAPI } +0ms
  TuyAPI Received data: 000055aa0000000f0000000a0000002c00000001683483b1c0730f381ef013cc7fdf16a7181ea1c34d49c2d16295f431b232b7a8719f4dab0000aa55 +11ms
  TuyAPI Received data: U�
  TuyAPI ,h4���s8������MI��b��1�2��q�M��U +0ms
  TuyAPI Parsed: +0ms
  TuyAPI {
  TuyAPI   payload: 'parse data error',
  TuyAPI   leftover: false,
  TuyAPI   commandByte: 10,
  TuyAPI   sequenceN: 15
  TuyAPI } +0ms
  TuyAPI Received DATA packet +1ms
Data from device: parse data error
  TuyAPI SET Payload: +0ms
  TuyAPI {
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   uid: '',
  TuyAPI   t: 1651728102,
  TuyAPI   dps: { '1': 0 }
  TuyAPI } +0ms
  TuyAPI Received data: 000055aa000000100000000a0000002c00000001683483b1c0730f381ef013cc7fdf16a7181ea1c34d49c2d16295f431b232b7a888b56a240000aa55 +6ms
  TuyAPI Received data: U�
  TuyAPI ,h4���s8������MI��b��1�2����j$�U +0ms
  TuyAPI Parsed: +0ms
  TuyAPI {
  TuyAPI   payload: 'parse data error',
  TuyAPI   leftover: false,
  TuyAPI   commandByte: 10,
  TuyAPI   sequenceN: 16
  TuyAPI } +0ms
  TuyAPI Received DATA packet +0ms
Data from device: parse data error
  TuyAPI SET Payload: +0ms
  TuyAPI {
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   uid: '',
  TuyAPI   t: 1651728102,
  TuyAPI   dps: { '1': 0 }
  TuyAPI } +0ms
  TuyAPI Received data: 000055aa000000110000000a0000002c00000001683483b1c0730f381ef013cc7fdf16a7181ea1c34d49c2d16295f431b232b7a82b2342680000aa55000055aa000000120000000a0000002c00000001683483b1c0730f381ef013cc7fdf16a7181ea1c34d49c2d16295f431b232b7a814e83cfd0000aa55 +6ms
  TuyAPI Received data: U�
  TuyAPI ,h4���s8������MI��b��1�2��+#Bh�UU�
  TuyAPI ,h4���s8������MI��b��1�2���<��U +0ms
  TuyAPI Parsed: +0ms
  TuyAPI {
  TuyAPI   payload: 'parse data error',
  TuyAPI   leftover: <Buffer 00 00 55 aa 00 00 00 12 00 00 00 0a 00 00 00 2c 00 00 00 01 68 34 83 b1 c0 73 0f 38 1e f0 13 cc 7f df 16 a7 18 1e a1 c3 4d 49 c2 d1 62 95 f4 31 b2 32 ... 10 more bytes>,
  TuyAPI   commandByte: 10,
  TuyAPI   sequenceN: 17
  TuyAPI } +0ms
  TuyAPI Received DATA packet +1ms
Data from device: parse data error
  TuyAPI SET Payload: +0ms
  TuyAPI {
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   uid: '',
  TuyAPI   t: 1651728102,
  TuyAPI   dps: { '1': 0 }
  TuyAPI } +0ms
  TuyAPI Parsed: +0ms
  TuyAPI {
  TuyAPI   payload: 'parse data error',
  TuyAPI   leftover: false,
  TuyAPI   commandByte: 10,
  TuyAPI   sequenceN: 18
  TuyAPI } +0ms
  TuyAPI Received DATA packet +0ms
Data from device: parse data error
  TuyAPI SET Payload: +0ms
  TuyAPI {
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   uid: '',
  TuyAPI   t: 1651728102,
  TuyAPI   dps: { '1': 0 }
  TuyAPI } +0ms
  TuyAPI Pinging 192.168.8.215 +4s
Error! Timeout waiting for status response from device id: ebbc025aa0190d3a2cupmr
  TuyAPI Received data: 000055aa00000000000000090000000c00000000b051ab030000aa55 +14ms
  TuyAPI Received data: U�	
                                �Q��U +0ms
  TuyAPI Parsed: +0ms
  TuyAPI { payload: false, leftover: false, commandByte: 9, sequenceN: 0 } +0ms
  TuyAPI Pong from 192.168.8.215 +0ms
  TuyAPI Received data: 000055aa00000008000000070000002c00000001683483b1c0730f381ef013cc7fdf16a7181ea1c34d49c2d16295f431b232b7a87e4cda660000aa55 +6ms
  TuyAPI Received data: U,h4���s8������MI��b��1�2��~L�f�U +0ms
  TuyAPI Parsed: +0ms
  TuyAPI {
  TuyAPI   payload: 'parse data error',
  TuyAPI   leftover: false,
  TuyAPI   commandByte: 7,
  TuyAPI   sequenceN: 8
  TuyAPI } +0ms
  TuyAPI Received DATA packet +0ms
Data from device: parse data error
  TuyAPI SET Payload: +0ms
  TuyAPI {
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   uid: '',
  TuyAPI   t: 1651728106,
  TuyAPI   dps: { '1': 0 }
  TuyAPI } +0ms


Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. macOS]
  • OS Version [e.g. 22]
  • Node Version [output of node -v]

Additional context
Add any other context about the problem here.

@truongsinh
Copy link
Author

debug log when app connecting to floodlight

  TuyAPI Received data: 000055aa0000000000000020000006ac0000000026690916c17fadb4aa8ba3eaf3d437fd08ff2a7beca62d0cce99259fd9866a0a07c072aa41d997da1155b518f5ebdebc2a5a966fde1609c3fa57a5552d01325901f8770e691d2476f789292bbb3ffd97fa10f7c8479b52e62580c005f02b4dd629ee05721bc1166bf14d9644f7a56760f78dc60a98b8473d682cff6272da6aa6c842161d03d0909c2e95cecabd1b230a9adb6d7c7040622fff6c178a2bb631a32f130281bdb45d71c28762ff20de6e1444720dab711db96b38100a901a3bc6b8a682097cded2c07fee28367037973b056e94a1e3dfba0d5fc7c49177992f486200713c92c30387c06e70d4d8ce3c6b26b2a73aa24716a585b09c59ec28fcfc79b0624f9ee196c5f335f1f7d8a318cc6c7801538b1e1d1a9f85bbeca3106626fe0ba2f60709bb9ff06d1e97d0923824c70479aacd98a9bff40172acf8c9f62a00993f91c8fbbfcdf68ad46efaf96ea97d2a9fdd26d95fa76cf69753f0c8e032d738f929400003533f07b1688fa8f4567b6ff407565cae570a62d4d44a8558c4c49a5f7d5b25ecb96a48ca9c1be10d6e0dcb8e7c968aa84c0ecdbd3bade9b950ac014f15f97064f5330bcb55dd4a989f840c471d524a695df633a55586b7630bf590e30b73b02a798ee844374e459575165046f787917a1b091de58a391619afca05f5dafe3288b6e62c6d0d92fd1e3649d3436deb693ecf603c6fabefa22fdc5f3c643684274cff5ee76e0bd50a2971f3ce6c3fcf5273b49b4cf8f029cc4b42bec980af30666b30c49961643ebabd2b7c76690193cf29b838d3ee6f5a54b74a60667566f64df10faf72f8273790ce9ff9b14833af41aefe4cb008b2b065a95502966c5f121ce320d135f5b10c094fa0d0cfaee7ba9cccda0e83c861efe7a5a1a50c4110b50e6b5681a49f0361ed0cc340750ded193bce1795046fda223e3b56983461a8f9d2396858ed19edd1a45f62a4880e4629159ff7175c947664a593d7f38ac93b5f3a046ce5fa8e5ce2221754d71b70bd7f7256c2440d74cfbd9a1b0324c342d2a0f9522e942a95486b670fb562571ddf5a1d6740d5c361abef1d51da98a451242c30b90e922fa37029948585374945c9d13848b9807f66b47440a0a7e7d0cecd47d6b858086d808d3b3f039dbf24de56baa370a404838d498495454971b11f1dfeb85d5e5a3655fc6fbff3980229dfec1197037fa3006edaa149eabe44684aa61482984ae9300e836cad2df296da94bc19d3f9f1f7420f080224abc245fff0a5a37adeb95c2008ea298f48dcbe47bd8d4c5f327a2608cf39f0cd401c8dd33026c803a24913ae2b605f140287bb6aea9db0243d2ca4febe55642b5da375ad4d863d214b0c3697a16507e1b3c1b3803e197ed67886dfa5bafafb6712ab987d1a30379effb0dad7d45aa7b130d8300a0a3285a09b77c706d606df71ccb92cbc4e18692922802c09b913dc51eda806af20704c2bb563e93f1f4312d04ac5206e4757ea71a3dd0530aada84e1836156bc3f389793696a2e255eefb01622bf40133a3e2f68757e20fba7e4b3f964747ac58e745d4b632e7f740e2b1675935c7514ed3a7953a026d7c7ff64785b0f669836b866523d06277363417e3c33020e87c647b4c1511edd58e463a8feb081d5330e12a50921d462623b82223ed6693707b7adda2206631ef9eaf2b5b55647133e728ee9e22522129db901338d2aeaaa08af20704c2bb563e93f1f4312d04ac5206e4757ea71a3dd0530aada84e1836156fe079cb5b33a195e31fe11056052e9255549c31d0d5f8f37a92706346e3ff03f82e8797e11a48a5003220e79eee5c2d1b52429a448691c47d0a90ceb71891c2eb00b3639a4c6af26842c38aa3b9e3165d1a5fd25890b6dcf9f43e33cac8690f1133a3e2f68757e20fba7e4b3f964747ac58e745d4b632e7f740e2b1675935c75408c5ba762e61c8184060267c1b54fbad29a5f54fb5fe95c496ad24b58fd6a168fc333e12877a5a7ade5784a7c3841cd508adafdbd11078462a9ae6ee7b2ccff8d9e179504c561a11d70ec54d85befa673f9f383c3e6c2fb45d5dd5381c3549812c225a229c123da8ee115bd91dbaabc17f66baece04db4db9b0e2eabcc216c36043ee9123a0922875750d105f6eddecfff0a5a37adeb95c2008ea298f48dcbe47bd8d4c5f327a2608cf39f0cd401c8d2c4e7b0c25b674b5a273216e053ef4784e65e53c5118b5fcf1d1d72a5871f4c13780b1689f8994c1bcf2103a85bf96a9992eeabef796fa306a46f9db7d6e0bd72c352d0f32b3c030b0d0e892d6ba2fd968fd4135126b75e7d390fc5491154f876aea9db0243d2ca4febe55642b5da375ad4d863d214b0c3697a16507e1b3c1b323de51af1076ba6946f1eeff55a075762673080f0000aa55 +4s
  TuyAPI Received data: U� �&i  ���������7�*{�-
                                               Ι%�نj
  TuyAPI �r�Aٗ�U���޼*Z�o�    ��W�U-2Y�wi$v��)+�?�����G�R�%���+M�)�rk�M�D��g`���
  TuyAPI ��G=h,�br�j��BА�.��ʽ
�q�k8I ��m|p@b/�l�+�1�/���]qb� �nDr
_�đw�/Hbq<����np���<k&��:�G����Y�(��y�bO����5��أ�lxS�����f&�
                                                            ��  ���m�В8$�y�͘���r����*�?��������n��n�}*��&�_�l��S���2�8�)@S?�h���V{o�V\�W
ˎ|���Lͽ;��P�O�pd�3}[%�jHʜ
                  �U�J���
                         GRJi]�3�U��c
                                     ���
��6I�Cm�i>�`<o��/�_<d6�'L�^�n           s�*y��D7NE�uPF���z      9�����2���,m
                             �
  TuyAPI )q��l?�Rs��L��)�KB�ɀ�0fk0ęad>��+|vi��)�8��oZT�J`fuf�M��r�'7�Ο��H3�A��L��e�U�l_� �5��
                                                                                                O��Ϯ纜����a�祡�
                                                                                                               A�kV���a�
tϽ�BҠ�R.�*�Hkg�bW�Zg@��a��Qژ�Q$,0��/�p)���7IE��8H��f�t@������Gָm��;?��$�V��p���I��EIq���]^Z6U�o��)����nڡI�DhJ���J�0�l�-�ڔ�����$��E��z޹\�)�HܾG��L_2z�9��@��0&��I�+`_��jꝰ$=,���Ud+]�u�M�=!K
                                                                   6��e����>~�x�ߥ���g��}07������Z��0�0
  TuyAPI 
  TuyAPI 2���w���q̹,�Ni)"�,  ��Q��� pL+�c�?C�J� nGW�q��0�ڄ�aV�?8��ij.%^�"�@:>/hu~ ����dtzŎt]Kc.t+u�\u�:yS�&���dx[f�6�_�7�'4n?�?��y~��P"y���ѵ$)�HiGЩbb;�">�i7���"c���VG>r���%"��3�*� pL+�c�?C�J� nGW�q��0�ڄ�aV����:^1�`R�%UI�
                              �q�.�
                                   69�Ư&�,8�;�1eѥ�%�
                                                    mϟC�<����:>/hu~ ����dtzŎt]Kc.t+u�\u@�[�b���g��O�Қ_T�_�\Ij�KX�j��_n����z޹\�)�HܾG��L_2z�9��@�,N{��a�p�T�[�s������E��S��T��%�)�#ڎ���۪��k���M������`C�#��(uu
                             %�t��s!n>�xNe�<Q�����*Xq��7��h������:�����.����0jF��}n
                                                                                   �,5-2��0���ֺ/�h�A5ku�Ӑ�T�O�jꝰ$=,���Ud+]�u�M�=!K
             6��e���#�Q�v�iF���U�uv&�U +1ms
  TuyAPI Parsed: +0ms
  TuyAPI {
  TuyAPI   payload: {
  TuyAPI     header: {
  TuyAPI       from: 'ebbc025aa0190d3a2cupmr',
  TuyAPI       to: 'az1624739893303h7XJq',
  TuyAPI       sessionid: 'ebbc025aa0190d3a2cupmr1651728932OjbcifvV',
  TuyAPI       moto_id: '',
  TuyAPI       type: 'answer',
  TuyAPI       trace_id: 'ipc_p2p_android_ebbc025aa0190d3a2cupmr_1651728932542',
  TuyAPI       path: 'lan'
  TuyAPI     },
  TuyAPI     msg: {
  TuyAPI       sdp: 'v=0\r\n' +
  TuyAPI         'o=- 1651728931 1 IN IP4 127.0.0.1\r\n' +
  TuyAPI         's=-\r\n' +
  TuyAPI         't=0 0\r\n' +
  TuyAPI         'a=group:BUNDLE tuya0\r\n' +
  TuyAPI         'a=msid-semantic: WMS ebbc025aa0190d3a2cupmr1651728932OjbcifvV\r\n' +
  TuyAPI         'm=application 9 tuya 6001\r\n' +
  TuyAPI         'c=IN IP4 0.0.0.0\r\n' +
  TuyAPI         'a=rtcp:9 IN IP4 0.0.0.0\r\n' +
  TuyAPI         'a=ice-ufrag:EDXb\r\n' +
  TuyAPI         'a=ice-pwd:JFWzzP9VkLgYaoa9bhXcY0Ug\r\n' +
  TuyAPI         'a=ice-options:trickle\r\n' +
  TuyAPI         'a=aes-key:0090e060007a0400000000b000a040c0\r\n' +
  TuyAPI         'a=mid:tuya0\r\n' +
  TuyAPI         'a=rtpmap:6001 AES/KCP 3\r\n' +
  TuyAPI         'a=ssrc:0 cname:ebbc025aa0190d3a2cupmr\r\n',
  TuyAPI       token: [Array],
  TuyAPI       udp_token: [Object],
  TuyAPI       tcp_token: [Object]
  TuyAPI     }
  TuyAPI   },
  TuyAPI   leftover: false,
  TuyAPI   commandByte: 32,
  TuyAPI   sequenceN: 0
  TuyAPI } +0ms
  TuyAPI Received DATA packet +1ms
Data from device: {
  header: {
    from: 'ebbc025aa0190d3a2cupmr',
    to: 'az1624739893303h7XJq',
    sessionid: 'ebbc025aa0190d3a2cupmr1651728932OjbcifvV',
    moto_id: '',
    type: 'answer',
    trace_id: 'ipc_p2p_android_ebbc025aa0190d3a2cupmr_1651728932542',
    path: 'lan'
  },
  msg: {
    sdp: 'v=0\r\n' +
      'o=- 1651728931 1 IN IP4 127.0.0.1\r\n' +
      's=-\r\n' +
      't=0 0\r\n' +
      'a=group:BUNDLE tuya0\r\n' +
      'a=msid-semantic: WMS ebbc025aa0190d3a2cupmr1651728932OjbcifvV\r\n' +
      'm=application 9 tuya 6001\r\n' +
      'c=IN IP4 0.0.0.0\r\n' +
      'a=rtcp:9 IN IP4 0.0.0.0\r\n' +
      'a=ice-ufrag:EDXb\r\n' +
      'a=ice-pwd:JFWzzP9VkLgYaoa9bhXcY0Ug\r\n' +
      'a=ice-options:trickle\r\n' +
      'a=aes-key:0090e060007a0400000000b000a040c0\r\n' +
      'a=mid:tuya0\r\n' +
      'a=rtpmap:6001 AES/KCP 3\r\n' +
      'a=ssrc:0 cname:ebbc025aa0190d3a2cupmr\r\n',
    token: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    udp_token: {
      urls: [Array],
      credential: 'GE7tmpS8+jjwQFXIlzJcpUm5TIo=',
      domain: 'cowboy-seven.tuyaus.com',
      sessionId: 'ebbc025aa0190d3a2cupmr16517289336042n7e4f',
      username: '1651732533:ebbc025aa0190d3a2cupmr'
    },
    tcp_token: {
      urls: [Array],
      credential: 'GE7tmpS8+jjwQFXIlzJcpUm5TIo=',
      domain: 'cowboy-seven.tuyaus.com',
      sessionId: 'ebbc025aa0190d3a2cupmr165172893360445hh3b',
      username: '1651732533:ebbc025aa0190d3a2cupmr'
    }
  }
}
  TuyAPI SET Payload: +1ms
  TuyAPI {
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   uid: '',
  TuyAPI   t: 1651728933,
  TuyAPI   dps: { '1': 0 }
  TuyAPI } +0ms
  TuyAPI Received data: 000055aa00000000000000200000015c0000000026690916c17fadb4aa8ba3eaf3d437fd08ff2a7beca62d0cce99259fd9866a0a07c072aa41d997da1155b518f5ebdebc2a5a966fde1609c3fa57a5552d01325901f8770e691d2476f789292bbb3ffd97fa10f7c8479b52e62580c005f02b4dd629ee05721bc1166bf14d9644f7a56760f78dc60a98b8473d682cff6272da6aa6c842161d03d0909c2e95cecabd1b230a3ef71ccca1f1140f102a32d8203d0cb05998fbe78ed2120a2f8b96009534d3ba22e26c55dfef5e7b172df250369111b6467a6ec93393e93b5a5de8e27e1706a7f25ef0b67c660e7f7c3ae779eff102f33729f05f02f6bbf16c9809d714a2ff0973f20b6f0f4175f9a63b0c429001bcb188bbe29d5428ef726c6e7ee6fc1f337b51be565123a4d735b859fff74b5b9c29208a55cc33e084fb95c243648544689f385607327499d2186e2da10da6fbfabecf47d4343961634b902e32de041186fb8a325d3d0000aa55 +19ms
  TuyAPI Received data: U� \&i  ���������7�*{�-
                                               Ι%�نj
  TuyAPI �r�Aٗ�U���޼*Z�o�    ��W�U-2Y�wi$v��)+�?�����G�R�%���+M�)�rk�M�D��g`���
  TuyAPI ��G=h,�br�j��BА�.��ʽ
TuyAPI >�̡�*2� =
               �Y����
  TuyAPI /���4Ӻ"�lU��^{-�P6��Fzn�3��;Z]��~��^�|f|:�y���7)�_���l�        ���     s�
                                                                                  oAu��;
                                                                                        B������T(�rln~��3{Q�VQ#��5�Y�����G�49acK�.2����2]=�U +0ms-�
  TuyAPI Parsed: +0ms
  TuyAPI {
  TuyAPI   payload: {
  TuyAPI     header: {
  TuyAPI       from: 'ebbc025aa0190d3a2cupmr',
  TuyAPI       to: 'az1624739893303h7XJq',
  TuyAPI       sessionid: 'ebbc025aa0190d3a2cupmr1651728932OjbcifvV',
  TuyAPI       moto_id: '',
  TuyAPI       type: 'candidate',
  TuyAPI       trace_id: 'ipc_p2p_android_ebbc025aa0190d3a2cupmr_1651728932542',
  TuyAPI       path: 'lan'
  TuyAPI     },
  TuyAPI     msg: {
  TuyAPI       candidate: 'a=candidate:1950256051 1 UDP 2130706431 192.168.8.215 40739 typ host\r\n'
  TuyAPI     }
  TuyAPI   },
  TuyAPI   leftover: false,
  TuyAPI   commandByte: 32,
  TuyAPI   sequenceN: 0
  TuyAPI } +0ms
  TuyAPI Received DATA packet +1ms
Data from device: {
  header: {
    from: 'ebbc025aa0190d3a2cupmr',
    to: 'az1624739893303h7XJq',
    sessionid: 'ebbc025aa0190d3a2cupmr1651728932OjbcifvV',
    moto_id: '',
    type: 'candidate',
    trace_id: 'ipc_p2p_android_ebbc025aa0190d3a2cupmr_1651728932542',
    path: 'lan'
  },
  msg: {
    candidate: 'a=candidate:1950256051 1 UDP 2130706431 192.168.8.215 40739 typ host\r\n'
  }
}
  TuyAPI SET Payload: +0ms
  TuyAPI {
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   uid: '',
  TuyAPI   t: 1651728933,
  TuyAPI   dps: { '1': 0 }
  TuyAPI } +0ms
  TuyAPI Received data: 000055aa00000000000000200000015c0000000026690916c17fadb4aa8ba3eaf3d437fd08ff2a7beca62d0cce99259fd9866a0a07c072aa41d997da1155b518f5ebdebc2a5a966fde1609c3fa57a5552d01325901f8770e691d2476f789292bbb3ffd97fa10f7c8479b52e62580c005f02b4dd629ee05721bc1166bf14d9644f7a56760f78dc60a98b8473d682cff6272da6aa6c842161d03d0909c2e95cecabd1b230a3ef71ccca1f1140f102a32d8203d0cb05998fbe78ed2120a2f8b96009534d3ba22e26c55dfef5e7b172df250369111b6467a6ec93393e93b5a5de8e27e1706a7f25ef0b67c660e7f7c3ae779eff102f33729f05f02f6bbf16c9809d714a2ff0973f20b6f0f4175f9a63b0c429001bcb110fbdf8a2592bb015c7e31af9e1f1105e3562f837bc7d069515c9f09a650e53a5bd5d178689036a1f6cb302c600903fab80953185113b158a0b5a9e640f45ebdd159c6bf1fb00382665996918eff7ce076ef434c0000aa55 +28ms
  TuyAPI Received data: U� \&i  ���������7�*{�-
                                               Ι%�نj
  TuyAPI �r�Aٗ�U���޼*Z�o�    ��W�U-2Y�wi$v��)+�?�����G�R�%���+M�)�rk�M�D��g`���
  TuyAPI ��G=h,�br�j��BА�.��ʽ
TuyAPI >�̡�*2� =
               �Y����
  TuyAPI /���4Ӻ"�lU��^{-�P6��Fzn�3��;Z]��~��^�|f|:�y���7)�_���l�        ���     s�
                                                                                  oAu��;
                                                                                        B����ߊ%��\~1���V/�{��iQ\�  �P�:[��xh�6���0,`        ��  SQ�X����@�^��Yƿ��fY����|�v�CL�U +0ms
  TuyAPI Parsed: +0ms
  TuyAPI {
  TuyAPI   payload: {
  TuyAPI     header: {
  TuyAPI       from: 'ebbc025aa0190d3a2cupmr',
  TuyAPI       to: 'az1624739893303h7XJq',
  TuyAPI       sessionid: 'ebbc025aa0190d3a2cupmr1651728932OjbcifvV',
  TuyAPI       moto_id: '',
  TuyAPI       type: 'candidate',
  TuyAPI       trace_id: 'ipc_p2p_android_ebbc025aa0190d3a2cupmr_1651728932542',
  TuyAPI       path: 'lan'
  TuyAPI     },
  TuyAPI     msg: {
  TuyAPI       candidate: 'a=candidate:1169848590 1 UDP 1694498815 73.225.253.232 40739 typ srflx\r\n'
  TuyAPI     }
  TuyAPI   },
  TuyAPI   leftover: false,
  TuyAPI   commandByte: 32,
  TuyAPI   sequenceN: 0
  TuyAPI } +0ms
  TuyAPI Received DATA packet +1ms
Data from device: {
  header: {
    from: 'ebbc025aa0190d3a2cupmr',
    to: 'az1624739893303h7XJq',
    sessionid: 'ebbc025aa0190d3a2cupmr1651728932OjbcifvV',
    moto_id: '',
    type: 'candidate',
    trace_id: 'ipc_p2p_android_ebbc025aa0190d3a2cupmr_1651728932542',
    path: 'lan'
  },
  msg: {
    candidate: 'a=candidate:1169848590 1 UDP 1694498815 73.225.253.232 40739 typ srflx\r\n'
  }
}
  TuyAPI SET Payload: +0ms
  TuyAPI {
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   uid: '',
  TuyAPI   t: 1651728933,
  TuyAPI   dps: { '1': 0 }
  TuyAPI } +0ms
  TuyAPI Received data: 000055aa00000000000000200000015c0000000026690916c17fadb4aa8ba3eaf3d437fd08ff2a7beca62d0cce99259fd9866a0a07c072aa41d997da1155b518f5ebdebc2a5a966fde1609c3fa57a5552d01325901f8770e691d2476f789292bbb3ffd97fa10f7c8479b52e62580c005f02b4dd629ee05721bc1166bf14d9644f7a56760f78dc60a98b8473d682cff6272da6aa6c842161d03d0909c2e95cecabd1b230a3ef71ccca1f1140f102a32d8203d0cb05998fbe78ed2120a2f8b96009534d3ba22e26c55dfef5e7b172df250369111b6467a6ec93393e93b5a5de8e27e1706a7f25ef0b67c660e7f7c3ae779eff102f33729f05f02f6bbf16c9809d714a2ff0973f20b6f0f4175f9a63b0c429001bcb188bbe29d5428ef726c6e7ee6fc1f337be2f3643fa60f87ccade228d46b77a442bd20777d518f48deba970d51484fc2077cb48790ddc12757f7bc2f6e23d56d2cc31a1187b6480c520df9af2f54a26111cba8b7f80000aa55 +142ms
  TuyAPI Received data: U� \&i  ���������7�*{�-
                                               Ι%�نj
  TuyAPI �r�Aٗ�U���޼*Z�o�    ��W�U-2Y�wi$v��)+�?�����G�R�%���+M�)�rk�M�D��g`���
  TuyAPI ��G=h,�br�j��BА�.��ʽ
TuyAPI >�̡�*2� =
               �Y����
  TuyAPI /���4Ӻ"�lU��^{-�P6��Fzn�3��;Z]��~��^�|f|:�y���7)�_���l�        ���     s�
                                                                                  oAu��;
                                                                                        B������T(�rln~��3{��d?��̭�(�kQHO�|�����'W��/n#�m,���H
��/T�a˨���U +0ms        R
  TuyAPI Parsed: +0ms
  TuyAPI {
  TuyAPI   payload: {
  TuyAPI     header: {
  TuyAPI       from: 'ebbc025aa0190d3a2cupmr',
  TuyAPI       to: 'az1624739893303h7XJq',
  TuyAPI       sessionid: 'ebbc025aa0190d3a2cupmr1651728932OjbcifvV',
  TuyAPI       moto_id: '',
  TuyAPI       type: 'candidate',
  TuyAPI       trace_id: 'ipc_p2p_android_ebbc025aa0190d3a2cupmr_1651728932542',
  TuyAPI       path: 'lan'
  TuyAPI     },
  TuyAPI     msg: {
  TuyAPI       candidate: 'a=candidate:1970884208 1 UDP 16777215 54.148.238.22 50158 typ relay\r\n'
  TuyAPI     }
  TuyAPI   },
  TuyAPI   leftover: false,
  TuyAPI   commandByte: 32,
  TuyAPI   sequenceN: 0
  TuyAPI } +0ms
  TuyAPI Received DATA packet +1ms
Data from device: {
  header: {
    from: 'ebbc025aa0190d3a2cupmr',
    to: 'az1624739893303h7XJq',
    sessionid: 'ebbc025aa0190d3a2cupmr1651728932OjbcifvV',
    moto_id: '',
    type: 'candidate',
    trace_id: 'ipc_p2p_android_ebbc025aa0190d3a2cupmr_1651728932542',
    path: 'lan'
  },
  msg: {
    candidate: 'a=candidate:1970884208 1 UDP 16777215 54.148.238.22 50158 typ relay\r\n'
  }
}
  TuyAPI SET Payload: +0ms
  TuyAPI {
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   uid: '',
  TuyAPI   t: 1651728933,
  TuyAPI   dps: { '1': 0 }
  TuyAPI } +0ms
  TuyAPI Received data: 000055aa00000000000000200000011c0000000026690916c17fadb4aa8ba3eaf3d437fd08ff2a7beca62d0cce99259fd9866a0a07c072aa41d997da1155b518f5ebdebc2a5a966fde1609c3fa57a5552d01325901f8770e691d2476f789292bbb3ffd97fa10f7c8479b52e62580c005f02b4dd629ee05721bc1166bf14d9644f7a56760f78dc60a98b8473d682cff6272da6aa6c842161d03d0909c2e95cecabd1b230a3ef71ccca1f1140f102a32d8203d0cb05998fbe78ed2120a2f8b96009534d3ba22e26c55dfef5e7b172df250369111b6467a6ec93393e93b5a5de8e27e1706a7f25ef0b67c660e7f7c3ae779eff102f33729f05f02f6bbf16c9809d714a2ff0973f20b6f0f4175f9a63b0c429001bcb1e4febf46edad1a719652e62b060306ec723fbe530000aa55 +13ms
  TuyAPI Received data: U� &i   ���������7�*{�-
                                               Ι%�نj
  TuyAPI �r�Aٗ�U���޼*Z�o�    ��W�U-2Y�wi$v��)+�?�����G�R�%���+M�)�rk�M�D��g`���
  TuyAPI ��G=h,�br�j��BА�.��ʽ
TuyAPI >�̡�*2� =
               �Y����
  TuyAPI /���4Ӻ"�lU��^{-�P6��Fzn�3��;Z]��~��^�|f|:�y���7)�_���l�        ���     s�
                                                                                  oAu��;
                                                                                        B������F��q�R�+�r?�S�U +0ms
  TuyAPI Parsed: +1ms
  TuyAPI {
  TuyAPI   payload: {
  TuyAPI     header: {
  TuyAPI       from: 'ebbc025aa0190d3a2cupmr',
  TuyAPI       to: 'az1624739893303h7XJq',
  TuyAPI       sessionid: 'ebbc025aa0190d3a2cupmr1651728932OjbcifvV',
  TuyAPI       moto_id: '',
  TuyAPI       type: 'candidate',
  TuyAPI       trace_id: 'ipc_p2p_android_ebbc025aa0190d3a2cupmr_1651728932542',
  TuyAPI       path: 'lan'
  TuyAPI     },
  TuyAPI     msg: { candidate: '' }
  TuyAPI   },
  TuyAPI   leftover: false,
  TuyAPI   commandByte: 32,
  TuyAPI   sequenceN: 0
  TuyAPI } +0ms
  TuyAPI Received DATA packet +0ms
Data from device: {
  header: {
    from: 'ebbc025aa0190d3a2cupmr',
    to: 'az1624739893303h7XJq',
    sessionid: 'ebbc025aa0190d3a2cupmr1651728932OjbcifvV',
    moto_id: '',
    type: 'candidate',
    trace_id: 'ipc_p2p_android_ebbc025aa0190d3a2cupmr_1651728932542',
    path: 'lan'
  },
  msg: { candidate: '' }
}
  TuyAPI SET Payload: +0ms
  TuyAPI {
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   uid: '',
  TuyAPI   t: 1651728933,
  TuyAPI   dps: { '1': 0 }
  TuyAPI } +0ms
Error! Timeout waiting for status response from device id: ebbc025aa0190d3a2cupmr
  TuyAPI Received data: 000055aa00000017000000070000002c00000001683483b1c0730f381ef013cc7fdf16a7181ea1c34d49c2d16295f431b232b7a88766fde90000aa55 +1s
  TuyAPI Received data: U�,h4���s8������MI��b��1�2���f���U +0ms
  TuyAPI Parsed: +0ms
  TuyAPI {
  TuyAPI   payload: 'parse data error',
  TuyAPI   leftover: false,
  TuyAPI   commandByte: 7,
  TuyAPI   sequenceN: 23
  TuyAPI } +0ms
  TuyAPI Received DATA packet +0ms
Data from device: parse data error
  TuyAPI SET Payload: +1ms
  TuyAPI {
  TuyAPI   devId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   gwId: 'ebbc025aa0190d3a2cupmr',
  TuyAPI   uid: '',
  TuyAPI   t: 1651728935,
  TuyAPI   dps: { '1': 0 }
  TuyAPI } +0ms
  TuyAPI Pingi

@truongsinh
Copy link
Author

truongsinh commented May 5, 2022

I was able to do tcpdump (this is filter from my smartphone to device ,port 6668 only killall tcpdump; tcpdump -XX dst 192.168.8.214 and port 6668)

Normal heartbeat:

06:56:35.834147 IP Pixel-4.lan.43542 > 192.168.8.214.6668: Flags [P.], seq 381:405, ack 554, win 411, options [nop,nop,TS val 3532227252 ecr 15192770], length 24
	0x0000:  a09f 1076 6d66 4a97 05fb 8855 0800 4500  ...vmfJ....U..E.
	0x0010:  004c d7f6 4000 4006 d016 c0a8 0878 c0a8  .L..@[email protected]..
	0x0020:  08d6 aa16 1a0c 72a8 2ebe 570b 0401 8018  ......r...W.....
	0x0030:  019b 871f 0000 0101 080a d289 82b4 00e7  ................
	0x0040:  d2c2 0000 55aa 0000 0000 0000 0009 0000  ....U...........
	0x0050:  0008 6593 0c22 0000 aa55                 ..e.."...U
06:56:35.842128 IP Pixel-4.lan.43542 > 192.168.8.214.6668: Flags [.], ack 582, win 411, options [nop,nop,TS val 3532227260 ecr 15202771], length 0
	0x0000:  a09f 1076 6d66 4a97 05fb 8855 0800 4500  ...vmfJ....U..E.
	0x0010:  0034 d7f7 4000 4006 d02d c0a8 0878 c0a8  .4..@[email protected]..
	0x0020:  08d6 aa16 1a0c 72a8 2ed6 570b 041d 8010  ......r...W.....
	0x0030:  019b d1b8 0000 0101 080a d289 82bc 00e7  ................
	0x0040:  f9d3                                     ..

When turn light on:

06:57:10.084538 IP Pixel-4.lan.43542 > 192.168.8.214.6668: Flags [P.], seq 477:548, ack 666, win 411, options [nop,nop,TS val 3532261502 ecr 15232777], length 71
	0x0000:  a09f 1076 6d66 4a97 05fb 8855 0800 4500  ...vmfJ....U..E.
	0x0010:  007b d7fe 4000 4006 cfdf c0a8 0878 c0a8  .{..@[email protected]..
	0x0020:  08d6 aa16 1a0c 72a8 2f1e 570b 0471 8018  ......r./.W..q..
	0x0030:  019b ae34 0000 0101 080a d28a 087e 00e8  ...4.........~..
	0x0040:  6f09 0000 55aa 0000 0619 0000 000d 0000  o...U...........
	0x0050:  0037 332e 3300 0000 0000 0000 2a00 0e01  .73.3.......*...
	0x0060:  80b1 1efa 4cf2 e878 755e 9189 82dd 3c27  ....L..xu^....<'
	0x0070:  4cfb 4d7f 6649 fc17 de82 3cde 005a 4f72  L.M.fI....<..ZOr
	0x0080:  d667 c149 3d00 00aa 55                   .g.I=...U
06:57:10.089916 IP Pixel-4.lan.43542 > 192.168.8.214.6668: Flags [.], ack 694, win 411, options [nop,nop,TS val 3532261508 ecr 15237021], length 0
	0x0000:  a09f 1076 6d66 4a97 05fb 8855 0800 4500  ...vmfJ....U..E.
	0x0010:  0034 d7ff 4000 4006 d025 c0a8 0878 c0a8  .4..@.@..%...x..
	0x0020:  08d6 aa16 1a0c 72a8 2f65 570b 048d 8010  ......r./eW.....
	0x0030:  019b c526 0000 0101 080a d28a 0884 00e8  ...&............
	0x0040:  7f9d                                     ..
06:57:10.276824 IP Pixel-4.lan.43542 > 192.168.8.214.6668: Flags [.], ack 785, win 411, options [nop,nop,TS val 3532261695 ecr 15237209], length 0
	0x0000:  a09f 1076 6d66 4a97 05fb 8855 0800 4500  ...vmfJ....U..E.
	0x0010:  0034 d800 4000 4006 d024 c0a8 0878 c0a8  .4..@.@..$...x..
	0x0020:  08d6 aa16 1a0c 72a8 2f65 570b 04e8 8010  ......r./eW.....
	0x0030:  019b c354 0000 0101 080a d28a 093f 00e8  ...T.........?..
	0x0040:  8059                                     .Y

When turn light off:

06:57:28.474305 IP Pixel-4.lan.43542 > 192.168.8.214.6668: Flags [P.], seq 572:643, ack 813, win 411, options [nop,nop,TS val 3532279892 ecr 15247213], length 71
	0x0000:  a09f 1076 6d66 4a97 05fb 8855 0800 4500  ...vmfJ....U..E.
	0x0010:  007b d803 4000 4006 cfda c0a8 0878 c0a8  .{..@[email protected]..
	0x0020:  08d6 aa16 1a0c 72a8 2f7d 570b 0504 8018  ......r./}W.....
	0x0030:  019b 9549 0000 0101 080a d28a 5054 00e8  ...I........PT..
	0x0040:  a76d 0000 55aa 0000 061a 0000 000d 0000  .m..U...........
	0x0050:  0037 332e 3300 0000 0000 0000 2b00 0e01  .73.3.......+...
	0x0060:  806b 42c0 11d9 0dc6 22dd d492 7fe2 9de5  .kB.....".......
	0x0070:  89a6 bf09 3518 41d6 1373 5c6a c9c3 dba7  ....5.A..s\j....
	0x0080:  ffc4 35cc 6c00 00aa 55                   ..5.l...U
06:57:28.478279 IP Pixel-4.lan.43542 > 192.168.8.214.6668: Flags [.], ack 841, win 411, options [nop,nop,TS val 3532279896 ecr 15255411], length 0
	0x0000:  a09f 1076 6d66 4a97 05fb 8855 0800 4500  ...vmfJ....U..E.
	0x0010:  0034 d804 4000 4006 d020 c0a8 0878 c0a8  .4..@[email protected]..
	0x0020:  08d6 aa16 1a0c 72a8 2fc4 570b 0520 8010  ......r./.W.....
	0x0030:  019b 348a 0000 0101 080a d28a 5058 00e8  ..4.........PX..
	0x0040:  c773                                     .s
06:57:28.573893 IP Pixel-4.lan.43542 > 192.168.8.214.6668: Flags [.], ack 932, win 411, options [nop,nop,TS val 3532279992 ecr 15255505], length 0
	0x0000:  a09f 1076 6d66 4a97 05fb 8855 0800 4500  ...vmfJ....U..E.
	0x0010:  0034 d805 4000 4006 d01f c0a8 0878 c0a8  .4..@[email protected]..
	0x0020:  08d6 aa16 1a0c 72a8 2fc4 570b 057b 8010  ......r./.W..{..
	0x0030:  019b 3371 0000 0101 080a d28a 50b8 00e8  ..3q........P...
	0x0040:  c7d1                                     ..



@truongsinh
Copy link
Author

when using protocal version 3.3, I still get 'Data from device: json obj data unvalid', but with a little bit bruteforce

  device.get({dps: 138}).then(data => console.log("get d 138", data), (e) => {console.log(`e get`, e)});

I was able to deduce:

  // '138': toggle, light on off
  // '204': toggle, siren on off

This works for both get and set.

@ErrorErrorError
Copy link

Any update in this? I'm trying to get to work with it locally too

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants