rytilahti / python-miio

Python library & console tool for controlling Xiaomi smart appliances
https://python-miio.readthedocs.io
GNU General Public License v3.0
3.68k stars 552 forks source link

can't get info or status from a lumi.gateway.mgl03 gateway #1866

Open michaelz-github opened 10 months ago

michaelz-github commented 10 months ago

Describe the bug can't get info of status from a lumi.gateway.mgl03 gateway.

Version information (please complete the following information):

Device information: If the issue is specific to a device [Use miiocli device --ip <ip address> --token <token> info]:

To Reproduce Steps to reproduce the behavior:

  1. .\miiocli.exe -d genericmiot --ip 192.168.1.236 --token 69554f626b547431543679326f534856 info

Expected behavior get the device info

Console output (base) PS C:\Users\mike\AppData\Roaming\Python\Python39\Scripts> .\miiocli.exe -d genericmiot --ip 192.168.1.236 --token 69554f626b547431543679326f534856 info Running command info DEBUG:miio.click_common:Unknown model, trying autodetection DEBUG:miio.miioprotocol:Got a response: Container: data = Container: data = b'' (total 0) value = b'' (total 0) offset1 = 32 offset2 = 32 length = 0 header = Container: data = b'!1\x00 \x00\x00\x00\x00\x1b\xa1F\x15\x00\x1f\xc3\xa5' (total 16) value = Container: length = 32 unknown = 0 device_id = unhexlify('1ba14615') ts = 1970-01-25 02:15:01+00:00 offset1 = 0 offset2 = 16 length = 16 checksum = b'\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' (total 16) DEBUG:miio.miioprotocol:Discovered 1ba14615 with ts: 1970-01-25 02:15:01+00:00, token: b'ffffffffffffffffffffffffffffffff' DEBUG:miio.miioprotocol:192.168.1.236:54321 >>: {'id': 1, 'method': 'miIO.info', 'params': []} DEBUG:miio.miioprotocol:192.168.1.236:54321 (ts: 1970-01-25 02:15:01+00:00, id: 1) << {'exe_time': 1, 'id': 1, 'result': {'MemFree': 16512, 'VmPeak': 12608, 'VmRSS': 1920, 'VmSize': 12608, 'ap': {'bssid': 'BC:EE:7B:DE:8A:A2', 'freq': 2457, 'rssi': '-62', 'ssid': 'Wifi-XM'}, 'bootloader_ver': 'fdb21ed63232b58fa756e8480070b305', 'fw_ver': '1.5.6_0001', 'hw_ver': 'Linux', 'ipflag': 1, 'life': 2081701, 'mac': '54:EF:44:36:48:CC', 'miio_client_ver': '4.3.2', 'miio_times': [2081700, 19, 50, 2081630], 'miio_ver': '0.0.9', 'model': 'lumi.gateway.mgl03', 'netif': {'gw': '192.168.1.1', 'localIp': '192.168.1.236', 'mask': '255.255.255.0'}, 'token': '69554f626b547431543679326f534856', 'uid': 783426719, 'uptime': 2081717}} DEBUG:miio.device:Detected model lumi.gateway.mgl03 DEBUG:miio.click_common:Unknown model, trying autodetection DEBUG:miio.miioprotocol:Got a response: Container: data = Container: data = b'' (total 0) value = b'' (total 0) offset1 = 32 offset2 = 32 length = 0 header = Container: data = b'!1\x00 \x00\x00\x00\x00\x1b\xa1F\x15\x00\x1f\xc3\xa5' (total 16) value = Container: length = 32 unknown = 0 device_id = unhexlify('1ba14615') ts = 1970-01-25 02:15:01+00:00 offset1 = 0 offset2 = 16 length = 16 checksum = b'\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' (total 16) DEBUG:miio.miioprotocol:Discovered 1ba14615 with ts: 1970-01-25 02:15:01+00:00, token: b'ffffffffffffffffffffffffffffffff' DEBUG:miio.miioprotocol:192.168.1.236:54321 >>: {'id': 1, 'method': 'miIO.info', 'params': []} DEBUG:miio.miioprotocol:192.168.1.236:54321 (ts: 1970-01-25 02:15:01+00:00, id: 1) << {'exe_time': 1, 'id': 1, 'result': {'MemFree': 16512, 'VmPeak': 12608, 'VmRSS': 1920, 'VmSize': 12608, 'ap': {'bssid': 'BC:EE:7B:DE:8A:A2', 'freq': 2457, 'rssi': '-62', 'ssid': 'Wifi-XM'}, 'bootloader_ver': 'fdb21ed63232b58fa756e8480070b305', 'fw_ver': '1.5.6_0001', 'hw_ver': 'Linux', 'ipflag': 1, 'life': 2081701, 'mac': '54:EF:44:35:48:CC', 'miio_client_ver': '4.3.2', 'miio_times': [2081700, 19, 50, 2081630], 'miio_ver': '0.0.9', 'model': 'lumi.gateway.mgl03', 'netif': {'gw': '192.168.1.1', 'localIp': '192.168.1.236', 'mask': '255.255.255.0'}, 'token': '69554f626b547431543679326f534856', 'uid': 295426719, 'uptime': 2081718}} DEBUG:miio.device:Detected model lumi.gateway.mgl03 DEBUG:miio.miioprotocol:192.168.1.236:54321 >>: {'id': 2, 'method': 'get_properties', 'params': [{'did': 'dummy', 'piid': 1, 'siid': 1}]} DEBUG:miio.miioprotocol:192.168.1.236:54321 (ts: 1970-01-25 02:15:05+00:00, id: 2) << {'error': {'code': -9999, 'message': 'user ack timeout'}, 'exe_time': 4000, 'id': 2} DEBUG:miio.miioprotocol:Retrying to send failed command, retries left: 3 DEBUG:miio.miioprotocol:192.168.1.236:54321 >>: {'id': 3, 'method': 'get_properties', 'params': [{'did': 'dummy', 'piid': 1, 'siid': 1}]} DEBUG:miio.miioprotocol:192.168.1.236:54321 (ts: 1970-01-25 02:15:09+00:00, id: 3) << {'error': {'code': -9999, 'message': 'user ack timeout'}, 'exe_time': 4000, 'id': 3} DEBUG:miio.miioprotocol:Retrying to send failed command, retries left: 2 DEBUG:miio.miioprotocol:192.168.1.236:54321 >>: {'id': 4, 'method': 'get_properties', 'params': [{'did': 'dummy', 'piid': 1, 'siid': 1}]} DEBUG:miio.miioprotocol:192.168.1.236:54321 (ts: 1970-01-25 02:15:13+00:00, id: 4) << {'error': {'code': -9999, 'message': 'user ack timeout'}, 'exe_time': 4000, 'id': 4} DEBUG:miio.miioprotocol:Retrying to send failed command, retries left: 1 DEBUG:miio.miioprotocol:192.168.1.236:54321 >>: {'id': 5, 'method': 'get_properties', 'params': [{'did': 'dummy', 'piid': 1, 'siid': 1}]} DEBUG:miio.miioprotocol:192.168.1.236:54321 (ts: 1970-01-25 02:15:17+00:00, id: 5) << {'error': {'code': -9999, 'message': 'user ack timeout'}, 'exe_time': 4000, 'id': 5} ERROR:miio.miioprotocol:Got error when receiving: {'code': -9999, 'message': 'user ack timeout'} ERROR:miio.click_common:Exception: Unable to recover failed command Traceback (most recent call last): File "C:\Users\mike\AppData\Roaming\Python\Python39\site-packages\miio\miioprotocol.py", line 215, in send self._handle_error(payload["error"]) File "C:\Users\mike\AppData\Roaming\Python\Python39\site-packages\miio\miioprotocol.py", line 275, in _handle_error raise RecoverableError(error) miio.exceptions.RecoverableError: {'code': -9999, 'message': 'user ack timeout'}

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "C:\Users\mike\AppData\Roaming\Python\Python39\site-packages\miio\miioprotocol.py", line 215, in send self._handle_error(payload["error"]) File "C:\Users\mike\AppData\Roaming\Python\Python39\site-packages\miio\miioprotocol.py", line 275, in _handle_error raise RecoverableError(error) miio.exceptions.RecoverableError: {'code': -9999, 'message': 'user ack timeout'}

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "C:\Users\mike\AppData\Roaming\Python\Python39\site-packages\miio\miioprotocol.py", line 215, in send self._handle_error(payload["error"]) File "C:\Users\mike\AppData\Roaming\Python\Python39\site-packages\miio\miioprotocol.py", line 275, in _handle_error raise RecoverableError(error) miio.exceptions.RecoverableError: {'code': -9999, 'message': 'user ack timeout'}

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "C:\Users\mike\AppData\Roaming\Python\Python39\site-packages\miio\miioprotocol.py", line 215, in send self._handle_error(payload["error"]) File "C:\Users\mike\AppData\Roaming\Python\Python39\site-packages\miio\miioprotocol.py", line 275, in _handle_error raise RecoverableError(error) miio.exceptions.RecoverableError: {'code': -9999, 'message': 'user ack timeout'}

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "C:\Users\mike\AppData\Roaming\Python\Python39\site-packages\miio\click_common.py", line 54, in call return self.main(args, kwargs) File "C:\ProgramData\Anaconda3\lib\site-packages\click\core.py", line 1053, in main rv = self.invoke(ctx) File "C:\ProgramData\Anaconda3\lib\site-packages\click\core.py", line 1659, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "C:\ProgramData\Anaconda3\lib\site-packages\click\core.py", line 1659, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "C:\ProgramData\Anaconda3\lib\site-packages\click\core.py", line 1395, in invoke return ctx.invoke(self.callback, ctx.params) File "C:\ProgramData\Anaconda3\lib\site-packages\click\core.py", line 754, in invoke return __callback(args, **kwargs) File "C:\Users\mike\AppData\Roaming\Python\Python39\site-packages\miio\click_common.py", line 308, in wrap and getattr(result, "cli_output", None) is not None File "C:\Users\mike\AppData\Roaming\Python\Python39\site-packages\miio\deviceinfo.py", line 106, in cli_output s += f"Supported by genericmiot: {dev.supports_miot()}" File "C:\Users\mike\AppData\Roaming\Python\Python39\site-packages\miio\device.py", line 313, in supports_miot self.send("get_properties", [{"did": "dummy", "siid": 1, "piid": 1}]) File "C:\Users\mike\AppData\Roaming\Python\Python39\site-packages\miio\device.py", line 98, in send return self._protocol.send( File "C:\Users\mike\AppData\Roaming\Python\Python39\site-packages\miio\miioprotocol.py", line 249, in send return self.send( File "C:\Users\mike\AppData\Roaming\Python\Python39\site-packages\miio\miioprotocol.py", line 249, in send return self.send( File "C:\Users\mike\AppData\Roaming\Python\Python39\site-packages\miio\miioprotocol.py", line 249, in send return self.send( File "C:\Users\mike\AppData\Roaming\Python\Python39\site-packages\miio\miioprotocol.py", line 257, in send raise DeviceException("Unable to recover failed command") from ex miio.exceptions.DeviceException: Unable to recover failed command (base) PS C:\Users\mike\AppData\Roaming\Python\Python39\Scripts>