TuyaAPI / cli

🔧 A CLI for Tuya devices
MIT License
262 stars 44 forks source link

"tuya-cli get" returns "undefined" #27

Closed jezzaaa closed 4 years ago

jezzaaa commented 4 years ago

Hi, trying to get this working with a bulb with firmware v1.0.5 (proto v3.3). I can set to true or false, as indicated by the DEBUG output, but the result from tuya-cli always shows "undefined". If I run the demo that toggles the state, it says it's changing from undefined to undefined.

$ DEBUG="" tuya-cli get --id 572757322cf432269a18
undefined
$ DEBUG="*" tuya-cli get --id 572757322cf432269a18
  TuyAPI Finding missing IP undefined or ID 572757322cf432269a18 +0ms
  TuyAPI Received UDP message. +5s
  TuyAPI UDP data: +19ms
  TuyAPI { payload:
  TuyAPI    { ip: '192.168.1.89',
  TuyAPI      gwId: '572757322cf432269a18',
  TuyAPI      active: 2,
  TuyAPI      ability: 0,
  TuyAPI      mode: 0,
  TuyAPI      encrypt: true,
  TuyAPI      productKey: '4kheilyfiyazqpda',
  TuyAPI      version: '3.3' },
  TuyAPI   leftover: false,
  TuyAPI   commandByte: 19,
  TuyAPI   sequenceN: 0 } +0ms
  TuyAPI Connecting to 192.168.1.89... +32ms
  TuyAPI Socket connected. +20ms
  TuyAPI GET Payload: +3ms
  TuyAPI { gwId: '572757322cf432269a18', devId: '572757322cf432269a18' } +0ms
  TuyAPI Received data: 000055aa000000010000000a000000bc00000000fe69584f50dd7df21f8765abd18425e27a3d78dbf479ce5d3ace084aa1132bc9ba849c8af24ae0237ad75028dd11bd4ed7c56cddf42da77b2db53cdaeacf4ccb6de86f94d60f3ae2ad2744d586659d9299437d11cf73a3af152d937b64813e0e049fd318b3a663c94d6d26545626810779b1c6b3fa334a2cb6449a0663323408bcc3497c947c2b2707cbc479dac24032526a5600f7749f8ac3ef13a8f3b784d494ef07da10f101a9b678069c9c4cb5f4fc6408c80000aa55 +58ms
  TuyAPI Parsed: +4ms
  TuyAPI { payload:
  TuyAPI    { devId: '572757322cf432269a18',
  TuyAPI      dps:
  TuyAPI       { '20': true,
  TuyAPI         '21': 'white',
  TuyAPI         '22': 150,
  TuyAPI         '23': 188,
  TuyAPI         '24': '00180389003c',
  TuyAPI         '25': '04464602007803e803e800000000464602007803e8000a00000000' } },
  TuyAPI   leftover: false,
  TuyAPI   commandByte: 10,
  TuyAPI   sequenceN: 1 } +0ms
  TuyAPI GET Payload: +6ms
  TuyAPI { gwId: '572757322cf432269a18', devId: '572757322cf432269a18' } +1ms
  TuyAPI Received data: 000055aa0000000000000008000000cb00000000332e33000000000002e1c300000001fe69584f50dd7df21f8765abd18425e27a3d78dbf479ce5d3ace084aa1132bc9ba849c8af24ae0237ad75028dd11bd4ed7c56cddf42da77b2db53cdaeacf4ccb6de86f94d60f3ae2ad2744d586659d9299437d11cf73a3af152d937b64813e0e049fd318b3a663c94d6d26545626810779b1c6b3fa334a2cb6449a0663323408bcc3497c947c2b2707cbc479dac24032526a5600f7749f8ac3ef13a8f3b784d47ac807110577b79b17f844561dc469bed48876f80000aa55 +4ms
  TuyAPI Parsed: +3ms
  TuyAPI { payload:
  TuyAPI    { devId: '572757322cf432269a18',
  TuyAPI      dps:
  TuyAPI       { '20': true,
  TuyAPI         '21': 'white',
  TuyAPI         '22': 150,
  TuyAPI         '23': 188,
  TuyAPI         '24': '00180389003c',
  TuyAPI         '25': '04464602007803e803e800000000464602007803e8000a00000000' },
  TuyAPI      t: 94706 },
  TuyAPI   leftover: false,
  TuyAPI   commandByte: 8,
  TuyAPI   sequenceN: 0 } +0ms
  TuyAPI Received data: 000055aa000000020000000a000000bc00000000fe69584f50dd7df21f8765abd18425e27a3d78dbf479ce5d3ace084aa1132bc9ba849c8af24ae0237ad75028dd11bd4ed7c56cddf42da77b2db53cdaeacf4ccb6de86f94d60f3ae2ad2744d586659d9299437d11cf73a3af152d937b64813e0e049fd318b3a663c94d6d26545626810779b1c6b3fa334a2cb6449a0663323408bcc3497c947c2b2707cbc479dac24032526a5600f7749f8ac3ef13a8f3b784d494ef07da10f101a9b678069c9c4cb5f4d69fe4e70000aa55 +44ms
  TuyAPI Parsed: +1ms
  TuyAPI { payload:
  TuyAPI    { devId: '572757322cf432269a18',
  TuyAPI      dps:
  TuyAPI       { '20': true,
  TuyAPI         '21': 'white',
  TuyAPI         '22': 150,
  TuyAPI         '23': 188,
  TuyAPI         '24': '00180389003c',
  TuyAPI         '25': '04464602007803e803e800000000464602007803e8000a00000000' } },
  TuyAPI   leftover: false,
  TuyAPI   commandByte: 10,
  TuyAPI   sequenceN: 2 } +0ms
  TuyAPI Disconnect +2ms
undefined
  TuyAPI Socket closed: 192.168.1.89 +5ms
codetheweb commented 4 years ago

Looks like your device doesn't have a boolean property at index 1, which is what the get command retrieves by default. Try adding a -a or --all flag to the get command to retrieve all device properties.

jezzaaa commented 4 years ago
$ tuya-cli get --id 572757322cf432269a18 -a
{ devId: '572757322cf432269a18',
  dps:
   { '20': true,
     '21': 'white',
     '22': 150,
     '23': 44,
     '24': '00180389003c',
     '25': '04464602007803e803e800000000464602007803e8000a00000000' } }

OK, so that means I need to use --dps 20?

$ tuya-cli get --id 572757322cf432269a18 --dps 20
true
codetheweb commented 4 years ago

Yeah, that looks right.