mac-zhou / midea-msmart

This is a library to allow communicating to a Midea AC via the Local area network.
MIT License
147 stars 39 forks source link

~/.local/bin/midea-discover RecursionError #107

Open QGB opened 1 year ago

QGB commented 1 year ago
In [27]: import requests

In [28]: requests.post(url='https://mp-prod.appsmb.com/mas/v5/app/proxy?alias=/v1/user/login/id/get',headers={'Content-Type': 'application/json',
    ...:  'accessToken': '',
    ...:  'random': '1691153122',
    ...:  'secretVersion': '1',
    ...:  'sign': '18b17da090fee206c380f3873686b4a337d7c94402d885a7d496631778b64586'},data=('{"appId": "1010", "format": 2, "clientType": 1, "language": "en_US", "src": '
    ...:  '"1010", "stamp": "20230804204522", "loginAccount": '
    ...:  '"midea_is_best@outlook.com", "reqId": "6431fcd15df1ee4088fefdb46fee44d5"}'),)
Out[28]: <Response [200]>

In [29]: _.text
Out[29]: '{"code":"3004","msg":"value is illegal."}'

====================================================

~/.local/bin/midea-discover  

Traceback (most recent call last):            
  File "/home/qgb/.local/bin/midea-discover", line 8, in <module>                            
    sys.exit(discover())                      
  File "/home/qgb/.local/lib/python3.8/site-packages/click/core.py", line 1130, in __call__  
    return self.main(*args, **kwargs)         
  File "/home/qgb/.local/lib/python3.8/site-packages/click/core.py", line 1055, in main      
    rv = self.invoke(ctx)                     
  File "/home/qgb/.local/lib/python3.8/site-packages/click/core.py", line 1404, in invoke    
    return ctx.invoke(self.callback, **ctx.params)                                           
  File "/home/qgb/.local/lib/python3.8/site-packages/click/core.py", line 760, in invoke     
    return __callback(*args, **kwargs)        
  File "/home/qgb/.local/lib/python3.8/site-packages/msmart/cli.py", line 52, in discover    
    found_devices = loop.run_until_complete(discovery.get_all() if ip == '' else discovery.get(ip))                                                                                       
  File "/root/anaconda3/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete                                                                                            
    return future.result()                    
  File "/home/qgb/.local/lib/python3.8/site-packages/msmart/scanner.py", line 193, in get_all                                                                                             
    await self._process_tasks(tasks)          
  File "/home/qgb/.local/lib/python3.8/site-packages/msmart/scanner.py", line 199, in _process_tasks                                                                                      
    [self.result.add(task.result()) for task in tasks]                                       
  File "/home/qgb/.local/lib/python3.8/site-packages/msmart/scanner.py", line 199, in <listcomp>                                                                                          
    [self.result.add(task.result()) for task in tasks]                                       
  File "/home/qgb/.local/lib/python3.8/site-packages/msmart/scanner.py", line 50, in support_test                                                                                         
    _device = await self.support_testv3(account, password)                                   
  File "/home/qgb/.local/lib/python3.8/site-packages/msmart/scanner.py", line 65, in support_testv3                                                                                       
    token, key = await loop.run_in_executor(None, gettoken, udpid, account, password)        
  File "/root/anaconda3/lib/python3.8/concurrent/futures/thread.py", line 57, in run         
    result = self.fn(*self.args, **self.kwargs)                                              
  File "/home/qgb/.local/lib/python3.8/site-packages/msmart/scanner.py", line 255, in gettoken                                                                                            
    Client.login()                            
  File "/home/qgb/.local/lib/python3.8/site-packages/msmart/cloud.py", line 144, in login    
    self.get_login_id()                       
  File "/home/qgb/.local/lib/python3.8/site-packages/msmart/cloud.py", line 133, in get_login_id                                                                                          
    response = self.api_request(              
  File "/home/qgb/.local/lib/python3.8/site-packages/msmart/cloud.py", line 122, in api_request                                                                                           
    return self.api_request(endpoint, args)   
  File "/home/qgb/.local/lib/python3.8/site-packages/msmart/cloud.py", line 122, in api_request                                                                                           
    return self.api_request(endpoint, args)   
  File "/home/qgb/.local/lib/python3.8/site-packages/msmart/cloud.py", line 124, in api_request                                                                                           
    raise RecursionError()                    
RecursionError                           
mill1000 commented 1 year ago

Also reported in mac-zhou/midea-ac-py#217

I've got a fork with a fix. See here: https://github.com/mac-zhou/midea-ac-py/issues/217#issuecomment-1664705355