--- esphome: name: $device_name comment: $device_comment build_path: build/test3 on_boot: - if: condition: - api.connected - wifi.connected - time.has_time then: - logger.log: Have time includes: - custom.h esp8266: board: d1_mini early_pin_init: true substitutions: device_name: test3 device_comment: test3 device min_sub: "0.03" max_sub: "12.0%" api: port: 8000 password: pwd reboot_timeout: 0min encryption: key: bOFFzzvfpg5DB94DuBGLXD/hMnhpDKgP9UQyBulwWVU= 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: # yamllint disable rule:line-length format: 'Bool: %s (%u), Int: %d (%u), Float: %f (%u), String: %s (%u)' # yamllint enable rule:line-length 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() - service: dfplayer_next then: - dfplayer.play_next: - service: dfplayer_previous then: - dfplayer.play_previous: - service: dfplayer_play variables: file: int then: - dfplayer.play: !lambda 'return file;' - service: dfplayer_play_loop variables: file: int loop_: bool then: - dfplayer.play: file: !lambda 'return file;' loop: !lambda 'return loop_;' - service: dfplayer_play_folder variables: folder: int file: int then: - dfplayer.play_folder: folder: !lambda 'return folder;' file: !lambda 'return file;' - service: dfplayer_play_loo_folder variables: folder: int then: - dfplayer.play_folder: folder: !lambda 'return folder;' loop: true - service: dfplayer_set_device variables: device: int then: - dfplayer.set_device: device: TF_CARD - service: dfplayer_set_volume variables: volume: int then: - dfplayer.set_volume: !lambda 'return volume;' - service: dfplayer_set_eq variables: preset: int then: # yamllint disable rule:line-length - dfplayer.set_eq: !lambda 'return static_cast(preset);' # yamllint enable rule:line-length - service: dfplayer_sleep then: - dfplayer.sleep - service: dfplayer_reset then: - dfplayer.reset - service: dfplayer_start then: - dfplayer.start - service: dfplayer_pause then: - dfplayer.pause - service: dfplayer_stop then: - dfplayer.stop - service: dfplayer_random then: - dfplayer.random - service: dfplayer_volume_up then: - dfplayer.volume_up - service: dfplayer_volume_down then: - dfplayer.volume_down - service: battery_level_percent variables: level_percent: int then: - tm1651.set_level_percent: id: tm1651_battery level_percent: !lambda 'return level_percent;' - service: battery_level variables: level: int then: - tm1651.set_level: id: tm1651_battery level: !lambda 'return level;' - service: battery_brightness variables: brightness: int then: - tm1651.set_brightness: id: tm1651_battery brightness: !lambda 'return brightness;' - service: battery_turn_on then: - tm1651.turn_on: id: tm1651_battery - service: battery_turn_on then: - tm1651.turn_off: id: tm1651_battery - service: pid_set_control_parameters then: - climate.pid.set_control_parameters: id: pid_climate kp: 1.0 kd: 1.0 ki: 1.0 - service: fingerprint_grow_enroll variables: finger_id: int num_scans: int then: - fingerprint_grow.enroll: finger_id: !lambda 'return finger_id;' num_scans: !lambda 'return num_scans;' - service: fingerprint_grow_cancel_enroll then: - fingerprint_grow.cancel_enroll: - service: fingerprint_grow_delete variables: finger_id: int then: - fingerprint_grow.delete: finger_id: !lambda 'return finger_id;' - service: fingerprint_grow_delete_all then: - fingerprint_grow.delete_all: wifi: ssid: 'MySSID' password: 'password1' i2c: sda: 4 scl: 5 scan: false spi: clk_pin: GPIO12 mosi_pin: GPIO13 miso_pin: GPIO14 uart: - id: uart1 tx_pin: number: GPIO1 inverted: true rx_pin: GPIO3 baud_rate: 115200 - id: uart2 tx_pin: GPIO4 rx_pin: GPIO5 baud_rate: 9600 - id: uart3 tx_pin: GPIO4 rx_pin: GPIO5 baud_rate: 4800 - id: uart4 tx_pin: GPIO4 rx_pin: GPIO5 baud_rate: 9600 - id: uart5 tx_pin: GPIO4 rx_pin: GPIO5 baud_rate: 9600 - id: uart6 tx_pin: GPIO4 rx_pin: GPIO5 baud_rate: 9600 - id: uart7 tx_pin: GPIO4 rx_pin: GPIO5 baud_rate: 38400 - id: uart8 tx_pin: GPIO4 rx_pin: GPIO5 baud_rate: 4800 parity: NONE stop_bits: 2 # Specifically added for testing debug with no options at all. debug: - id: uart9 tx_pin: GPIO4 rx_pin: GPIO5 baud_rate: 9600 - id: uart10 tx_pin: GPIO4 rx_pin: GPIO5 baud_rate: 9600 - id: uart11 tx_pin: GPIO4 rx_pin: GPIO5 baud_rate: 9600 - id: uart12 tx_pin: GPIO4 rx_pin: GPIO5 baud_rate: 9600 modbus: uart_id: uart1 vbus: uart_id: uart4 ota: safe_mode: true port: 3286 reboot_timeout: 15min logger: hardware_uart: UART1 level: DEBUG esp8266_store_log_strings_in_flash: true improv_serial: next_url: https://esphome.io/?name={{device_name}}&version={{esphome_version}}&ip={{ip_address}} deep_sleep: run_duration: 20s sleep_duration: 50s wled: adalight: sensor: - platform: daly_bms voltage: name: Battery Voltage current: name: Battery Current battery_level: name: Battery Level max_cell_voltage: name: Max Cell Voltage max_cell_voltage_number: name: Max Cell Voltage Number min_cell_voltage: name: Min Cell Voltage min_cell_voltage_number: name: Min Cell Voltage Number max_temperature: name: Max Temperature max_temperature_probe_number: name: Max Temperature Probe Number min_temperature: name: Min Temperature min_temperature_probe_number: name: Min Temperature Probe Number remaining_capacity: name: Remaining Capacity cells_number: name: Cells Number temperature_1: name: Temperature 1 temperature_2: name: Temperature 2 - platform: apds9960 type: proximity name: APDS9960 Proximity - platform: vl53l0x name: VL53L0x Distance address: 0x29 update_interval: 60s enable_pin: 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: homeassistant entity_id: sensor.hello_world id: ha_hello_world - platform: aht10 temperature: name: Temperature humidity: name: Humidity - platform: am2320 temperature: name: Temperature humidity: name: Humidity - platform: hydreon_rgxx model: RG 9 uart_id: uart6 id: hydreon_rg9 moisture: name: hydreon_rain id: hydreon_rain - platform: hydreon_rgxx model: RG_15 uart_id: uart6 acc: name: hydreon_acc event_acc: name: hydreon_event_acc total_acc: name: hydreon_total_acc r_int: name: hydreon_r_int - 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 - calibrate_linear: - 0 -> 0 - 100 -> 100 - 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: 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 - platform: ade7953 irq_pin: 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 active_power_a: name: ADE7953 Active Power A id: ade7953_active_power_a active_power_b: name: ADE7953 Active Power B id: ade7953_active_power_b - platform: bl0939 uart_id: uart8 voltage: name: BL0939 Voltage current_1: name: BL0939 Current 1 current_2: name: BL0939 Current 2 active_power_1: name: BL0939 Active Power 1 active_power_2: name: BL0939 Active Power 2 energy_1: name: BL0939 Energy 1 energy_2: name: BL0939 Energy 2 energy_total: name: BL0939 Total energy - platform: bl0940 uart_id: uart3 voltage: name: BL0940 Voltage current: name: BL0940 Current power: name: BL0940 Power energy: name: BL0940 Energy internal_temperature: name: BL0940 Internal temperature external_temperature: name: BL0940 External temperature - platform: bl0942 uart_id: uart3 voltage: name: 'BL0942 Voltage' current: name: 'BL0942 Current' power: name: 'BL0942 Power' energy: name: 'BL0942 Energy' frequency: name: "BL0942 Frequency" - platform: pzem004t uart_id: uart3 voltage: name: PZEM004T Voltage current: name: PZEM004T Current power: name: PZEM004T Power - platform: pzemac id: pzemac1 voltage: name: PZEMAC Voltage current: name: PZEMAC Current power: name: PZEMAC Power energy: name: PZEMAC Energy frequency: name: PZEMAC Frequency power_factor: name: PZEMAC Power Factor - platform: pzemdc voltage: name: PZEMDC Voltage current: name: PZEMDC Current power: name: PZEMDC Power energy: name: PZEMDC Energy - 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: pmsx003 uart_id: uart9 type: PMSX003 pm_1_0: name: PM 1.0 Concentration pm_2_5: name: PM 2.5 Concentration pm_10_0: name: PM 10.0 Concentration pm_1_0_std: name: PM 1.0 Standard Atmospher Concentration pm_2_5_std: name: PM 2.5 Standard Atmospher Concentration pm_10_0_std: name: PM 10.0 Standard Atmospher Concentration pm_0_3um: name: Particulate Count >0.3um pm_0_5um: name: Particulate Count >0.5um pm_1_0um: name: Particulate Count >1.0um pm_2_5um: name: Particulate Count >2.5um pm_5_0um: name: Particulate Count >5.0um pm_10_0um: name: Particulate Count >10.0um update_interval: 30s - platform: pmsx003 uart_id: uart5 type: PMS5003T pm_2_5: name: PM 2.5 Concentration temperature: name: PMS Temperature humidity: name: PMS Humidity - platform: pmsx003 uart_id: uart6 type: PMS5003ST pm_1_0: name: PM 1.0 Concentration pm_2_5: name: PM 2.5 Concentration pm_10_0: name: PM 10.0 Concentration pm_1_0_std: name: PM 1.0 Standard Atmospher Concentration pm_2_5_std: name: PM 2.5 Standard Atmospher Concentration pm_10_0_std: name: PM 10.0 Standard Atmospher Concentration pm_0_3um: name: Particulate Count >0.3um pm_0_5um: name: Particulate Count >0.5um pm_1_0um: name: Particulate Count >1.0um pm_2_5um: name: Particulate Count >2.5um pm_5_0um: name: Particulate Count >5.0um pm_10_0um: name: Particulate Count >10.0um temperature: name: PMS Temperature humidity: name: PMS Humidity formaldehyde: name: PMS Formaldehyde Concentration - platform: cse7761 uart_id: uart7 voltage: name: CSE7761 Voltage current_1: name: CSE7761 Current 1 current_2: name: CSE7761 Current 2 active_power_1: name: CSE7761 Active Power 1 active_power_2: name: CSE7761 Active Power 2 - platform: cse7766 uart_id: uart3 voltage: name: CSE7766 Voltage current: name: CSE7766 Current power: name: CSE776 Power - platform: ezo id: ph_ezo address: 99 unit_of_measurement: pH - platform: tof10120 name: Distance sensor update_interval: 5s - platform: fingerprint_grow fingerprint_count: name: Fingerprint Count status: name: Fingerprint Status capacity: name: Fingerprint Capacity security_level: name: Fingerprint Security Level last_finger_id: name: Fingerprint Last Finger ID last_confidence: name: Fingerprint Last Confidence - platform: sdm_meter phase_a: current: name: Phase A Current voltage: name: Phase A Voltage active_power: name: Phase A Power power_factor: name: Phase A Power Factor apparent_power: name: Phase A Apparent Power reactive_power: name: Phase A Reactive Power phase_angle: name: Phase A Phase Angle phase_b: current: name: Phase B Current voltage: name: Phase B Voltage active_power: name: Phase B Power power_factor: name: Phase B Power Factor apparent_power: name: Phase B Apparent Power reactive_power: name: Phase B Reactive Power phase_angle: name: Phase B Phase Angle phase_c: current: name: Phase C Current voltage: name: Phase C Voltage active_power: name: Phase C Power power_factor: name: Phase C Power Factor apparent_power: name: Phase C Apparent Power reactive_power: name: Phase C Reactive Power phase_angle: name: Phase C Phase Angle frequency: name: Frequency import_active_energy: name: Import Active Energy export_active_energy: name: Export Active Energy import_reactive_energy: name: Import Reactive Energy export_reactive_energy: name: Export Reactive Energy - platform: dsmr energy_delivered_tariff1: name: dsmr_energy_delivered_tariff1 - platform: nextion id: testnumber name: testnumber variable_name: testnumber - platform: nextion id: testwave name: testwave component_id: 2 wave_channel_id: 1 - 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: smt100 uart_id: uart10 counts: name: Counts dielectric_constant: name: Dielectric Constant temperature: name: Temperature moisture: name: Moisture voltage: name: Voltage update_interval: 60s - platform: adc128s102 id: adc128s102_channel_0 channel: 0 - platform: vbus model: deltasol c temperature_1: name: Temperature 1 - platform: kuntze ph: name: Kuntze pH temperature: name: Kuntze temperature time: - platform: homeassistant apds9960: address: 0x20 update_interval: 60s mpr121: id: mpr121_first address: 0x5A binary_sensor: - platform: daly_bms charging_mos_enabled: name: Charging MOS discharging_mos_enabled: name: Discharging MOS - 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: fingerprint_grow name: Fingerprint Enrolling - platform: custom lambda: |- auto s = new CustomBinarySensor(); App.register_component(s); return {s}; binary_sensors: - id: custom_binary_sensor name: Custom Binary Sensor - platform: nextion page_id: 0 component_id: 2 name: Nextion Component 2 Touch - platform: nextion id: r0_sensor name: R0 Sensor component_name: page0.r0 - platform: template id: cover_toggle on_press: then: - cover.toggle: time_based_cover - cover.toggle: endstop_cover - cover.toggle: current_based_cover - platform: hydreon_rgxx hydreon_rgxx_id: hydreon_rg9 too_cold: name: rg9_toocold em_sat: name: rg9_emsat lens_bad: name: rg9_lens_bad - platform: template id: pzemac_reset_energy on_press: then: - pzemac.reset_energy: pzemac1 - platform: vbus model: deltasol_bs_plus relay1: name: Relay 1 On globals: - id: my_global_string type: std::string initial_value: '""' remote_receiver: pin: GPIO12 dump: [] status_led: pin: GPIO2 text_sensor: - platform: daly_bms status: name: BMS Status - platform: version name: ESPHome Version icon: mdi:icon id: version_sensor on_value: # yamllint disable rule:line-length - lambda: !lambda |- ESP_LOGD("main", "The state is %s=%s", x.c_str(), id(version_sensor).state.c_str()); # yamllint enable rule:line-length - script.execute: my_script - script.wait: my_script - script.stop: 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 - platform: nextion name: text0 id: text0 update_interval: 4s component_name: text0 - platform: dsmr identification: name: dsmr_identification p1_version: name: dsmr_p1_version script: - id: my_script then: - lambda: 'ESP_LOGD("main", "Hello World!");' sm2135: data_pin: GPIO12 clock_pin: GPIO14 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: GPIO1 interlock: *interlock - platform: custom lambda: |- auto s = new CustomSwitch(); return {s}; switches: - id: custom_switch name: Custom Switch - platform: nextion id: r0 name: R0 Switch component_name: page0.r0 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: false 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 - platform: thermostat name: Thermostat Climate sensor: ha_hello_world 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: - switch.turn_on: gpio_switch1 cool_action: - switch.turn_on: gpio_switch2 supplemental_cooling_action: - switch.turn_on: gpio_switch3 heat_action: - switch.turn_on: gpio_switch1 supplemental_heating_action: - switch.turn_on: gpio_switch3 dry_action: - switch.turn_on: gpio_switch2 fan_only_action: - switch.turn_on: gpio_switch1 auto_mode: - switch.turn_on: gpio_switch2 off_mode: - switch.turn_on: gpio_switch1 heat_mode: - switch.turn_on: gpio_switch2 cool_mode: - switch.turn_on: gpio_switch1 dry_mode: - switch.turn_on: gpio_switch2 fan_only_mode: - switch.turn_on: gpio_switch1 fan_mode_auto_action: - switch.turn_on: gpio_switch2 fan_mode_on_action: - switch.turn_on: gpio_switch1 fan_mode_off_action: - switch.turn_on: gpio_switch2 fan_mode_low_action: - switch.turn_on: gpio_switch1 fan_mode_medium_action: - switch.turn_on: gpio_switch2 fan_mode_high_action: - switch.turn_on: gpio_switch1 fan_mode_middle_action: - switch.turn_on: gpio_switch2 fan_mode_focus_action: - switch.turn_on: gpio_switch1 fan_mode_diffuse_action: - switch.turn_on: gpio_switch2 fan_mode_quiet_action: - switch.turn_on: gpio_switch1 swing_off_action: - switch.turn_on: gpio_switch2 swing_horizontal_action: - switch.turn_on: gpio_switch1 swing_vertical_action: - switch.turn_on: gpio_switch2 swing_both_action: - switch.turn_on: gpio_switch1 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 - platform: pid id: pid_climate name: PID Climate Controller sensor: ha_hello_world default_target_temperature: 21°C heat_output: my_slow_pwm control_parameters: kp: 0.0 ki: 0.0 kd: 0.0 max_integral: 0.0 output_averaging_samples: 1 derivative_averaging_samples: 1 deadband_parameters: threshold_high: 0.4 threshold_low: -2.0 kp_multiplier: 0.0 ki_multiplier: 0.0 kd_multiplier: 0.0 deadband_output_averaging_samples: 1 - platform: haier name: Haier AC supported_swing_modes: - vertical - horizontal - both update_interval: 10s uart_id: uart12 sprinkler: - id: yard_sprinkler_ctrlr main_switch: Yard Sprinklers auto_advance_switch: Yard Sprinklers Auto Advance reverse_switch: Yard Sprinklers Reverse pump_start_pump_delay: 2s pump_stop_valve_delay: 4s pump_switch_off_during_valve_open_delay: true valve_open_delay: 5s valves: - valve_switch: Yard Valve 0 enable_switch: Enable Yard Valve 0 pump_switch_id: gpio_switch1 run_duration: 10s valve_switch_id: gpio_switch2 - valve_switch: Yard Valve 1 enable_switch: Enable Yard Valve 1 pump_switch_id: gpio_switch1 run_duration: 10s valve_switch_id: gpio_switch2 - valve_switch: Yard Valve 2 enable_switch: Enable Yard Valve 2 pump_switch_id: gpio_switch1 run_duration: 10s valve_switch_id: gpio_switch2 - id: garden_sprinkler_ctrlr main_switch: Garden Sprinklers auto_advance_switch: Garden Sprinklers Auto Advance reverse_switch: Garden Sprinklers Reverse valve_overlap: 5s valves: - valve_switch: Garden Valve 0 enable_switch: Enable Garden Valve 0 pump_switch_id: gpio_switch1 run_duration: 10s valve_switch_id: gpio_switch2 - valve_switch: Garden Valve 1 enable_switch: Enable Garden Valve 1 pump_switch_id: gpio_switch1 run_duration: 10s valve_switch_id: gpio_switch2 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: D3 frequency: 50Hz - platform: esp8266_pwm id: out2 pin: 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: 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: 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 e131: light: - platform: neopixelbus name: Neopixelbus Light pin: GPIO1 type: GRBW variant: SK6812 method: ESP8266_UART0 num_leds: 100 effects: - wled: - adalight: uart_id: uart3 - e131: universe: 1 - platform: hbridge name: Icicle Lights pin_a: out pin_b: out2 - platform: sonoff_d1 uart_id: uart2 use_rm433_remote: false name: Sonoff D1 Dimmer id: d1_light restore_mode: RESTORE_DEFAULT_OFF - platform: shelly_dimmer name: "Shelly Dimmer Light" power: name: "Shelly Dimmer Power" voltage: name: "Shelly Dimmer Voltage" current: name: "Shelly Dimmer Current" max_brightness: 500 firmware: "51.6" uart_id: uart11 servo: id: my_servo output: out restore: true min_level: $min_sub max_level: $max_sub ttp229_lsf: ttp229_bsf: sdo_pin: D2 scl_pin: D1 sim800l: uart_id: uart4 on_sms_received: - lambda: |- std::string str; str = sender; str = message; - sim800l.send_sms: message: hello you recipient: '+1234' - sim800l.dial: recipient: '+1234' dfplayer: uart_id: uart5 on_finished_playback: then: if: condition: not: dfplayer.is_playing then: logger.log: Playback finished event tm1651: id: tm1651_battery clk_pin: D6 dio_pin: D5 rf_bridge: uart_id: uart5 on_code_received: - lambda: |- uint32_t test; test = data.sync; test = data.low; test = data.high; test = data.code; - rf_bridge.send_code: sync: 0x1234 low: 0x1234 high: 0x1234 code: 0x123456 - rf_bridge.learn on_advanced_code_received: - lambda: |- uint32_t test; std::string test_code; test = data.length; test = data.protocol; test_code = data.code; - rf_bridge.start_advanced_sniffing: - rf_bridge.stop_advanced_sniffing: - rf_bridge.send_advanced_code: length: 0x04 protocol: 0x01 code: 'ABC123' - rf_bridge.send_raw: raw: 'AAA5070008001000ABC12355' - 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(version_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 display: - platform: max7219digit cs_pin: GPIO15 num_chips: 4 rotate_chip: 0 intensity: 10 scroll_mode: STOP id: my_matrix lambda: |- it.printdigit("hello"); - platform: nextion uart_id: uart1 tft_url: http://esphome.io/default35.tft update_interval: 5s on_sleep: then: lambda: 'ESP_LOGD("display","Display went to sleep");' on_wake: then: lambda: 'ESP_LOGD("display","Display woke up");' on_setup: then: lambda: 'ESP_LOGD("display","Display setup completed");' on_page: then: lambda: 'ESP_LOGD("display","Display shows new page %u", x);' http_request: useragent: esphome/device timeout: 10s fingerprint_grow: sensing_pin: 4 password: 0x12FE37DC new_password: 0xA65B9840 on_finger_scan_matched: - homeassistant.event: event: esphome.${device_name}_fingerprint_grow_finger_scan_matched data: finger_id: !lambda 'return finger_id;' confidence: !lambda 'return confidence;' on_finger_scan_unmatched: - homeassistant.event: event: esphome.${device_name}_fingerprint_grow_finger_scan_unmatched on_enrollment_scan: - homeassistant.event: event: esphome.${device_name}_fingerprint_grow_enrollment_scan data: finger_id: !lambda 'return finger_id;' scan_num: !lambda 'return scan_num;' on_enrollment_done: - homeassistant.event: event: esphome.${device_name}_fingerprint_grow_node_enrollment_done data: finger_id: !lambda 'return finger_id;' on_enrollment_failed: - homeassistant.event: event: esphome.${device_name}_fingerprint_grow_enrollment_failed data: finger_id: !lambda 'return finger_id;' uart_id: uart6 dsmr: decryption_key: 00112233445566778899aabbccddeeff uart_id: uart6 max_telegram_length: 1000 request_pin: D5 request_interval: 20s receive_timeout: 100ms daly_bms: update_interval: 20s uart_id: uart1 qr_code: - id: homepage_qr value: https://esphome.io/index.html 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: GPIO12 pin_s1: GPIO13 pin_s2: GPIO14 pin_s3: GPIO15 adc128s102: cs_pin: GPIO12