Closed ursval closed 2 years ago
Hi!
I have a dmaker.airfresh.t2017.
After token retrieval I cut off any internet access from this airfresh using router's capabilities. This is the error I got when tried to get status from the device using miiocti
$ miiocli airfresht2017 --ip <ip> --token <token> status Error: {'code': -9999, 'message': 'user ack timeout'}
Any control attempts (turn on/off the device, display) resulted in same error However, info can be recieved
$ miiocli airfresht2017 --ip <ip> --token <token> info Model: dmaker.airfresh.t2017 Hardware version: esp32 Firmware version: 2.2.1
This issue is definitely caused by internet blockade. If I allow internet access, then status retrieval can be done
$ miiocli -d airfresht2017 --ip <ip> --token <token> status <debug output> Power: on Mode: OperationMode.Sleep PM2.5: 0 CO2: 530 Temperature: 9 Favorite speed: 300 Control speed: 60 Dust filter life: 99 %, 89 days PTC: False PTC status: False Child lock: False Buzzer: True Display: False
The question is why I am not able to get status from airfresh when it is offline?
Additional info (failed status command with debug output)
$ miiocli -d airfresht2017 --ip 192.168.50.50 --token <token> status INFO:miio.cli:Debug mode active DEBUG:miio.click_common:Unknown model, trying autodetection. None None 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\x07f\xf0\x1d\x00\x00\x00\xac' (total 16) value = Container: length = 32 unknown = 0 device_id = unhexlify('0766f01d') ts = 1970-01-01 00:02:52 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 0766f01d with ts: 1970-01-01 00:02:52, token: b'ffffffffffffffffffffffffffffffff' DEBUG:miio.miioprotocol:192.168.50.50:54321 >>: {'id': 1, 'method': 'miIO.info', 'params': []} DEBUG:miio.miioprotocol:192.168.50.50:54321 (ts: 1970-01-01 00:02:53, id: 1) << {'id': 1, 'result': {'life': 173, 'uid': 2663313642, 'model': 'dmaker.airfresh.t2017', 'token': '<token>', 'ipflag': 1, 'fw_ver': '2.2.1', 'mcu_fw_ver': '0016', 'miio_ver': '0.0.9', 'hw_ver': 'esp32', 'mmfree': 48912, 'mac': '04:CF:8C:1A:63:34', 'wifi_fw_ver': '', 'ap': {'ssid': 'Home Network', 'bssid': 'F0:2F:74:E3:5A:40', 'rssi': -47, 'primary': 6}, 'netif': {'localIp': '192.168.50.50', 'mask': '255.255.255.0', 'gw': '192.168.50.1'}}, 'exe_time': 50} DEBUG:miio.device:Detected model dmaker.airfresh.t2017 DEBUG:miio.miioprotocol:192.168.50.50:54321 >>: {'id': 2, 'method': 'get_prop', 'params': ['power', 'mode', 'pm25', 'co2', 'temperature_outside', 'favourite_speed', 'control_speed', 'ptc_on', 'ptc_status', 'child_lock', 'sound', 'display', 'filter_intermediate', 'filter_inter_day', 'filter_efficient']} DEBUG:miio.miioprotocol:192.168.50.50:54321 (ts: 1970-01-01 00:02:57, id: 2) << {'id': 2, 'error': {'code': -9999, 'message': 'user ack timeout'}, 'exe_time': 4010} DEBUG:miio.click_common:Exception: {'code': -9999, 'message': 'user ack timeout'} Traceback (most recent call last): File "/path/to/venv/venv/lib64/python3.7/site-packages/miio/click_common.py", line 51, in __call__ return self.main(*args, **kwargs) File "/path/to/venv/venv/lib64/python3.7/site-packages/click/core.py", line 1055, in main rv = self.invoke(ctx) File "/path/to/venv/venv/lib64/python3.7/site-packages/click/core.py", line 1657, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/path/to/venv/venv/lib64/python3.7/site-packages/click/core.py", line 1657, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/path/to/venv/venv/lib64/python3.7/site-packages/click/core.py", line 1404, in invoke return ctx.invoke(self.callback, **ctx.params) File "/path/to/venv/venv/lib64/python3.7/site-packages/click/core.py", line 760, in invoke return __callback(*args, **kwargs) File "/path/to/venv/venv/lib64/python3.7/site-packages/miio/click_common.py", line 300, in wrap kwargs["result"] = func(*args, **kwargs) File "/path/to/venv/venv/lib64/python3.7/site-packages/click/decorators.py", line 84, in new_func return ctx.invoke(f, obj, *args, **kwargs) File "/path/to/venv/venv/lib64/python3.7/site-packages/click/core.py", line 760, in invoke return __callback(*args, **kwargs) File "/path/to/venv/venv/lib64/python3.7/site-packages/miio/click_common.py", line 265, in command_callback return miio_command.call(miio_device, *args, **kwargs) File "/path/to/venv/venv/lib64/python3.7/site-packages/miio/click_common.py", line 212, in call return method(*args, **kwargs) File "/path/to/venv/venv/lib64/python3.7/site-packages/miio/click_common.py", line 179, in _wrap return func(self, *args, **kwargs) File "/path/to/venv/venv/lib64/python3.7/site-packages/miio/airfresh_t2017.py", line 254, in status values = self.get_properties(properties, max_properties=15) File "/path/to/venv/venv/lib64/python3.7/site-packages/miio/device.py", line 232, in get_properties values.extend(self.send(property_getter, _props[:max_properties])) File "/path/to/venv/venv/lib64/python3.7/site-packages/miio/device.py", line 107, in send command, parameters, retry_count, extra_parameters=extra_parameters File "/path/to/venv/venv/lib64/python3.7/site-packages/miio/miioprotocol.py", line 214, in send self._handle_error(payload["error"]) File "/path/to/venv/venv/lib64/python3.7/site-packages/miio/miioprotocol.py", line 274, in _handle_error raise DeviceError(error) miio.exceptions.DeviceError: {'code': -9999, 'message': 'user ack timeout'} Error: {'code': -9999, 'message': 'user ack timeout'}
Thank you!
Sorry! Wrong repo. Was too tired... Closing this
Hi!
I have a dmaker.airfresh.t2017.
After token retrieval I cut off any internet access from this airfresh using router's capabilities. This is the error I got when tried to get status from the device using miiocti
Any control attempts (turn on/off the device, display) resulted in same error
However, info can be recieved
This issue is definitely caused by internet blockade. If I allow internet access, then status retrieval can be done
The question is why I am not able to get status from airfresh when it is offline?
Additional info (failed status command with debug output)
Thank you!