Lutron Caseta Smart Dimmer - observations and configuration

In my search for the perfect smart dimmer, I have purchased, installed, and played with most of the popular brands and devices out there (at least in the zwave world).
Recently, I saw some youtubes on the Caseta Diva smart dimmer switch, and I got really excited for one reason;
This switch has a physical dimmer slider!
That’s right, you can slide the slider up and down, and have immediate dimming response, from the switch, without having to hold a button down to dim up or down. It’s a small thing, but being able to just quickly slide to the top, knowing you are at 100%, quick, instant, high WAF.
in addition, you can, of course, also set the dimming level via HA, and the switch will behave like any other smart switch, and change accordingly. the little led dimmer bar (behind the physical slider) will update to show the new dimming level.

So… now to the devil in the details.

Cons;

  • In order to use this switch, or any other Caseta device, you need to have a smart hub. - yet another integration for HA.
  • cost. these are quite expensive, 80 canadian pesos each, or 160 for the starter kit (hub+dimmer+Pico remote)
  • Not as fully featured as other smart switches. No native double-click, hold, or other events. Limited switch options for min/max dimmer settings. No option to change ramp rate.
  • lacks a neutral wire - needs an attached load to function. vampire.
  • does not remember last brightness value when turning on via HA
  • proprietary wireless / not z-wave. potentially limited range, or RF issues.

Pros;

  • physical dimmer slider.
  • instant response, very snappy, high WAF, functions like a normal switch
  • does not need a neutral wire.
  • integration appears to be all local. I will need to cut my internet one of these days just to be sure on that point…
  • Pico can control switches natively (no HA), quick and easy. Can also use Pico as a limited scene controller; single click events by default only

The hub.
I’ve read, in the past, a PRO version of the hub would be required. looks like that is no longer the case. the Smart Hub which came in my startup kit works fine, supports up to 75 devices. Setting this up was painless. Super easy. (requires ethernet and dhcp). Adding the Caseta integration to HA was also super easy. no complaints here other than i have another device (the hub) to manage.
My hub is a L-BDG2-WH

The First switch
Much like the hub setup, adding the first switch was quite easy. Requires the Caseta app to add devices.
Physically, the switch is fairly standard as far as smart switches go. It doesn’t require the additional aluminum fins on the front plate for heat dissipation, so no tabs to break off for a multi-gang install. The switch has pigtails as opposed to wire terminals; not really a pro or a con. easy install if you are using Wago or other similar connectors. The fact the switch doesn’t have even an option for a neutral cable is annoying to me. I’ve already got neutrals in all my switch boxes, and because it dones’t have a neutral, you MUST have a load attached for the switch to function. basically it will pass a small voltage through the load in order to function. While no neutral is a huge plus in a lot of retrofit cases, it also means you cant simply power the switch on a test bench without an attached load.
Once installed, easily adds into the app by holding the bottom button for 10 seconds.
The dimmer on this thing is awesome… Have i mentioned that before?
Once added to the app, showed up almost immediately in HA, as a light object.

Home assistant integration
If you simply utilize the light object that gets created by the integration, it works well enough for basic control. You can drive the dimmer value from HA by setting brightness with service light.turn_on, and it functions as you would expect from a basic switch.
you can do triggers based on turned on, turned off, and toggle ONLY.
Here is where is somewhat starts to fall apart.

Control from the physical switch: Because there is a physical dimmer slider, when you turn the light ON at the switch, the dimmer will go to the placement of the slider. No problem, and I think this is the most intuitive behaviour.

Control from HA. when you call light_on with no additional settings, the switch will turn on at 100% brightness. (does not remember prior setting) This is the most annoying part. You can turn on the switch, set the brightness to 50%, turn off, and turn on again, and it’s back to 100%. I dont know if this is a limitation of the integration, or just how the Caseta functions by default.

To correct for this, and this is where we get a little into the territory of kludgey, you can create a light template on top of the light object, and implement an input_number to keep track of the brightness. I put this together based on a few other threads i found about these and other lights. It’s a bit ugly to have to repeat this process for multiple switches.

here is my light template for my Kitchen Island:
light.kitchen_island is the Caseta entity.

  - platform: template
    lights:
      kitchen_island_t:
        unique_id: "kitchen_island_template" 
        friendly_name: "Kitchen Island"
        value_template: "{{ is_state('light.kitchen_island', 'on') }}"
        level_template: "{{ state_attr('light.kitchen_island', 'brightness')|int }}"
        turn_on:
          service: light.turn_on
          data_template:
            entity_id: light.kitchen_island
            brightness: "{{ states('input_number.kitchen_island_brightness') | int }}"
        turn_off:
          - service: input_number.set_value
            data_template:
              entity_id: input_number.kitchen_island_brightness
              value: "{{ state_attr('light.kitchen_island', 'brightness') | int }}"
          - service: light.turn_off
            entity_id: light.kitchen_island
        set_level:
          - service: light.turn_on
            data_template:
              entity_id: light.kitchen_island
              brightness: "{{ brightness }}"
          - delay: '00:00:01'
          - service: input_number.set_value
            data_template:
              entity_id: input_number.kitchen_island_brightness
              value: "{{ brightness }}"

Just using this template, and interacting only from HA, it will remember the brightness value, and restore it when you turn on.
BUT… the input_number wont update itself if you change the dimmer value via the physical switch.
It will capture the brightness value when you toggle the template off, so that might very well be good enough.
If you want the variable to always be up to date, you will also need an automation to trigger on brightness state change, as follows;

alias: kitchen Island template brightness update
description: ""
trigger:
  - platform: state
    entity_id:
      - light.kitchen_island
    attribute: brightness
condition: []
action:
  - service: input_number.set_value
    data:
      entity_id: input_number.kitchen_island_brightness
      value: "{{ state_attr('light.kitchen_island', 'brightness') }}"
mode: restart

when updating the brightness from the switch, it’s actually very good about sending state updates. it will send state updates while the slider is being adjusted to very fine detail. As such, the automation is mode:restart
**You only really need this automation if you are planning on driving other devices / settings based on the brightness value being change. Example; changing the brightness value of a second light when you physically adjust brightness value at the switch.

between the template and the automation, the switch is operating as i would expect any other smart dimmer to operate. Toggling the template light off and on again will keep the same brightness setting through the cycle.

Conclusion
I really like this switch, despite all the issues. Given the cost and integration headache with templates, I will be very selective as to which lights would get one of these switches. The lack of scene control could be a big deal for some. I will have a zooz zen32 scene controller in the same gang box as these switches, so my smarts can be taken care of with that. I do a lot of double tap logic in other rooms, and while i could make an event handler to get that to work on these, i dont think it’s worth the effort.

If another producer (zooz… looking at you) would come out with a z-wave switch that just simply rips off this design, i would switch them out and kijiji these in a heartbeat, but in the mean time, they do what i need them to do, and function beautifully as a tactile dimmer control while still being “smart”

5 Likes

Thanks a lot for this feedback, really helpfull :+1:
So the switch is only able to send ON/OFF/toggle event to HA ?
Could you share with us a screenshot of the ‘entities’ that are exposed in HA for the Diva smart switch ?

Have you been able to replicate a double click, or even a click that can be instantly responded to on the Diva?

With me the same experience and feeling as you! Bonus point, I can’t dim my dimmable G9 LED bulbs (corn slab style) at all!

The question remains, in your opinion, what is the best dimmer for the HA?

I’m testing some, and I’m almost concluding that the best one is a Sonoff NSPanel with an Android update running a WebBrowserContent with an HA dashboard!

How did you add it as a device to HA? I used the Lutron Caséta integration but the Diva switch cannot be detected by the integration. It works fine with the Lutron app on my phone.

The integration documentation explains that it works with the Lutron hub.

I have the Lutron hub. All of my other Lutron smart dimmers can be detected except for this Diva switch.

Late on a response, but I had the same problem when I added a bunch of new Diva’s during a remodel.

Simply go into the Lutron Caseta integration service, click the 3-dot menu and Reload. Any new devices on your bridge should show up.

Thanks to @jgudnas for the information. The brightness 100% problem when turning on from my dashboard has been bugging me. I’ll be trying to tackle that with the great information in this article. As part of my big remodel, I’ve attempted to standardize on Lutron Caseta for all lights and fan controls. It’s expensive, but it’s dead reliable from my experience. If I sell this house, the next owner has all physical controls as well without an automation system.

Hey Jared,

In your search for the perfect z-wave dimmer have you been successful?

I’m building a new house and will be outfitting with all smart dimmers and switches, likely z-wave. I have only tried Leviton so far and they are okay.

Would you recommend anything?

Thanks,
Kevin

I know I’m receiving an old thread here, but it’s helped some one issue and I’m hoping it can help with another. Have you figured out a way to adjust the trim values from HA? I’d like to automate the adjustment of the max brightness based on time of day, but it doesn’t appear that the trim values are exposed to HA. Any luck there?

I have been using Radio Ra3 now for some time and I am working on my sunata scene switches. I have a big problem where the only way to use the switch in automation is to get the ID of the device. The only way I could ascertain that ID is using the web interface to make an automation and then look at the yaml.

My BIG problem is that I created a series of automation using said ID and they stopped working. Now when I look in automation my switches are duplicated (And I tried reloading the integration to no avail). When I used the “other” id it now works - but this is going to be a problem if the identies of these switches are going to change all the time it’s not going to work? Does anyone else see this issue?

@jgudnas Is this integration still working for you? I’m testing this out on a Diva dimmer and I’m getting an error:

Failed to perform the action light/turn_on. Error rendering data template: ValueError: Template error: int got invalid input 'unknown' when rendering template '{{ states('input_number.kitchen_island_brightness') | int }}' but no default was specified

I’m using your template exactly, even renamed my device to light.kitchen_island to rule out any mistakes on my end.

It doesn’t seem to be storing the brightness value in the input, when it goes to turn it on from an off state it’s passing null (which is what the switch reports when its off)

I’ve gotten around this by using int(10) to get my desired on brightness, but it doesn’t seem to update/store any other value if i change the brightness value on the device in HA

Managed to get this to work, probably due to my lack of HA knowledge thus far. Bit of a pain in the ass to do this per Diva, but as it’s been said they have the best WAF so I’ll keep buying them.

For anyone else looking this up in the future, you need three parts:

  1. input_number to storage the brightness value (basically a global variable)
input_number:
  kitchen_sink_pendant_brightness:
    name: kitchen_sink_pendant_brightness
    initial: 128
    min: 0
    max: 255
    step: 1
  1. virtual light template
light:
  - platform: template
    lights:
      kitchen_sink_pendant_t:
        unique_id: "kitchen_sink_pendant_template" 
        friendly_name: "Kitchen Sink Pendant"
        value_template: "{{ is_state('light.kitchen_sink_pendant', 'on') }}"
        level_template: "{{ state_attr('light.kitchen_sink_pendant', 'brightness') | int }}"
        turn_on:
          service: light.turn_on
          data_template:
            entity_id: light.kitchen_sink_pendant
            brightness: "{{ states('input_number.kitchen_sink_pendant_brightness') | int }}"
        turn_off:
          - service: input_number.set_value
            data_template:
              entity_id: input_number.kitchen_sink_pendant_brightness
              value: "{{ state_attr('light.kitchen_sink_pendant', 'brightness') | int }}"
          - service: light.turn_off
            entity_id: light.kitchen_sink_pendant
        set_level:
          - service: light.turn_on
            data_template:
              entity_id: light.kitchen_sink_pendant
              brightness: "{{ brightness }}"
          - delay: '00:00:01'
          - service: input_number.set_value
            data_template:
              entity_id: input_number.kitchen_sink_pendant_brightness
              value: "{{ brightness }}"
  1. automation to update the brightness input_number if the on-dimmer adjustment is made
alias: kitchen_sink_pendant_brightness
description: ""
triggers:
  - entity_id:
      - light.kitchen_sink_pendant
    attribute: brightness
    trigger: state
conditions: []
actions:
  - data:
      entity_id: input_number.kitchen_sink_pendant_brightness
      value: "{{ state_attr('light.kitchen_sink_pendant', 'brightness') }}"
    action: input_number.set_value
mode: restart

Hopefully this helps someone out!