I know nothing about the particular hardware, but if you have a dimable light, then it seems more appropriate that the integration appear as a light type entity, that has the notion of a brightness/dim level?
A template switch is different from a template light right? That’s why I suggested it. Just figuring out the template light myself now, hoping it will also be dimmable.
@uzelac: My suggestion would be to figure out the value templates for on, off and brightness level. Then integrate them into a template light. I don’t know much about your particular hardware though, so you’ll have to figure out if it’s working for you by yourself
Wow, thanks a lot, seems like some of this could work :).
It would be great to have one switch instead of 2/3, even if i waste dimmability. I have full control through original keypads, so simple on/off is still usable.
Of course, it would be much better to have full dimming control, I guess it is possible, but not through this custom component, at least until Troy makes it better :).
Since i have this gateway part of Dynalite installation, i can send something what i would call http request… not sure if this is correct name.
For example, if i “visit” this page through my web browser (192.168.1.25 is my Dynalite gateway):
http://192.168.1.25/SetDyNet.cgi?a=5&c=1&l=100
It will set my lights in Kitchen (Area 5) Main light (Channel 1) to Full power (Level 100)
So, can i make slider which will I program to send level I choose (X) via this HTTP request: http://192.168.1.25/SetDyNet.cgi?a=5&c=1&l=X
How can i make… dimmable light entity ??? to have slider with 100 positions which will send this http request ?
I tried some of this with node-red, but without success … too much noob
Interesting case
I think it could be done with a REST command, example is found here.
I think you don’t actually need a separate slider. A template light contains a brightness slider by default, as long as you include the ‘set_level’ part. In your set_level part, I imagine you would call the REST command.
set_level:
- service: rest_command.rest_brightness
data:
bri: "{{ (brightness/255*100) | int }}" # regular brightness is scaled 0-255, but you need a percentage
Ofcourse I haven’t tested this… I skipped the script (as shown in the linked example) but perhaps you need a script.
I did manage to combine on and off switches in one switch (and i hide original ones) and it works great, instead of 20+ i now have 3x times less. Great
I used template light, i picked that one first and it worked in few minutes. Thanks!
Now, to figure out dimming…
First i thought I could do it via node-red, to be honest never heard of rest command and it sounded something complicated. Than i took second look, and it looked it couldn’t be easier so i gave it a try.
And it works (not really) from the start!
To be exact it works but not as it should, since it always sends brightness level 0 to my Dynalite.
Whatever brightness level i choos it sends 0 and ligths go out.
But, still, hey, great work!
Never played with variables, so i presume problem is there.
If i use fixed command (fixed brightness level) it works good, so definately variable and how it makes it. Im positive it is solvable.
Thanks once again!
Grrr… cant get this to work.
Is syntax for this brightness part ok ?
Whatever i do with syntax rest command allways sends zero for brightness.
Still, if i fix bri variable to some value, it will send it perfectly so it sounds rest is doing fine, issues is how to translate brightness 0-255 to 0-100 which my hardware can use.
Can you post the full code for your template light? Makes it easier to troubleshoot.
Edit1: Try perhaps
bri: “{{ (brightness|float /255*100) | int }}”
We’ll get there
Edit2: I think I found my mistake. I used ‘data:’ instead of ‘data_template:’. So it should be:
set_level:
- service: rest_command.rest_brightness
data_template:
bri: "{{ (brightness/255*100) | int }}" # regular brightness is scaled 0-255, but you need a percentage
Been polishing this up and encountered an problem with switching on/off and setting brightness…
So, when i switch on the light, HA will send command to turn on light and Dynalite will turn it on at maximum brightness.
And HA will show brightness at maximum level.
When i turn light off, all is ok, and brightness slider shows zero value.
If i use slider for brightness light will turn on at that level, so that works OK also.
If i set slider to zero, light will turn off and switch will be at OFF position, also OK.
Issues are:
if i set brightness to some value which is not maximum and then turn off light, next time i turn it on brightness level will show previous level even though command turned on light to maximum brightness…
if i turn on light by setting slider, it will turn on light but HA will show switch at off position.
So, i wonder, is there a way when i turn on light, to tell HA to set it up to maximum just so it will also “think” and show on slider that that light is at maximum after turning on ?
Two value_templates? I believe Home Assistant will only use the second one (it supersedes the first one). It may also explain the behavior you described.
A single value_template should report the Template Light’s state.
This is how connection to my other “smart home” system (aka Dynalte) is done, via presets, so i have bot off and on lights in HA, When dynalite_some_light_off is on other light (dynalte_some_light_on) is ON. Light is on when ON version is ON… simple
Not that important, it worked with to templates, and it works the same with just one
So, i have connection between dynalite home automation devices (through hassio - mqtt - dynalite bridge Troy Kelly made for home assistant).
When it runs it will create following lights:
light.dy_livingroom_off
light.dy_livingroom_on
So, not one but two. It’s the way it works, not perfect, and far from finished. But it helps me big time.
So, if i switch on that light the dynalite-mqtt connection will report:
light.dy_livingroom_on goes ON
light.dy_livingroom_off goes OFF
When i turn that light off, opposite happens:
light.dy_livingroom_on goes OFF
light.dy_livingroom_off goes ON
To make life easier, i connected these two switches to one, called light.livingroom
Earlier, few people helped me to tie them up, and it works.
When dynalite reports:
light.dy_livingroom_on goes OFF
light.dy_livingroom_off goes ON
light.livingroom goes ON, and opposite happens.
Problem happens when i dimm these lights, since there is such cappability.