jasonacox / tinytuya

Python API for Tuya WiFi smart devices using a direct local area network (LAN) connection or the cloud (TuyaCloud API).
MIT License
923 stars 165 forks source link

There is no problem reading attribute values in the 3.4 gateway, but it is not possible to write attribute values, which has no effect. How should I handle this? #309

Closed 13878731379 closed 1 year ago

13878731379 commented 1 year ago

This is my code:

tinytuya.set_debug(True)
gw = tinytuya.Device('6c7b41856c9c9e4db5yx7j', address="192.168.3.16", local_key="f5a743888c4b3658", persist=False,
                         version=3.4)
print('GW IP found:', gw.address)

zigbee1 = tinytuya.OutletDevice('6cf5f56cee35fbf905da45', cid='70b3d52b600132b7', parent=gw)
print('GW IP found:', zigbee1.status())
zigbee1.turn_off(1)
print('GW IP found:', zigbee1.status())

This is a log:

GW IP found: 192.168.3.16
DEBUG:TinyTuya [1.10.2]

DEBUG:status() entry (dev_type is v3.4)
DEBUG:building command 10 payload=b'{"gwId":"6c7b41856c9c9e4db5yx7j","devId":"6cf5f56cee35fbf905da45","uid":"6cf5f56cee35fbf905da45","t":"1679547942","cid":"70b3d52b600132b7"}'
DEBUG:sending payload quick
DEBUG:final payload: b'0123456789abcdef'
DEBUG:payload encrypted=b'000055aa000000010000000300000044aea6ef61fb1b246672c508bfa85a8df2ca597b33d971b657e3ea36aec5bded4580edcafe11cbcc017e58e01e5a0fd85af39dc0ece02e874113865d6bfd7c4b5b0000aa55'
DEBUG:received data=b'000055aa0000de03000000040000006800000000d6336c6238308a47a4c949e15c75a1bccdfb84baeb6b10a268c151989279fd58623ab3b636fda83700bd16c22125af91ca597b33d971b657e3ea36aec5bded455f1b5935f9d05b92a0111c20f5fce2b407b6d0e7b071d4ae9bc3825eda01c9430000aa55'
DEBUG:decrypting=b'\xd63lb80\x8aG\xa4\xc9I\xe1\\u\xa1\xbc\xcd\xfb\x84\xba\xebk\x10\xa2h\xc1Q\x98\x92y\xfdXb:\xb3\xb66\xfd\xa87\x00\xbd\x16\xc2!%\xaf\x91\xcaY{3\xd9q\xb6W\xe3\xea6\xae\xc5\xbd\xedE'
DEBUG:decrypted session key negotiation step 2 payload=b'87e7c32453ced279)\x94\x89\xf48\x8d\xad\xa4{}=s\x98\xfc\xc7m\xd1J\xce\xb3\rk\x8d\xe09E\xa3\xdd\x08S\x92\x0f'
DEBUG:payload type = <class 'bytes'> len = 48
DEBUG:session local nonce: b'0123456789abcdef' remote nonce: b'87e7c32453ced279'
DEBUG:sending payload quick
DEBUG:final payload: b'x\xb6\xb1\x1eK \x9e\xdf\x9f(\x04\xea\x8e\xba\x15\xa9\x92\x1a\xca\xfd/z\x88\\c\xeb\x85@\xb5O,\xd5'
DEBUG:payload encrypted=b'000055aa000000020000000500000054579200fd6767da31de0b1aafbd6fe66293cb51d13e83062382f166995c6b56adca597b33d971b657e3ea36aec5bded45c408bbd9698ec2f4cfa7f947dcf011d100adcf27bc220986215b9ec3ec3666e90000aa55'
DEBUG:Session nonce XOR'd: b'\x08\x06W\x04W\x06\x04\x03\r\n\x02\x07\x07VR_'
DEBUG:Session key negotiate success! session key: b'Bi\x07%2-\xfa\t\xf2$\x18Hr\x93\x99\xc9'
DEBUG:sending payload
DEBUG:final payload: b'{"gwId":"6c7b41856c9c9e4db5yx7j","devId":"6cf5f56cee35fbf905da45","uid":"6cf5f56cee35fbf905da45","t":"1679547942","cid":"70b3d52b600132b7"}'
DEBUG:payload encrypted=b'000055aa0000000300000010000000b42566aed8d8c2ddb7e823b1422cdd574baca3588cf113609e45aca5ec65384fe92ae0b297b2b5e15c15272b8339124a238dc1ddf8a5190d8bf4223329bf6e1df001963e5c62d0c9099c35ec0ad2a9be89fa2d5f53edd91180f3662697a72555279738ee56047ccbc212b6371df8b4fe0e5c600cabfeb4ffa2b7573399da4782f3cf4373da11da2037ae6c817094e8c1aba647938862b6761579006f62dcddd3dbef30fd8d31d19d0ac5d62b9e01bbd8190000aa55'
DEBUG:received data=b'000055aa0000de0400000010000000a8000000007945ef31da9018dd79ba8a461a31b1d580d3180f0a33ee5f7284f3e5d66156caa70b6cca2e24aca1423f0316bdf1bf80f9d0da9e5648072a3c50efa5e65c9ff72d202cc050bcc9fd0145ab244e36aecacb056dcbc4405ee62ea84edc2783b12da846d4fe0547fbee4c8122b93789d1a24e7890df98b397a694b38fa6acb96f01da3f24eac46ec7325b393a30f29506473ccc2d082248aa8f319d79358ef553910000aa55'
DEBUG:received message=TuyaMessage(seqno=56836, cmd=16, retcode=0, payload=b'yE\xef1\xda\x90\x18\xddy\xba\x8aF\x1a1\xb1\xd5\x80\xd3\x18\x0f\n3\xee_r\x84\xf3\xe5\xd6aV\xca\xa7\x0bl\xca.$\xac\xa1B?\x03\x16\xbd\xf1\xbf\x80\xf9\xd0\xda\x9eVH\x07*<P\xef\xa5\xe6\\\x9f\xf7- ,\xc0P\xbc\xc9\xfd\x01E\xab$N6\xae\xca\xcb\x05m\xcb\xc4@^\xe6.\xa8N\xdc\'\x83\xb1-\xa8F\xd4\xfe\x05G\xfb\xeeL\x81"\xb97\x89\xd1\xa2Nx\x90\xdf\x98\xb3\x97\xa6\x94\xb3\x8f\xa6\xac\xb9o\x01', crc=b'\xda?$\xea\xc4n\xc72[9:0\xf2\x95\x06G<\xcc-\x08"H\xaa\x8f1\x9dy5\x8e\xf5S\x91', crc_good=True, prefix=21930, iv=None)
DEBUG:raw unpacked message = TuyaMessage(seqno=56836, cmd=16, retcode=0, payload=b'yE\xef1\xda\x90\x18\xddy\xba\x8aF\x1a1\xb1\xd5\x80\xd3\x18\x0f\n3\xee_r\x84\xf3\xe5\xd6aV\xca\xa7\x0bl\xca.$\xac\xa1B?\x03\x16\xbd\xf1\xbf\x80\xf9\xd0\xda\x9eVH\x07*<P\xef\xa5\xe6\\\x9f\xf7- ,\xc0P\xbc\xc9\xfd\x01E\xab$N6\xae\xca\xcb\x05m\xcb\xc4@^\xe6.\xa8N\xdc\'\x83\xb1-\xa8F\xd4\xfe\x05G\xfb\xeeL\x81"\xb97\x89\xd1\xa2Nx\x90\xdf\x98\xb3\x97\xa6\x94\xb3\x8f\xa6\xac\xb9o\x01', crc=b'\xda?$\xea\xc4n\xc72[9:0\xf2\x95\x06G<\xcc-\x08"H\xaa\x8f1\x9dy5\x8e\xf5S\x91', crc_good=True, prefix=21930, iv=None)
DEBUG:decode payload=b'yE\xef1\xda\x90\x18\xddy\xba\x8aF\x1a1\xb1\xd5\x80\xd3\x18\x0f\n3\xee_r\x84\xf3\xe5\xd6aV\xca\xa7\x0bl\xca.$\xac\xa1B?\x03\x16\xbd\xf1\xbf\x80\xf9\xd0\xda\x9eVH\x07*<P\xef\xa5\xe6\\\x9f\xf7- ,\xc0P\xbc\xc9\xfd\x01E\xab$N6\xae\xca\xcb\x05m\xcb\xc4@^\xe6.\xa8N\xdc\'\x83\xb1-\xa8F\xd4\xfe\x05G\xfb\xeeL\x81"\xb97\x89\xd1\xa2Nx\x90\xdf\x98\xb3\x97\xa6\x94\xb3\x8f\xa6\xac\xb9o\x01'
DEBUG:decrypting=b'yE\xef1\xda\x90\x18\xddy\xba\x8aF\x1a1\xb1\xd5\x80\xd3\x18\x0f\n3\xee_r\x84\xf3\xe5\xd6aV\xca\xa7\x0bl\xca.$\xac\xa1B?\x03\x16\xbd\xf1\xbf\x80\xf9\xd0\xda\x9eVH\x07*<P\xef\xa5\xe6\\\x9f\xf7- ,\xc0P\xbc\xc9\xfd\x01E\xab$N6\xae\xca\xcb\x05m\xcb\xc4@^\xe6.\xa8N\xdc\'\x83\xb1-\xa8F\xd4\xfe\x05G\xfb\xeeL\x81"\xb97\x89\xd1\xa2Nx\x90\xdf\x98\xb3\x97\xa6\x94\xb3\x8f\xa6\xac\xb9o\x01'
DEBUG:decrypted 3.x payload=b'{"dps":{"1":true,"2":true,"3":true,"4":true,"5":true,"9":0,"10":0,"11":0,"12":0,"13":0,"29":false},"cid":"70b3d52b600132b7"}'
DEBUG:payload type = <class 'bytes'>
DEBUG:decoded results='{"dps":{"1":true,"2":true,"3":true,"4":true,"5":true,"9":0,"10":0,"11":0,"12":0,"13":0,"29":false},"cid":"70b3d52b600132b7"}'
DEBUG:status() received data={'dps': {'1': True, '2': True, '3': True, '4': True, '5': True, '9': 0, '10': 0, '11': 0, '12': 0, '13': 0, '29': False}, 'cid': '70b3d52b600132b7', 'device': OutletDevice( '6cf5f56cee35fbf905da45', address=None, local_key='', dev_type='v3.4', connection_timeout=5, version=3.4, persist=False, cid='70b3d52b600132b7', parent='6c7b41856c9c9e4db5yx7j', children={} )}
DEBUG:building command 7 payload=b'{"protocol":5,"t":1679547942,"data":{"dps":{"1":false}},"gwId":"6c7b41856c9c9e4db5yx7j","cid":"70b3d52b600132b7"}'
DEBUG:sending payload quick
GW IP found: {'dps': {'1': True, '2': True, '3': True, '4': True, '5': True, '9': 0, '10': 0, '11': 0, '12': 0, '13': 0, '29': False}, 'cid': '70b3d52b600132b7', 'device': OutletDevice( '6cf5f56cee35fbf905da45', address=None, local_key='', dev_type='v3.4', connection_timeout=5, version=3.4, persist=False, cid='70b3d52b600132b7', parent='6c7b41856c9c9e4db5yx7j', children={} )}
DEBUG:final payload: b'0123456789abcdef'
DEBUG:payload encrypted=b'000055aa000000040000000300000044aea6ef61fb1b246672c508bfa85a8df2ca597b33d971b657e3ea36aec5bded45cc12bc1b890c87f87e7840c832737e0ba3b6200e4755abb783dca93c2d543bee0000aa55'
DEBUG:received data=b'000055aa000090490000000400000068000000005a6e74d2e56a66606857db57f49efa9ecdfb84baeb6b10a268c151989279fd58623ab3b636fda83700bd16c22125af91ca597b33d971b657e3ea36aec5bded45bcdcdf1bf94576f392e49cbc46ce7ea562f8de888fb3358ea0d4fe6ad3e7bd2a0000aa55'
DEBUG:decrypting=b'Znt\xd2\xe5jf`hW\xdbW\xf4\x9e\xfa\x9e\xcd\xfb\x84\xba\xebk\x10\xa2h\xc1Q\x98\x92y\xfdXb:\xb3\xb66\xfd\xa87\x00\xbd\x16\xc2!%\xaf\x91\xcaY{3\xd9q\xb6W\xe3\xea6\xae\xc5\xbd\xedE'
DEBUG:decrypted session key negotiation step 2 payload=b'793ba3534cd660fd)\x94\x89\xf48\x8d\xad\xa4{}=s\x98\xfc\xc7m\xd1J\xce\xb3\rk\x8d\xe09E\xa3\xdd\x08S\x92\x0f'
DEBUG:payload type = <class 'bytes'> len = 48
DEBUG:session local nonce: b'0123456789abcdef' remote nonce: b'793ba3534cd660fd'
DEBUG:sending payload quick
DEBUG:final payload: b'\xec\x93-\xa2\xbb\xc0\xcb>\t)0R9\x96\\\x10M\x9f\xa5P\x86\xa1\x00\x16\xe3\xab\xaa\xa7X\x15\xe6"'
DEBUG:payload encrypted=b'000055aa000000050000000500000054da61c22636e317f8ec4e1aa769f9f8a7cc8893061e93b1fb8d6f26b6cf8e8e98ca597b33d971b657e3ea36aec5bded451f17899e836a01ce1d4a3f2b5e90ee4189d217f59b4d3af43b9d2fbd933f8b140000aa55'
DEBUG:Session nonce XOR'd: b'\x07\x08\x01QU\x06\x03\x04\x0cZ\x05TUT\x03\x02'
DEBUG:Session key negotiate success! session key: b'+\x01\xe9pQ\xd9\xd4\x05\rL~\xab7\xa7<\xca'
DEBUG:sending payload
DEBUG:final payload: b'3.4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00{"protocol":5,"t":1679547942,"data":{"dps":{"1":false}},"gwId":"6c7b41856c9c9e4db5yx7j","cid":"70b3d52b600132b7"}'
DEBUG:payload encrypted=b'000055aa000000060000000d000000b41756b9fc815a8397a2dae1f3b356158dfcb67e75e39654f6a7bb843ecd62f7afd8b4296eed239d369a3ff0393e23afe7d86fef371c6123924cf8be377003b1579120e5555ba4836919441bbae1266b0917ab312645199d55e469a9cafcdcbfff24f0d35e1a6c3e58bf9cdc30ff300de163ed68801e2dd39e00645fad553d1310794ebc69d142cf61e43fe6101b5deecac7deb8122f04f427dc6e3a903912fc641dbb0112db93355856e028ee52e553a50000aa55'
DEBUG:received data=b'000055aa0000904a0000000d0000002800000000a3eda8e22315f1a085ccd885af32683fec482b67f81d38d663134062baa137070000aa55'
DEBUG:received null payload (TuyaMessage(seqno=36938, cmd=13, retcode=0, payload=b'', crc=b'\xa3\xed\xa8\xe2#\x15\xf1\xa0\x85\xcc\xd8\x85\xaf2h?\xecH+g\xf8\x1d8\xd6c\x13@b\xba\xa17\x07', crc_good=True, prefix=21930, iv=None)), fetch new one - retry 0 / 5
DEBUG:set_status received data=None
DEBUG:status() entry (dev_type is v3.4)
DEBUG:building command 10 payload=b'{"gwId":"6c7b41856c9c9e4db5yx7j","devId":"6cf5f56cee35fbf905da45","uid":"6cf5f56cee35fbf905da45","t":"1679547947","cid":"70b3d52b600132b7"}'
DEBUG:sending payload quick
DEBUG:final payload: b'0123456789abcdef'
DEBUG:payload encrypted=b'000055aa000000070000000300000044aea6ef61fb1b246672c508bfa85a8df2ca597b33d971b657e3ea36aec5bded45227c858de030e74698d7ab072b9bf106d0594decd1ca54b8087ef01f5c1f185a0000aa55'
DEBUG:received data=b'000055aa00004f9e000000040000006800000000ca29ad806f44e691860aed0f99c2ef3bcdfb84baeb6b10a268c151989279fd58623ab3b636fda83700bd16c22125af91ca597b33d971b657e3ea36aec5bded452ac322c7b3511afa31e5fb4ce52e2c69c35280ab3d8c7dd5c21cd203d0acaf150000aa55'
DEBUG:decrypting=b'\xca)\xad\x80oD\xe6\x91\x86\n\xed\x0f\x99\xc2\xef;\xcd\xfb\x84\xba\xebk\x10\xa2h\xc1Q\x98\x92y\xfdXb:\xb3\xb66\xfd\xa87\x00\xbd\x16\xc2!%\xaf\x91\xcaY{3\xd9q\xb6W\xe3\xea6\xae\xc5\xbd\xedE'
DEBUG:decrypted session key negotiation step 2 payload=b'7a29f6cc59ec384c)\x94\x89\xf48\x8d\xad\xa4{}=s\x98\xfc\xc7m\xd1J\xce\xb3\rk\x8d\xe09E\xa3\xdd\x08S\x92\x0f'
DEBUG:payload type = <class 'bytes'> len = 48
DEBUG:session local nonce: b'0123456789abcdef' remote nonce: b'7a29f6cc59ec384c'
DEBUG:sending payload quick
DEBUG:final payload: b'\xe4\xb8g}\x9c}\xe2\xacx,\x15\x9b\x7f\xaa\xc1\xfc-\x8e\x06jv\xfdjKp{\xd4e\x1e\x7f5+'
DEBUG:payload encrypted=b'000055aa0000000800000005000000545cb7ccac1cb3cfc2ed680043268099a8798388fbe6d4571abefd6b3dfad37da1ca597b33d971b657e3ea36aec5bded455996086f0c51271c3a10d9536226d3c5687a62beb4e51ceffcd13879552adb640000aa55'
DEBUG:Session nonce XOR'd: b'\x07P\x00\nR\x03UT\r\x00\x04\x01P\\Q\x05'
DEBUG:Session key negotiate success! session key: b'\x91T~\xc5>w$\xce\xabN\t\xde\\\x863q'
DEBUG:sending payload
DEBUG:final payload: b'{"gwId":"6c7b41856c9c9e4db5yx7j","devId":"6cf5f56cee35fbf905da45","uid":"6cf5f56cee35fbf905da45","t":"1679547947","cid":"70b3d52b600132b7"}'
DEBUG:payload encrypted=b'000055aa0000000900000010000000b4ab99b2213b3a63e7463e36e586dc3ec980f8c289ed29456bc84d40c8dcb8413f1948432d329b6b1e7e0f71ae5edf72b6b38001a1df8b91a9784f3c66dc4eec53a6a17c5028232adf9ef3f7665b1706691d02a9712e26488dcf2fa78a2e70de93f371dac3fb6a6852b7466aad71649851d23edc37f7315b166283922067f57800cd6c3dc49c5877744a41a0454adf8426bff36dbc2afd86e6e12da6c49d95e39fd796da223b0f3f10716aa8caff48b1f30000aa55'
DEBUG:received data=b'000055aa00004f9f00000010000000a8000000007f4cbcdb34793f08abff1dc9cf238527ecb955d00d1906064fbf3de22d32b2133bea338ed2f1305cd0740f4777f2bc88ece92e77cbbfd45d5ac67cc1be56f0f30dc28639bc20eff6f9c4451f4cf178b0b91511bb57f6498747cd12dd784ffc6ea80681c1104e7d71574333aafd42d181efccf023aaff795315bad17978be700a9333eef7f596eaeccb4ae5b8f2b69f939517e4c59d7b0ef9576645244be9a99e0000aa55'
DEBUG:received message=TuyaMessage(seqno=20383, cmd=16, retcode=0, payload=b"\x7fL\xbc\xdb4y?\x08\xab\xff\x1d\xc9\xcf#\x85'\xec\xb9U\xd0\r\x19\x06\x06O\xbf=\xe2-2\xb2\x13;\xea3\x8e\xd2\xf10\\\xd0t\x0fGw\xf2\xbc\x88\xec\xe9.w\xcb\xbf\xd4]Z\xc6|\xc1\xbeV\xf0\xf3\r\xc2\x869\xbc \xef\xf6\xf9\xc4E\x1fL\xf1x\xb0\xb9\x15\x11\xbbW\xf6I\x87G\xcd\x12\xddxO\xfcn\xa8\x06\x81\xc1\x10N}qWC3\xaa\xfdB\xd1\x81\xef\xcc\xf0#\xaa\xffyS\x15\xba\xd1yx\xbep\n", crc=b'\x933\xee\xf7\xf5\x96\xea\xec\xcbJ\xe5\xb8\xf2\xb6\x9f\x93\x95\x17\xe4\xc5\x9d{\x0e\xf9WfE$K\xe9\xa9\x9e', crc_good=True, prefix=21930, iv=None)
DEBUG:raw unpacked message = TuyaMessage(seqno=20383, cmd=16, retcode=0, payload=b"\x7fL\xbc\xdb4y?\x08\xab\xff\x1d\xc9\xcf#\x85'\xec\xb9U\xd0\r\x19\x06\x06O\xbf=\xe2-2\xb2\x13;\xea3\x8e\xd2\xf10\\\xd0t\x0fGw\xf2\xbc\x88\xec\xe9.w\xcb\xbf\xd4]Z\xc6|\xc1\xbeV\xf0\xf3\r\xc2\x869\xbc \xef\xf6\xf9\xc4E\x1fL\xf1x\xb0\xb9\x15\x11\xbbW\xf6I\x87G\xcd\x12\xddxO\xfcn\xa8\x06\x81\xc1\x10N}qWC3\xaa\xfdB\xd1\x81\xef\xcc\xf0#\xaa\xffyS\x15\xba\xd1yx\xbep\n", crc=b'\x933\xee\xf7\xf5\x96\xea\xec\xcbJ\xe5\xb8\xf2\xb6\x9f\x93\x95\x17\xe4\xc5\x9d{\x0e\xf9WfE$K\xe9\xa9\x9e', crc_good=True, prefix=21930, iv=None)
DEBUG:decode payload=b"\x7fL\xbc\xdb4y?\x08\xab\xff\x1d\xc9\xcf#\x85'\xec\xb9U\xd0\r\x19\x06\x06O\xbf=\xe2-2\xb2\x13;\xea3\x8e\xd2\xf10\\\xd0t\x0fGw\xf2\xbc\x88\xec\xe9.w\xcb\xbf\xd4]Z\xc6|\xc1\xbeV\xf0\xf3\r\xc2\x869\xbc \xef\xf6\xf9\xc4E\x1fL\xf1x\xb0\xb9\x15\x11\xbbW\xf6I\x87G\xcd\x12\xddxO\xfcn\xa8\x06\x81\xc1\x10N}qWC3\xaa\xfdB\xd1\x81\xef\xcc\xf0#\xaa\xffyS\x15\xba\xd1yx\xbep\n"
DEBUG:decrypting=b"\x7fL\xbc\xdb4y?\x08\xab\xff\x1d\xc9\xcf#\x85'\xec\xb9U\xd0\r\x19\x06\x06O\xbf=\xe2-2\xb2\x13;\xea3\x8e\xd2\xf10\\\xd0t\x0fGw\xf2\xbc\x88\xec\xe9.w\xcb\xbf\xd4]Z\xc6|\xc1\xbeV\xf0\xf3\r\xc2\x869\xbc \xef\xf6\xf9\xc4E\x1fL\xf1x\xb0\xb9\x15\x11\xbbW\xf6I\x87G\xcd\x12\xddxO\xfcn\xa8\x06\x81\xc1\x10N}qWC3\xaa\xfdB\xd1\x81\xef\xcc\xf0#\xaa\xffyS\x15\xba\xd1yx\xbep\n"
DEBUG:decrypted 3.x payload=b'{"dps":{"1":true,"2":true,"3":true,"4":true,"5":true,"9":0,"10":0,"11":0,"12":0,"13":0,"29":false},"cid":"70b3d52b600132b7"}'
DEBUG:payload type = <class 'bytes'>
DEBUG:decoded results='{"dps":{"1":true,"2":true,"3":true,"4":true,"5":true,"9":0,"10":0,"11":0,"12":0,"13":0,"29":false},"cid":"70b3d52b600132b7"}'
DEBUG:status() received data={'dps': {'1': True, '2': True, '3': True, '4': True, '5': True, '9': 0, '10': 0, '11': 0, '12': 0, '13': 0, '29': False}, 'cid': '70b3d52b600132b7', 'device': OutletDevice( '6cf5f56cee35fbf905da45', address=None, local_key='', dev_type='v3.4', connection_timeout=5, version=3.4, persist=False, cid='70b3d52b600132b7', parent='6c7b41856c9c9e4db5yx7j', children={} )}
GW IP found: {'dps': {'1': True, '2': True, '3': True, '4': True, '5': True, '9': 0, '10': 0, '11': 0, '12': 0, '13': 0, '29': False}, 'cid': '70b3d52b600132b7', 'device': OutletDevice( '6cf5f56cee35fbf905da45', address=None, local_key='', dev_type='v3.4', connection_timeout=5, version=3.4, persist=False, cid='70b3d52b600132b7', parent='6c7b41856c9c9e4db5yx7j', children={} )}

Process finished with exit code 0
uzlonewolf commented 1 year ago

Seems like status requests need the cid to be in the base payload, however commands need it to be in the 'data' sub-key. Will fix in #308

jasonacox commented 1 year ago

https://pypi.org/project/tinytuya/1.12.2/ Released

pip install --upgrade tinytuya