--- esphome: name: $device_name comment: $device_comment build_path: build/test3.1 includes: - custom.h esp8266: board: d1_mini substitutions: device_name: test3-1 device_comment: test3-1 device min_sub: "0.03" max_sub: "12.0%" api: wifi: ssid: "MySSID" password: "password1" network: enable_ipv6: true web_server: port: 80 version: 2 i2c: sda: allow_other_uses: true number: 4 scl: allow_other_uses: true number: 5 scan: false spi: clk_pin: allow_other_uses: true number: GPIO12 mosi_pin: allow_other_uses: true number: GPIO13 miso_pin: allow_other_uses: true number: GPIO14 ota: logger: debug: sensor: - platform: apds9960 type: proximity name: APDS9960 Proximity - platform: vl53l0x name: VL53L0x Distance address: 0x29 update_interval: 60s enable_pin: allow_other_uses: true number: GPIO13 timeout: 200us - 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: aht10 temperature: name: Temperature humidity: name: Humidity - 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: - quantile: window_size: 5 send_every: 5 send_first_at: 3 quantile: .8 - lambda: "return 0;" - delta: 100 - throttle: 100ms - debounce: 500s - timeout: 10min - timeout: timeout: 10min value: 0 - calibrate_linear: method: exact datapoints: - -1 -> 3 - 0.0 -> 1.0 - 1.0 -> 2.0 - 2.0 -> 3.0 - calibrate_polynomial: degree: 3 datapoints: - 0 -> 0 - 100 -> 200 - 400 -> 500 - -50 -> -1000 - -100 -> -10000 - platform: cd74hc4067 id: cd74hc4067_0 number: 0 sensor: my_sensor - 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: 614ms gain: 60x - platform: custom lambda: |- auto s = new CustomSensor(); App.register_component(s); return {s}; sensors: - id: custom_sensor name: Custom Sensor - platform: ade7953_i2c irq_pin: allow_other_uses: true number: GPIO16 voltage: name: ADE7953 Voltage id: ade7953_voltage current_a: name: ADE7953 Current A id: ade7953_current_a current_b: name: ADE7953 Current B id: ade7953_current_b power_factor_a: name: "ADE7953 Power Factor A" power_factor_b: name: "ADE7953 Power Factor B" apparent_power_a: name: "ADE7953 Apparent Power A" apparent_power_b: name: "ADE7953 Apparent Power B" active_power_a: name: ADE7953 Active Power A active_power_b: name: ADE7953 Active Power B reactive_power_a: name: "ADE7953 Reactive Power A" reactive_power_b: name: "ADE7953 Reactive Power B" update_interval: 1s - platform: ade7953_spi cs_pin: allow_other_uses: true number: GPIO04 irq_pin: allow_other_uses: true number: GPIO16 voltage: name: ADE7953 Voltage current_a: name: ADE7953 Current A current_b: name: ADE7953 Current B power_factor_a: name: "ADE7953 Power Factor A" power_factor_b: name: "ADE7953 Power Factor B" apparent_power_a: name: "ADE7953 Apparent Power A" apparent_power_b: name: "ADE7953 Apparent Power B" active_power_a: name: ADE7953 Active Power A active_power_b: name: ADE7953 Active Power B reactive_power_a: name: "ADE7953 Reactive Power A" reactive_power_b: name: "ADE7953 Reactive Power B" update_interval: 1s - platform: ens160 eco2: name: "ENS160 eCO2" tvoc: name: "ENS160 Total Volatile Organic Compounds" aqi: name: "ENS160 Air Quality Index" - platform: tmp102 name: TMP102 Temperature - platform: hm3301 pm_1_0: name: PM1.0 pm_2_5: name: PM2.5 pm_10_0: name: PM10.0 aqi: name: AQI calculation_type: AQI - platform: ezo id: ph_ezo address: 99 unit_of_measurement: pH - platform: tof10120 name: Distance sensor update_interval: 5s - platform: mlx90393 oversampling: 1 filter: 0 gain: 3X x_axis: name: mlxxaxis y_axis: name: mlxyaxis z_axis: name: mlxzaxis resolution: 17BIT temperature: name: mlxtemp oversampling: 2 - platform: adc128s102 id: adc128s102_channel_0 channel: 0 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: 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 - platform: template id: cover_toggle on_press: then: - cover.toggle: time_based_cover - cover.toggle: endstop_cover - cover.toggle: current_based_cover globals: - id: my_global_string type: std::string initial_value: '""' text_sensor: - platform: custom lambda: |- auto s = new CustomTextSensor(); App.register_component(s); return {s}; text_sensors: - id: custom_text_sensor name: Custom Text Sensor sm2135: data_pin: allow_other_uses: true number: GPIO12 clock_pin: allow_other_uses: true number: GPIO14 rgb_current: 20mA cw_current: 60mA grove_tb6612fng: id: test_motor address: 0x14 switch: - platform: template name: mpr121_toggle id: mpr121_toggle optimistic: true - platform: gpio id: gpio_switch1 pin: mcp23xxx: mcp23017_hub number: 0 mode: OUTPUT interlock: &interlock [gpio_switch1, gpio_switch2, gpio_switch3] - platform: gpio id: gpio_switch2 pin: mcp23xxx: mcp23008_hub number: 0 mode: OUTPUT interlock: *interlock - platform: gpio id: gpio_switch3 pin: allow_other_uses: true number: GPIO1 interlock: *interlock - platform: custom lambda: |- auto s = new CustomSwitch(); return {s}; switches: - id: custom_switch name: Custom Switch on_turn_on: - http_request.get: url: https://esphome.io headers: Content-Type: application/json verify_ssl: false - http_request.post: url: https://esphome.io verify_ssl: false json: key: !lambda |- return id(custom_text_sensor).state; greeting: Hello World - http_request.send: method: PUT url: https://esphome.io headers: Content-Type: application/json body: Some data verify_ssl: false - platform: template name: open_vent id: open_vent optimistic: True on_turn_on: then: - grove_tb6612fng.run: channel: 1 speed: 255 direction: BACKWARD id: test_motor custom_component: lambda: |- auto s = new CustomComponent(); s->set_update_interval(15000); return {s}; stepper: - platform: uln2003 id: my_stepper pin_a: allow_other_uses: true number: GPIO12 pin_b: allow_other_uses: true number: GPIO13 pin_c: allow_other_uses: true number: GPIO14 pin_d: allow_other_uses: true number: GPIO15 sleep_when_done: false step_mode: HALF_STEP max_speed: 250 steps/s acceleration: inf deceleration: inf - platform: a4988 id: my_stepper2 step_pin: allow_other_uses: true number: GPIO1 dir_pin: allow_other_uses: true number: 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;" cover: - platform: endstop name: Endstop Cover id: 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 id: 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: current_based name: Current Based Cover id: current_based_cover open_sensor: ade7953_current_a open_moving_current_threshold: 0.5 open_obstacle_current_threshold: 0.8 open_duration: 12s open_action: - switch.turn_on: gpio_switch1 close_sensor: ade7953_current_b close_moving_current_threshold: 0.5 close_obstacle_current_threshold: 0.8 close_duration: 10s close_action: - switch.turn_on: gpio_switch2 stop_action: - switch.turn_off: gpio_switch1 - switch.turn_off: gpio_switch2 obstacle_rollback: 30% start_sensing_delay: 0.8s malfunction_detection: true malfunction_action: then: - logger.log: Malfunction Detected - platform: template name: Template Cover with Tilt tilt_lambda: "return 0.5;" tilt_action: - output.set_level: id: out level: !lambda "return tilt;" position_action: - output.set_level: id: out level: !lambda "return pos;" output: - platform: esp8266_pwm id: out pin: number: D3 frequency: 50Hz - platform: esp8266_pwm id: out2 pin: allow_other_uses: true number: D4 - platform: custom type: binary lambda: |- auto s = new CustomBinaryOutput(); App.register_component(s); return {s}; outputs: - id: custom_binary - platform: sigma_delta_output id: sddac update_interval: 60s pin: allow_other_uses: true number: D4 turn_on_action: then: - logger.log: "Turned on" turn_off_action: then: - logger.log: "Turned off" state_change_action: then: - logger.log: format: "Changed state: %d" args: ["state"] - platform: custom type: float lambda: |- auto s = new CustomFloatOutput(); App.register_component(s); return {s}; outputs: - id: custom_float - platform: slow_pwm pin: allow_other_uses: true number: GPIO5 id: my_slow_pwm period: 15s restart_cycle_on_state_change: false - platform: sm2135 id: sm2135_0 channel: 0 - platform: sm2135 id: sm2135_1 channel: 1 - platform: sm2135 id: sm2135_2 channel: 2 - platform: sm2135 id: sm2135_3 channel: 3 - platform: sm2135 id: sm2135_4 channel: 4 mcp23017: id: mcp23017_hub mcp23008: id: mcp23008_hub light: - platform: hbridge name: Icicle Lights pin_a: out pin_b: out2 servo: id: my_servo output: out restore: true min_level: $min_sub max_level: $max_sub ttp229_lsf: ttp229_bsf: sdo_pin: allow_other_uses: true number: D2 scl_pin: allow_other_uses: true number: D1 display: - platform: max7219digit cs_pin: allow_other_uses: true number: GPIO15 num_chips: 4 rotate_chip: 0 intensity: 10 scroll_mode: STOP id: my_matrix lambda: |- it.printdigit("hello"); http_request: useragent: esphome/device timeout: 10s button: - platform: output id: output_button output: out duration: 100ms - platform: wake_on_lan target_mac_address: 12:34:56:78:90:ab name: wol_test_1 id: wol_1 - platform: factory_reset name: Restart Button (Factory Default Settings) cd74hc4067: pin_s0: allow_other_uses: true number: GPIO12 pin_s1: allow_other_uses: true number: GPIO13 pin_s2: allow_other_uses: true number: GPIO14 pin_s3: allow_other_uses: true number: GPIO15 adc128s102: cs_pin: allow_other_uses: true number: GPIO12 external_eeprom: id: ext_eeprom_component_1 address: 0x57 ee_memory_type: 24XX32 i2c_buffer_size: 128