mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-30 22:53:59 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			512 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			512 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| esphome:
 | |
|   name: $devicename
 | |
|   platform: ESP8266
 | |
|   board: d1_mini
 | |
|   build_path: build/test3
 | |
|   on_boot:
 | |
|     - wait_until:
 | |
|         - api.connected
 | |
|         - wifi.connected
 | |
|   includes:
 | |
|     - custom.h
 | |
| 
 | |
| substitutions:
 | |
|   devicename: test3
 | |
| 
 | |
| api:
 | |
|   port: 8000
 | |
|   password: 'pwd'
 | |
|   reboot_timeout: 0min
 | |
|   services:
 | |
|     - service: hello_world
 | |
|       variables:
 | |
|         name: string
 | |
|       then:
 | |
|         - logger.log:
 | |
|             format: 'Hello World %s!'
 | |
|             args:
 | |
|               - name.c_str()
 | |
|     - service: empty_service
 | |
|       then:
 | |
|         - logger.log: 'Service Called'
 | |
|     - service: all_types
 | |
|       variables:
 | |
|         bool_: bool
 | |
|         int_: int
 | |
|         float_: float
 | |
|         string_: string
 | |
|       then:
 | |
|         - logger.log: 'Something happened'
 | |
|         - stepper.set_target:
 | |
|             id: my_stepper2
 | |
|             target: !lambda 'return int_;'
 | |
|     - service: array_types
 | |
|       variables:
 | |
|         bool_arr: bool[]
 | |
|         int_arr: int[]
 | |
|         float_arr: float[]
 | |
|         string_arr: string[]
 | |
|       then:
 | |
|         - logger.log:
 | |
|             format: 'Bool: %s (%u), Int: %d (%u), Float: %f (%u), String: %s (%u)'
 | |
|             args:
 | |
|               - YESNO(bool_arr[0])
 | |
|               - bool_arr.size()
 | |
|               - int_arr[0]
 | |
|               - int_arr.size()
 | |
|               - float_arr[0]
 | |
|               - float_arr.size()
 | |
|               - string_arr[0].c_str()
 | |
|               - string_arr.size()
 | |
| 
 | |
| wifi:
 | |
|   ssid: 'MySSID'
 | |
|   password: 'password1'
 | |
| 
 | |
| i2c:
 | |
|   sda: 4
 | |
|   scl: 5
 | |
|   scan: False
 | |
| 
 | |
| spi:
 | |
|   clk_pin: GPIO12
 | |
|   mosi_pin: GPIO13
 | |
|   miso_pin: GPIO14
 | |
| 
 | |
| uart:
 | |
|   tx_pin: GPIO1
 | |
|   rx_pin: GPIO3
 | |
|   baud_rate: 115200
 | |
| 
 | |
| ota:
 | |
|   safe_mode: True
 | |
|   port: 3286
 | |
| 
 | |
| logger:
 | |
|   hardware_uart: UART1
 | |
|   level: DEBUG
 | |
|   esp8266_store_log_strings_in_flash: false
 | |
| 
 | |
| web_server:
 | |
| 
 | |
| deep_sleep:
 | |
|   run_duration: 20s
 | |
|   sleep_duration: 50s
 | |
| 
 | |
| sensor:
 | |
|   - platform: apds9960
 | |
|     type: proximity
 | |
|     name: APDS9960 Proximity
 | |
|   - platform: apds9960
 | |
|     type: clear
 | |
|     name: APDS9960 Clear
 | |
|   - platform: apds9960
 | |
|     type: red
 | |
|     name: APDS9960 Red
 | |
|   - platform: apds9960
 | |
|     type: green
 | |
|     name: APDS9960 Green
 | |
|   - platform: apds9960
 | |
|     type: blue
 | |
|     name: APDS9960 Blue
 | |
|   - platform: homeassistant
 | |
|     entity_id: sensor.hello_world
 | |
|     id: ha_hello_world
 | |
|   - platform: am2320
 | |
|     temperature:
 | |
|       name: "Temperature"
 | |
|     humidity:
 | |
|       name: "Humidity"
 | |
|   - platform: adc
 | |
|     pin: VCC
 | |
|     id: my_sensor
 | |
|     filters:
 | |
|       - offset: 5.0
 | |
|       - multiply: 2.0
 | |
|       - filter_out: NAN
 | |
|       - sliding_window_moving_average:
 | |
|       - exponential_moving_average:
 | |
|       - lambda: 'return 0;'
 | |
|       - delta: 100
 | |
|       - throttle: 100ms
 | |
|       - debounce: 500s
 | |
|       - calibrate_linear:
 | |
|           - 0 -> 0
 | |
|           - 100 -> 100
 | |
|       - calibrate_polynomial:
 | |
|           degree: 3
 | |
|           datapoints:
 | |
|             - 0 -> 0
 | |
|             - 100 -> 200
 | |
|             - 400 -> 500
 | |
|             - -50 -> -1000
 | |
|             - -100 -> -10000
 | |
|   - platform: resistance
 | |
|     sensor: my_sensor
 | |
|     configuration: DOWNSTREAM
 | |
|     resistor: 10kΩ
 | |
|     reference_voltage: 3.3V
 | |
|     name: Resistance
 | |
|     id: resist
 | |
|   - platform: ntc
 | |
|     sensor: resist
 | |
|     name: NTC Sensor
 | |
|     calibration:
 | |
|       b_constant: 3950
 | |
|       reference_resistance: 10k
 | |
|       reference_temperature: 25°C
 | |
|   - platform: ntc
 | |
|     sensor: resist
 | |
|     name: NTC Sensor2
 | |
|     calibration:
 | |
|       - 10.0kOhm -> 25°C
 | |
|       - 27.219kOhm -> 0°C
 | |
|       - 14.674kOhm -> 15°C
 | |
|   - platform: ct_clamp
 | |
|     sensor: my_sensor
 | |
|     name: CT Clamp
 | |
|     sample_duration: 500ms
 | |
|     update_interval: 5s
 | |
| 
 | |
|   - platform: tcs34725
 | |
|     red_channel:
 | |
|       name: Red Channel
 | |
|     green_channel:
 | |
|       name: Green Channel
 | |
|     blue_channel:
 | |
|       name: Blue Channel
 | |
|     clear_channel:
 | |
|       name: Clear Channel
 | |
|     illuminance:
 | |
|       name: Illuminance
 | |
|     color_temperature:
 | |
|       name: Color Temperature
 | |
|     integration_time: 700ms
 | |
|     gain: 60x
 | |
|   - platform: custom
 | |
|     lambda: |-
 | |
|       auto s = new CustomSensor();
 | |
|       App.register_component(s);
 | |
|       return {s};
 | |
|     sensors:
 | |
|       - id: custom_sensor
 | |
|         name: Custom Sensor
 | |
|   - platform: binary_sensor_map
 | |
|     name: Binary Sensor Map
 | |
|     type: group
 | |
|     channels:
 | |
|       - binary_sensor: bin1
 | |
|         value: 10.0
 | |
|       - binary_sensor: bin2
 | |
|         value: 15.0
 | |
|       - binary_sensor: bin3
 | |
|         value: 100.0
 | |
| 
 | |
| time:
 | |
| - platform: homeassistant
 | |
| 
 | |
| apds9960:
 | |
|   address: 0x20
 | |
|   update_interval: 60s
 | |
| 
 | |
| mpr121:
 | |
|   id: mpr121_first
 | |
|   address: 0x5A
 | |
| 
 | |
| binary_sensor:
 | |
|   - platform: apds9960
 | |
|     direction: up
 | |
|     name: APDS9960 Up
 | |
|     device_class: motion
 | |
|     filters:
 | |
|       - invert
 | |
|       - delayed_on: 20ms
 | |
|       - delayed_off: 20ms
 | |
|       - lambda: 'return false;'
 | |
|     on_state:
 | |
|       - logger.log: New state
 | |
|     id: my_binary_sensor
 | |
|   - platform: apds9960
 | |
|     direction: down
 | |
|     name: APDS9960 Down
 | |
|   - platform: apds9960
 | |
|     direction: left
 | |
|     name: APDS9960 Left
 | |
|   - platform: apds9960
 | |
|     direction: right
 | |
|     name: APDS9960 Right
 | |
|   - platform: homeassistant
 | |
|     entity_id: binary_sensor.hello_world
 | |
|     id: ha_hello_world_binary
 | |
|   - platform: mpr121
 | |
|     id: touchkey0
 | |
|     channel: 0
 | |
|     name: "touchkey0"
 | |
|   - platform: mpr121
 | |
|     channel: 1
 | |
|     name: "touchkey1"
 | |
|     id: bin1
 | |
|   - platform: mpr121
 | |
|     channel: 2
 | |
|     name: "touchkey2"
 | |
|     id: bin2
 | |
|   - platform: mpr121
 | |
|     channel: 3
 | |
|     name: "touchkey3"
 | |
|     id: bin3
 | |
|     on_press:
 | |
|       then:
 | |
|         - switch.toggle: mpr121_toggle
 | |
|   - platform: ttp229_lsf
 | |
|     channel: 1
 | |
|     name: TTP229 LSF Test
 | |
|   - platform: ttp229_bsf
 | |
|     channel: 1
 | |
|     name: TTP229 BSF Test
 | |
|   - platform: custom
 | |
|     lambda: |-
 | |
|       auto s = new CustomBinarySensor();
 | |
|       App.register_component(s);
 | |
|       return {s};
 | |
|     binary_sensors:
 | |
|       - id: custom_binary_sensor
 | |
|         name: Custom Binary Sensor
 | |
| 
 | |
| globals:
 | |
|   - id: my_global_string
 | |
|     type: std::string
 | |
|     initial_value: '""'
 | |
| 
 | |
| remote_receiver:
 | |
|   pin: GPIO12
 | |
|   dump: []
 | |
| 
 | |
| status_led:
 | |
|   pin: GPIO2
 | |
| 
 | |
| text_sensor:
 | |
|   - platform: version
 | |
|     name: "ESPHome Version"
 | |
|     icon: mdi:icon
 | |
|     id: version_sensor
 | |
|     on_value:
 | |
|       - lambda: !lambda |-
 | |
|           ESP_LOGD("main", "The state is %s=%s", x.c_str(), id(version_sensor).state.c_str());
 | |
|       - script.execute: my_script
 | |
|       - homeassistant.service:
 | |
|           service: notify.html5
 | |
|           data:
 | |
|             title: New Humidity
 | |
|           data_template:
 | |
|             message: The humidity is {{ my_variable }}%.
 | |
|           variables:
 | |
|             my_variable: |-
 | |
|               return id(version_sensor).state;
 | |
|   - platform: template
 | |
|     name: "Template Text Sensor"
 | |
|     lambda: |-
 | |
|       return {"Hello World"};
 | |
|   - platform: homeassistant
 | |
|     entity_id: sensor.hello_world2
 | |
|     id: ha_hello_world2
 | |
|   - platform: custom
 | |
|     lambda: |-
 | |
|       auto s = new CustomTextSensor();
 | |
|       App.register_component(s);
 | |
|       return {s};
 | |
|     text_sensors:
 | |
|       - id: custom_text_sensor
 | |
|         name: Custom Text Sensor
 | |
| 
 | |
| script:
 | |
|   - id: my_script
 | |
|     then:
 | |
|       - lambda: 'ESP_LOGD("main", "Hello World!");'
 | |
| 
 | |
| switch:
 | |
|   - platform: template
 | |
|     name: "mpr121_toggle"
 | |
|     id: mpr121_toggle
 | |
|     optimistic: True
 | |
|   - platform: gpio
 | |
|     id: gpio_switch1
 | |
|     pin:
 | |
|       mcp23017: mcp
 | |
|       number: 0
 | |
|       mode: OUTPUT
 | |
|     interlock: &interlock [gpio_switch1, gpio_switch2]
 | |
|   - platform: gpio
 | |
|     id: gpio_switch2
 | |
|     pin: GPIO1
 | |
|     interlock: *interlock
 | |
|   - platform: custom
 | |
|     lambda: |-
 | |
|       auto s = new CustomSwitch();
 | |
|       return {s};
 | |
|     switches:
 | |
|       - id: custom_switch
 | |
|         name: Custom Switch
 | |
| 
 | |
| custom_component:
 | |
|    lambda: |-
 | |
|      auto s = new CustomComponent();
 | |
|      s->set_update_interval(15000);
 | |
|      return {s};
 | |
| 
 | |
| stepper:
 | |
|   - platform: uln2003
 | |
|     id: my_stepper
 | |
|     pin_a: GPIO12
 | |
|     pin_b: GPIO13
 | |
|     pin_c: GPIO14
 | |
|     pin_d: GPIO15
 | |
|     sleep_when_done: no
 | |
|     step_mode: HALF_STEP
 | |
|     max_speed: 250 steps/s
 | |
|     acceleration: inf
 | |
|     deceleration: inf
 | |
|   - platform: a4988
 | |
|     id: my_stepper2
 | |
|     step_pin: GPIO1
 | |
|     dir_pin: GPIO2
 | |
|     max_speed: 0.1 steps/s
 | |
|     acceleration: 10 steps/s^2
 | |
|     deceleration: 10 steps/s^2
 | |
| 
 | |
| interval:
 | |
|   interval: 5s
 | |
|   then:
 | |
|     - logger.log: "Interval Run"
 | |
|     - stepper.set_target:
 | |
|         id: my_stepper2
 | |
|         target: 500
 | |
|     - stepper.set_target:
 | |
|         id: my_stepper
 | |
|         target: !lambda 'return 0;'
 | |
|     - stepper.report_position:
 | |
|         id: my_stepper2
 | |
|         position: 0
 | |
|     - stepper.report_position:
 | |
|         id: my_stepper
 | |
|         position: !lambda 'return 50/100.0;'
 | |
| 
 | |
| climate:
 | |
|   - platform: bang_bang
 | |
|     name: Bang Bang Climate
 | |
|     sensor: ha_hello_world
 | |
|     default_target_temperature_low: 18°C
 | |
|     default_target_temperature_high: 24°C
 | |
|     idle_action:
 | |
|       - switch.turn_on: gpio_switch1
 | |
|     cool_action:
 | |
|       - switch.turn_on: gpio_switch2
 | |
|     heat_action:
 | |
|       - switch.turn_on: gpio_switch1
 | |
|     away_config:
 | |
|       default_target_temperature_low: 16°C
 | |
|       default_target_temperature_high: 20°C
 | |
| 
 | |
| cover:
 | |
|   - platform: endstop
 | |
|     name: Endstop Cover
 | |
|     stop_action:
 | |
|       - switch.turn_on: gpio_switch1
 | |
|     open_endstop: my_binary_sensor
 | |
|     open_action:
 | |
|       - switch.turn_on: gpio_switch1
 | |
|     open_duration: 5min
 | |
|     close_endstop: my_binary_sensor
 | |
|     close_action:
 | |
|       - switch.turn_on: gpio_switch2
 | |
|       - output.set_level:
 | |
|           id: out
 | |
|           level: 50%
 | |
|       - output.esp8266_pwm.set_frequency:
 | |
|           id: out
 | |
|           frequency: 500.0Hz
 | |
|       - output.esp8266_pwm.set_frequency:
 | |
|           id: out
 | |
|           frequency: !lambda 'return 500.0;'
 | |
|       - servo.write:
 | |
|           id: my_servo
 | |
|           level: -100%
 | |
|       - servo.write:
 | |
|           id: my_servo
 | |
|           level: !lambda 'return -1.0;'
 | |
|       - delay: 2s
 | |
|       - servo.detach: my_servo
 | |
|     close_duration: 4.5min
 | |
|     max_duration: 10min
 | |
|   - platform: time_based
 | |
|     name: Time Based Cover
 | |
|     stop_action:
 | |
|       - switch.turn_on: gpio_switch1
 | |
|     open_action:
 | |
|       - switch.turn_on: gpio_switch1
 | |
|     open_duration: 5min
 | |
|     close_action:
 | |
|       - switch.turn_on: gpio_switch2
 | |
|     close_duration: 4.5min
 | |
|   - platform: template
 | |
|     name: Template Cover with Tilt
 | |
|     tilt_lambda: "return 0.5;"
 | |
|     tilt_action:
 | |
|       - output.set_level:
 | |
|           id: out
 | |
|           level: !lambda "return tilt;"
 | |
| 
 | |
| 
 | |
| output:
 | |
|   - platform: esp8266_pwm
 | |
|     id: out
 | |
|     pin: D3
 | |
|     frequency: 50Hz
 | |
|   - platform: custom
 | |
|     type: binary
 | |
|     lambda: |-
 | |
|       auto s = new CustomBinaryOutput();
 | |
|       App.register_component(s);
 | |
|       return {s};
 | |
|     outputs:
 | |
|       - id: custom_binary
 | |
|   - platform: custom
 | |
|     type: float
 | |
|     lambda: |-
 | |
|       auto s = new CustomFloatOutput();
 | |
|       App.register_component(s);
 | |
|       return {s};
 | |
|     outputs:
 | |
|       - id: custom_float
 | |
| 
 | |
| mcp23017:
 | |
|   id: mcp
 | |
| 
 | |
| light:
 | |
|   - platform: neopixelbus
 | |
|     name: Neopixelbus Light
 | |
|     pin: GPIO1
 | |
|     type: GRBW
 | |
|     variant: SK6812
 | |
|     method: ESP8266_UART0
 | |
|     num_leds: 100
 | |
| 
 | |
| servo:
 | |
|   id: my_servo
 | |
|   output: out
 | |
| 
 | |
| ttp229_lsf:
 | |
| 
 | |
| ttp229_bsf:
 | |
|   sdo_pin: D0
 | |
|   scl_pin: D1
 | |
| 
 | |
| sim800l:
 | |
|   on_sms_received:
 | |
|     - lambda: |-
 | |
|         std::string str;
 | |
|         str = sender;
 | |
|         str = message;
 | |
|     - sim800l.send_sms:
 | |
|         message: 'hello you'
 | |
|         recipient: '+1234'
 |