mirror of
				https://github.com/esphome/esphome.git
				synced 2025-11-04 00:51:49 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			442 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			442 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;
 | 
						|
      }
 | 
						|
      // 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;
 | 
						|
      }
 | 
						|
      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
 | 
						|
    direction_state_topic: some/topic/direction/state
 | 
						|
    direction_command_topic: some/topic/direction/command
 | 
						|
    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;
 | 
						|
      }
 | 
						|
      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;
 | 
						|
      }
 | 
						|
      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;
 | 
						|
      }
 | 
						|
      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;
 | 
						|
      }
 | 
						|
      return VALVE_CLOSED;
 | 
						|
 | 
						|
alarm_control_panel:
 | 
						|
  - platform: template
 | 
						|
    name: Alarm Control Panel
 | 
						|
    binary_sensors:
 | 
						|
      - input: some_binary_sensor
 |