spook icon indicating copy to clipboard operation
spook copied to clipboard

Increment/Decrement doesn't work on step of 0.1

Open Dillz42 opened this issue 2 months ago • 0 comments

What version of Spook are you using?

2.2.4

What version of Home Assistant are you using?

2024.4.4

The problem

Spook doesn't seem to like incrementing or decrementing number entities with a step of 0.1. It looks like this has to do with the check for the amount being a multiple of the step. When incrementing 2 with a step of 0.1, the 'multiple' check gets that 2 is not a multiple of 0.1 due to decimal math inaccuracy (2 % 0.1 = 0.099999999 in python).

Anything in the logs? Paste it here!

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 239, in handle_call_service
    response = await hass.services.async_call(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2543, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2580, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 971, in entity_service_call
    single_response = await _handle_entity_call(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 1043, in _handle_entity_call
    result = await task
             ^^^^^^^^^^
  File "/config/custom_components/spook/ectoplasms/number/services/increment.py", line 35, in async_handle_service
    raise ValueError(msg)
ValueError: ('Amount 2.0 not valid for number.office_desk_upsy_desky_target_desk_height, it needs to be a multiple of 0.1',)

Dillz42 avatar Apr 30 '24 00:04 Dillz42