差别
这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
developmentboard:esphome_smart_light_bulb [2024/10/19 03:55] – 创建 admin | developmentboard:esphome_smart_light_bulb [2024/12/18 14:41] (当前版本) – admin | ||
---|---|---|---|
行 1: | 行 1: | ||
ESPHome Smart Light Bulb | ESPHome Smart Light Bulb | ||
- | Yaml File: | + | Introduction – Detected by Home Assistant |
+ | |||
+ | – Controlled by MQTT, Web UI, HTTP, etc | ||
+ | |||
+ | – Using times, scripts, rules | ||
+ | |||
+ | – Open source | ||
+ | |||
+ | – Use ESP8285-2M as MCU | ||
+ | |||
+ | Specification – RGB+C+W, 9W | ||
+ | |||
+ | – 850LM | ||
+ | |||
+ | – AC: | ||
+ | |||
+ | – 2700-6500K | ||
+ | |||
+ | – E26/E27 | ||
+ | |||
+ | – 60 x 60 x 125 mm | ||
+ | |||
+ | – 40000 hours | ||
+ | |||
+ | **GPIOs** | ||
+ | |||
+ | GPIO4 – PWM1 – Cool WhiteGPIO5 – PWM4 – Blue ColorGPIO12 – PWM2 – Red Color GPIO13 – PWM5 – Warm WhiteGPIO14 – PWM3 – Green Color | ||
+ | |||
+ | **Yaml File:** | ||
substitutions: | substitutions: | ||
+ | |||
name: " | name: " | ||
+ | |||
friendly_name: | friendly_name: | ||
+ | |||
project_name: | project_name: | ||
+ | |||
project_version: | project_version: | ||
+ | |||
light_restore_mode: | light_restore_mode: | ||
+ | |||
color_interlock: | color_interlock: | ||
esphome: | esphome: | ||
+ | |||
name: " | name: " | ||
+ | |||
name_add_mac_suffix: | name_add_mac_suffix: | ||
+ | |||
project: | project: | ||
+ | |||
name: " | name: " | ||
+ | |||
version: " | version: " | ||
preferences: | preferences: | ||
+ | |||
flash_write_interval: | flash_write_interval: | ||
esp8266: | esp8266: | ||
+ | |||
board: esp8285 | board: esp8285 | ||
+ | |||
restore_from_flash: | restore_from_flash: | ||
globals: | globals: | ||
+ | |||
- id: my_global_mode | - id: my_global_mode | ||
+ | |||
type: bool | type: bool | ||
+ | |||
restore_value: | restore_value: | ||
+ | |||
initial_value: | initial_value: | ||
行 36: | 行 82: | ||
ota: | ota: | ||
+ | |||
safe_mode: false | safe_mode: false | ||
wifi: | wifi: | ||
+ | |||
ap: {} | ap: {} | ||
interval: | interval: | ||
+ | |||
- interval: 1s | - interval: 1s | ||
+ | |||
then: | then: | ||
+ | |||
- lambda: |- | - lambda: |- | ||
+ | |||
static uint32_t cnt = 0; | static uint32_t cnt = 0; | ||
+ | |||
static int flag = 0; | static int flag = 0; | ||
- | static ESPPreferenceObject pref = global_preferences->make_preference< | + | |
- | if((flag == 1) && (network:: | + | static ESPPreferenceObject pref = global_preferences→make_preference(23332500UL, |
+ | |||
+ | if((flag == 1) && (network:: | ||
{ | { | ||
+ | |||
flag = 0; | flag = 0; | ||
+ | |||
ESP.restart(); | ESP.restart(); | ||
+ | |||
} | } | ||
+ | |||
if(cnt == 0){ | if(cnt == 0){ | ||
+ | |||
cnt++; | cnt++; | ||
+ | |||
uint32_t val = 0; | uint32_t val = 0; | ||
+ | |||
pref.load(& | pref.load(& | ||
+ | |||
val+=1; | val+=1; | ||
+ | |||
pref.save(& | pref.save(& | ||
- | global_preferences->sync(); | + | |
+ | global_preferences→sync(); | ||
if(val >= 3){ | if(val >= 3){ | ||
- | my_global_mode->value() = false; | + | |
+ | my_global_mode→value() = false; | ||
} | } | ||
+ | |||
}else if(cnt < 5){ | }else if(cnt < 5){ | ||
+ | |||
cnt++; | cnt++; | ||
+ | |||
if(cnt == 5){ | if(cnt == 5){ | ||
+ | |||
uint32_t val = 0; | uint32_t val = 0; | ||
+ | |||
pref.save(& | pref.save(& | ||
- | global_preferences->sync(); | + | |
+ | global_preferences→sync(); | ||
} | } | ||
+ | |||
} | } | ||
- | if(!my_global_mode->value()){ | + | |
+ | if(!my_global_mode→value()){ | ||
if(cnt == 1){ | if(cnt == 1){ | ||
+ | |||
char a[] = " | char a[] = " | ||
+ | |||
char b[] = " | char b[] = " | ||
- | wifi_wificomponent->clear_sta(); | + | |
- | wifi_wificomponent->save_wifi_sta(a, | + | wifi_wificomponent→clear_sta(); |
+ | |||
+ | wifi_wificomponent→save_wifi_sta(a, | ||
wifi:: | wifi:: | ||
- | wifi_wificomponent->set_ap(wifi_wifiap); | + | |
- | wifi_wificomponent->set_ap_timeout(5000); | + | wifi_wificomponent→set_ap(wifi_wifiap); |
+ | |||
+ | wifi_wificomponent→set_ap_timeout(5000); | ||
flag = 1; | flag = 1; | ||
- | rgbww_rgbwwlightoutput->set_color_interlock(false); | + | |
+ | rgbww_rgbwwlightoutput→set_color_interlock(false); | ||
} | } | ||
+ | |||
static int state = 0; | static int state = 0; | ||
+ | |||
auto call = id(my_light).turn_on(); | auto call = id(my_light).turn_on(); | ||
+ | |||
call.set_transition_length(1000); | call.set_transition_length(1000); | ||
+ | |||
call.set_brightness(1.0); | call.set_brightness(1.0); | ||
+ | |||
if (state == 0) { | if (state == 0) { | ||
+ | |||
call.set_rgb(1.0, | call.set_rgb(1.0, | ||
+ | |||
call.set_cold_white(0.0); | call.set_cold_white(0.0); | ||
+ | |||
call.set_warm_white(0.0); | call.set_warm_white(0.0); | ||
+ | |||
} else if (state == 3) { | } else if (state == 3) { | ||
+ | |||
call.set_rgb(0.0, | call.set_rgb(0.0, | ||
+ | |||
} else if (state == 5) { | } else if (state == 5) { | ||
+ | |||
call.set_rgb(0.0, | call.set_rgb(0.0, | ||
+ | |||
} else if (state == 7) { | } else if (state == 7) { | ||
+ | |||
call.set_color_brightness(0.0); | call.set_color_brightness(0.0); | ||
+ | |||
call.set_cold_white(1.0); | call.set_cold_white(1.0); | ||
+ | |||
call.set_warm_white(0.0); | call.set_warm_white(0.0); | ||
+ | |||
} else if (state == 9) { | } else if (state == 9) { | ||
+ | |||
call.set_cold_white(0.0); | call.set_cold_white(0.0); | ||
+ | |||
call.set_warm_white(1.0); | call.set_warm_white(1.0); | ||
+ | |||
} else if (state == 11) { | } else if (state == 11) { | ||
+ | |||
call.set_color_brightness(1.0); | call.set_color_brightness(1.0); | ||
+ | |||
call.set_rgb(0.0, | call.set_rgb(0.0, | ||
+ | |||
call.set_cold_white(0.0); | call.set_cold_white(0.0); | ||
+ | |||
call.set_warm_white(0.0); | call.set_warm_white(0.0); | ||
+ | |||
} | } | ||
+ | |||
call.perform(); | call.perform(); | ||
+ | |||
state += 1; | state += 1; | ||
+ | |||
if (state == 12) | if (state == 12) | ||
+ | |||
{ | { | ||
- | my_global_mode->value() = true; | + | |
+ | my_global_mode→value() = true; | ||
} | } | ||
+ | |||
} | } | ||
web_server: | web_server: | ||
+ | |||
port: 80 | port: 80 | ||
行 122: | 行 244: | ||
binary_sensor: | binary_sensor: | ||
+ | |||
- platform: status | - platform: status | ||
+ | |||
name: " | name: " | ||
sensor: | sensor: | ||
+ | |||
- platform: uptime | - platform: uptime | ||
+ | |||
update_interval: | update_interval: | ||
+ | |||
name: " | name: " | ||
button: | button: | ||
+ | |||
- platform: restart | - platform: restart | ||
+ | |||
name: " | name: " | ||
output: | output: | ||
+ | |||
- platform: esp8266_pwm | - platform: esp8266_pwm | ||
+ | |||
id: red_output | id: red_output | ||
+ | |||
pin: GPIO12 | pin: GPIO12 | ||
+ | |||
- platform: esp8266_pwm | - platform: esp8266_pwm | ||
+ | |||
id: green_output | id: green_output | ||
+ | |||
pin: GPIO14 | pin: GPIO14 | ||
+ | |||
- platform: esp8266_pwm | - platform: esp8266_pwm | ||
+ | |||
id: blue_output | id: blue_output | ||
+ | |||
pin: GPIO5 | pin: GPIO5 | ||
+ | |||
- platform: esp8266_pwm | - platform: esp8266_pwm | ||
+ | |||
id: cold_white_output | id: cold_white_output | ||
+ | |||
pin: GPIO4 | pin: GPIO4 | ||
+ | |||
- platform: esp8266_pwm | - platform: esp8266_pwm | ||
+ | |||
id: warm_white_output | id: warm_white_output | ||
+ | |||
pin: GPIO13 | pin: GPIO13 | ||
light: | light: | ||
+ | |||
- platform: rgbww | - platform: rgbww | ||
+ | |||
name: " | name: " | ||
+ | |||
restore_mode: | restore_mode: | ||
+ | |||
red: red_output | red: red_output | ||
+ | |||
green: green_output | green: green_output | ||
+ | |||
blue: blue_output | blue: blue_output | ||
+ | |||
cold_white: cold_white_output | cold_white: cold_white_output | ||
+ | |||
warm_white: warm_white_output | warm_white: warm_white_output | ||
+ | |||
cold_white_color_temperature: | cold_white_color_temperature: | ||
+ | |||
warm_white_color_temperature: | warm_white_color_temperature: | ||
+ | |||
color_interlock: | color_interlock: | ||
+ | |||
id: my_light | id: my_light | ||
text_sensor: | text_sensor: | ||
+ | |||
- platform: wifi_info | - platform: wifi_info | ||
+ | |||
ip_address: | ip_address: | ||
+ | |||
name: " | name: " | ||
+ | |||
disabled_by_default: | disabled_by_default: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ---- | ||
+ | |||