这是本文档旧的修订版!


ESPHome Smart Light Bulb

Yaml File:

Yaml File:

substitutions:

name: “aiyato-rgbcw”

friendly_name: “AiYaTo RGBCW”

project_name: “doit.aiyato-rgbcw”

project_version: “1.0.0”

light_restore_mode: RESTORE_DEFAULT_ON

color_interlock: 'true'

esphome:

name: “${name}”

name_add_mac_suffix: true

project:

name: “${project_name}”

version: “${project_version}”

preferences:

flash_write_interval: 1min

esp8266:

board: esp8285

restore_from_flash: true

globals:

- id: my_global_mode

type: bool

restore_value: no

initial_value: 'true'

logger:

api:

ota:

safe_mode: false

wifi:

ap: {}

interval:

- interval: 1s

then:

- lambda: |-

static uint32_t cnt = 0;

static int flag = 0;

static ESPPreferenceObject pref = global_preferences→make_preference(23332500UL, true);

if1)) )

{

flag = 0;

ESP.restart();

}

if(cnt == 0){

cnt++;

uint32_t val = 0;

pref.load(&val);

val+=1;

pref.save(&val);

global_preferences→sync();

if(val >= 3){

my_global_mode→value() = false;

}

}else if(cnt < 5){

cnt++;

if(cnt == 5){

uint32_t val = 0;

pref.save(&val);

global_preferences→sync();

}

}

if(!my_global_mode→value()){

if(cnt == 1){

char a[] = “000000”;

char b[] = “000000”;

wifi_wificomponent→clear_sta();

wifi_wificomponent→save_wifi_sta(a, b);

wifi::WiFiAP wifi_wifiap = wifi::WiFiAP();

wifi_wificomponent→set_ap(wifi_wifiap);

wifi_wificomponent→set_ap_timeout(5000);

flag = 1;

rgbww_rgbwwlightoutput→set_color_interlock(false);

}

static int state = 0;

auto call = id(my_light).turn_on();

call.set_transition_length(1000);

call.set_brightness(1.0);

if (state == 0) {

call.set_rgb(1.0, 0.0, 0.0);

call.set_cold_white(0.0);

call.set_warm_white(0.0);

} else if (state == 3) {

call.set_rgb(0.0, 1.0, 0.0);

} else if (state == 5) {

call.set_rgb(0.0, 0.0, 1.0);

} else if (state == 7) {

call.set_color_brightness(0.0);

call.set_cold_white(1.0);

call.set_warm_white(0.0);

} else if (state == 9) {

call.set_cold_white(0.0);

call.set_warm_white(1.0);

} else if (state == 11) {

call.set_color_brightness(1.0);

call.set_rgb(0.0, 1.0, 0.0);

call.set_cold_white(0.0);

call.set_warm_white(0.0);

}

call.perform();

state += 1;

if (state == 12)

{

my_global_mode→value() = true;

}

}

web_server:

port: 80

captive_portal:

binary_sensor:

- platform: status

name: “${friendly_name} Status”

sensor:

- platform: uptime

update_interval: 60s

name: “${friendly_name} Uptime”

button:

- platform: restart

name: “${friendly_name} Restart”

output:

- platform: esp8266_pwm

id: red_output

pin: GPIO12

- platform: esp8266_pwm

id: green_output

pin: GPIO14

- platform: esp8266_pwm

id: blue_output

pin: GPIO5

- platform: esp8266_pwm

id: cold_white_output

pin: GPIO4

- platform: esp8266_pwm

id: warm_white_output

pin: GPIO13

light:

- platform: rgbww

name: “${friendly_name}”

restore_mode: “${light_restore_mode}”

red: red_output

green: green_output

blue: blue_output

cold_white: cold_white_output

warm_white: warm_white_output

cold_white_color_temperature: 6000 K

warm_white_color_temperature: 3000 K

color_interlock: “${color_interlock}”

id: my_light

text_sensor:

- platform: wifi_info

ip_address:

name: “${friendly_name} IP Address”

disabled_by_default: true



1)
1
请输入您的评论. 可以使用维基语法:
 
  • developmentboard/esphome_smart_light_bulb.1732932192.txt.gz
  • 最后更改: 2024/11/30 02:03
  • admin