-
-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FEATURE REQUEST] Cycle action (click alternative to hold_*_toggle) #204
Comments
Hi @denilsonsa, Thank you for the very detailed explanation of this proposal. This is, indeed, a very goo didea, but I have some questions to clarify some things. You said:
And then in the example you showed below, you only show how it goes up, but not down. So if the Also, correct me if I am wrong, the goal for this proposal is to have an action to step up or down through brightness or color in a cycle mode, right? Well, for this we already have the Let me know what you think :) Regards, |
Those are fair questions, as my suggestion was more in the brainstorming phase than in actual implementation details.
Yeah, for conciseness I only showed the wrap-around/cycling behavior.
My initial idea (when I started writing) was to imitate the Anyway… Both bouncing and cycling have same end result of allowing to go either up or down (given enough calls), the only difference is the path. Then, cycling from a preset list is a superset of both, because this list can be populated in any arbitrary way. As a quick-to-implement solution, allowing the bouncing (MinMax?) and/or circular (wrapping around) and/or capping (stop at extremes, which is the current behavior) seems like a sufficiently simple solution. But I worry about how this option will interact with the existing actions. (Should it affect both click and hold? Or only one of them? Only for certain attributes? What if a user would like one button to behave a certain way, and another button in a different way?) Side note: Custom light controllers already have too many actions ( |
Hey @denilsonsa, Thank you for expanding your idea. I see two requests from here then:
Both features can then leverage the The total actions would be then:
This is a total of Does this make sense to you as well? Regards, |
* refactor(stepper): refactor stepper to be more isolated this will enable the integration of a bouncing stepper * refactor(stepper): create StepperOutput with next_direction * feat(light_controller): add click/hold modes related to #204
Hi there, This feature is now part of the ControllerX beta v4.16.0b1. Unfortunately, the docs are not yet ready to be seen, but this is the markdown documentation about this feature that will be added to the documentation: This page assumes you already know how the A new feature that came with ControllerX v4.16.0 is the ability to configure the hold and click actions. Up until now, we had the
They allow to use click (1 step) or hold (smooth dim) with different attributes and directions. However, it became difficult to expand and add more functionality, so now the example_app:
module: controllerx
class: E1810Controller
integration: deconz
controller: my_controller
light: light.my_light
merge_mapping:
2001:
action: click # [click, hold] This is the predefined action.
attribute: brightness # [brightness, color_temp, white_value, color, xy_color]
direction: up # [up, down, toggle (only for hold)]
mode: stop # [stop, loop, bounce (only for hold)] Stepper mode
steps: 10 # It overrides the `manual_steps` and `automatic_steps` global attributes The fields are the following:
As you can see, the configuration is much flexible, however, it adds more lines than using the direct predefined actions. For this reason, the predefined actions like example_app:
module: controllerx
class: E1810Controller
integration: deconz
controller: my_controller
light: light.my_light
merge_mapping:
2001:
action: hold
attribute: brightness
direction: up It is the same as: example_app:
module: controllerx
class: E1810Controller
integration: deconz
controller: my_controller
light: light.my_light
merge_mapping:
2001:
action: hold_brightness_up The old predefined actions have |
Once enough people download the beta, and not issues are reported, I will ship this with ControllerX 4.16.0. |
This feature has been added to ControllerX v4.16.0. |
Feature Request
Is your feature request related to a problem?
I have a 2-button IKEA remote control, and I'd like to be able to both change the brightness and the color temperature from it. This can get tricky, as this controller doesn't have enough buttons. If I would also want to change the color as well, it becomes impossible.
The
hold_*_toggle
actions are the only ones that can set a value both up and down. However, they can only be set to button-hold events. (Well, you can set them to clicks as well, but then you have to manually set another click torelease
, which is both counter-intuitive and also requires an additional dedicated button.) We are missing similar up/down actions for clicks.Describe the solution / feature you'd like
I'd like a
click_*_toggle
action, or maybeclick_*_cycle
action. The idea is that repeatedly clicking would change a value up (or down), and then either wrap around or switch direction. Look a these examples (wrapping around):This would behave like those non-smart LED lamps that are dimmable with a standard wall switch.
This kind of cycling could be used for any of the already existing light attributes (brightness, color, colortemp, …), and also…
Describe alternatives you've considered
Currently, I can use
hold_brightness_toggle
andhold_colortemp_toggle
.However, that's a bit counter-intuitive, I'd prefer to keep holding up/down to increase/decrease brightness, and then assign double-clicks to changing the color temperature.
I know I can implement this behavior by using one or more scripts coupled with one or more inputs, and call them from controllerx. However, having it built-in would be much simpler to configure.
Additional context
Observe the available combinations of
click
,hold
andup
,down
,toggle
in the following table:This feature request aims to complete the "missing" combination, by suggesting a click-friendly up/down/cycle action.
The text was updated successfully, but these errors were encountered: