mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-30 22:53:59 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			260 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			260 lines
		
	
	
		
			5.4 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
 | |
|       - to_ntc_resistance:
 | |
|           calibration:
 | |
|             - 10.0kOhm -> 25°C
 | |
|             - 27.219kOhm -> 0°C
 | |
|             - 14.674kOhm -> 15°C
 | |
|       - to_ntc_temperature:
 | |
|           calibration:
 | |
|             - 10.0kOhm -> 25°C
 | |
|             - 27.219kOhm -> 0°C
 | |
|             - 14.674kOhm -> 15°C
 | |
| 
 | |
| 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
 | |
|       - valve.template.publish:
 | |
|           state: CLOSED
 | |
|     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:
 |