Okay. So I’ve made the code already using “light template” that converts two channels for Shelly RGBW2 and converts them into a CCT LED with a temperature slider.
In case this helps to anyone:
info:
I am using two channels for one light. One channel is light.cw1
and the second channel is light.ww1
.
steps to perform:
- you need to create a two number “helper” objects called:
helper_brightness_level_1
(this one should have values from 0 to 255)helper_temperature_ratio_1
(this one should have values from 0 to 100)
- edit
configuration.yaml
to include “light template”
light.yaml
follows:
- platform: template
lights:
four_white_to_cct_1:
friendly_name: "light-edge-1"
value_template: >
{% if is_state('light.cw1', 'on' ) or is_state('light.ww1', 'on' ) %}
on
{% else %}
off
{% endif %}
turn_on:
service: light.turn_on
target:
entity_id:
- light.cw1
- light.ww1
turn_off:
service: light.turn_off
target:
entity_id:
- light.cw1
- light.ww1
min_mireds_template: "{{ (1000000/6500)|round }}"
max_mireds_template: "{{ (1000000/2700)|round }}"
level_template: >
{{ states('input_number.helper_brightness_level_1') }}
temperature_template: >
{{ states('input_number.helper_temperature_ratio_1')|int }}
set_level:
- service: input_number.set_value
data:
value: "{{ brightness }}"
entity_id: input_number.helper_brightness_level_1
- service: light.turn_on
data:
brightness: >
{% set helper_temp_slider = states('input_number.helper_temperature_ratio_1') %}
{% set cold = helper_temp_slider|int %}
{% set brightness_ratio = (brightness/255)|round(2) %}
{% set cold_light_brightness_level = (cold * brightness_ratio * 2.55)|int %}
{{ cold_light_brightness_level }}
entity_id: light.cw1
- service: light.turn_on
data:
brightness: >
{% set helper_temp_slider = states('input_number.helper_temperature_ratio_1') %}
{% set warm = (helper_temp_slider|int) - 100 %}
{% set brightness_ratio = (brightness/255)|round(2) %}
{% set warm_light_brightness_level = (warm * brightness_ratio * 2.55)|int %}
{{ warm_light_brightness_level|abs }}
entity_id: light.ww1
set_temperature:
- service: input_number.set_value
data:
value: >
{% set kelvin_temp = (1000000/color_temp)|int %}
{% set helper_temp_slider = ((kelvin_temp - 2700) * 0.0263)|int %}
{{ helper_temp_slider }}
entity_id: input_number.helper_temperature_ratio_1
- service: light.turn_on
data:
brightness: >
{% set brightness = states('input_number.helper_brightness_level_1')|int %}
{% set kelvin_temp = (1000000/color_temp)|int %}
{% set helper_temp_slider = ((kelvin_temp - 2700) * 0.0263)|int %}
{% set brightness_ratio = (brightness/255)|round(2) %}
{% set cold_light_brightness_level = (helper_temp_slider * brightness_ratio * 2.55)|int %}
{{ cold_light_brightness_level }}
entity_id: light.cw1
- service: light.turn_on
data:
brightness: >
{% set brightness = states('input_number.helper_brightness_level_1')|int %}
{% set kelvin_temp = (1000000/color_temp)|int %}
{% set helper_temp_slider = (((kelvin_temp - 2700) * 0.0263)|int) -100 %}
{% set brightness_ratio = (brightness/255)|round(2) %}
{% set warm_light_brightness_level = (helper_temp_slider * brightness_ratio * 2.55)|int %}
{{ warm_light_brightness_level | abs }}
entity_id: light.ww1