mirror of
https://github.com/esphome/esphome.git
synced 2024-12-21 04:54:55 +01:00
584dbf2668
Some checks are pending
CI for docker images / Build docker containers (push) Waiting to run
CI / Test split components (push) Blocked by required conditions
CI / Check black (push) Blocked by required conditions
CI / Check flake8 (push) Blocked by required conditions
CI / Create common environment (push) Waiting to run
CI / Check pylint (push) Blocked by required conditions
CI / Check pyupgrade (push) Blocked by required conditions
CI / Run script/ci-custom (push) Blocked by required conditions
CI / Run pytest (push) Blocked by required conditions
CI / Check clang-format (push) Blocked by required conditions
CI / Run script/clang-tidy for ESP32 Arduino 1/4 (push) Blocked by required conditions
CI / Run script/clang-tidy for ESP32 Arduino 2/4 (push) Blocked by required conditions
CI / Run script/clang-tidy for ESP32 Arduino 3/4 (push) Blocked by required conditions
CI / CI Status (push) Blocked by required conditions
YAML lint / yamllint (push) Waiting to run
CI / Run script/clang-tidy for ESP32 Arduino 4/4 (push) Blocked by required conditions
CI / Run script/clang-tidy for ESP32 IDF (push) Blocked by required conditions
CI / Run script/clang-tidy for ESP8266 (push) Blocked by required conditions
CI / list-components (push) Blocked by required conditions
CI / Component test (push) Blocked by required conditions
CI / Split components for testing into 20 groups maximum (push) Blocked by required conditions
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
445 lines
11 KiB
YAML
445 lines
11 KiB
YAML
wifi:
|
|
ssid: MySSID
|
|
password: password1
|
|
|
|
time:
|
|
- platform: sntp
|
|
|
|
mqtt:
|
|
broker: "192.168.178.84"
|
|
port: 1883
|
|
username: debug
|
|
password: debug
|
|
enable_on_boot: false
|
|
clean_session: True
|
|
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: bedroom/ota_mode
|
|
then:
|
|
- logger.log: Got bedroom/ota_mode
|
|
- topic: livingroom/ota_mode
|
|
then:
|
|
- logger.log: Got livingroom/ota_mode
|
|
on_json_message:
|
|
topic: the/topic
|
|
then:
|
|
- if:
|
|
condition:
|
|
- wifi.connected:
|
|
- mqtt.connected:
|
|
then:
|
|
- logger.log: on_json_message
|
|
on_connect:
|
|
- mqtt.publish:
|
|
topic: some/topic
|
|
payload: Hello
|
|
on_disconnect:
|
|
- mqtt.publish:
|
|
topic: some/topic
|
|
payload: Good-bye
|
|
publish_nan_as_none: false
|
|
|
|
binary_sensor:
|
|
- platform: template
|
|
id: some_binary_sensor
|
|
name: Garage Door Open
|
|
state_topic: some/topic/binary_sensor
|
|
qos: 2
|
|
lambda: |-
|
|
if (id(template_sens).state > 30) {
|
|
// Garage Door is open.
|
|
return true;
|
|
} else {
|
|
// Garage Door is closed.
|
|
return false;
|
|
}
|
|
on_state:
|
|
- mqtt.publish:
|
|
topic: some/topic/binary_sensor
|
|
payload: Hello
|
|
qos: 2
|
|
retain: true
|
|
|
|
button:
|
|
- platform: template
|
|
name: "Template Button"
|
|
state_topic: some/topic/button
|
|
qos: 2
|
|
on_press:
|
|
- mqtt.disable
|
|
- mqtt.enable
|
|
- mqtt.publish:
|
|
topic: some/topic/button
|
|
payload: Hello
|
|
qos: 2
|
|
retain: true
|
|
|
|
climate:
|
|
- platform: thermostat
|
|
name: Test Thermostat
|
|
sensor: template_sens
|
|
humidity_sensor: template_sens
|
|
action_state_topic: some/topicaction_state
|
|
current_temperature_state_topic: some/topiccurrent_temperature_state
|
|
current_humidity_state_topic: some/topiccurrent_humidity_state
|
|
fan_mode_state_topic: some/topicfan_mode_state
|
|
fan_mode_command_topic: some/topicfan_mode_command
|
|
mode_state_topic: some/topicmode_state
|
|
mode_command_topic: some/topicmode_command
|
|
preset_state_topic: some/topicpreset_state
|
|
preset_command_topic: some/topicpreset_command
|
|
swing_mode_state_topic: some/topicswing_mode_state
|
|
swing_mode_command_topic: some/topicswing_mode_command
|
|
target_temperature_state_topic: some/topictarget_temperature_state
|
|
target_temperature_command_topic: some/topictarget_temperature_command
|
|
target_temperature_high_state_topic: some/topictarget_temperature_high_state
|
|
target_temperature_high_command_topic: some/topictarget_temperature_high_command
|
|
target_temperature_low_state_topic: some/topictarget_temperature_low_state
|
|
target_temperature_low_command_topic: some/topictarget_temperature_low_command
|
|
target_humidity_state_topic: some/topictarget_humidity_state
|
|
target_humidity_command_topic: some/topictarget_humidity_command
|
|
preset:
|
|
- name: Default Preset
|
|
default_target_temperature_low: 18°C
|
|
default_target_temperature_high: 24°C
|
|
- name: Away
|
|
default_target_temperature_low: 16°C
|
|
default_target_temperature_high: 20°C
|
|
idle_action:
|
|
- logger.log: idle_action
|
|
cool_action:
|
|
- logger.log: cool_action
|
|
supplemental_cooling_action:
|
|
- logger.log: supplemental_cooling_action
|
|
heat_action:
|
|
- logger.log: heat_action
|
|
supplemental_heating_action:
|
|
- logger.log: supplemental_heating_action
|
|
dry_action:
|
|
- logger.log: dry_action
|
|
fan_only_action:
|
|
- logger.log: fan_only_action
|
|
auto_mode:
|
|
- logger.log: auto_mode
|
|
off_mode:
|
|
- logger.log: off_mode
|
|
heat_mode:
|
|
- logger.log: heat_mode
|
|
cool_mode:
|
|
- logger.log: cool_mode
|
|
dry_mode:
|
|
- logger.log: dry_mode
|
|
fan_only_mode:
|
|
- logger.log: fan_only_mode
|
|
fan_mode_auto_action:
|
|
- logger.log: fan_mode_auto_action
|
|
fan_mode_on_action:
|
|
- logger.log: fan_mode_on_action
|
|
fan_mode_off_action:
|
|
- logger.log: fan_mode_off_action
|
|
fan_mode_low_action:
|
|
- logger.log: fan_mode_low_action
|
|
fan_mode_medium_action:
|
|
- logger.log: fan_mode_medium_action
|
|
fan_mode_high_action:
|
|
- logger.log: fan_mode_high_action
|
|
fan_mode_middle_action:
|
|
- logger.log: fan_mode_middle_action
|
|
fan_mode_focus_action:
|
|
- logger.log: fan_mode_focus_action
|
|
fan_mode_diffuse_action:
|
|
- logger.log: fan_mode_diffuse_action
|
|
fan_mode_quiet_action:
|
|
- logger.log: fan_mode_quiet_action
|
|
swing_off_action:
|
|
- logger.log: swing_off_action
|
|
swing_horizontal_action:
|
|
- logger.log: swing_horizontal_action
|
|
swing_vertical_action:
|
|
- logger.log: swing_vertical_action
|
|
swing_both_action:
|
|
- logger.log: swing_both_action
|
|
startup_delay: true
|
|
supplemental_cooling_delta: 2.0
|
|
cool_deadband: 0.5
|
|
cool_overrun: 0.5
|
|
min_cooling_off_time: 300s
|
|
min_cooling_run_time: 300s
|
|
max_cooling_run_time: 600s
|
|
supplemental_heating_delta: 2.0
|
|
heat_deadband: 0.5
|
|
heat_overrun: 0.5
|
|
min_heating_off_time: 300s
|
|
min_heating_run_time: 300s
|
|
max_heating_run_time: 600s
|
|
min_fanning_off_time: 30s
|
|
min_fanning_run_time: 30s
|
|
min_fan_mode_switching_time: 15s
|
|
min_idle_time: 30s
|
|
set_point_minimum_differential: 0.5
|
|
fan_only_action_uses_fan_mode_timer: true
|
|
fan_only_cooling: true
|
|
fan_with_cooling: true
|
|
fan_with_heating: true
|
|
visual:
|
|
temperature_step:
|
|
target_temperature: 0.1
|
|
current_temperature: 0.1
|
|
|
|
cover:
|
|
- platform: template
|
|
name: Template Cover
|
|
state_topic: some/topic/cover
|
|
qos: 2
|
|
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
|
|
|
|
datetime:
|
|
- platform: template
|
|
name: Date
|
|
id: test_date
|
|
type: date
|
|
state_topic: some/topic/date
|
|
command_topic: test_date/custom_command_topic
|
|
qos: 2
|
|
subscribe_qos: 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
|
|
state_topic: some/topic/time
|
|
qos: 2
|
|
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
|
|
state_topic: some/topic/datetime
|
|
qos: 2
|
|
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
|
|
|
|
event:
|
|
- platform: template
|
|
name: Template Event
|
|
state_topic: some/topic/event
|
|
qos: 2
|
|
event_types:
|
|
- "custom_event_1"
|
|
- "custom_event_2"
|
|
|
|
fan:
|
|
- platform: template
|
|
name: Template Fan
|
|
state_topic: some/topic/fan
|
|
qos: 2
|
|
on_state:
|
|
- logger.log: on_state
|
|
on_speed_set:
|
|
- logger.log: on_speed_set
|
|
|
|
light:
|
|
- platform: binary
|
|
name: Desk Lamp
|
|
output: light_output
|
|
state_topic: some/topic/light
|
|
qos: 2
|
|
|
|
output:
|
|
- id: light_output
|
|
platform: gpio
|
|
pin: 0
|
|
|
|
lock:
|
|
- platform: template
|
|
name: "Template Lock"
|
|
state_topic: some/topic/lock
|
|
qos: 2
|
|
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
|
|
|
|
number:
|
|
- platform: template
|
|
name: "Template number"
|
|
state_topic: some/topic/number
|
|
qos: 2
|
|
optimistic: true
|
|
min_value: 0
|
|
max_value: 100
|
|
step: 1
|
|
|
|
select:
|
|
- platform: template
|
|
name: "Template select"
|
|
state_topic: some/topic/select
|
|
qos: 2
|
|
optimistic: true
|
|
options:
|
|
- one
|
|
- two
|
|
- three
|
|
initial_option: two
|
|
|
|
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
|
|
on_value:
|
|
- mqtt.publish:
|
|
topic: some/topic/sensor
|
|
payload: Hello
|
|
qos: 2
|
|
retain: true
|
|
- platform: mqtt_subscribe
|
|
name: MQTT Subscribe Sensor
|
|
topic: mqtt/topic
|
|
id: the_sensor
|
|
qos: 2
|
|
on_value:
|
|
- mqtt.publish_json:
|
|
topic: the/topic
|
|
payload: |-
|
|
root["key"] = id(template_sens).state;
|
|
root["greeting"] = "Hello World";
|
|
|
|
switch:
|
|
- platform: template
|
|
name: Template Switch
|
|
state_topic: some/topic/switch
|
|
qos: 2
|
|
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
|
|
|
|
text_sensor:
|
|
- platform: template
|
|
name: Template Text Sensor
|
|
id: tts_text
|
|
state_topic: some/topic/text_sensor
|
|
qos: 2
|
|
- platform: mqtt_subscribe
|
|
name: MQTT Subscribe Text
|
|
topic: some/topic/text_sensor
|
|
qos: 2
|
|
on_value:
|
|
- text_sensor.template.publish:
|
|
id: tts_text
|
|
state: Hello World
|
|
- text_sensor.template.publish:
|
|
id: tts_text
|
|
state: |-
|
|
return "Hello World2";
|
|
|
|
text:
|
|
- platform: template
|
|
name: Template Text
|
|
optimistic: true
|
|
min_length: 0
|
|
max_length: 100
|
|
mode: text
|
|
state_topic: some/topic/text
|
|
qos: 2
|
|
|
|
valve:
|
|
- platform: template
|
|
name: Template Valve
|
|
state_topic: some/topic/valve
|
|
qos: 2
|
|
optimistic: true
|
|
lambda: |-
|
|
if (id(some_binary_sensor).state) {
|
|
return VALVE_OPEN;
|
|
} else {
|
|
return VALVE_CLOSED;
|
|
}
|
|
|
|
alarm_control_panel:
|
|
- platform: template
|
|
name: Alarm Control Panel
|
|
binary_sensors:
|
|
- input: some_binary_sensor
|