vanviegen / hue-thief

Factory reset Philips Hue bulbs using an EZSP-based Zigbee USB stick. After a reset, bulbs can easily join any type of compatible bridge.
GNU General Public License v3.0
178 stars 20 forks source link

ValueError: (11, None) is not a valid NcpResetCode #29

Open evanpurkhiser opened 1 month ago

evanpurkhiser commented 1 month ago

Full stack trace is

/home/evan/hue-thief/hue-thief.py:135: DeprecationWarning: There is no current event loop
  asyncio.get_event_loop().run_until_complete(steal(args.device, args.baudrate, args.channel))
Exception in callback SerialTransport._read_ready()
handle: <Handle SerialTransport._read_ready()>
ValueError: (11, None) is not a valid NcpResetCode

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.12/asyncio/events.py", line 88, in _run
    self._context.run(self._callback, *self._args)
  File "/home/evan/hue-thief/.venv/lib/python3.12/site-packages/serial_asyncio/__init__.py", line 120, in _read_ready
    self._protocol.data_received(data)
  File "/home/evan/hue-thief/.venv/lib/python3.12/site-packages/bellows/uart.py", line 81, in data_received
    self.frame_received(frame)
  File "/home/evan/hue-thief/.venv/lib/python3.12/site-packages/bellows/uart.py", line 116, in frame_received
    self.rstack_frame_received(data)
  File "/home/evan/hue-thief/.venv/lib/python3.12/site-packages/bellows/uart.py", line 149, in rstack_frame_received
    code, version = self._get_error_code(data)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/evan/hue-thief/.venv/lib/python3.12/site-packages/bellows/uart.py", line 182, in _get_error_code
    return t.NcpResetCode(data[2]), data[1]
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/evan/hue-thief/.venv/lib/python3.12/site-packages/bellows/types/basic.py", line 205, in __call__
    return super().__call__(value, names, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/enum.py", line 757, in __call__
    return cls.__new__(cls, value)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/enum.py", line 1179, in __new__
    raise exc
  File "/usr/lib/python3.12/enum.py", line 1156, in __new__
    result = cls._missing_(value)
             ^^^^^^^^^^^^^^^^^^^^
  File "/home/evan/hue-thief/.venv/lib/python3.12/site-packages/bellows/types/basic.py", line 214, in _missing_
    new = int_type.__new__(cls, value)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: int() argument must be a string, a bytes-like object or a real number, not 'tuple'

Traceback (most recent call last):
  File "/home/evan/hue-thief/.venv/lib/python3.12/site-packages/bellows/cli/util.py", line 113, in setup
    await s._startup_reset()
  File "/home/evan/hue-thief/.venv/lib/python3.12/site-packages/bellows/ezsp/__init__.py", line 103, in _startup_reset
    await self.reset()
  File "/home/evan/hue-thief/.venv/lib/python3.12/site-packages/bellows/ezsp/__init__.py", line 132, in reset
    await self._gw.reset()
TimeoutError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/evan/hue-thief/hue-thief.py", line 135, in <module>
    asyncio.get_event_loop().run_until_complete(steal(args.device, args.baudrate, args.channel))
  File "/usr/lib/python3.12/asyncio/base_events.py", line 687, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/home/evan/hue-thief/hue-thief.py", line 28, in steal
    dev = await util.setup(device_path, baudrate)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/evan/hue-thief/.venv/lib/python3.12/site-packages/bellows/cli/util.py", line 117, in setup
    raise click.Abort()
click.exceptions.Abort
$ python --version
Python 3.12.3

Seems to be this https://github.com/zigpy/bellows/pull/616

Unfortunately there hasn't been a release yet.

evanpurkhiser commented 1 month ago

Can be fixed by running

pip install --upgrade git+https://github.com/zigpy/bellows.git

In the local clone of hue-thief