|
本帖最后由 tanbobo 于 2025-7-7 20:08 编辑
substitutions:
button_pin: GPIO5
led_red_pin: GPIO4
led_green_pin: GPIO12
led_blue_pin: GPIO15
ir_receiver_pin: GPIO13
ir_transmitter_pin: GPIO14
node_name: "lifesmart-spot-05"
node_name_friendly: ${node_name}
node_name_add_mac_suffix: "false"
#可选填
node_project_name: "LifeSmart.irremoteVsLight"
node_project_version: "esp8266ex-v1.0.0"
node_build_min_version: "2023.12.0"
esphome:
name: ${node_name}
friendly_name: ${node_name_friendly}
project:
name: ${node_project_name}
version: ${node_project_version}
name_add_mac_suffix: ${node_name_add_mac_suffix}
min_version: ${node_build_min_version}
esp8266:
board: esp01_1m
restore_from_flash: false
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: ""
ota:
- platform: esphome
password: ""
wifi:
ssid: ""
password: ""
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Lifesmart "
password: "88888888"
captive_portal:
web_server:
port: 80
include_internal: true
version: 2
switch:
- platform: output
name: "Red"
output: id_pin_led_red
- platform: output
name: "Green"
output: id_pin_led_green
- platform: output
name: "Blue"
output: id_pin_led_blue
- platform: restart
name: "system-Restart"
id: id_restart
- platform: factory_reset
name: "system-FactoryReset"
id: id_factoryreset
- platform: safe_mode
name: "system-OTA-SafeMode"
id: id_ota_save_mode
output:
#红色led
- platform: esp8266_pwm
id: id_pin_led_red
pin:
number: ${led_red_pin}
inverted: false
#绿色led
- platform: esp8266_pwm
id: id_pin_led_green
pin:
number: ${led_green_pin}
inverted: false
#蓝色led
- platform: esp8266_pwm
id: id_pin_led_blue
pin:
number: ${led_blue_pin}
inverted: false
light:
- platform: rgb
name: "light-Color Lights"
id: id_light_color_lights
red: id_pin_led_red
green: id_pin_led_green
blue: id_pin_led_blue
restore_mode: ALWAYS_ON
default_transition_length: 0.5s
effects:
- random:
name: "Random"
transition_length: 4s
update_interval: 5s
remote_receiver:
pin:
number: ${ir_receiver_pin}
inverted: true
mode: INPUT_PULLUP
#dump: nec
dump: all
remote_transmitter:
pin:
number: ${ir_transmitter_pin}
carrier_duty_percent: 50%
binary_sensor:
- platform: status
name: "sensor-LinkStatus"
id: id_sensor_linkstatus
- platform: gpio
id: id_button_main_key
pin:
number: ${button_pin}
inverted: true
mode:
input: true
pullup: true
on_multi_click:
- timing:
- ON for at least 5s
then:
- logger.log: "Long press."
#- 添加长按动作
invalid_cooldown: 0s
#双击
- timing:
- ON for at most 0.5s
- OFF for at most 0.5s
- ON for at most 0.5s
- OFF for at least 0.2s
then:
- logger.log: "double click."
- lambda: |-
id(id_light_color_lights).turn_off().perform();
invalid_cooldown: 0s
#单击
- timing:
- ON for at most 0.5s
- OFF for at least 0.01s
then:
- logger.log: "single click."
- lambda: |-
int color_type = id(id_color_type_lastvalue) % id(id_color_type_maxvalue);
ESP_LOGI("main","----current color: type[%d],lastvalue[%d],maxvalue[%d].",color_type,id(id_color_type_lastvalue),id(id_color_type_maxvalue));
switch(color_type)
{
case 0:{
auto call = id(id_light_color_lights).turn_on();
call.set_brightness(1.0);
call.set_rgb(1.0, 0.0, 0.0);
call.perform();
break;
}
case 1: {
auto call = id(id_light_color_lights).turn_on();
call.set_brightness(1.0);
call.set_rgb(0.0, 1.0, 0.0);
call.perform();
break;
}
case 2: {
auto call = id(id_light_color_lights).turn_on();
call.set_brightness(1.0);
call.set_rgb(0.0, 0.0, 1.0);
call.perform();
break;
}
case 3: {
auto call = id(id_light_color_lights).turn_on();
call.set_brightness(1.0);
call.set_rgb(1.0, 1.0, 0.0);
call.perform();
break;
}
case 4: {
auto call = id(id_light_color_lights).turn_on();
call.set_brightness(1.0);
call.set_rgb(1.0, 0.0, 1.0);
call.perform();
break;
}
case 5: {
auto call = id(id_light_color_lights).turn_on();
call.set_brightness(1.0);
call.set_rgb(0.0, 1.0, 1.0);
call.perform();
break;
}
case 6: {
auto call = id(id_light_color_lights).turn_on();
call.set_brightness(1.0);
call.set_rgb(1.0, 1.0, 1.0);
call.perform();
break;
}
case 7: {
auto call = id(id_light_color_lights).turn_on();
call.set_effect("Random");
call.perform();
break;
}
case 8: {
id(id_light_color_lights).turn_off().perform();
break;
}
default:
break;
}
id(id_color_type_lastvalue) += 1;
if(id(id_color_type_lastvalue) == 9 )
{
id(id_color_type_lastvalue) = 0;
}
invalid_cooldown: 0s
globals:
- id: id_color_type_lastvalue
type: int
restore_value: no
initial_value: '0'
- id: id_color_type_maxvalue
type: int
restore_value: no
initial_value: '9'
button:
- platform: template
name: 投影机开关
id: but_benqpower
icon: mdi:投影机开关
on_press:
- remote_transmitter.transmit_nec:
address: 0x3000
command: 0xFD02
command_repeats: 1
- platform: template
name: 投影机节能开关
id: but_BENQECO
icon: mdi:SmartEco
on_press:
- remote_transmitter.transmit_nec:
address: 0x3000
command: 0xCF30
command_repeats: 1
- platform: template
name: BENQ_Meun
id: but_BENQMeun
icon: mdi:Meun
on_press:
- remote_transmitter.transmit_nec:
address: 0x3000
command: 0xF00F
command_repeats: 1
- platform: template
name: IPTV_开关
id: but_IPTVPOWER
icon: mdi ower
on_press:
- remote_transmitter.transmit_nec:
address: 0x4CB3
command: 0x23DC
command_repeats: 1
- platform: template
name: IPTV_ENTER
id: but_IPTVENTER
icon: mdi:Enter
on_press:
- remote_transmitter.transmit_nec:
address: 0x4CB3
command: 0x31CE
command_repeats: 1
- platform: template
name: IPTV_频道+
id: but_IPTV_CH_UP
icon: mdi:CH_UP
on_press:
- remote_transmitter.transmit_nec:
address: 0x4CB3
command: 0x7A85
command_repeats: 1
- platform: template
name: IPTV_频道-
id: but_IPTV_CH_DOWN
icon: mdi:CH_DOWN
on_press:
- remote_transmitter.transmit_nec:
address: 0x4CB3
command: 0x7986
command_repeats: 1
- platform: template
name: HK1_开关
id: but_HK1_POWER
icon: mdi:HK1_POWER
on_press:
- remote_transmitter.transmit_nec:
address: 0xFE01
command: 0xBF40
command_repeats: 1
- platform: template
name: HK1_HOME
id: but_HK1_HOME
icon: mdi:HK1_HOME
on_press:
- remote_transmitter.transmit_nec:
address: 0xFE01
command: 0xEE11
command_repeats: 1
- platform: template
name: HK1_ENTER
id: but_HK1_ENTER
icon: mdi:HK1_ENTER
on_press:
- remote_transmitter.transmit_nec:
address: 0xFE01
command: 0xEC13
command_repeats: 1
- platform: template
name: HK1_BACK
id: but_HK1_BACK
icon: mdi:HK1_BACK
on_press:
- remote_transmitter.transmit_nec:
address: 0xFE01
command: 0xE619
command_repeats: 1
- platform: template
name: HK1_OPTION
id: but_HK1_OPTION
icon: mdi:HK1_OPTION
on_press:
- remote_transmitter.transmit_nec:
address: 0xFE01
command: 0xB34C
command_repeats: 1
- platform: template
name: HK1_音量+
id: but_HK1_VOL_UP
icon: mdi:HK1_VOL_UP
on_press:
- remote_transmitter.transmit_nec:
address: 0xFE01
command: 0xE718
command_repeats: 1
- platform: template
name: HK1_音量-
id: but_HK1_VOL_DOWN
icon: mdi:HK1_VOL_DOWN
on_press:
- remote_transmitter.transmit_nec:
address: 0xFE01
command: 0xEF10
command_repeats: 1
- platform: template
name: DENON_ON
id: but_DENON_ON
icon: mdi ENON_ON
on_press:
- remote_transmitter.transmit_aeha:
address: 0x2A4C
data: [0x02,0x84,0x00,0x86]
- platform: template
name: DENON_STANDBY
id: but_DENON_STANDBY
icon: mdi ENON_STANDBY
on_press:
- remote_transmitter.transmit_aeha:
address: 0x2A4C
data: [0x02,0x8C,0x00,0x8E]
- platform: template
name: DENON_VOL_UP
id: but_DENON_VOL_UP
icon: mdi ENON_VOL_UP
on_press:
- remote_transmitter.transmit_aeha:
address: 0x2A4C
data: [0x02,0x80,0xE8,0x6A]
- platform: template
name: DENON_VOL_DOWN
id: but_DENON_VOL_DOWN
icon: mdi ENON_VOL_DOWN
on_press:
- remote_transmitter.transmit_aeha:
address: 0x2A4C
data: [0x02,0x88,0xE8,0x62]
- platform: template
name: DENON_HDMI1
id: but_DENON_HDMI1
icon: mdi ENON_HDMI1
on_press:
- remote_transmitter.transmit_aeha:
address: 0x2A4C
data: [0x02,0x88,0xB4,0x3E]
- platform: template
name: DENON_HDMI2
id: but_DENON_HDMI2
icon: mdi ENON_HDMI2
on_press:
- remote_transmitter.transmit_aeha:
address: 0x2A4C
data: [0x02,0x80,0xB4,0x36]
- platform: template
name: DENON_HDMI3
id: but_DENON_HDMI3
icon: mdi ENON_HDMI3
on_press:
- remote_transmitter.transmit_aeha:
address: 0x2A4C
data: [0x02,0x8A,0xB4,0x3C]
- platform: template
name: DENON_HDMI4
id: but_DENON_HDMI4
icon: mdi ENON_HDMI4
on_press:
- remote_transmitter.transmit_aeha:
address: 0x2A4C
data: [0x02,0x84,0xB4,0x32]
- platform: template
name: DENON_MUTE
id: but_DENON_MUTE
icon: mdi ENON_MUTE
on_press:
- remote_transmitter.transmit_aeha:
address: 0x2A4C
data: [0x02,0x84,0xE8,0x6E]
- platform: template
name: MIDEA_AC_POWER_OFF
id: but_MIDEA_AC_POWER_OFF
icon: mdi:MIDEA_AC_POWER_OFF
on_press:
- remote_transmitter.transmit_toshiba_ac:
rc_code_1: 0xB24D7B84E01F
- platform: template
name: MIDEA_AC_POWER_ON
id: but_MIDEA_AC_POWER_ON
icon: mdi:MIDEA_AC_POWER_ON
on_press:
- remote_transmitter.transmit_toshiba_ac:
rc_code_1: 0xB24D9F60D02F
- platform: template
name: MIDEA_AC_TEMPERATURE_30
id: but_MIDEA_TEMPERATURE_30
icon: mdi:MIDEA_TEMPERATURE_30
on_press:
- remote_transmitter.transmit_toshiba_ac:
rc_code_1: 0xB24D9F60B04F
- platform: template
name: MIDEA_AC_TEMPERATURE_29
id: but_MIDEA_TEMPERATURE_29
icon: mdi:MIDEA_TEMPERATURE_29
on_press:
- remote_transmitter.transmit_toshiba_ac:
rc_code_1: 0xB24D1FE0A45B
- platform: template
name: MIDEA_AC_TEMPERATURE_28
id: but_MIDEA_TEMPERATURE_28
icon: mdi:MIDEA_TEMPERATURE_28
on_press:
- remote_transmitter.transmit_toshiba_ac:
rc_code_1: 0xB24D1FE0847B
- platform: template
name: MIDEA_AC_TEMPERATURE_27
id: but_MIDEA_TEMPERATURE_27
icon: mdi:MIDEA_TEMPERATURE_27
on_press:
- remote_transmitter.transmit_toshiba_ac:
rc_code_1: 0xB24D1FE0946B
- platform: template
name: MIDEA_AC_TEMPERATURE_26
id: but_MIDEA_TEMPERATURE_26
icon: mdi:MIDEA_TEMPERATURE_26
on_press:
- remote_transmitter.transmit_toshiba_ac:
rc_code_1: 0xB24D1FE0D42B
- platform: template
name: MIDEA_AC_TEMPERATURE_25
id: but_MIDEA_TEMPERATURE_25
icon: mdi:MIDEA_TEMPERATURE_25
on_press:
- remote_transmitter.transmit_toshiba_ac:
rc_code_1: 0xB24D1FE0C43B
- platform: template
name: MIDEA_AC_TEMPERATURE_24
id: but_MIDEA_TEMPERATURE_24
icon: mdi:MIDEA_TEMPERATURE_24
on_press:
- remote_transmitter.transmit_toshiba_ac:
rc_code_1: 0xB24D1FE044BB
- platform: template
name: MIDEA_AC_MODE_HOT
id: but_MIDEA_MODE_HOT
icon: mdi:MIDEA_MODE_HOT
on_press:
- remote_transmitter.transmit_toshiba_ac:
rc_code_1: 0xB24D9F60BC43
- platform: template
name: MIDEA_AC_MODE_AUTO
id: but_MIDEA_MODE_AUTO
icon: mdi:MIDEA_MODE_AUTO
on_press:
- remote_transmitter.transmit_toshiba_ac:
rc_code_1: 0xB24D1FE0B847
- platform: template
name: MIDEA_AC_MODE_COOL
id: but_MIDEA_MODE_COOL
icon: mdi:MIDEA_MODE_COOL
on_press:
- remote_transmitter.transmit_toshiba_ac:
rc_code_1: 0xB24D9F60B04F
- platform: template
name: MIDEA_AC_MODE_Dehumidity
id: but_MIDEA_MODE_Dehumidity
icon: mdi:MIDEA_MODE_Dehumidity
on_press:
- remote_transmitter.transmit_toshiba_ac:
rc_code_1: 0xB24D1FE0B44B
- platform: template
name: MIDEA_AC_MODE_FAN
id: but_MIDEA_MODE_FAN
icon: mdi:MIDEA_MODE_FAN
on_press:
- remote_transmitter.transmit_toshiba_ac:
rc_code_1: 0xB24D9F60E41B
- platform: template
name: MIDEA_AC_MODE_FAN_SPEED_AUTO
id: but_MIDEA_MODE_FAN_SPEED_AUTO
icon: mdi:MIDEA_MODE_FAN_SPEED_AUTO
on_press:
- remote_transmitter.transmit_toshiba_ac:
rc_code_1: 0xB24DBF40BC43
- platform: template
name: MIDEA_AC_MODE_FAN_SPEED_LOW
id: but_MIDEA_MODE_FAN_SPEED_LOW
icon: mdi:MIDEA_MODE_FAN_SPEED_LOW
on_press:
- remote_transmitter.transmit_toshiba_ac:
rc_code_1: 0xB24D9F60BC43
- platform: template
name: MIDEA_AC_MODE_FAN_SPEED_MED
id: but_MIDEA_MODE_FAN_SPEED_MED
icon: mdi:MIDEA_MODE_FAN_SPEED_MED
on_press:
- remote_transmitter.transmit_toshiba_ac:
rc_code_1: 0xB24D5FA0BC43
- platform: template
name: MIDEA_AC_MODE_FAN_SPEED_FULL
id: but_MIDEA_MODE_FAN_SPEED_FULL
icon: mdi:MIDEA_MODE_FAN_SPEED_FULL
on_press:
- remote_transmitter.transmit_toshiba_ac:
rc_code_1: 0xB24D3FC0BC43
text_sensor:
- platform: wifi_info
ip_address:
name: "sensor-IP"
id: id_sensor_ip
update_interval: 30s
ssid:
name: "sensor-SSID"
id: id_sensor_ssid
update_interval: 30s
bssid:
name: "sensor-BSSID"
id: id_sensor_bssid
update_interval: 30s
mac_address:
name: "sensor-MAC"
id: id_sensor_mac
- platform: debug
device:
name: "Device Info"
reset_reason:
name: "Reset Reason"
sensor:
- platform: debug
free:
name: "Heap Free"
# fragmentation:
# name: "Heap Fragmentation"
# block:
# name: "Heap Max Block"
# loop_time:
# name: "Loop Time"
- platform: uptime
name: "sensor-Uptime"
id: id_sensor_uptime_raw
entity_category: diagnostic
update_interval: 60s
internal: false
#on_raw_value:
# then:
# - text_sensor.template.publish:
# id: id_sensor_uptime
# state: !lambda |-
# int seconds = round(id(id_sensor_uptime_raw).raw_state);
# int days = seconds / (24 * 3600);
# seconds = seconds % (24 * 3600);
# int hours = seconds / 3600;
# seconds = seconds % 3600;
# int minutes = seconds / 60;
# seconds = seconds % 60;
# return (
# (days ? String(days) + "d " : "") +
# (hours ? String(hours) + "h " : "") +
# (minutes ? String(minutes) + "m " : "") +
# (String(seconds) + "s")
# ).c_str();
- platform: wifi_signal
name: "sensor-WifiSignal"
id: id_sensor_wifisignal
update_interval: 60s
debug:
update_interval: 10s
、
麻烦帮我看看 什么没有实体 可开关了,灯光控制不了,遥控器也没有实体
|
-
|