Skip to content

Listing light presets throws error #1201

@Puxtril

Description

@Puxtril
  • Product: KL135(US)
  • Kasa version 0.7.5

Using command kasa --host 192.168.1.10 light presets list prints Raised error: expected string or bytes-like object, got 'IotLightPreset'

Can be fixed by changing cli/light.py (currently line 134)

for preset in light_preset.preset_states_list:
        echo(preset)

to...

for preset in light_preset.preset_states_list:
        echo(str(preset.__dict__))

which prints out...

{'index': 0, 'brightness': 50, 'hue': 0, 'saturation': 0, 'color_temp': 2700, 'custom': None, 'id': None, 'mode': None}
{'index': 1, 'brightness': 100, 'hue': 0, 'saturation': 100, 'color_temp': 0, 'custom': None, 'id': None, 'mode': None}
{'index': 2, 'brightness': 100, 'hue': 120, 'saturation': 100, 'color_temp': 0, 'custom': None, 'id': None, 'mode': None}
{'index': 3, 'brightness': 100, 'hue': 240, 'saturation': 100, 'color_temp': 0, 'custom': None, 'id': None, 'mode': None}

But I'm sure you'd probably want a more "official" format to print presets.

Full traceback
Traceback (most recent call last):
  File "/home/***/Downloads/kasa/bin/kasa", line 8, in <module>
    sys.exit(cli())
             ^^^^^
  File "/home/***/Downloads/kasa/lib/python3.12/site-packages/asyncclick/core.py", line 1205, in __call__
    return anyio.run(self._main, main, args, kwargs, **opts)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/***/Downloads/kasa/lib/python3.12/site-packages/anyio/_core/_eventloop.py", line 74, in run
    return async_backend.run(func, args, {}, backend_options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/***/Downloads/kasa/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2284, in run
    return runner.run(wrapper())
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/asyncio/base_events.py", line 687, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/home/***/Downloads/kasa/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2272, in wrapper
    return await func(*args)
           ^^^^^^^^^^^^^^^^^
  File "/home/***/Downloads/kasa/lib/python3.12/site-packages/asyncclick/core.py", line 1208, in _main
    return await main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/***/Downloads/kasa/lib/python3.12/site-packages/asyncclick/core.py", line 1120, in main
    rv = await self.invoke(ctx)
         ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/***/Downloads/kasa/lib/python3.12/site-packages/kasa/cli/common.py", line 229, in invoke
    _handle_exception(self._debug, exc)
  File "/home/***/Downloads/kasa/lib/python3.12/site-packages/kasa/cli/common.py", line 227, in invoke
    return await super().invoke(ctx)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/***/Downloads/kasa/lib/python3.12/site-packages/asyncclick/core.py", line 1739, in invoke
    return await _process_result(await sub_ctx.command.invoke(sub_ctx))
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/***/Downloads/kasa/lib/python3.12/site-packages/asyncclick/core.py", line 1739, in invoke
    return await _process_result(await sub_ctx.command.invoke(sub_ctx))
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/***/Downloads/kasa/lib/python3.12/site-packages/asyncclick/core.py", line 1739, in invoke
    return await _process_result(await sub_ctx.command.invoke(sub_ctx))
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/***/Downloads/kasa/lib/python3.12/site-packages/asyncclick/core.py", line 1485, in invoke
    return await ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/***/Downloads/kasa/lib/python3.12/site-packages/asyncclick/core.py", line 824, in invoke
    rv = await rv
         ^^^^^^^^
  File "/home/***/Downloads/kasa/lib/python3.12/site-packages/kasa/cli/common.py", line 129, in wrapper
    return await ctx.invoke(wrapped_function, dev, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/***/Downloads/kasa/lib/python3.12/site-packages/asyncclick/core.py", line 822, in invoke
    rv = __callback(*args, **kwargs)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/***/Downloads/kasa/lib/python3.12/site-packages/kasa/cli/light.py", line 134, in presets_list
    echo(preset)
  File "/home/***/Downloads/kasa/lib/python3.12/site-packages/kasa/cli/common.py", line 54, in echo
    _echo(*args, **kwargs)
  File "/home/***/Downloads/kasa/lib/python3.12/site-packages/kasa/cli/common.py", line 42, in wrapper
    message = rich_formatting.sub("", message)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions