esphome/tests/test1.yaml
Nathaniel Wesley Filardo 05ab49a615
climate: add on_control callbacks (#4511)
This lets downstream components respond to climate configuration
changes, which take place through ClimateCall objects, without also
being notified every time the state changes, which happens every time
the input sensor announces a new value.

FIXES https://github.com/esphome/feature-requests/issues/2136
2023-03-07 04:19:49 +00:00

3277 lines
75 KiB
YAML

---
substitutions:
devicename: test1
sensorname: my
textname: template
roomname: living_room
esphome:
name: test1
name_add_mac_suffix: true
platform: ESP32
board: nodemcu-32s
platformio_options:
board_build.partitions: huge_app.csv
on_boot:
priority: 150.0
then:
- lambda: >-
ESP_LOGD("main", "ON BOOT!");
on_shutdown:
then:
- lambda: >-
ESP_LOGD("main", "ON SHUTDOWN!");
on_loop:
then:
- lambda: >-
ESP_LOGV("main", "ON LOOP!");
- light.addressable_set:
id: addr1
range_from: 0
range_to: 100
red: 100%
green: !lambda "return 255;"
blue: 0%
white: 100%
- http_request.get:
url: https://esphome.io
headers:
Content-Type: application/json
verify_ssl: false
- http_request.post:
url: https://esphome.io
verify_ssl: false
json:
key: !lambda |-
return id(${textname}_text).state;
greeting: Hello World
- http_request.send:
method: PUT
url: https://esphome.io
headers:
Content-Type: application/json
body: Some data
verify_ssl: false
on_response:
then:
- logger.log:
format: "Response status: %d"
args:
- status_code
build_path: build/test1
packages:
wifi: !include test_packages/test_packages_package_wifi.yaml
pkg_test: !include test_packages/test_packages_package1.yaml
wifi:
networks:
- ssid: "MySSID"
password: "password1"
- ssid: "MySSID2"
password: ""
channel: 14
bssid: "A1:63:95:47:D3:1D"
manual_ip:
static_ip: 192.168.178.230
gateway: 192.168.178.1
subnet: 255.255.255.0
dns1: 1.1.1.1
dns2: 1.2.2.1
domain: .local
reboot_timeout: 120s
power_save_mode: light
mdns:
disabled: false
http_request:
useragent: esphome/device
timeout: 10s
mqtt:
broker: "192.168.178.84"
port: 1883
username: "debug"
password: "debug"
client_id: someclient
use_abbreviations: false
discovery: true
discovery_retain: false
discovery_prefix: discovery
discovery_unique_id_generator: legacy
topic_prefix: helloworld
log_topic:
topic: helloworld/hi
level: INFO
birth_message:
will_message:
shutdown_message:
topic: topic/to/send/to
payload: hi
qos: 2
retain: true
keepalive: 60s
reboot_timeout: 60s
on_message:
- topic: my/custom/topic
qos: 0
then:
- lambda: >-
ESP_LOGD("main", "Got message %s", x.c_str());
- topic: livingroom/ota_mode
then:
- deep_sleep.prevent
- deep_sleep.allow
- topic: livingroom/ota_mode
then:
- deep_sleep.enter:
on_json_message:
topic: the/topic
then:
- if:
condition:
- wifi.connected:
- mqtt.connected:
- light.is_on: kitchen
- light.is_off: kitchen
- fan.is_on: fan_speed
- fan.is_off: fan_speed
then:
- lambda: |-
int data = x["my_data"];
ESP_LOGD("main", "The data is: %d", data);
- light.turn_on:
id: ${roomname}_lights
brightness: !lambda |-
float brightness = 1.0;
if (x.containsKey("brightness"))
brightness = x["brightness"];
return brightness;
effect: !lambda |-
const char *effect = "None";
if (x.containsKey("effect"))
effect = x["effect"];
return effect;
- light.control:
id: ${roomname}_lights
# yamllint disable-line rule:line-length
brightness: !lambda "return id(${roomname}_lights).current_values.get_brightness() + 0.5;"
- light.dim_relative:
id: ${roomname}_lights
relative_brightness: 5%
- uart.write:
id: uart0
data: Hello World
- uart.write:
id: uart0
data: [0x00, 0x20, 0x30]
- uart.write:
id: uart0
data: !lambda |-
return {};
on_connect:
- light.turn_on: ${roomname}_lights
- mqtt.publish:
topic: some/topic
payload: Hello
on_disconnect:
- light.turn_off: ${roomname}_lights
i2c:
sda: 21
scl: 22
scan: true
frequency: 100kHz
setup_priority: -100
id: i2c_bus
spi:
clk_pin: GPIO21
mosi_pin: GPIO22
miso_pin: GPIO23
uart:
- tx_pin:
number: GPIO22
inverted: true
rx_pin:
number: GPIO23
inverted: true
baud_rate: 115200
id: uart0
parity: NONE
data_bits: 8
stop_bits: 1
rx_buffer_size: 512
debug:
dummy_receiver: true
direction: both
after:
bytes: 50
timeout: 500ms
delimiter: "\r\n"
sequence:
- lambda: UARTDebug::log_hex(direction, bytes, ':');
- lambda: UARTDebug::log_string(direction, bytes);
- lambda: UARTDebug::log_int(direction, bytes, ',');
- lambda: UARTDebug::log_binary(direction, bytes, ';');
- id: adalight_uart
tx_pin: GPIO25
rx_pin: GPIO26
baud_rate: 115200
rx_buffer_size: 1024
- id: ld2410_uart
tx_pin: 18
rx_pin: 23
baud_rate: 256000
parity: NONE
stop_bits: 1
ota:
safe_mode: true
password: "superlongpasswordthatnoonewillknow"
port: 3286
reboot_timeout: 2min
num_attempts: 5
on_state_change:
then:
lambda: >-
ESP_LOGD("ota", "State %d", state);
on_begin:
then:
logger.log: OTA begin
on_progress:
then:
lambda: >-
ESP_LOGD("ota", "Got progress %f", x);
on_end:
then:
logger.log: OTA end
on_error:
then:
lambda: >-
ESP_LOGD("ota", "Got error code %d", x);
logger:
baud_rate: 0
level: VERBOSE
logs:
mqtt.component: DEBUG
mqtt.client: ERROR
web_server:
port: 8080
version: 2
power_supply:
id: atx_power_supply
enable_time: 20ms
keep_on_time: 10s
pin:
number: 13
inverted: true
deep_sleep:
run_duration: 20s
sleep_duration: 50s
wakeup_pin: GPIO2
wakeup_pin_mode: INVERT_WAKEUP
ads1115:
address: 0x48
i2c_id: i2c_bus
dallas:
pin: GPIO23
as3935_spi:
cs_pin: GPIO12
irq_pin: GPIO13
wled:
adalight:
esp32_ble_tracker:
ble_client:
- mac_address: AA:BB:CC:DD:EE:FF
id: ble_foo
- mac_address: 11:22:33:44:55:66
id: ble_blah
on_connect:
then:
- switch.turn_on: ble1_status
on_disconnect:
then:
- switch.turn_on: ble1_status
- mac_address: C4:4F:33:11:22:33
id: my_bedjet_ble_client
bedjet:
- ble_client_id: my_bedjet_ble_client
id: my_bedjet_client
time_id: sntp_time
mcp23s08:
- id: mcp23s08_hub
cs_pin: GPIO12
deviceaddress: 0
mcp23s17:
- id: mcp23s17_hub
cs_pin: GPIO12
deviceaddress: 1
sensor:
- platform: internal_temperature
name: "Internal Temperature"
- platform: ble_client
type: characteristic
ble_client_id: ble_foo
name: Green iTag btn
service_uuid: ffe0
characteristic_uuid: ffe1
descriptor_uuid: ffe2
notify: true
update_interval: never
lambda: |-
ESP_LOGD("main", "Length of data is %i", x.size());
return x[0];
on_notify:
then:
- lambda: |-
ESP_LOGD("green_btn", "Button was pressed, val%f", x);
- platform: ble_client
type: rssi
ble_client_id: ble_foo
name: Green iTag RSSI
update_interval: 15s
- platform: adc
pin: A0
name: Living Room Brightness
update_interval: "1:01"
attenuation: 2.5db
unit_of_measurement: "°C"
icon: "mdi:water-percent"
accuracy_decimals: 5
expire_after: 120s
setup_priority: -100
force_update: true
filters:
- offset: 2.0
- multiply: 1.2
- calibrate_linear:
- 0.0 -> 0.0
- 40.0 -> 45.0
- 100.0 -> 102.5
- filter_out: 42.0
- filter_out: nan
- median:
window_size: 5
send_every: 5
send_first_at: 3
- min:
window_size: 5
send_every: 5
send_first_at: 3
- max:
window_size: 5
send_every: 5
send_first_at: 3
- sliding_window_moving_average:
window_size: 15
send_every: 15
send_first_at: 15
- exponential_moving_average:
alpha: 0.1
send_every: 15
send_first_at: 15
- throttle_average: 60s
- throttle: 1s
- heartbeat: 5s
- debounce: 0.1s
- delta: 5.0
- or:
- throttle: 1s
- delta: 5.0
- lambda: return x * (9.0/5.0) + 32.0;
on_value:
then:
# yamllint disable rule:line-length
- lambda: |-
ESP_LOGD("main", "Got value %f", x);
id(${sensorname}_sensor).publish_state(42.0);
ESP_LOGI("main", "Value of my sensor: %f", id(${sensorname}_sensor).state);
ESP_LOGI("main", "Raw Value of my sensor: %f", id(${sensorname}_sensor).state);
# yamllint enable rule:line-length
on_value_range:
above: 5
below: 10
then:
- lambda: >-
ESP_LOGD("main", "Got value range %f", x);
- wait_until: wifi.connected
- wait_until:
condition:
binary_sensor.is_on: binary_sensor1
timeout: 1s
on_raw_value:
- lambda: >-
ESP_LOGD("main", "Got raw value %f", x);
- logger.log:
level: DEBUG
format: Got raw value %f
args: ["x"]
- logger.log: Got raw value NAN
- mqtt.publish:
topic: some/topic
payload: Hello
qos: 2
retain: true
- platform: esp32_hall
name: ESP32 Hall Sensor
- platform: ads1115
multiplexer: A0_A1
gain: 1.024
id: ${sensorname}_sensor
filters:
state_topic: hi/me
retain: false
availability:
- platform: atm90e32
cs_pin: 5
phase_a:
voltage:
name: EMON Line Voltage A
current:
name: EMON CT1 Current
power:
name: EMON Active Power CT1
reactive_power:
name: EMON Reactive Power CT1
power_factor:
name: EMON Power Factor CT1
gain_voltage: 7305
gain_ct: 27961
phase_b:
current:
name: EMON CT2 Current
power:
name: EMON Active Power CT2
reactive_power:
name: EMON Reactive Power CT2
power_factor:
name: EMON Power Factor CT2
gain_voltage: 7305
gain_ct: 27961
phase_c:
current:
name: EMON CT3 Current
power:
name: EMON Active Power CT3
reactive_power:
name: EMON Reactive Power CT3
power_factor:
name: EMON Power Factor CT3
gain_voltage: 7305
gain_ct: 27961
frequency:
name: EMON Line Frequency
chip_temperature:
name: EMON Chip Temp A
line_frequency: 60Hz
current_phases: 3
gain_pga: 2X
- platform: bh1750
name: Living Room Brightness 3
internal: true
address: 0x23
update_interval: 30s
retain: false
availability:
state_topic: livingroom/custom_state_topic
i2c_id: i2c_bus
- platform: max44009
name: Outside Brightness 1
internal: true
address: 0x4A
update_interval: 30s
mode: low_power
i2c_id: i2c_bus
- platform: bme280
temperature:
name: Outside Temperature
oversampling: 16x
pressure:
name: Outside Pressure
oversampling: none
humidity:
name: Outside Humidity
oversampling: 8x
address: 0x77
iir_filter: 16x
update_interval: 15s
i2c_id: i2c_bus
- platform: bme680
temperature:
name: Outside Temperature
oversampling: 16x
pressure:
name: Outside Pressure
humidity:
name: Outside Humidity
gas_resistance:
name: Outside Gas Sensor
address: 0x77
heater:
temperature: 320
duration: 150ms
update_interval: 15s
i2c_id: i2c_bus
- platform: bmp085
temperature:
name: Outside Temperature
pressure:
name: Outside Pressure
filters:
- lambda: >-
return x / powf(1.0 - (x / 44330.0), 5.255);
update_interval: 15s
i2c_id: i2c_bus
- platform: bmp280
temperature:
name: Outside Temperature
oversampling: 16x
pressure:
name: Outside Pressure
address: 0x77
update_interval: 15s
iir_filter: 16x
i2c_id: i2c_bus
- platform: dallas
address: 0x1C0000031EDD2A28
name: Living Room Temperature
resolution: 9
- platform: dallas
index: 1
name: Living Room Temperature 2
- platform: dht
pin: GPIO26
temperature:
id: dht_temperature
name: Living Room Temperature 3
humidity:
id: dht_humidity
name: Living Room Humidity 3
model: AM2302
update_interval: 15s
- platform: dht12
temperature:
name: Living Room Temperature 4
humidity:
name: Living Room Humidity 4
update_interval: 15s
i2c_id: i2c_bus
- platform: duty_cycle
pin: GPIO25
name: Duty Cycle Sensor
- platform: ee895
co2:
name: Office CO2 1
temperature:
name: Office Temperature 1
pressure:
name: Office Pressure 1
address: 0x5F
i2c_id: i2c_bus
- platform: esp32_hall
name: ESP32 Hall Sensor
update_interval: 15s
- platform: ens210
temperature:
name: Living Room Temperature 5
humidity:
name: Living Room Humidity 5
update_interval: 15s
i2c_id: i2c_bus
- platform: hdc1080
temperature:
name: Living Room Temperature 6
humidity:
name: Living Room Humidity 5
update_interval: 15s
i2c_id: i2c_bus
- platform: hlw8012
sel_pin: 5
cf_pin: 14
cf1_pin: 13
current:
name: HLW8012 Current
voltage:
name: HLW8012 Voltage
power:
name: HLW8012 Power
id: hlw8012_power
energy:
name: HLW8012 Energy
id: hlw8012_energy
update_interval: 15s
current_resistor: 0.001 ohm
voltage_divider: 2351
change_mode_every: 16
initial_mode: VOLTAGE
model: hlw8012
- platform: total_daily_energy
power_id: hlw8012_power
name: HLW8012 Total Daily Energy
- platform: integration
sensor: hlw8012_power
name: Integration Sensor
time_unit: s
- platform: integration
sensor: hlw8012_power
name: Integration Sensor lazy
time_unit: s
- platform: hmc5883l
address: 0x68
field_strength_x:
name: HMC5883L Field Strength X
field_strength_y:
name: HMC5883L Field Strength Y
field_strength_z:
name: HMC5883L Field Strength Z
heading:
name: HMC5883L Heading
range: 130uT
oversampling: 8x
update_interval: 15s
i2c_id: i2c_bus
- platform: honeywellabp
pressure:
name: Honeywell pressure
min_pressure: 0
max_pressure: 15
temperature:
name: Honeywell temperature
cs_pin: GPIO5
- platform: hte501
temperature:
name: Office Temperature 2
humidity:
name: Office Humidity 1
address: 0x40
i2c_id: i2c_bus
- platform: qmc5883l
address: 0x0D
field_strength_x:
name: QMC5883L Field Strength X
field_strength_y:
name: QMC5883L Field Strength Y
field_strength_z:
name: QMC5883L Field Strength Z
heading:
name: QMC5883L Heading
range: 800uT
oversampling: 256x
update_interval: 15s
i2c_id: i2c_bus
- platform: hx711
name: HX711 Value
dout_pin: GPIO23
clk_pin: GPIO25
gain: 128
update_interval: 15s
- platform: ina219
address: 0x40
shunt_resistance: 0.1 ohm
current:
name: INA219 Current
power:
name: INA219 Power
bus_voltage:
name: INA219 Bus Voltage
shunt_voltage:
name: INA219 Shunt Voltage
max_voltage: 32.0V
max_current: 3.2A
update_interval: 15s
i2c_id: i2c_bus
- platform: ina226
address: 0x40
shunt_resistance: 0.1 ohm
current:
name: INA226 Current
power:
name: INA226 Power
bus_voltage:
name: INA226 Bus Voltage
shunt_voltage:
name: INA226 Shunt Voltage
max_current: 3.2A
update_interval: 15s
i2c_id: i2c_bus
- platform: ina3221
address: 0x40
channel_1:
shunt_resistance: 0.1 ohm
current:
name: INA3221 Channel 1 Current
power:
name: INA3221 Channel 1 Power
bus_voltage:
name: INA3221 Channel 1 Bus Voltage
shunt_voltage:
name: INA3221 Channel 1 Shunt Voltage
update_interval: 15s
i2c_id: i2c_bus
- platform: kalman_combinator
name: Kalman-filtered temperature
process_std_dev: 0.00139
sources:
- source: scd30_temperature
error: !lambda |-
return 0.4 + std::abs(x - 25) * 0.023;
- source: scd4x_temperature
error: 1.5
- platform: htu21d
temperature:
name: Living Room Temperature 6
humidity:
name: Living Room Humidity 6
update_interval: 15s
i2c_id: i2c_bus
- platform: max6675
name: Living Room Temperature
cs_pin: GPIO23
update_interval: 15s
- platform: max31855
name: Den Temperature
cs_pin: GPIO23
update_interval: 15s
reference_temperature:
name: MAX31855 Internal Temperature
- platform: max31856
name: BBQ Temperature
cs_pin: GPIO17
update_interval: 15s
mains_filter: 50Hz
- platform: max31865
name: Water Tank Temperature
cs_pin: GPIO23
update_interval: 15s
reference_resistance: 430 Ω
rtd_nominal_resistance: 100 Ω
- platform: mhz19
uart_id: uart0
co2:
name: MH-Z19 CO2 Value
temperature:
name: MH-Z19 Temperature
update_interval: 15s
automatic_baseline_calibration: false
- platform: mpu6050
address: 0x68
accel_x:
name: MPU6050 Accel X
accel_y:
name: MPU6050 Accel Y
accel_z:
name: MPU6050 Accel z
gyro_x:
name: MPU6050 Gyro X
gyro_y:
name: MPU6050 Gyro Y
gyro_z:
name: MPU6050 Gyro z
temperature:
name: MPU6050 Temperature
i2c_id: i2c_bus
- platform: mpu6886
address: 0x68
accel_x:
name: MPU6886 Accel X
accel_y:
name: MPU6886 Accel Y
accel_z:
name: MPU6886 Accel z
gyro_x:
name: MPU6886 Gyro X
gyro_y:
name: MPU6886 Gyro Y
gyro_z:
name: MPU6886 Gyro z
temperature:
name: MPU6886 Temperature
i2c_id: i2c_bus
- platform: dps310
temperature:
name: DPS310 Temperature
pressure:
name: DPS310 Pressure
address: 0x77
update_interval: 15s
i2c_id: i2c_bus
- platform: ms5611
temperature:
name: Outside Temperature
pressure:
name: Outside Pressure
address: 0x77
update_interval: 15s
i2c_id: i2c_bus
- platform: pmsa003i
pm_1_0:
name: PMSA003i PM1.0
pm_2_5:
name: PMSA003i PM2.5
pm_10_0:
name: PMSA003i PM10.0
pmc_0_3:
name: PMSA003i PMC <0.3µm
pmc_0_5:
name: PMSA003i PMC <0.5µm
pmc_1_0:
name: PMSA003i PMC <1µm
pmc_2_5:
name: PMSA003i PMC <2.5µm
pmc_5_0:
name: PMSA003i PMC <5µm
pmc_10_0:
name: PMSA003i PMC <10µm
address: 0x12
standard_units: true
i2c_id: i2c_bus
- platform: pulse_counter
name: Pulse Counter
pin: GPIO12
count_mode:
rising_edge: INCREMENT
falling_edge: DECREMENT
internal_filter: 13us
update_interval: 15s
- platform: pulse_meter
name: Pulse Meter
id: pulse_meter_sensor
pin: GPIO12
internal_filter: 100ms
timeout: 2 min
on_value:
- pulse_meter.set_total_pulses:
id: pulse_meter_sensor
value: 12345
total:
name: Pulse Meter Total
- platform: qmp6988
temperature:
name: Living Temperature QMP
oversampling: 32x
pressure:
name: Living Pressure QMP
oversampling: 2x
address: 0x70
update_interval: 30s
iir_filter: 16x
i2c_id: i2c_bus
- platform: rotary_encoder
name: Rotary Encoder
id: rotary_encoder1
pin_a: GPIO23
pin_b: GPIO25
pin_reset: GPIO25
filters:
- or:
- debounce: 0.1s
- delta: 10
resolution: 4
min_value: -10
max_value: 30
on_value:
- sensor.rotary_encoder.set_value:
id: rotary_encoder1
value: 10
- sensor.rotary_encoder.set_value:
id: rotary_encoder1
value: !lambda "return -1;"
on_clockwise:
- logger.log: Clockwise
- display_menu.down:
on_anticlockwise:
- logger.log: Anticlockwise
- display_menu.up:
- platform: pulse_width
name: Pulse Width
pin: GPIO12
- platform: sm300d2
uart_id: uart0
co2:
name: SM300D2 CO2 Value
formaldehyde:
name: SM300D2 Formaldehyde Value
tvoc:
name: SM300D2 TVOC Value
pm_2_5:
name: SM300D2 PM2.5 Value
pm_10_0:
name: SM300D2 PM10 Value
temperature:
name: SM300D2 Temperature Value
humidity:
name: SM300D2 Humidity Value
update_interval: 60s
- platform: sht3xd
temperature:
name: Living Room Temperature 8
humidity:
name: Living Room Humidity 8
address: 0x44
i2c_id: i2c_bus
update_interval: 15s
- platform: sts3x
name: Living Room Temperature 9
address: 0x4A
i2c_id: i2c_bus
- platform: scd30
co2:
name: Living Room CO2 9
temperature:
id: scd30_temperature
name: Living Room Temperature 9
humidity:
name: Living Room Humidity 9
address: 0x61
update_interval: 15s
automatic_self_calibration: true
altitude_compensation: 10m
ambient_pressure_compensation: 961mBar
temperature_offset: 4.2C
i2c_id: i2c_bus
- platform: scd4x
id: scd40
co2:
name: SCD4X CO2
temperature:
id: scd4x_temperature
name: SCD4X Temperature
humidity:
name: SCD4X Humidity
update_interval: 15s
automatic_self_calibration: true
altitude_compensation: 10m
ambient_pressure_compensation: 961mBar
temperature_offset: 4.2C
i2c_id: i2c_bus
- platform: sgp30
eco2:
name: Workshop eCO2
accuracy_decimals: 1
tvoc:
name: Workshop TVOC
accuracy_decimals: 1
address: 0x58
update_interval: 5s
i2c_id: i2c_bus
- platform: sps30
pm_1_0:
name: Workshop PM <1µm Weight concentration
id: workshop_PM_1_0
pm_2_5:
name: Workshop PM <2.5µm Weight concentration
id: workshop_PM_2_5
pm_4_0:
name: Workshop PM <4µm Weight concentration
id: workshop_PM_4_0
pm_10_0:
name: Workshop PM <10µm Weight concentration
id: workshop_PM_10_0
pmc_0_5:
name: Workshop PM <0.5µm Number concentration
id: workshop_PMC_0_5
pmc_1_0:
name: Workshop PM <1µm Number concentration
id: workshop_PMC_1_0
pmc_2_5:
name: Workshop PM <2.5µm Number concentration
id: workshop_PMC_2_5
pmc_4_0:
name: Workshop PM <4µm Number concentration
id: workshop_PMC_4_0
pmc_10_0:
name: Workshop PM <10µm Number concentration
id: workshop_PMC_10_0
address: 0x69
update_interval: 10s
i2c_id: i2c_bus
- platform: sht4x
temperature:
name: SHT4X Temperature
humidity:
name: SHT4X Humidity
address: 0x44
update_interval: 15s
i2c_id: i2c_bus
- platform: shtcx
temperature:
name: Living Room Temperature 10
humidity:
name: Living Room Humidity 10
address: 0x70
update_interval: 15s
i2c_id: i2c_bus
- platform: template
name: Template Sensor
state_class: measurement
id: template_sensor
lambda: |-
if (id(ultrasonic_sensor1).state > 1) {
return 42.0;
} else {
return {};
}
update_interval: 15s
on_value:
- sensor.template.publish:
id: template_sensor
state: 43.0
- sensor.template.publish:
id: template_sensor
state: !lambda "return NAN;"
- platform: tsl2561
name: TSL2561 Ambient Light
address: 0x39
update_interval: 15s
is_cs_package: true
integration_time: 402ms
gain: 16x
i2c_id: i2c_bus
- platform: tsl2591
id: this_little_light_of_mine
address: 0x29
update_interval: 15s
integration_time: 600ms
gain: high
visible:
name: tsl2591 visible
id: tsl2591_vis
unit_of_measurement: pH
infrared:
name: tsl2591 infrared
id: tsl2591_ir
full_spectrum:
name: tsl2591 full_spectrum
id: tsl2591_fs
calculated_lux:
name: tsl2591 calculated_lux
id: tsl2591_cl
i2c_id: i2c_bus
- platform: tee501
name: Office Temperature 3
address: 0x48
i2c_id: i2c_bus
- platform: ultrasonic
trigger_pin: GPIO25
echo_pin:
number: GPIO23
inverted: true
name: Ultrasonic Sensor
timeout: 5.5m
id: ultrasonic_sensor1
- platform: uptime
name: Uptime Sensor
- id: !extend ${devicename}_uptime_pcg
unit_of_measurement: s
- platform: wifi_signal
name: WiFi Signal Sensor
update_interval: 15s
- platform: mqtt_subscribe
name: MQTT Subscribe Sensor 1
topic: mqtt/topic
id: the_sensor
qos: 2
on_value:
- mqtt.publish_json:
topic: the/topic
payload: |-
root["key"] = id(the_sensor).state;
root["greeting"] = "Hello World";
- platform: sds011
uart_id: uart0
pm_2_5:
name: SDS011 PM2.5
pm_10_0:
name: SDS011 PM10.0
update_interval: 5min
rx_only: false
- platform: ccs811
eco2:
name: CCS811 eCO2
tvoc:
name: CCS811 TVOC
update_interval: 30s
baseline: 0x4242
i2c_id: i2c_bus
- platform: tx20
wind_speed:
name: Windspeed
wind_direction_degrees:
name: Winddirection Degrees
pin:
number: GPIO04
mode: INPUT
- platform: zyaura
clock_pin: GPIO5
data_pin: GPIO4
co2:
name: ZyAura CO2
temperature:
name: ZyAura Temperature
humidity:
name: ZyAura Humidity
- platform: as3935
lightning_energy:
name: Lightning Energy
distance:
name: Distance Storm
- platform: tmp117
name: TMP117 Temperature
update_interval: 5s
i2c_id: i2c_bus
- platform: hm3301
pm_1_0:
name: PM1.0
pm_2_5:
name: PM2.5
pm_10_0:
name: PM10.0
aqi:
name: AQI
calculation_type: CAQI
i2c_id: i2c_bus
- platform: teleinfo
tag_name: HCHC
name: hchc
unit_of_measurement: Wh
icon: mdi:flash
teleinfo_id: myteleinfo
- platform: mcp9808
name: MCP9808 Temperature
update_interval: 15s
i2c_id: i2c_bus
- platform: ezo
id: ph_ezo
address: 99
unit_of_measurement: pH
i2c_id: i2c_bus
- platform: sdp3x
name: HVAC Filter Pressure drop
id: filter_pressure
update_interval: 5s
accuracy_decimals: 3
i2c_id: i2c_bus
- platform: cs5460a
id: cs5460a1
current:
name: Socket current
voltage:
name: Mains voltage
power:
name: Socket power
on_value:
then:
cs5460a.restart: cs5460a1
samples: 1600
pga_gain: 10X
current_gain: 0.01
voltage_gain: 0.000573
current_hpf: true
voltage_hpf: true
phase_offset: 20
pulse_energy: 0.01 kWh
cs_pin:
mcp23xxx: mcp23017_hub
number: 14
- platform: max9611
i2c_id: i2c_bus
shunt_resistance: 0.2 ohm
gain: 1X
voltage:
name: Max9611 Voltage
current:
name: Max9611 Current
power:
name: Max9611 Watts
temperature:
name: Max9611 Temp
update_interval: 1s
- platform: mpl3115a2
i2c_id: i2c_bus
temperature:
name: "MPL3115A2 Temperature"
pressure:
name: "MPL3115A2 Pressure"
update_interval: 10s
- platform: ld2410
moving_distance:
name: "Moving distance (cm)"
still_distance:
name: "Still Distance (cm)"
moving_energy:
name: "Move Energy"
still_energy:
name: "Still Energy"
detection_distance:
name: "Distance Detection"
- platform: sen21231
name: "Person Sensor"
i2c_id: i2c_bus
esp32_touch:
setup_mode: false
iir_filter: 10ms
sleep_duration: 27ms
measurement_duration: 8ms
low_voltage_reference: 0.5V
high_voltage_reference: 2.7V
voltage_attenuation: 1.5V
binary_sensor:
- platform: gpio
name: "MCP23S08 Pin #1"
pin:
mcp23xxx: mcp23s08_hub
# Use pin number 1
number: 1
# One of INPUT or INPUT_PULLUP
mode: INPUT_PULLUP
inverted: false
- platform: gpio
name: "MCP23S17 Pin #1"
pin:
mcp23xxx: mcp23s17_hub
# Use pin number 1
number: 1
# One of INPUT or INPUT_PULLUP
mode: INPUT_PULLUP
inverted: false
- platform: gpio
name: "MCP23S17 Pin #1 with interrupt"
pin:
mcp23xxx: mcp23s17_hub
# Use pin number 1
number: 1
# One of INPUT or INPUT_PULLUP
mode: INPUT_PULLUP
inverted: false
interrupt: FALLING
- platform: gpio
pin: GPIO9
name: Living Room Window
device_class: window
filters:
- invert:
- delayed_on: 40ms
- delayed_off: 40ms
on_press:
then:
- lambda: >-
ESP_LOGD("main", "Pressed");
on_release:
then:
- lambda: >-
ESP_LOGD("main", "Released");
on_click:
- min_length: 50ms
max_length: 350ms
then:
- lambda: >-
ESP_LOGD("main", "Clicked");
- then:
- lambda: >-
ESP_LOGD("main", "Clicked");
on_double_click:
- min_length: 50ms
max_length: 350ms
then:
- lambda: >-
ESP_LOGD("main", "Double Clicked");
- then:
- lambda: >-
ESP_LOGD("main", "Double Clicked");
on_multi_click:
- timing:
- ON for at most 1s
- OFF for at most 1s
- ON for at most 1s
- OFF for at least 0.2s
then:
- logger.log:
format: Multi Clicked TWO
level: warn
- timing:
- OFF for 1s to 2s
- ON for 1s to 2s
- OFF for at least 0.5s
then:
- logger.log:
format: Multi Clicked LONG SINGLE
level: warn
- timing:
- ON for at most 1s
- OFF for at least 0.5s
then:
- logger.log:
format: Multi Clicked SINGLE
level: warn
id: binary_sensor1
- platform: gpio
pin:
number: GPIO9
mode: INPUT_PULLUP
name: Living Room Window 2
- platform: gpio
pin:
number: GPIO9
mode: INPUT_OUTPUT_OPEN_DRAIN
name: Living Room Button
- platform: status
name: Living Room Status
- platform: esp32_touch
name: ESP32 Touch Pad GPIO27
pin: GPIO27
threshold: 1000
id: btn_left
on_press:
- if:
condition:
display_menu.is_active:
then:
- display_menu.enter:
else:
- display_menu.left:
- display_menu.right:
- display_menu.show:
- platform: template
name: Garage Door Open
id: garage_door
lambda: |-
if (isnan(id(${sensorname}_sensor).state)) {
// isnan checks if the ultrasonic sensor echo
// has timed out, resulting in a NaN (not a number) state
// in that case, return {} to indicate that we don't know.
return {};
} else if (id(${sensorname}_sensor).state > 30) {
// Garage Door is open.
return true;
} else {
// Garage Door is closed.
return false;
}
on_press:
- binary_sensor.template.publish:
id: garage_door
state: false
- output.ledc.set_frequency:
id: gpio_19
frequency: 500.0Hz
- output.ledc.set_frequency:
id: gpio_19
frequency: !lambda "return 500.0;"
- platform: pn532
pn532_id: pn532_bs
uid: 74-10-37-94
name: PN532 NFC Tag
- platform: rdm6300
uid: 7616525
name: RDM6300 NFC Tag
- platform: gpio
name: PCF binary sensor
pin:
pcf8574: pcf8574_hub
number: 1
mode: INPUT
inverted: true
- platform: gpio
name: PCA9554 binary sensor
pin:
pca9554: pca9554_hub
number: 1
mode: INPUT
inverted: true
- platform: gpio
name: MCP21 binary sensor
pin:
mcp23xxx: mcp23017_hub
number: 1
mode: INPUT
inverted: true
- platform: gpio
name: MCP22 binary sensor
pin:
mcp23xxx: mcp23008_hub
number: 7
mode: INPUT_PULLUP
inverted: false
- platform: gpio
name: MCP23 binary sensor
pin:
mcp23016: mcp23016_hub
number: 7
mode: INPUT
inverted: false
- platform: remote_receiver
name: Raw Remote Receiver Test
raw:
code:
[
5685,
-4252,
1711,
-2265,
1712,
-2265,
1711,
-2264,
1712,
-2266,
3700,
-2263,
1712,
-4254,
1711,
-4249,
1715,
-2266,
1710,
-2267,
1709,
-2265,
3704,
-4250,
1712,
-4254,
3700,
-2260,
1714,
-2265,
1712,
-2262,
1714,
-2267,
1709,
]
- platform: as3935
name: Storm Alert
- platform: analog_threshold
name: Analog Trheshold 1
sensor_id: template_sensor
threshold:
upper: 110
lower: 90
filters:
- delayed_on: 0s
- delayed_off: 10s
- platform: analog_threshold
name: Analog Trheshold 2
sensor_id: template_sensor
threshold: 100
filters:
- invert:
- platform: template
id: open_endstop_sensor
- platform: template
id: open_sensor
- platform: template
id: open_obstacle_sensor
- platform: template
id: close_endstop_sensor
- platform: template
id: close_sensor
- platform: template
id: close_obstacle_sensor
- platform: ld2410
has_target:
name: presence
has_moving_target:
name: movement
has_still_target:
name: still
pca9685:
frequency: 500
address: 0x0
i2c_id: i2c_bus
tlc59208f:
- address: 0x20
id: tlc59208f_1
i2c_id: i2c_bus
- address: 0x22
id: tlc59208f_2
i2c_id: i2c_bus
- address: 0x24
id: tlc59208f_3
i2c_id: i2c_bus
my9231:
data_pin: GPIO12
clock_pin: GPIO14
num_channels: 6
num_chips: 2
bit_depth: 16
sm2235:
data_pin: GPIO4
clock_pin: GPIO5
max_power_color_channels: 9
max_power_white_channels: 9
sm2335:
data_pin: GPIO4
clock_pin: GPIO5
max_power_color_channels: 9
max_power_white_channels: 9
bp1658cj:
data_pin: GPIO3
clock_pin: GPIO5
max_power_color_channels: 4
max_power_white_channels: 6
bp5758d:
data_pin: GPIO3
clock_pin: GPIO5
output:
- platform: gpio
pin: GPIO26
id: gpio_26
power_supply: atx_power_supply
inverted: false
- platform: ledc
pin: 19
id: gpio_19
frequency: 1500Hz
channel: 14
max_power: 0.5
- platform: pca9685
id: pca_0
channel: 0
- platform: pca9685
id: pca_1
channel: 1
- platform: pca9685
id: pca_2
channel: 2
- platform: pca9685
id: pca_3
channel: 3
- platform: pca9685
id: pca_4
channel: 4
- platform: pca9685
id: pca_5
channel: 5
- platform: pca9685
id: pca_6
channel: 6
- platform: pca9685
id: pca_7
channel: 7
- platform: tlc59208f
id: tlc_0
channel: 0
tlc59208f_id: tlc59208f_1
- platform: tlc59208f
id: tlc_1
channel: 1
tlc59208f_id: tlc59208f_1
- platform: tlc59208f
id: tlc_2
channel: 2
tlc59208f_id: tlc59208f_1
- platform: tlc59208f
id: tlc_3
channel: 0
tlc59208f_id: tlc59208f_2
- platform: tlc59208f
id: tlc_4
channel: 1
tlc59208f_id: tlc59208f_2
- platform: tlc59208f
id: tlc_5
channel: 2
tlc59208f_id: tlc59208f_2
- platform: tlc59208f
id: tlc_6
channel: 0
tlc59208f_id: tlc59208f_3
- platform: tlc59208f
id: tlc_7
channel: 1
tlc59208f_id: tlc59208f_3
- platform: tlc59208f
id: tlc_8
channel: 2
tlc59208f_id: tlc59208f_3
- platform: gpio
id: id2
pin:
pcf8574: pcf8574_hub
number: 0
mode: OUTPUT
inverted: false
- platform: gpio
id: id26
pin:
pca9554: pca9554_hub
number: 0
mode: OUTPUT
inverted: false
- platform: gpio
id: id22
pin:
mcp23xxx: mcp23017_hub
number: 0
mode: OUTPUT
inverted: false
- platform: gpio
id: id23
pin:
mcp23xxx: mcp23008_hub
number: 0
mode: OUTPUT
inverted: false
- platform: gpio
id: id25
pin:
mcp23016: mcp23016_hub
number: 0
mode: OUTPUT
inverted: false
- platform: my9231
id: my_0
channel: 0
- platform: my9231
id: my_1
channel: 1
- platform: my9231
id: my_2
channel: 2
- platform: my9231
id: my_3
channel: 3
- platform: my9231
id: my_4
channel: 4
- platform: my9231
id: my_5
channel: 5
- platform: sm2235
id: sm2235_red
channel: 1
- platform: sm2235
id: sm2235_green
channel: 0
- platform: sm2235
id: sm2235_blue
channel: 2
- platform: sm2235
id: sm2235_coldwhite
channel: 4
- platform: sm2235
id: sm2235_warmwhite
channel: 3
- platform: sm2335
id: sm2335_red
channel: 1
- platform: sm2335
id: sm2335_green
channel: 0
- platform: sm2335
id: sm2335_blue
channel: 2
- platform: sm2335
id: sm2335_coldwhite
channel: 4
- platform: sm2335
id: sm2335_warmwhite
channel: 3
- platform: slow_pwm
id: id24
pin: GPIO26
period: 15s
- platform: ac_dimmer
id: dimmer1
gate_pin: GPIO5
zero_cross_pin: GPIO26
- platform: esp32_dac
pin: GPIO25
id: dac_output
- platform: mcp4725
id: mcp4725_dac_output
i2c_id: i2c_bus
- platform: mcp4728
id: mcp4728_dac_output_a
channel: A
vref: vdd
power_down: normal
- platform: mcp4728
id: mcp4728_dac_output_b
channel: B
vref: internal
gain: X1
power_down: gnd_1k
- platform: mcp4728
id: mcp4728_dac_output_c
channel: C
vref: vdd
power_down: gnd_100k
- platform: mcp4728
id: mcp4728_dac_output_d
channel: D
vref: internal
gain: X2
power_down: gnd_500k
- platform: bp1658cj
id: bp1658cj_red
channel: 1
- platform: bp1658cj
id: bp1658cj_green
channel: 2
- platform: bp1658cj
id: bp1658cj_blue
channel: 0
- platform: bp1658cj
id: bp1658cj_coldwhite
channel: 3
- platform: bp1658cj
id: bp1658cj_warmwhite
channel: 4
- platform: bp5758d
id: bp5758d_red
channel: 2
current: 10
- platform: bp5758d
id: bp5758d_green
channel: 3
current: 10
- platform: bp5758d
id: bp5758d_blue
channel: 1
current: 10
- platform: bp5758d
id: bp5758d_coldwhite
channel: 5
current: 10
- platform: bp5758d
id: bp5758d_warmwhite
channel: 4
current: 10
- platform: x9c
id: test_x9c
cs_pin: GPIO25
inc_pin: GPIO26
ud_pin: GPIO27
initial_value: 0.5
e131:
light:
- platform: binary
name: Desk Lamp
output: gpio_26
effects:
- strobe:
- strobe:
name: My Strobe
colors:
- state: true
duration: 250ms
- state: false
duration: 250ms
on_turn_on:
- switch.template.publish:
id: livingroom_lights
state: true
on_turn_off:
- switch.template.publish:
id: livingroom_lights
state: true
- platform: monochromatic
name: Kitchen Lights
id: kitchen
output: gpio_19
gamma_correct: 2.8
default_transition_length: 2s
effects:
- strobe:
- flicker:
- flicker:
name: My Flicker
alpha: 98%
intensity: 1.5%
- lambda:
name: My Custom Effect
update_interval: 1s
lambda: |-
static int state = 0;
state += 1;
if (state == 4)
state = 0;
- platform: rgb
name: Living Room Lights
id: ${roomname}_lights
red: pca_0
green: pca_1
blue: pca_2
- platform: rgbw
name: Living Room Lights 2
red: pca_3
green: pca_4
blue: pca_5
white: pca_6
color_interlock: true
- platform: rgbww
name: Living Room Lights 2
red: pca_3
green: pca_4
blue: pca_5
cold_white: pca_6
warm_white: pca_6
cold_white_color_temperature: 153 mireds
warm_white_color_temperature: 500 mireds
color_interlock: true
- platform: rgbct
name: Living Room Lights 2
red: pca_3
green: pca_4
blue: pca_5
color_temperature: pca_6
white_brightness: pca_6
cold_white_color_temperature: 153 mireds
warm_white_color_temperature: 500 mireds
color_interlock: true
- platform: cwww
name: Living Room Lights 2
cold_white: pca_6
warm_white: pca_6
cold_white_color_temperature: 153 mireds
warm_white_color_temperature: 500 mireds
constant_brightness: true
- platform: color_temperature
name: Living Room Lights 2
color_temperature: pca_6
brightness: pca_6
cold_white_color_temperature: 153 mireds
warm_white_color_temperature: 500 mireds
- platform: fastled_clockless
id: addr1
chipset: WS2811
pin: GPIO23
num_leds: 60
rgb_order: BRG
max_refresh_rate: 20ms
power_supply: atx_power_supply
color_correct: [75%, 100%, 50%]
name: FastLED WS2811 Light
effects:
- addressable_color_wipe:
- addressable_color_wipe:
name: Color Wipe Effect With Custom Values
colors:
- red: 100%
green: 100%
blue: 100%
num_leds: 1
- red: 0%
green: 0%
blue: 0%
num_leds: 1
add_led_interval: 100ms
reverse: false
- addressable_scan:
- addressable_scan:
name: Scan Effect With Custom Values
move_interval: 100ms
- addressable_twinkle:
- addressable_twinkle:
name: Twinkle Effect With Custom Values
twinkle_probability: 5%
progress_interval: 4ms
- addressable_random_twinkle:
- addressable_random_twinkle:
name: Random Twinkle Effect With Custom Values
twinkle_probability: 5%
progress_interval: 32ms
- addressable_fireworks:
- addressable_fireworks:
name: Fireworks Effect With Custom Values
update_interval: 32ms
spark_probability: 10%
use_random_color: false
fade_out_rate: 120
- addressable_flicker:
- addressable_flicker:
name: Flicker Effect With Custom Values
update_interval: 16ms
intensity: 5%
- addressable_lambda:
name: Test For Custom Lambda Effect
lambda: |-
if (initial_run) {
it[0] = current_color;
}
- wled:
port: 11111
- adalight:
uart_id: adalight_uart
- automation:
name: Custom Effect
sequence:
- light.addressable_set:
id: addr1
red: 100%
green: 100%
blue: 0%
- delay: 100ms
- light.addressable_set:
id: addr1
red: 0%
green: 100%
blue: 0%
- e131:
universe: 1
- platform: fastled_spi
id: addr2
chipset: WS2801
data_pin: GPIO23
clock_pin: GPIO22
data_rate: 2MHz
num_leds: 60
rgb_order: BRG
name: FastLED SPI Light
- platform: neopixelbus
id: addr3
name: Neopixelbus Light
gamma_correct: 2.8
color_correct: [0.0, 0.0, 0.0, 0.0]
default_transition_length: 10s
power_supply: atx_power_supply
effects:
- addressable_flicker:
name: Flicker Effect With Custom Values
update_interval: 16ms
intensity: 5%
type: GRBW
variant: SK6812
method: ESP32_I2S_0
num_leds: 60
pin: GPIO23
- platform: partition
name: Partition Light
segments:
- id: addr1
from: 0
to: 0
- id: addr2
from: 1
to: 10
- id: addr2
from: 20
to: 25
- single_light_id: ${roomname}_lights
remote_transmitter:
- pin: 32
carrier_duty_percent: 100%
climate:
- platform: tcl112
name: TCL112 Climate With Sensor
supports_heat: true
supports_cool: true
sensor: ${sensorname}_sensor
- platform: tcl112
name: TCL112 Climate
action_state_topic: action/state/topic
away_command_topic: away/command/topic
away_state_topic: away/state/topic
current_temperature_state_topic: current/temperature/state/topic
fan_mode_command_topic: fan_mode/mode/command/topic
fan_mode_state_topic: fan_mode/mode/state/topic
mode_command_topic: mode/command/topic
mode_state_topic: mode/state/topic
swing_mode_command_topic: swing_mode/command/topic
swing_mode_state_topic: swing_mode/state/topic
target_temperature_command_topic: target/temperature/command/topic
target_temperature_high_command_topic: target/temperature/high/command/topic
target_temperature_high_state_topic: target/temperature/high/state/topic
target_temperature_low_command_topic: target/temperature/low/command/topic
target_temperature_low_state_topic: target/temperature/low/state/topic
target_temperature_state_topic: target/temperature/state/topic
- platform: coolix
name: Coolix Climate With Sensor
supports_heat: true
supports_cool: true
sensor: ${sensorname}_sensor
- platform: coolix
name: Coolix Climate
- platform: fujitsu_general
name: Fujitsu General Climate
- platform: daikin
name: Daikin Climate
- platform: daikin_brc
name: Daikin BRC Climate
use_fahrenheit: true
- platform: delonghi
name: Delonghi Climate
- platform: yashima
name: Yashima Climate
- platform: mitsubishi
name: Mitsubishi
- platform: whirlpool
name: Whirlpool Climate
- platform: climate_ir_lg
name: LG Climate
- platform: toshiba
name: Toshiba Climate
- platform: hitachi_ac344
name: Hitachi Climate
- platform: heatpumpir
protocol: mitsubishi_heavy_zm
horizontal_default: left
vertical_default: up
name: HeatpumpIR Climate
min_temperature: 18
max_temperature: 30
- platform: midea_ir
name: Midea IR
use_fahrenheit: true
- platform: midea
on_control:
logger.log: Control message received!
on_state:
logger.log: State changed!
id: midea_unit
uart_id: uart0
name: Midea Climate
transmitter_id:
period: 1s
num_attempts: 5
timeout: 2s
beeper: false
autoconf: true
visual:
min_temperature: 17 °C
max_temperature: 30 °C
temperature_step: 0.5 °C
supported_modes:
- FAN_ONLY
- HEAT_COOL
- COOL
- HEAT
- DRY
custom_fan_modes:
- SILENT
- TURBO
supported_presets:
- ECO
- BOOST
- SLEEP
custom_presets:
- FREEZE_PROTECTION
supported_swing_modes:
- VERTICAL
- HORIZONTAL
- BOTH
outdoor_temperature:
name: Temp
power_usage:
name: Power
humidity_setpoint:
name: Humidity
- platform: anova
name: Anova cooker
ble_client_id: ble_blah
unit_of_measurement: c
icon: mdi:stove
- platform: bedjet
name: My Bedjet
bedjet_id: my_bedjet_client
heat_mode: extended
- platform: whynter
name: Whynter
script:
- id: climate_custom
then:
- climate.control:
id: midea_unit
custom_preset: FREEZE_PROTECTION
custom_fan_mode: SILENT
- id: climate_preset
then:
- climate.control:
id: midea_unit
preset: SLEEP
switch:
- platform: template
name: MIDEA_AC_BEEPER_CONTROL
optimistic: true
turn_on_action:
midea_ac.beeper_on:
turn_off_action:
midea_ac.beeper_off:
- platform: template
name: MIDEA_RAW
turn_on_action:
remote_transmitter.transmit_midea:
code: [0xA2, 0x08, 0xFF, 0xFF, 0xFF]
- platform: gpio
name: "MCP23S08 Pin #0"
pin:
mcp23xxx: mcp23s08_hub
# Use pin number 0
number: 0
mode: OUTPUT
inverted: false
- platform: gpio
name: "MCP23S17 Pin #0"
pin:
mcp23xxx: mcp23s17_hub
# Use pin number 0
number: 1
mode: OUTPUT
inverted: false
- platform: gpio
pin: GPIO25
name: Living Room Dehumidifier
icon: "mdi:restart"
inverted: true
command_topic: custom_command_topic
command_retain: true
restore_mode: ALWAYS_OFF
- platform: template
name: JVC Off
id: living_room_lights_on
turn_on_action:
remote_transmitter.transmit_jvc:
data: 0x10EF
- platform: template
name: MagiQuest
turn_on_action:
remote_transmitter.transmit_magiquest:
wand_id: 0x01234567
- platform: template
name: NEC
id: living_room_lights_off
turn_on_action:
remote_transmitter.transmit_nec:
address: 0x4242
command: 0x8484
- platform: template
name: LG
turn_on_action:
remote_transmitter.transmit_lg:
data: 4294967295
nbits: 28
- platform: template
name: Samsung
turn_on_action:
remote_transmitter.transmit_samsung:
data: 0xABCDEF
- platform: template
name: Samsung36
turn_on_action:
remote_transmitter.transmit_samsung36:
address: 0x0400
command: 0x000E00FF
- platform: template
name: ToshibaAC
turn_on_action:
- remote_transmitter.transmit_toshiba_ac:
rc_code_1: 0xB24DBF4050AF
rc_code_2: 0xD5660001003C
- platform: template
name: Sony
turn_on_action:
remote_transmitter.transmit_sony:
data: 0xABCDEF
nbits: 12
- platform: template
name: Panasonic
turn_on_action:
remote_transmitter.transmit_panasonic:
address: 0x4004
command: 0x1000BCD
- platform: template
name: Pioneer
turn_on_action:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0xA556
rc_code_2: 0xA506
repeat:
times: 2
- platform: template
name: RC Switch Raw
turn_on_action:
remote_transmitter.transmit_rc_switch_raw:
code: "00101001100111110101xxxx"
protocol: 1
- platform: template
name: RC Switch Type A
turn_on_action:
remote_transmitter.transmit_rc_switch_type_a:
group: "11001"
device: "01000"
state: true
protocol:
pulse_length: 175
sync: [1, 31]
zero: [1, 3]
one: [3, 1]
inverted: false
- platform: template
name: RC Switch Type B
turn_on_action:
remote_transmitter.transmit_rc_switch_type_b:
address: 4
channel: 2
state: true
- platform: template
name: RC Switch Type C
turn_on_action:
remote_transmitter.transmit_rc_switch_type_c:
family: "a"
group: 1
device: 2
state: true
- platform: template
name: RC Switch Type D
turn_on_action:
remote_transmitter.transmit_rc_switch_type_d:
group: "a"
device: 2
state: true
- platform: template
name: RC5
turn_on_action:
remote_transmitter.transmit_rc5:
address: 0x00
command: 0x0B
- platform: template
name: RC5
turn_on_action:
remote_transmitter.transmit_raw:
code: [1000, -1000]
- platform: template
name: AEHA
id: eaha_hitachi_climate_power_on
turn_on_action:
remote_transmitter.transmit_aeha:
address: 0x8008
data:
[
0x00,
0x02,
0xFD,
0xFF,
0x00,
0x33,
0xCC,
0x49,
0xB6,
0xC8,
0x37,
0x16,
0xE9,
0x00,
0xFF,
0x00,
0xFF,
0x00,
0xFF,
0x00,
0xFF,
0x00,
0xFF,
0xCA,
0x35,
0x8F,
0x70,
0x00,
0xFF,
0x00,
0xFF,
0x00,
0xFF,
0x00,
0xFF,
]
- platform: template
name: Living Room Lights
id: livingroom_lights
optimistic: true
assumed_state: true
turn_on_action:
- switch.turn_on: living_room_lights_on
- output.set_level:
id: gpio_19
level: 50%
- output.set_level:
id: gpio_19
level: !lambda "return 0.5;"
- output.set_level:
id: dac_output
level: 50%
- output.set_level:
id: dac_output
level: !lambda "return 0.5;"
- output.set_level:
id: mcp4725_dac_output
level: !lambda "return 0.5;"
- output.set_level:
id: mcp4728_dac_output_a
level: !lambda "return 0.5;"
turn_off_action:
- switch.turn_on: living_room_lights_off
restore_state: false
on_turn_on:
- switch.template.publish:
id: livingroom_lights
state: true
- platform: restart
name: Living Room Restart
- platform: safe_mode
name: Living Room Restart (Safe Mode)
- platform: factory_reset
name: Living Room Restart (Factory Default Settings)
- platform: shutdown
name: Living Room Shutdown
- platform: output
name: Generic Output
output: pca_6
- platform: template
name: Template Switch
id: my_switch
lambda: |-
if (id(binary_sensor1).state) {
return true;
} else {
return {};
}
id(my_switch).publish_state(false);
id(my_switch).publish_state(true);
if (id(my_switch).state) {
// Switch is ON, do something here
id(my_switch).turn_off();
id(my_switch).turn_on();
} else {
// Switch is OFF, do something else here
}
optimistic: true
assumed_state: false
restore_state: true
on_turn_off:
- switch.template.publish:
id: my_switch
state: !lambda "return false;"
- platform: uart
uart_id: uart0
name: UART String Output
data: DataToSend
- platform: uart
uart_id: uart0
name: UART Bytes Output
data: [0xDE, 0xAD, 0xBE, 0xEF]
- platform: uart
uart_id: uart0
name: UART Recurring Output
data: [0xDE, 0xAD, 0xBE, 0xEF]
send_every: 1s
- platform: template
assumed_state: true
name: Stepper Switch
turn_on_action:
- stepper.set_target:
id: my_stepper
target: !lambda |-
static int32_t i = 0;
i += 1000;
if (i > 5000) {
i = -5000;
}
return i;
- stepper.report_position:
id: my_stepper
position: 0
- platform: gpio
name: "SN74HC595 Pin #0"
pin:
sn74hc595: sn74hc595_hub
# Use pin number 0
number: 0
inverted: false
- platform: template
id: ble1_status
optimistic: true
- platform: template
id: outlet_switch
optimistic: true
device_class: outlet
fan:
- platform: binary
output: gpio_26
name: Living Room Fan 1
oscillation_output: gpio_19
direction_output: gpio_26
- platform: speed
id: fan_speed
icon: mdi:weather-windy
output: pca_6
speed_count: 10
name: Living Room Fan 2
oscillation_output: gpio_19
direction_output: gpio_26
oscillation_state_topic: oscillation/state/topic
oscillation_command_topic: oscillation/command/topic
speed_level_state_topic: speed_level/state/topic
speed_level_command_topic: speed_level/command/topic
speed_state_topic: speed/state/topic
speed_command_topic: speed/command/topic
on_speed_set:
then:
- logger.log: Fan speed was changed!
- platform: bedjet
name: My Bedjet fan
bedjet_id: my_bedjet_client
- platform: copy
source_id: fan_speed
name: Fan Speed Copy
interval:
- interval: 10s
then:
- display.page.show: !lambda |-
if (true) return id(page1); else return id(page2);
- display.page.show_next: display1
- display.page.show_previous: display1
- interval: 2s
then:
# yamllint disable rule:line-length
- lambda: |-
static uint16_t btn_left_state = id(btn_left)->get_value();
ESP_LOGD("adaptive touch", "___ Touch Pad '%s' (T%u): val: %u state: %u tres:%u", id(btn_left)->get_name().c_str(), id(btn_left)->get_touch_pad(), id(btn_left)->get_value(), btn_left_state, id(btn_left)->get_threshold());
btn_left_state = ((uint32_t) id(btn_left)->get_value() + 63 * (uint32_t)btn_left_state) >> 6;
id(btn_left)->set_threshold(btn_left_state * 0.9);
# yamllint enable rule:line-length
- if:
condition:
display.is_displaying_page:
id: display1
page_id: page1
then:
- logger.log: Seeing page 1
color:
- id: kbx_red
red: 100%
green_int: 123
blue: 2%
- id: kbx_blue
red: 0%
green: 1%
blue: 100%
display:
- platform: lcd_gpio
id: my_lcd_gpio
dimensions: 18x4
data_pins:
- GPIO19
- GPIO21
- GPIO22
- GPIO23
enable_pin: GPIO23
rs_pin: GPIO25
lambda: |-
it.print("Hello World!");
- platform: lcd_pcf8574
dimensions: 18x4
address: 0x3F
user_characters:
- position: 0
data:
- 0b00000
- 0b01010
- 0b00000
- 0b00100
- 0b00100
- 0b10001
- 0b01110
- 0b00000
lambda: |-
it.print("Hello World!");
i2c_id: i2c_bus
- platform: max7219
cs_pin: GPIO23
num_chips: 1
lambda: |-
it.print("01234567");
- platform: tm1637
clk_pin: GPIO23
dio_pin: GPIO25
intensity: 3
lambda: |-
it.print("1234");
- platform: tm1637
clk_pin:
mcp23xxx: mcp23017_hub
number: 1
dio_pin:
mcp23xxx: mcp23017_hub
number: 2
intensity: 3
inverted: true
length: 4
lambda: |-
it.print("1234");
- platform: pcd8544
cs_pin: GPIO23
dc_pin: GPIO23
reset_pin: GPIO23
contrast: 60
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height());
- platform: ssd1306_i2c
model: SSD1306_128X64
reset_pin: GPIO23
address: 0x3C
id: display1
contrast: 60%
pages:
- id: page1
lambda: |-
it.qr_code(0, 0, id(homepage_qr));
it.rectangle(0, 0, it.get_width(), it.get_height());
- id: page2
lambda: |-
// Nothing
on_page_change:
from: page1
to: page2
then:
lambda: |-
ESP_LOGD("display", "1 -> 2");
i2c_id: i2c_bus
- platform: ssd1306_spi
model: SSD1306 128x64
cs_pin: GPIO23
dc_pin: GPIO23
reset_pin: GPIO23
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height());
- platform: ssd1322_spi
model: SSD1322 256x64
cs_pin: GPIO23
dc_pin: GPIO23
reset_pin: GPIO23
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height());
- platform: ssd1325_spi
model: SSD1325 128x64
cs_pin: GPIO23
dc_pin: GPIO23
reset_pin: GPIO23
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height());
- platform: ssd1327_i2c
model: SSD1327 128X128
reset_pin: GPIO23
address: 0x3D
id: display1327
brightness: 60%
pages:
- id: page13271
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height());
- id: page13272
lambda: |-
// Nothing
i2c_id: i2c_bus
- platform: ssd1327_spi
model: SSD1327 128x128
cs_pin: GPIO23
dc_pin: GPIO23
reset_pin: GPIO23
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height());
- platform: ssd1331_spi
cs_pin: GPIO23
dc_pin: GPIO23
reset_pin: GPIO23
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height());
- platform: ssd1351_spi
model: SSD1351 128x128
cs_pin: GPIO23
dc_pin: GPIO23
reset_pin: GPIO23
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height());
- platform: st7789v
model: TTGO TDisplay 135x240
cs_pin: GPIO5
dc_pin: GPIO16
reset_pin: GPIO23
backlight_pin: GPIO4
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height());
- platform: st7920
width: 128
height: 64
cs_pin:
number: GPIO23
inverted: true
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height());
- platform: st7735
model: INITR_BLACKTAB
cs_pin: GPIO5
dc_pin: GPIO16
reset_pin: GPIO23
rotation: 0
device_width: 128
device_height: 160
col_start: 0
row_start: 0
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height());
- platform: ili9341
model: TFT 2.4
cs_pin: GPIO5
dc_pin: GPIO4
reset_pin: GPIO22
led_pin:
number: GPIO15
inverted: true
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height());
- platform: ili9341
model: TFT 2.4
cs_pin: GPIO5
dc_pin: GPIO4
reset_pin: GPIO22
led_pin:
number: GPIO15
inverted: true
auto_clear_enabled: false
rotation: 90
lambda: |-
if (!id(glob_bool_processed)) {
it.fill(Color::WHITE);
id(glob_bool_processed) = true;
}
- platform: pvvx_mithermometer
ble_client_id: ble_foo
time_id: sntp_time
disconnect_delay: 3s
update_interval: 10min
validity_period: 20min
lambda: |-
it.print_bignum(188.8);
it.print_unit(pvvx_mithermometer::UNIT_DEG_E);
it.print_smallnum(88);
it.print_percent(true);
it.print_happy(true);
it.print_sad(true);
it.print_bracket(true);
it.print_battery(true);
- platform: tm1621
id: tm1621_display
cs_pin: GPIO17
data_pin: GPIO5
read_pin: GPIO23
write_pin: GPIO18
lambda: |-
it.printf(0, "%.1f", id(dht_temperature).state);
it.display_celsius(true);
it.printf(1, "%.1f", id(dht_humidity).state);
it.display_humidity(true);
tm1651:
id: tm1651_battery
clk_pin: GPIO23
dio_pin: GPIO23
remote_receiver:
pin: GPIO32
dump: all
status_led:
pin: GPIO2
pn532_spi:
id: pn532_bs
cs_pin: GPIO23
update_interval: 1s
on_tag:
- lambda: |-
ESP_LOGD("main", "Found tag %s", x.c_str());
- mqtt.publish:
topic: the/topic
payload: !lambda "return x;"
on_tag_removed:
- lambda: |-
ESP_LOGD("main", "Removed tag %s", x.c_str());
- mqtt.publish:
topic: the/topic
payload: !lambda "return x;"
pn532_i2c:
i2c_id: i2c_bus
rdm6300:
uart_id: uart0
rc522_spi:
cs_pin: GPIO23
update_interval: 1s
on_tag:
- lambda: |-
ESP_LOGD("main", "Found tag %s", x.c_str());
rc522_i2c:
- update_interval: 1s
on_tag:
- lambda: |-
ESP_LOGD("main", "Found tag %s", x.c_str());
i2c_id: i2c_bus
- update_interval: 1s
on_tag:
- lambda: |-
ESP_LOGD("main", "Found tag %s", x.c_str());
i2c_id: i2c_bus
mcp4728:
- id: mcp4728_dac
store_in_eeprom: false
address: 0x60
i2c_id: i2c_bus
gps:
uart_id: uart0
time:
- platform: sntp
id: sntp_time
servers:
- 0.pool.ntp.org
- 1.pool.ntp.org
- 192.168.178.1
on_time:
cron: "/30 0-30,30/5 * ? JAN-DEC MON,SAT-SUN,TUE-FRI"
then:
- lambda: 'ESP_LOGD("main", "time");'
- platform: gps
on_time_sync:
then:
ds1307.write_time:
id: ds1307_time
- platform: ds1307
id: ds1307_time
update_interval: never
on_time:
seconds: 0
then: ds1307.read_time
i2c_id: i2c_bus
cover:
- platform: template
name: Template Cover
id: template_cover
lambda: |-
if (id(binary_sensor1).state) {
return COVER_OPEN;
} else {
return {};
}
optimistic: true
open_action:
- cover.template.publish:
id: template_cover
state: CLOSED
assumed_state: false
has_position: true
position_state_topic: position/state/topic
position_command_topic: position/command/topic
tilt_lambda: !lambda "return 0.5;"
tilt_state_topic: tilt/state/topic
tilt_command_topic: tilt/command/topic
on_open:
then:
- lambda: 'ESP_LOGD("cover", "open");'
on_closed:
then:
- lambda: 'ESP_LOGD("cover", "closed");'
- platform: am43
name: Test AM43
id: am43_test
ble_client_id: ble_foo
icon: mdi:blinds
- platform: feedback
name: Feedback Cover
id: gate
device_class: gate
infer_endstop_from_movement: false
has_built_in_endstop: false
max_duration: 30s
direction_change_wait_time: 300ms
acceleration_wait_time: 150ms
obstacle_rollback: 10%
open_duration: 22.1s
open_endstop: open_endstop_sensor
open_sensor: open_sensor
open_obstacle_sensor: open_obstacle_sensor
close_duration: 22.4s
close_endstop: close_endstop_sensor
close_sensor: close_sensor
close_obstacle_sensor: close_obstacle_sensor
open_action:
- logger.log: Open Action
close_action:
- logger.log: Close Action
stop_action:
- logger.log: Stop Action
debug:
tca9548a:
- address: 0x70
id: multiplex0
channels:
- bus_id: multiplex0_chan0
channel: 0
i2c_id: i2c_bus
- address: 0x71
id: multiplex1
i2c_id: multiplex0_chan0
pcf8574:
- id: pcf8574_hub
address: 0x21
pcf8575: false
i2c_id: i2c_bus
pca9554:
- id: pca9554_hub
address: 0x3F
i2c_id: i2c_bus
mcp23017:
- id: mcp23017_hub
open_drain_interrupt: true
i2c_id: i2c_bus
mcp23008:
- id: mcp23008_hub
address: 0x22
open_drain_interrupt: true
i2c_id: i2c_bus
mcp23016:
- id: mcp23016_hub
address: 0x23
i2c_id: i2c_bus
stepper:
- platform: a4988
id: my_stepper
step_pin: GPIO23
dir_pin: GPIO25
sleep_pin: GPIO25
max_speed: 250 steps/s
acceleration: 100 steps/s^2
deceleration: 200 steps/s^2
globals:
- id: glob_int
type: int
restore_value: true
initial_value: "0"
- id: glob_float
type: float
restore_value: true
initial_value: "0.0f"
- id: glob_bool
type: bool
restore_value: false
initial_value: "true"
- id: glob_string
type: std::string
restore_value: false
# initial_value: ""
- id: glob_bool_processed
type: bool
restore_value: false
initial_value: "false"
text_sensor:
- platform: ble_client
ble_client_id: ble_foo
name: Sensor Location
service_uuid: "180d"
characteristic_uuid: "2a38"
descriptor_uuid: "2902"
notify: true
update_interval: never
on_notify:
then:
- lambda: |-
ESP_LOGD("green_btn", "Location changed: %s", x.c_str());
- platform: mqtt_subscribe
name: MQTT Subscribe Text
topic: "the/topic"
qos: 2
on_value:
- text_sensor.template.publish:
id: ${textname}_text
state: Hello World
- text_sensor.template.publish:
id: ${textname}_text
state: |-
return "Hello World2";
- globals.set:
id: glob_int
value: "0"
- canbus.send:
canbus_id: mcp2515_can
can_id: 23
data: [0x10, 0x20, 0x30]
- canbus.send:
canbus_id: esp32_internal_can
can_id: 23
data: [0x10, 0x20, 0x30]
- canbus.send:
canbus_id: mcp2515_can
can_id: 24
remote_transmission_request: true
data: []
- canbus.send:
canbus_id: esp32_internal_can
can_id: 24
remote_transmission_request: true
data: []
- platform: template
name: Template Text Sensor
id: ${textname}_text
- platform: wifi_info
scan_results:
name: Scan Results
ip_address:
name: IP Address
ssid:
name: SSID
bssid:
name: BSSID
mac_address:
name: Mac Address
- platform: version
name: ESPHome Version No Timestamp
hide_timestamp: true
- platform: teleinfo
tag_name: OPTARIF
name: optarif
teleinfo_id: myteleinfo
sn74hc595:
- id: sn74hc595_hub
data_pin: GPIO21
clock_pin: GPIO23
latch_pin: GPIO22
oe_pin: GPIO32
sr_count: 2
rtttl:
output: gpio_19
canbus:
- platform: mcp2515
id: mcp2515_can
cs_pin: GPIO17
can_id: 4
bit_rate: 50kbps
on_frame:
- can_id: 500
then:
- lambda: |-
std::string b(x.begin(), x.end());
ESP_LOGD("canid 500", "%s", b.c_str());
- can_id: 23
then:
- if:
condition:
lambda: "return x[0] == 0x11;"
then:
light.toggle: ${roomname}_lights
- can_id: 0b00000000000000000000001000000
can_id_mask: 0b11111000000000011111111000000
use_extended_id: true
then:
- lambda: |-
auto pdo_id = can_id >> 14;
switch (pdo_id)
{
case 117:
ESP_LOGD("canbus", "exhaust_fan_duty");
break;
case 118:
ESP_LOGD("canbus", "supply_fan_duty");
break;
case 119:
ESP_LOGD("canbus", "supply_fan_flow");
break;
// to be continued...
}
- platform: esp32_can
id: esp32_internal_can
rx_pin: GPIO04
tx_pin: GPIO05
can_id: 4
bit_rate: 50kbps
on_frame:
- can_id: 500
then:
- lambda: |-
std::string b(x.begin(), x.end());
ESP_LOGD("canid 500", "%s", b.c_str() );
- can_id: 23
then:
- if:
condition:
lambda: "return x[0] == 0x11;"
then:
light.toggle: ${roomname}_lights
- can_id: 0b00000000000000000000001000000
can_id_mask: 0b11111000000000011111111000000
use_extended_id: true
then:
- lambda: |-
auto pdo_id = can_id >> 14;
switch (pdo_id)
{
case 117:
ESP_LOGD("canbus", "exhaust_fan_duty");
break;
case 118:
ESP_LOGD("canbus", "supply_fan_duty");
break;
case 119:
ESP_LOGD("canbus", "supply_fan_flow");
break;
// to be continued...
}
teleinfo:
id: myteleinfo
uart_id: uart0
update_interval: 60s
historical_mode: true
number:
- platform: template
id: test_number
state_topic: livingroom/custom_state_topic
command_topic: livingroom/custom_command_topic
min_value: 0
step: 1
max_value: 10
optimistic: true
select:
- platform: template
id: test_select
state_topic: livingroom/custom_state_topic
command_topic: livingroom/custom_command_topic
options:
- one
- two
optimistic: true
- platform: copy
source_id: test_select
name: Test Select Copy
qr_code:
- id: homepage_qr
value: https://esphome.io/index.html
lock:
- platform: template
id: test_lock1
name: Template Switch
lambda: |-
if (id(binary_sensor1).state) {
return LOCK_STATE_LOCKED;
}else{
return LOCK_STATE_UNLOCKED;
}
optimistic: true
assumed_state: false
on_unlock:
- lock.template.publish:
id: test_lock1
state: !lambda "return LOCK_STATE_UNLOCKED;"
on_lock:
- lock.template.publish:
id: test_lock1
state: !lambda "return LOCK_STATE_LOCKED;"
- platform: output
name: Generic Output Lock
id: test_lock2
output: pca_6
- platform: copy
source_id: test_lock2
name: Generic Output Lock Copy
button:
- platform: template
name: Start calibration
on_press:
- scd4x.perform_forced_calibration:
value: 419
id: scd40
- scd4x.factory_reset:
id: scd40
- platform: template
name: Midea Display Toggle
on_press:
midea_ac.display_toggle:
- platform: template
name: Midea Swing Step
on_press:
midea_ac.swing_step:
- platform: template
name: Midea Power On
on_press:
midea_ac.power_on:
- platform: template
name: Midea Power Off
on_press:
midea_ac.power_off:
- platform: template
name: Midea Power Inverse
on_press:
midea_ac.power_toggle:
ld2410:
id: my_ld2410
uart_id: ld2410_uart
timeout: 150s
max_move_distance: 6m
max_still_distance: 0.75m
g0_move_threshold: 10
g0_still_threshold: 20
g2_move_threshold: 20
g2_still_threshold: 21
g8_move_threshold: 80
g8_still_threshold: 81
lcd_menu:
display_id: my_lcd_gpio
mark_back: 0x5e
mark_selected: 0x3e
mark_editing: 0x2a
mark_submenu: 0x7e
active: false
mode: rotary
on_enter:
then:
lambda: 'ESP_LOGI("lcd_menu", "root enter");'
on_leave:
then:
lambda: 'ESP_LOGI("lcd_menu", "root leave");'
items:
- type: back
text: 'Back'
- type: label
- type: menu
text: 'Submenu 1'
items:
- type: back
text: 'Back'
- type: menu
text: 'Submenu 21'
items:
- type: back
text: 'Back'
- type: command
text: 'Show Main'
on_value:
then:
- display_menu.show_main:
- type: select
text: 'Enum Item'
immediate_edit: true
select: test_select
on_enter:
then:
lambda: 'ESP_LOGI("lcd_menu", "select enter: %s, %s", it->get_text().c_str(), it->get_value_text().c_str());'
on_leave:
then:
lambda: 'ESP_LOGI("lcd_menu", "select leave: %s, %s", it->get_text().c_str(), it->get_value_text().c_str());'
on_value:
then:
lambda: 'ESP_LOGI("lcd_menu", "select value: %s, %s", it->get_text().c_str(), it->get_value_text().c_str());'
- type: number
text: 'Number'
number: test_number
on_enter:
then:
lambda: 'ESP_LOGI("lcd_menu", "number enter: %s, %s", it->get_text().c_str(), it->get_value_text().c_str());'
on_leave:
then:
lambda: 'ESP_LOGI("lcd_menu", "number leave: %s, %s", it->get_text().c_str(), it->get_value_text().c_str());'
on_value:
then:
lambda: 'ESP_LOGI("lcd_menu", "number value: %s, %s", it->get_text().c_str(), it->get_value_text().c_str());'
- type: command
text: 'Hide'
on_value:
then:
- display_menu.hide:
- type: switch
text: 'Switch'
switch: my_switch
on_text: 'Bright'
off_text: 'Dark'
immediate_edit: false
on_value:
then:
lambda: 'ESP_LOGI("lcd_menu", "switch value: %s", it->get_value_text().c_str());'
- type: custom
text: !lambda 'return "Custom";'
value_lambda: 'return "Val";'
on_next:
then:
lambda: 'ESP_LOGI("lcd_menu", "custom next: %s", it->get_text().c_str());'
on_prev:
then:
lambda: 'ESP_LOGI("lcd_menu", "custom prev: %s", it->get_text().c_str());'