已经解决了,谢谢!
#先增加一个pwm控制器
output:
- platform: esp8266_pwm
pin: GPIO12
id: pwm_output_col
frequency: 3000 Hz
power_supply: power
- platform: esp8266_pwm
pin: GPIO13
id: pwm_output_bri
frequency: 3000 Hz
power_supply: power
light:
#冷暖灯
- platform: cwww
name: "测试冷暖灯"
cold_white: pwm_output_col
warm_white: pwm_output_bri
default_transition_length: 5s
id: dimmer
icon: "mdi:lightbulb-on-outline"
cold_white_color_temperature: 6536 K
warm_white_color_temperature: 2000 K
constant_brightness: true
#长按调调颜色,单击开关灯
globals:
- id: my_global_int
type: float
restore_value: no
initial_value: '0'
- id: my_global_inta
type: double
restore_value: no
initial_value: '150'
- id: my_global_intc
type: float
restore_value: no
initial_value: '2'
binary_sensor:
- platform: gpio
name: "调试"
pin:
number: 5
inverted: True
mode: INPUT_PULLUP
internal: true
id: my_binary_sensor
on_press:
then:
- while:
condition:
- binary_sensor.is_on: my_binary_sensor
then:
- while:
condition:
- binary_sensor.is_on: my_binary_sensor
- lambda: |-
return (id(my_global_inta) >= 150) && (id(my_global_inta) < 500);
then:
- light.turn_on:
id: dimmer
transition_length: 0.1s
color_temperature: !lambda |-
id(my_global_inta) += 5;
return id(my_global_inta);
- delay: 0.1s
- while:
condition:
- binary_sensor.is_on: my_binary_sensor
- lambda: |-
return (id(my_global_inta) > 150) && (id(my_global_inta) <= 500);
then:
- light.turn_on:
id: dimmer
transition_length: 0.1s
color_temperature: !lambda |-
id(my_global_inta) -= 5;
return id(my_global_inta);
- delay: 0.1s
on_click:
then:
light.toggle: dimmer
#旋转调整亮度
sensor:
- platform: rotary_encoder
name: "亮度旋钮"
# pin_a: 2
pin_a:
number: RX
inverted: True
mode:
input: true
pullup: true
# pin_b: TX
pin_b:
number: TX
inverted: True
mode:
input: true
pullup: true
resolution: 2
min_value: 0
max_value: 30
publish_initial_value: true
id: rotary1
on_clockwise:
- light.dim_relative:
id: dimmer
relative_brightness: 5%
transition_length: 0.1s
brightness_limits:
max_brightness: 100%
- delay: 0.1s
on_anticlockwise:
- light.dim_relative:
id: dimmer
relative_brightness: -5%
transition_length: 0.1s
brightness_limits:
min_brightness: 10%
- delay: 0.1s
#增加一个通断继电器的电源开关
power_supply:
- id: power
pin:
number: GPIO4
inverted: False
keep_on_time: 10ms
想问问,如果用8266+旋转编码器做成无线控制的,不知道可以实现不?esphome 调用homeassistant中的灯好像不行,只有switch,郁闷! |