t0mer / broadlinkmanager-docker

Broadlink Manager is a python based project that allows you to contorol your broadlink devices. Discover, Leran and send command in a very easy way
Apache License 2.0
259 stars 56 forks source link

RM4 Mini 0x5216 not supported #59

Closed liuk4friends closed 2 years ago

liuk4friends commented 2 years ago

My RM4 Mini (0x5216 type) is not supported by Broadlink Manager.

Broadlink Manager is installed with Qnap Container Station (docker) on my Qnap TS-653A.

After network scan, Broadlink Manager finds the RM4 mini as "not supported".

As a matter of fact, I can't learn any IR code under "Actions" menu. When I try, I can see the message "waiting for signal" (just for a second) and then I receive the "Error occurred while scanning, please try again" message.

This is my log after network scan:

2022-06-05 14:13:13.955 | INFO     | __main__:<module>:48 - OS: posix
2022-06-05 14:13:13.960 | DEBUG    | __main__:get_env_ip_list:71 - Environement discovered IP List []
2022-06-05 14:13:13.984 | DEBUG    | __main__:get_local_ip_list:64 - Locally discovered IP List ['192.168.178.101', '172.29.0.1', '10.0.5.1', '10.0.3.1', '10.0.7.1', '253.253.253.253', '172.29.8.1', '172.29.16.1', '172.29.20.1']
2022-06-05 14:13:13.985 | INFO     | __main__:<module>:126 - Broadlink will try to discover devices on the following IP interfaces: ['192.168.178.101', '172.29.0.1', '10.0.5.1', '10.0.3.1', '10.0.7.1', '253.253.253.253', '172.29.8.1', '172.29.16.1', '172.29.20.1']
2022-06-05 14:13:13.988 | INFO     | __main__:<module>:135 - Configuring app
2022-06-05 14:13:13.994 | INFO     | __main__:get_analytics_code:179 - Content: <script async src="https://www.googletagmanager.com/gtag/js?id=UA-131664523-2"></script>
    <script>
        window.dataLayer = window.dataLayer || [];
        function gtag() { dataLayer.push(arguments); }
        gtag('js', new Date());

        gtag('config', 'UA-131664523-2');
    </script>

2022-06-05 14:13:14.025 | INFO     | __main__:<module>:641 - Broadllink Manager is up and running
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:7020 (Press CTRL+C to quit)
INFO:     192.168.178.199:52163 - "GET / HTTP/1.1" 200 OK
INFO:     192.168.178.199:52164 - "GET / HTTP/1.1" 200 OK
INFO:     192.168.178.199:52164 - "GET /about HTTP/1.1" 200 OK
INFO:     192.168.178.199:52164 - "GET /index HTTP/1.1" 200 OK
INFO:     192.168.178.199:52164 - "GET /index HTTP/1.1" 200 OK
INFO:     192.168.178.199:52170 - "GET /index HTTP/1.1" 200 OK
INFO:     192.168.178.199:52170 - "GET /index HTTP/1.1" 200 OK
INFO:     192.168.178.199:52170 - "GET /generator HTTP/1.1" 200 OK
INFO:     192.168.178.199:52170 - "GET /index HTTP/1.1" 200 OK
INFO:     192.168.178.199:52170 - "GET /index HTTP/1.1" 200 OK
INFO:     192.168.178.199:52181 - "GET /index HTTP/1.1" 200 OK
INFO:     192.168.178.199:52183 - "GET /index HTTP/1.1" 200 OK
INFO:     192.168.178.199:52196 - "GET /about HTTP/1.1" 200 OK
INFO:     192.168.178.199:52204 - "GET /index HTTP/1.1" 200 OK
INFO:     192.168.178.199:52204 - "GET /index HTTP/1.1" 200 OK
2022-06-05 14:16:19.411 | INFO     | __main__:load_devices_from_file:574 - Reading devices from file
2022-06-05 14:16:22.415 | ERROR    | __main__:load_devices_from_file:579 - Loading devices from file has faild with the following exception: [Errno 2] No such file or directory: 'data/devices.json'
INFO:     192.168.178.199:52214 - "GET /devices/load HTTP/1.1" 200 OK
2022-06-05 14:16:27.579 | INFO     | __main__:search_for_devices:592 - Searcing for devices...
2022-06-05 14:16:27.579 | INFO     | __main__:search_for_devices:594 - Checking devices on interface assigned with IP: 192.168.178.101
2022-06-05 14:16:32.716 | INFO     | __main__:search_for_devices:601 - New device detected: Not Supported (ip: 192.168.178.81  mac: ec0bae990d7b)
2022-06-05 14:16:32.717 | INFO     | __main__:search_for_devices:594 - Checking devices on interface assigned with IP: 172.29.0.1
2022-06-05 14:16:37.720 | INFO     | __main__:search_for_devices:594 - Checking devices on interface assigned with IP: 10.0.5.1
2022-06-05 14:16:42.722 | INFO     | __main__:search_for_devices:594 - Checking devices on interface assigned with IP: 10.0.3.1
2022-06-05 14:16:47.724 | INFO     | __main__:search_for_devices:594 - Checking devices on interface assigned with IP: 10.0.7.1
2022-06-05 14:16:52.726 | INFO     | __main__:search_for_devices:594 - Checking devices on interface assigned with IP: 253.253.253.253
2022-06-05 14:16:57.729 | INFO     | __main__:search_for_devices:594 - Checking devices on interface assigned with IP: 172.29.8.1
2022-06-05 14:17:02.732 | INFO     | __main__:search_for_devices:594 - Checking devices on interface assigned with IP: 172.29.16.1
2022-06-05 14:17:07.734 | INFO     | __main__:search_for_devices:594 - Checking devices on interface assigned with IP: 172.29.20.1
2022-06-05 14:17:12.736 | DEBUG    | __main__:search_for_devices:611 - Devices Found: [{'name': 'Not Supported', 'type': '0x5216', 'ip': '192.168.178.81', 'mac': 'ec0bae990d7b'}]
INFO:     192.168.178.199:52218 - "GET /autodiscover HTTP/1.1" 200 OK
INFO:     192.168.178.199:52218 - "GET /index HTTP/1.1" 200 OK
2022-06-05 14:17:12.987 | DEBUG    | __main__:get_device_status:623 - 192.168.178.81
2022-06-05 14:17:13.085 | DEBUG    | __main__:get_device_status:626 - b'1\n'
INFO:     192.168.178.199:52222 - "GET /device/ping?host=192.168.178.81 HTTP/1.1" 200 OK
2022-06-05 14:17:40.906 | INFO     | __main__:save_devices_to_file:557 - Writing devices to file
2022-06-05 14:17:40.907 | INFO     | __main__:save_devices_to_file:561 - Finished writing devices to file
INFO:     192.168.178.199:52225 - "POST /devices/save HTTP/1.1" 200 OK

And this is my log after trying to learn IR code:

2022-06-05 14:26:59.615 | INFO     | __main__:learnir:428 - Learning IR Code for device: 192.168.178.81
                    2022-06-05 14:26:59.737 | INFO     | __main__:learnir:431 - Entering IR Learning Mode
                                                                                                         INFO:     192.168.178.199:52336 - "GET /ir/learn?type=0x5216&host=192.168.178.81&mac=ec0bae990d7b HTTP/1.1" 500 Internal Server Error
                                                                                                           ERROR:    Exception in ASGI application
               Traceback (most recent call last):
                                                   File "/usr/local/lib/python3.8/dist-packages/uvicorn/protocols/http/h11_impl.py", line 373, in run_asgi
                           result = await app(self.scope, self.receive, self.send)
                                                                                    File "/usr/local/lib/python3.8/dist-packages/uvicorn/middleware/proxy_headers.py", line 75, in __call__
                                                            return await self.app(scope, receive, send)
                                                                                                         File "/usr/local/lib/python3.8/dist-packages/fastapi/applications.py", line 212, in __call__
                                                                      await super().__call__(scope, receive, send)
                                                                                                                    File "/usr/local/lib/python3.8/dist-packages/starlette/applications.py", line 112, in __call__
                                                                                   await self.middleware_stack(scope, receive, send)
   File "/usr/local/lib/python3.8/dist-packages/starlette/middleware/errors.py", line 181, in __call__
                                                                                                          raise exc
                                                                                                                     File "/usr/local/lib/python3.8/dist-packages/starlette/middleware/errors.py", line 159, in __call__
                                                                                         await self.app(scope, receive, _send)
                                                                                                                                File "/usr/local/lib/python3.8/dist-packages/starlette/middleware/cors.py", line 84, in __call__
                                                                                                 await self.app(scope, receive, send)
    File "/usr/local/lib/python3.8/dist-packages/starlette_exporter/middleware.py", line 135, in __call__
                                                                                                             await self.app(scope, receive, wrapped_send)
                        File "/usr/local/lib/python3.8/dist-packages/starlette/exceptions.py", line 82, in __call__
                                                                                                                       raise exc
                                                                                                                                  File "/usr/local/lib/python3.8/dist-packages/starlette/exceptions.py", line 71, in __call__
                                                                                              await self.app(scope, receive, sender)
   File "/usr/local/lib/python3.8/dist-packages/starlette/routing.py", line 656, in __call__
                                                                                                await route.handle(scope, receive, send)
       File "/usr/local/lib/python3.8/dist-packages/starlette/routing.py", line 259, in handle
                                                                                                  await self.app(scope, receive, send)
     File "/usr/local/lib/python3.8/dist-packages/starlette/routing.py", line 61, in app
                                                                                            response = await func(request)
                                                                                                                            File "/usr/local/lib/python3.8/dist-packages/fastapi/routing.py", line 226, in app
                                                                               raw_response = await run_endpoint_function(
                                                                                                                            File "/usr/local/lib/python3.8/dist-packages/fastapi/routing.py", line 161, in run_endpoint_function
                                                                                                 return await run_in_threadpool(dependant.call, **values)
                        File "/usr/local/lib/python3.8/dist-packages/starlette/concurrency.py", line 39, in run_in_threadpool
                                                                                                                                 return await anyio.to_thread.run_sync(func, *args)
                                                  File "/usr/local/lib/python3.8/dist-packages/anyio/to_thread.py", line 28, in run_sync
         return await get_asynclib().run_sync_in_worker_thread(func, *args, cancellable=cancellable,
                                                                                                      File "/usr/local/lib/python3.8/dist-packages/anyio/_backends/_asyncio.py", line 818, in run_sync_in_worker_thread
                                                                                        return await future
                                                                                                             File "/usr/local/lib/python3.8/dist-packages/anyio/_backends/_asyncio.py", line 754, in run
                                                                         result = context.run(func, *args)
                                                                                                            File "broadlinkmanager.py", line 432, in learnir
                             dev.enter_learning()
                                                 AttributeError: 'Device' object has no attribute 'enter_learning'
t0mer commented 2 years ago

Added. Please pull the last version.