ZHA - Philips Hue Dimmer Switch (RWL020, RWL021)

Hi, thanks for sharing this. Big help for a newb like me.
The original scene select function is great, but I think it would be even better to have the “on” button step cycle through color_temp values (when light is on). Maybe with a selector for number of steps.
I have a very primitive automation doing this, but my lack of yaml skills prevent me from incorporating it with your blueprint and if your (very cool) brightness feature is on it’ll kick in whenever I press the “on” button. An additional feature could be a smooth transition through color_temp when “on” is held.

Just some thoughts. Thanks again.

3 Likes

Have a look at ControllerX, can do all sorts with that and really easy to set up.

1 Like

On / Off doesnt work for me :smiley: Only the dimming works

RWL021

1 Like

I’m looking at your code for minutes now, it’s awesome how easy blueprints would make automations for newcomers!

We’re using this dimmer switches in horizontal in the following way:
using the “I” button for light 1 & the “O” button for light 2

For both: on (short press) and off (long press)

I could thing of a way to use your blueprint to archive this.
But currently i’m using a variable to store the last changed light of this two and using the dim up/ down button to change the brightness of the last changed light. But I’ve got no idea how I could solve that using only one automation (currently having one for turning light 1 on/off, one for light 2 on/off, and one for each light to change the brightness) or make that available for others as a blueprint.

Maybe you find that helpful, too and are able to edit your blueprint and post that separately :slight_smile:
Greets

I think its best to make one general template for each speciality. One base that do the dame as philips default and one that can switch between lights. I do the deconz version and have the color temp mode fixed tomorrow (code can be exchanged) but its also possible to use same principle (long press) to change bulb or so.

But not one size fits all, that i do not suggest. Keep this one simple

With the greatest respect to yours and others work, check out the ControllerX add on as mentioned above, it will make your life so much simpler, out of the box it makes the Hue Dimmer work as nature intended and that’s literally just the most basic function…

1 Like

I am using ControllerX now, and it is working pretty good. But if I could ditch AppDaemon, without losing functionality that would be great.

Can I ask why you want to ditch AppDaemon? Doing it this way would normally be considered a backward step :slight_smile:

Fair question!

I have a wish to keep my setup as simple as possible, for instance:

Using ZHA instead of Deconz.
Using HA Automations instead of Node-Red.

Of course, it has to be without considerable loss of functionality (which is why I am using ControllerX now). But it is my experience, that a simpler setup brings less headaches down the road, and I am definitely going to test if this can replace ControllerX.

2 Likes

Thanks, man after my own heart, both examples are the same for me, other than came to ZHA from zigbee2mqtt, although I’ve also found they work better but must admit I just don’t get on with Node-Red, actually seems far more complicated than good old yaml for everything I want to do :slight_smile:

Also admit I avoided AppDaemon like the plague for ages and only installed it for ControllerX but hadn’t realised the add-on now makes it so simple and it’s like it’s not even there.

Good luck, whichever way you go.

1 Like

@Bobby_Nobble Thanks for the suggestion, but I think the new blueprint is the way to go. No additional software needed, fully integrated into the web interface, no editor needed, growing community.

It’s good to hear that ControllerX can do much more than this blueprint right now, however I’m sure this will evolve very quickly.

1 Like

I have ControllerX set up and working and it does everything I want - except step-cycling through color_temp.

I am the creator of ControllerX, and I agree on the fact that the setup process for ControllerX is tedious and relies on AppDaemon, which is not an official tool. I see that Blueprints are the official way towards something that ControllerX already does, but Blueprints are no more than parematrized automations that can be shared thrhough the community. They can be used for other use cases since they have a generic purpose, which is great.

ControllerX on the other hand, it is an specific tool that allows you to create controller-based automations. It can not be used for anything not related to controllers, this means that they don’t have a generic purpose, but focus well in the simple task of integrating controllers with your HA entities and services. ControllerX has the following functionality over Blueprints amongst others:

  • Integration with Z2M (state and mqtt), deCONZ and ZHA.
  • Easy to define a custom mappings through YAML code with predefined actions.
  • Smooth transition for brightness, color temp, volume.
  • Color loop for lights that support color.
  • Multiple click functionality for controllers with no hardware support for it.
  • Be able to define a very specific use case. For Blueprints if you want something specific, you need to change the blueprint yaml, which loses the purpose of using a Blueprint in my opinion.

Blueprints seem to be a beginning towards an easy way to create controller-based automations, but far to be fairly compared with ControllerX when it comes to functionality.

1 Like

Hi @k_manggaard,

Could you develop your idea? Do you mean infinitely cycling through the color temp? So from warm go to cold color directly and then cycle back again without releasing the button?

Regards,
Xavi M.

Thank you @Bobby_Nobble for the support. As I said, I understand the point of ControllerX not being part of Native HA. I did create ControllerX because HA was missing this functionality, and in my opinion it still does. Blueprints is a better way to solve that problem I had a year ago, but it does not solve the same problem as ControllerX does.

I guess if someone just needs an standard way of integrating a controller, Blueprints are okay, but if someone needs to go further with an specific use case, then I still recommend ControllerX for it since as you said, it is much flexible and solves all the problems that everyone is trying to solve in this thread.

2 Likes

Is it possible to add “multi functionality” to the on button, just like original work? First click on, second next collor/scene third next color/scene … and when you have cycled it goes back to the first color.

4 Likes

Hi,
I’ll try to explain:
Out of the box, when paired with a warm/cold bulb, the dimmer switch cycles through a number of predefined scenes when clicking the “on” button. What I would like is to cycle through predefined color_temp values instead. So if the bulb’s color_temp was at 50% when turned on, subsequent clicks would take it to 60%, 70%, 80% and so on, eventually going from 100% back to 0%. Preferably with the option to define the size and duration of “jumps”. This is actually the default behavior of the Trådfri remote, although that one only cycles through 3 values (I think).

Great work! And thanks for the interest.

Hi @k_manggaard,

Thank you for explaining this, I was not aware of the specific original behaviour. This is possible with ControllerX, including the adjustment of the steps you are mentioning. The only thing is not possible as of now is to go back from 100 to 0, unless you are working with a color light. But it could be easily added as a feature since there is the concept of a Stepper (MinMax Stepper: goes from min to max and stops; CircularSteper: cycles from from 100% to 0% and vice versa). However, the color temp and brightness are set to be MinMax Steppers.

Let me know if you are interested and I could help you out first with the configuration, and if needed I would need to create a feature ticket for the fact of going from 100% to 0%.

I have this controller paired with deCONZ, so I can show you this in a video when I can.

Regards,
Xavi M.

This is my solution for the cycling through scenes :

I have a script that takes a “scene” name (not a HA scene) and an light entity id and applies the scene to the light.

It goes like this :

alias: Set scene
sequence:
  - choose:
      - conditions:
          - condition: template
            value_template: '{{ scene == ''veilleuse'' }}'
        sequence:
          - data:
              brightness: 25
              color_temp: 369
              effect: none
              entity_id: '{{ light }}'
              transition: 0.2
            service: light.turn_on
      - conditions:
          - condition: template
            value_template: '{{ scene == ''printemps_floral'' }}'
        sequence:
          - data:
              brightness: 215
              effect: none
              entity_id: '{{ light }}'
              hs_color:
                - 338.447
                - 40.392
            service: light.turn_on

etc. for each scene.

Then, for each light, I have an input_select containing a list of scenes I want to cycle through for that particular light.

I then updated the blueprint as follow (extract of the changed part):

    scenes:
      name: List of scenes
      description: List of light scenes
      selector:
        entity:
          domain: input_select
mode: restart
max_exceeded: silent
variables:
  scenes: !input 'scenes'
  light: !input 'light'
trigger:
- platform: event
  event_type: zha_event
  event_data:
    device_id: !input 'remote'
action:
- variables:
    command: '{{ trigger.event.data.command }}'
    cluster_id: '{{ trigger.event.data.cluster_id }}'
    endpoint_id: '{{ trigger.event.data.endpoint_id }}'
    args: '{{ trigger.event.data.args }}'
- choose:
  - conditions:
    - '{{ command == ''on'' }}'
    - '{{ cluster_id == 6 }}'
    - '{{ endpoint_id == 1 }}'
    sequence:
    - choose:
      - conditions: '{{ is_state(light, ''on'') }}'
        sequence:
        - service: input_select.select_next
          entity_id: !input 'scenes'
        - service: script.set_scene
          data:
            light: !input 'light'
            scene: '{{ states(scenes) }}'
      default:
      - service: light.turn_on
        entity_id: !input 'light'
        data:
          transition: 1

It now works like with the Hue app.

Hey guys,

i have a Philips Hue Dimmer Switch but seemingly is this not the RWL020, RWL021 - BUT it looks so :smiley:
it haves the Model Number 324131137411!
Anyone knowes what kind of Hue Dimmer this is? Or is it possible to make this Blueprint ready for this one? =)

2 Likes