mirror of
https://github.com/esphome/esphome.git
synced 2024-12-29 08:51:43 +01:00
247 lines
5.1 KiB
YAML
247 lines
5.1 KiB
YAML
sensor:
|
|
- platform: template
|
|
name: "Template Sensor"
|
|
id: template_sens
|
|
lambda: |-
|
|
if (id(some_binary_sensor).state) {
|
|
return 42.0;
|
|
} else {
|
|
return 0.0;
|
|
}
|
|
update_interval: 60s
|
|
filters:
|
|
- offset: 10
|
|
- multiply: 1
|
|
- offset: !lambda return 10;
|
|
- multiply: !lambda return 2;
|
|
- filter_out:
|
|
- 10
|
|
- 20
|
|
- !lambda return 10;
|
|
- filter_out: 10
|
|
- filter_out: !lambda return NAN;
|
|
- timeout:
|
|
timeout: 10s
|
|
value: !lambda return 10;
|
|
- timeout:
|
|
timeout: 1h
|
|
value: 20.0
|
|
- timeout:
|
|
timeout: 1d
|
|
|
|
esphome:
|
|
on_boot:
|
|
- sensor.template.publish:
|
|
id: template_sens
|
|
state: 42.0
|
|
|
|
# Templated
|
|
- sensor.template.publish:
|
|
id: template_sens
|
|
state: !lambda "return 42.0;"
|
|
|
|
- datetime.date.set:
|
|
id: test_date
|
|
date:
|
|
year: 2021
|
|
month: 1
|
|
day: 1
|
|
- datetime.date.set:
|
|
id: test_date
|
|
date: !lambda "return {.day_of_month = 1, .month = 1, .year = 2021};"
|
|
- datetime.date.set:
|
|
id: test_date
|
|
date: "2021-01-01"
|
|
|
|
binary_sensor:
|
|
- platform: template
|
|
id: some_binary_sensor
|
|
name: "Garage Door Open"
|
|
lambda: |-
|
|
if (id(template_sens).state > 30) {
|
|
// Garage Door is open.
|
|
return true;
|
|
} else {
|
|
// Garage Door is closed.
|
|
return false;
|
|
}
|
|
- platform: template
|
|
id: other_binary_sensor
|
|
name: "Garage Door Closed"
|
|
condition:
|
|
sensor.in_range:
|
|
id: template_sens
|
|
below: 30.0
|
|
|
|
output:
|
|
- platform: template
|
|
id: outputsplit
|
|
type: float
|
|
write_action:
|
|
- logger.log: "write_action"
|
|
|
|
switch:
|
|
- platform: template
|
|
name: "Template Switch"
|
|
lambda: |-
|
|
if (id(some_binary_sensor).state) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
turn_on_action:
|
|
- logger.log: "turn_on_action"
|
|
turn_off_action:
|
|
- logger.log: "turn_off_action"
|
|
|
|
button:
|
|
- platform: template
|
|
name: "Template Button"
|
|
on_press:
|
|
- logger.log: Button Pressed
|
|
|
|
cover:
|
|
- platform: template
|
|
name: "Template Cover"
|
|
lambda: |-
|
|
if (id(some_binary_sensor).state) {
|
|
return COVER_OPEN;
|
|
} else {
|
|
return COVER_CLOSED;
|
|
}
|
|
open_action:
|
|
- logger.log: open_action
|
|
close_action:
|
|
- logger.log: close_action
|
|
stop_action:
|
|
- logger.log: stop_action
|
|
optimistic: true
|
|
|
|
number:
|
|
- platform: template
|
|
name: "Template number"
|
|
optimistic: true
|
|
min_value: 0
|
|
max_value: 100
|
|
step: 1
|
|
|
|
select:
|
|
- platform: template
|
|
name: "Template select"
|
|
optimistic: true
|
|
options:
|
|
- one
|
|
- two
|
|
- three
|
|
initial_option: two
|
|
|
|
lock:
|
|
- platform: template
|
|
name: "Template Lock"
|
|
lambda: |-
|
|
if (id(some_binary_sensor).state) {
|
|
return LOCK_STATE_LOCKED;
|
|
} else {
|
|
return LOCK_STATE_UNLOCKED;
|
|
}
|
|
lock_action:
|
|
- logger.log: lock_action
|
|
unlock_action:
|
|
- logger.log: unlock_action
|
|
open_action:
|
|
- logger.log: open_action
|
|
|
|
valve:
|
|
- platform: template
|
|
name: "Template Valve"
|
|
lambda: |-
|
|
if (id(some_binary_sensor).state) {
|
|
return VALVE_OPEN;
|
|
} else {
|
|
return VALVE_CLOSED;
|
|
}
|
|
open_action:
|
|
- logger.log: open_action
|
|
close_action:
|
|
- logger.log: close_action
|
|
stop_action:
|
|
- logger.log: stop_action
|
|
optimistic: true
|
|
|
|
text:
|
|
- platform: template
|
|
name: "Template text"
|
|
optimistic: true
|
|
min_length: 0
|
|
max_length: 100
|
|
mode: text
|
|
- platform: template
|
|
name: "Template text lambda"
|
|
mode: text
|
|
update_interval: 1s
|
|
lambda: |
|
|
return std::string{"Hello!"};
|
|
set_action:
|
|
then:
|
|
- logger.log:
|
|
format: Template Text set to %s
|
|
args: ["x.c_str()"]
|
|
|
|
alarm_control_panel:
|
|
- platform: template
|
|
name: Alarm Panel
|
|
codes:
|
|
- "1234"
|
|
|
|
datetime:
|
|
- platform: template
|
|
name: Date
|
|
id: test_date
|
|
type: date
|
|
initial_value: "2000-1-2"
|
|
set_action:
|
|
- logger.log: "set_value"
|
|
on_value:
|
|
- logger.log:
|
|
format: "Date: %04d-%02d-%02d"
|
|
args:
|
|
- x.year
|
|
- x.month
|
|
- x.day_of_month
|
|
- platform: template
|
|
name: Time
|
|
id: test_time
|
|
type: time
|
|
initial_value: "12:34:56am"
|
|
set_action:
|
|
- logger.log: "set_value"
|
|
on_value:
|
|
- logger.log:
|
|
format: "Time: %02d:%02d:%02d"
|
|
args:
|
|
- x.hour
|
|
- x.minute
|
|
- x.second
|
|
- platform: template
|
|
name: DateTime
|
|
id: test_datetime
|
|
type: datetime
|
|
initial_value: "2000-1-2 12:34:56"
|
|
set_action:
|
|
- logger.log: "set_value"
|
|
on_value:
|
|
- logger.log:
|
|
format: "DateTime: %04d-%02d-%02d %02d:%02d:%02d"
|
|
args:
|
|
- x.year
|
|
- x.month
|
|
- x.day_of_month
|
|
- x.hour
|
|
- x.minute
|
|
- x.second
|
|
|
|
time:
|
|
- platform: sntp # Required for datetime
|
|
|
|
wifi: # Required for sntp time
|
|
ap:
|