Change range of a dimmer for a light bulb

Hi !!!

I have just configured a GE Z-Wave dimmer with a lamp connected to it. I am using the z-wave Aotec gen 5 usb stick as a z-wave hub.

It works very well, but the problem is that the bulbs only lights up from 60% to 100% intensity.

Can I map the range in Home Assistant so when I tell home assistant to set the light to 10% from the hass.io interface it internally sets the range to 60%?

Thanks !

First, GE dimmers (at least the 12718 that I’m using), by default, take time (about 3 sec) to turn on and off (if you don’t specify a brightness level.) So, you should make sure you have refresh_value: true and delay: 3 set in your configuration. This is what I have in my configuration.yaml:

zwave:
  usb_path: /dev/zwave
  network_key: !secret zwave_network_key
  polling_interval: 10000
  device_config:
    light.family_room_lamp:
      refresh_value: true
      delay: 3

With this configuration, after HA tells the dimmer to change, it will check the dimmer’s status after 3 sec to make sure it shows the correct level.

Now, having said that, if you use HA to change the dimmer to a specific level, the dimmer will (more than likely) do that instantly. This is just the way I’ve found the dimmer works. (I would assume all their dimmers behave the same way.)

Next, when you change the level via a service call (i.e., light.turn_on), you can specify the brightness one of two ways: brightness or brightness_pct. The first has a range of 0 - 255, whereas the second has a range of 0 - 100. (brightness_pct will actually be converted by HA to brightness, so when you look at the dimmer in HA, the brightness will be reported as a value in the range of 0 - 255.)

Lastly, if you just turn the dimmer on from HA (e.g., you use the light.turn_on service call, but you don’t specify a brightness), this is a special case. Basically HA tells the dimmer to turn on to the same brightness level it was at the last time it was on. (This is a function of the dimmer, and it remembers the level, not HA.)

So, this might be more than you were asking for, but I figured it doesn’t hurt to share what I discovered about how these dimmers work. Hopefully this helps. If not, feel free to ask more questions. :slight_smile:

1 Like

Wow, thank you for your detailed answer!

But still I don’t know how to do the dimmer range transform.

I guess I’m not understanding why you need to do any range transformation. If you tell the light to go at at 50%, or at 128, it should go on halfway. Or if you tell it to go on at 100%, or to 255, it should go on to full brightness.

Ah, do you mean that if you tell it to go on to anything below 60% the bulb actually doesn’t turn on? Is that the issue?

1 Like

Yes, it’s like the bulb has some kind of resistance, and it starts to light on only from 60% level from the dimmer.

Ok, gotcha. So you might be able to use a Template Light for this. Basically you create a new light entity (light.scaled_light) that you would use directly, and it acts on the “real” light the way you define. Something like:

light:
  - platform: template
    lights:
      scaled_light:
        level_template: >
          {% if is_state('light.real_light', 'on') %}
            {{ ((state_attr('light.real_light', 'brightness')|float-255*0.6)/0.4)|round }}
          {% else %}
            0
          {% endif %}
        turn_on:
          service: light.turn_on
          entity_id: light.real_light
        turn_off:
          service: light.turn_off
          entity_id: light.real_light
        set_level:
          service: light.turn_on
          entity_id: light.real_light
          data_template:
            brightness: "{{ (brightness|float*0.4 + 255*0.6)|int }}"
2 Likes

Thank you very, very, very much, I will try later this at home. You have been incredibly helpful…

1 Like

This worked perfect for me thank you ! Is there a way to apply this template to 18 different lights? I tried to add ome template per light but that just crashed the config. Clearly i am new to this lol ANy help would be appreciated

George

No easy way that I know of.

thnak you …so I need one template per light …When i add a second template I get config errors

other than the real.light and scaled.light names being changed…what else do i change to add a second. third etc…

Thanks again

George …

It always helps to post what you tried. Without that we have to guess what you might have done incorrectly, and that makes it hard to provide any useful suggestions.

Usually this is the case when either the bulb or the dimmer are not the right kind for eachother. When you have a LED bulb it tells you on the box which kind of dimmer you’ll need and on the box of the dimmer is the type of the dimmer.

Hello, This works but I am having trouble understanding the mathematics of the thing.
My issue is that my light one dims from 0 - ~60. past 60 the brightness is not perceivable.
I would like to modify your code so that the scale is from 0-60 but is represented on the dashboard as 0-100%
Any help would be really appreciated.

You didn’t say what model dimmer you have, but you may be able to do this in your ZWave configuration without having to use light templates. I have Inovelli dimmers and in my ZWave configuration I can set the maximum and minimum brightness there.

image

Thanks Jason for the reply.
My dimmer is a Sinopé and it is zigbee not z-wave and in my zigbee2mqtt I do not see these configurations would it be somewhere else?

(I am a new Home Assistant user… ;))

Sorry I don’t use zigbee. Nice looking dimmer! I’d be surprised if you can’t configure this, the issues you are having are quite common with led bulbs. I couldn’t find anything after a quick search though.

I did find this page, which might be useful to you.

Thanks I will check it out

That worked
Thanks