差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 后一修订版 | 前一修订版 | ||
| 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: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ---- | ||
| + | |||