--- substitutions: devicename: test1 sensorname: my textname: template roomname: living_room esphome: name: test1 name_add_mac_suffix: true platform: ESP32 board: nodemcu-32s platformio_options: board_build.partitions: huge_app.csv on_boot: priority: 150.0 then: - lambda: >- ESP_LOGD("main", "ON BOOT!"); on_shutdown: then: - lambda: >- ESP_LOGD("main", "ON SHUTDOWN!"); on_loop: then: - lambda: >- ESP_LOGV("main", "ON LOOP!"); - 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(${textname}_text).state; greeting: Hello World - http_request.send: method: PUT url: https://esphome.io headers: Content-Type: application/json body: Some data verify_ssl: false on_response: then: - logger.log: format: "Response status: %d" args: - status_code build_path: build/test1 packages: wifi: !include test_packages/test_packages_package_wifi.yaml pkg_test: !include test_packages/test_packages_package1.yaml wifi: networks: - ssid: "MySSID" password: "password1" - ssid: "MySSID2" password: "" channel: 14 bssid: "A1:63:95:47:D3:1D" manual_ip: static_ip: 192.168.178.230 gateway: 192.168.178.1 subnet: 255.255.255.0 dns1: 1.1.1.1 dns2: 1.2.2.1 domain: .local reboot_timeout: 120s power_save_mode: light on_connect: - light.turn_on: ${roomname}_lights on_disconnect: - light.turn_off: ${roomname}_lights network: enable_ipv6: true mdns: disabled: false http_request: useragent: esphome/device timeout: 10s mqtt: broker: "192.168.178.84" port: 1883 username: "debug" password: "debug" 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: livingroom/ota_mode then: - deep_sleep.prevent - deep_sleep.allow - topic: livingroom/ota_mode then: - deep_sleep.enter: on_json_message: topic: the/topic then: - if: condition: - wifi.connected: - mqtt.connected: - light.is_on: kitchen - light.is_off: kitchen - fan.is_on: fan_speed - fan.is_off: fan_speed then: - lambda: |- int data = x["my_data"]; ESP_LOGD("main", "The data is: %d", data); - light.turn_on: id: ${roomname}_lights brightness: !lambda |- float brightness = 1.0; if (x.containsKey("brightness")) brightness = x["brightness"]; return brightness; effect: !lambda |- const char *effect = "None"; if (x.containsKey("effect")) effect = x["effect"]; return effect; - light.control: id: ${roomname}_lights # yamllint disable-line rule:line-length brightness: !lambda "return id(${roomname}_lights).current_values.get_brightness() + 0.5;" - light.dim_relative: id: ${roomname}_lights relative_brightness: 5% - uart.write: id: uart_0 data: Hello World - uart.write: id: uart_0 data: [0x00, 0x20, 0x30] - uart.write: id: uart_0 data: !lambda |- return {}; - bluetooth_password.set: id: my_ld2410 password: abcdef on_connect: - light.turn_on: ${roomname}_lights - mqtt.publish: topic: some/topic payload: Hello on_disconnect: - light.turn_off: ${roomname}_lights i2c: sda: allow_other_uses: true number: 21 scl: allow_other_uses: true number: 22 scan: true frequency: 100kHz setup_priority: -100 id: i2c_bus spi: id: spi_bus clk_pin: allow_other_uses: true number: GPIO21 mosi_pin: allow_other_uses: true number: GPIO22 miso_pin: allow_other_uses: true number: GPIO23 uart: - tx_pin: allow_other_uses: true number: GPIO22 inverted: true rx_pin: allow_other_uses: true number: GPIO23 inverted: true baud_rate: 115200 id: uart_0 parity: NONE data_bits: 8 stop_bits: 1 rx_buffer_size: 512 debug: dummy_receiver: true direction: both after: bytes: 50 timeout: 500ms delimiter: "\r\n" sequence: - lambda: UARTDebug::log_hex(direction, bytes, ':'); - lambda: UARTDebug::log_string(direction, bytes); - lambda: UARTDebug::log_int(direction, bytes, ','); - lambda: UARTDebug::log_binary(direction, bytes, ';'); - id: ld2410_uart tx_pin: allow_other_uses: true number: 18 rx_pin: allow_other_uses: true number: 23 baud_rate: 256000 parity: NONE stop_bits: 1 - id: dfrobot_mmwave_uart tx_pin: allow_other_uses: true number: 14 rx_pin: allow_other_uses: true number: 27 baud_rate: 115200 - id: ld2420_uart tx_pin: allow_other_uses: true number: 17 rx_pin: allow_other_uses: true number: 16 baud_rate: 115200 parity: NONE stop_bits: 1 - id: gcja5_uart rx_pin: GPIO10 parity: EVEN baud_rate: 9600 ota: safe_mode: true password: "superlongpasswordthatnoonewillknow" port: 3286 reboot_timeout: 2min num_attempts: 5 on_state_change: then: lambda: >- ESP_LOGD("ota", "State %d", state); on_begin: then: logger.log: OTA begin on_progress: then: lambda: >- ESP_LOGD("ota", "Got progress %f", x); on_end: then: logger.log: OTA end on_error: then: lambda: >- ESP_LOGD("ota", "Got error code %d", x); logger: baud_rate: 0 level: VERBOSE logs: mqtt.component: DEBUG mqtt.client: ERROR web_server: port: 8080 version: 2 power_supply: id: atx_power_supply enable_time: 20ms keep_on_time: 10s pin: number: 13 allow_other_uses: true inverted: true deep_sleep: run_duration: 20s sleep_duration: 50s wakeup_pin: allow_other_uses: true number: GPIO2 ignore_strapping_warning: true wakeup_pin_mode: INVERT_WAKEUP ads1115: address: 0x48 i2c_id: i2c_bus as5600: i2c_id: i2c_bus dir_pin: number: 27 allow_other_uses: true direction: clockwise start_position: 90deg range: 180deg watchdog: true power_mode: low1 hysteresis: lsb1 slow_filter: 8x fast_filter: lsb6 dallas: pin: allow_other_uses: true number: GPIO23 as3935_spi: cs_pin: ignore_strapping_warning: true allow_other_uses: true number: GPIO12 irq_pin: allow_other_uses: true number: GPIO13 esp32_ble: io_capability: keyboard_only esp32_ble_tracker: ble_client: - mac_address: AA:BB:CC:DD:EE:FF id: ble_foo auto_connect: true - mac_address: 11:22:33:44:55:66 id: ble_blah auto_connect: false on_connect: then: - switch.turn_on: ble1_status on_disconnect: then: - switch.turn_on: ble1_status on_passkey_request: then: - ble_client.passkey_reply: id: ble_blah passkey: 123456 on_passkey_notification: then: - logger.log: "Passkey notification received" on_numeric_comparison_request: then: - ble_client.numeric_comparison_reply: id: ble_blah accept: true - mac_address: C4:4F:33:11:22:33 id: my_bedjet_ble_client bedjet: - ble_client_id: my_bedjet_ble_client id: my_bedjet_client time_id: sntp_time mcp23s08: - id: mcp23s08_hub cs_pin: ignore_strapping_warning: true number: GPIO12 allow_other_uses: true deviceaddress: 0 mcp23s17: - id: mcp23s17_hub cs_pin: ignore_strapping_warning: true number: GPIO12 allow_other_uses: true deviceaddress: 1 micronova: enable_rx_pin: allow_other_uses: true number: 4 uart_id: uart_0 dfrobot_sen0395: - id: mmwave uart_id: dfrobot_mmwave_uart sensor: - platform: xgzp68xx i2c_id: i2c_bus temperature: name: Pressure Temperature pressure: name: Differential pressure k_value: 4096 - platform: pmwcs3 i2c_id: i2c_bus e25: name: pmwcs3_e25 ec: name: pmwcs3_ec temperature: name: pmwcs3_temperature vwc: name: pmwcs3_vwc - platform: gcja5 pm_1_0: name: "Particulate Matter <1.0µm Concentration" pm_2_5: name: "Particulate Matter <2.5µm Concentration" pm_10_0: name: "Particulate Matter <10.0µm Concentration" pmc_0_5: name: "PMC 0.5" pmc_1_0: name: "PMC 1.0" pmc_2_5: name: "PMC 2.5" pmc_5_0: name: "PMC 5.0" pmc_10_0: name: "PMC 10.0" uart_id: gcja5_uart - platform: internal_temperature name: Internal Temperature - platform: ble_client type: characteristic ble_client_id: ble_foo name: Green iTag btn service_uuid: ffe0 characteristic_uuid: ffe1 descriptor_uuid: ffe2 notify: true update_interval: never lambda: |- ESP_LOGD("main", "Length of data is %i", x.size()); return x[0]; on_notify: then: - lambda: |- ESP_LOGD("green_btn", "Button was pressed, val%f", x); - platform: ble_client type: rssi ble_client_id: ble_foo name: Green iTag RSSI update_interval: 15s - platform: adc pin: A0 name: Living Room Brightness update_interval: "1:01" attenuation: 2.5db unit_of_measurement: "°C" icon: "mdi:water-percent" accuracy_decimals: 5 expire_after: 120s setup_priority: -100 force_update: true filters: - offset: 2.0 - multiply: 1.2 - calibrate_linear: datapoints: - 0.0 -> 0.0 - 40.0 -> 45.0 - 100.0 -> 102.5 - clamp: min_value: -100 max_value: 100 - filter_out: 42.0 - filter_out: nan - median: window_size: 5 send_every: 5 send_first_at: 3 - min: window_size: 5 send_every: 5 send_first_at: 3 - max: window_size: 5 send_every: 5 send_first_at: 3 - sliding_window_moving_average: window_size: 15 send_every: 15 send_first_at: 15 - exponential_moving_average: alpha: 0.1 send_every: 15 send_first_at: 15 - throttle_average: 60s - throttle: 1s - heartbeat: 5s - debounce: 0.1s - delta: 5.0 - delta: 1% - or: - throttle: 1s - delta: 5.0 - lambda: return x * (9.0/5.0) + 32.0; on_value: then: # yamllint disable rule:line-length - lambda: |- ESP_LOGD("main", "Got value %f", x); id(${sensorname}_sensor).publish_state(42.0); ESP_LOGI("main", "Value of my sensor: %f", id(${sensorname}_sensor).state); ESP_LOGI("main", "Raw Value of my sensor: %f", id(${sensorname}_sensor).state); # yamllint enable rule:line-length on_value_range: above: 5 below: 10 then: - lambda: >- ESP_LOGD("main", "Got value range %f", x); - wait_until: wifi.connected - wait_until: condition: binary_sensor.is_on: binary_sensor1 timeout: 1s on_raw_value: - lambda: >- ESP_LOGD("main", "Got raw value %f", x); - logger.log: level: DEBUG format: Got raw value %f args: ["x"] - logger.log: Got raw value NAN - mqtt.publish: topic: some/topic payload: Hello qos: 2 retain: true - platform: esp32_hall name: ESP32 Hall Sensor - platform: ads1115 multiplexer: A0_A1 gain: 1.024 id: ${sensorname}_sensor filters: state_topic: hi/me retain: false availability: - platform: as5600 name: AS5600 Position raw_position: name: AS5600 Raw Position gain: name: AS5600 Gain magnitude: name: AS5600 Magnitude status: name: AS5600 Status - platform: as7341 update_interval: 15s gain: X8 atime: 120 astep: 99 f1: name: F1 f2: name: F2 f3: name: F3 f4: name: F4 f5: name: F5 f6: name: F6 f7: name: F7 f8: name: F8 clear: name: Clear nir: name: NIR i2c_id: i2c_bus - platform: atm90e26 cs_pin: allow_other_uses: true number: 5 voltage: name: Line Voltage current: name: CT Amps power: name: Active Watts power_factor: name: Power Factor frequency: name: Line Frequency line_frequency: 50Hz meter_constant: 1000 pl_const: 1429876 gain_pga: 1X gain_metering: 7481 gain_voltage: 26400 gain_ct: 31251 - platform: atm90e32 cs_pin: allow_other_uses: true number: 5 phase_a: voltage: name: EMON Line Voltage A current: name: EMON CT1 Current power: name: EMON Active Power CT1 reactive_power: name: EMON Reactive Power CT1 power_factor: name: EMON Power Factor CT1 gain_voltage: 7305 gain_ct: 27961 phase_b: current: name: EMON CT2 Current power: name: EMON Active Power CT2 reactive_power: name: EMON Reactive Power CT2 power_factor: name: EMON Power Factor CT2 gain_voltage: 7305 gain_ct: 27961 phase_c: current: name: EMON CT3 Current power: name: EMON Active Power CT3 reactive_power: name: EMON Reactive Power CT3 power_factor: name: EMON Power Factor CT3 gain_voltage: 7305 gain_ct: 27961 frequency: name: EMON Line Frequency chip_temperature: name: EMON Chip Temp A line_frequency: 60Hz current_phases: 3 gain_pga: 2X - platform: bh1750 name: Living Room Brightness 3 internal: true address: 0x23 update_interval: 30s retain: false availability: state_topic: livingroom/custom_state_topic i2c_id: i2c_bus - platform: max44009 name: Outside Brightness 1 internal: true address: 0x4A update_interval: 30s mode: low_power i2c_id: i2c_bus - platform: bme280_i2c temperature: name: Outside Temperature oversampling: 16x pressure: name: Outside Pressure oversampling: none humidity: name: Outside Humidity oversampling: 8x address: 0x77 iir_filter: 16x update_interval: 15s i2c_id: i2c_bus - platform: bme280_spi temperature: name: Outside Temperature oversampling: 16x pressure: name: Outside Pressure oversampling: none humidity: name: Outside Humidity oversampling: 8x cs_pin: allow_other_uses: true number: GPIO23 iir_filter: 16x update_interval: 15s - platform: bme680 temperature: name: Outside Temperature oversampling: 16x pressure: name: Outside Pressure humidity: name: Outside Humidity gas_resistance: name: Outside Gas Sensor address: 0x77 heater: temperature: 320 duration: 150ms update_interval: 15s i2c_id: i2c_bus - platform: bmp085 temperature: name: Outside Temperature pressure: name: Outside Pressure filters: - lambda: >- return x / powf(1.0 - (x / 44330.0), 5.255); update_interval: 15s i2c_id: i2c_bus - platform: bmp280 temperature: name: Outside Temperature oversampling: 16x pressure: name: Outside Pressure address: 0x77 update_interval: 15s iir_filter: 16x i2c_id: i2c_bus - platform: dallas address: 0x1C0000031EDD2A28 name: Living Room Temperature resolution: 9 - platform: dallas index: 1 name: Living Room Temperature 2 - platform: dht pin: allow_other_uses: true number: GPIO26 temperature: id: dht_temperature name: Living Room Temperature 3 humidity: id: dht_humidity name: Living Room Humidity 3 model: AM2302 update_interval: 15s - platform: dht12 temperature: name: Living Room Temperature 4 humidity: name: Living Room Humidity 4 update_interval: 15s i2c_id: i2c_bus - platform: duty_cycle pin: allow_other_uses: true number: GPIO25 name: Duty Cycle Sensor - platform: ee895 co2: name: Office CO2 1 temperature: name: Office Temperature 1 pressure: name: Office Pressure 1 address: 0x5F i2c_id: i2c_bus - platform: esp32_hall name: ESP32 Hall Sensor update_interval: 15s - platform: ens210 temperature: name: Living Room Temperature 5 humidity: name: Living Room Humidity 5 update_interval: 15s i2c_id: i2c_bus - platform: hdc1080 temperature: name: Living Room Temperature 6 humidity: name: Living Room Humidity 5 update_interval: 15s i2c_id: i2c_bus - platform: hlw8012 sel_pin: allow_other_uses: true number: 5 cf_pin: allow_other_uses: true number: 14 cf1_pin: allow_other_uses: true number: 13 current: name: HLW8012 Current voltage: name: HLW8012 Voltage power: name: HLW8012 Power id: hlw8012_power energy: name: HLW8012 Energy id: hlw8012_energy update_interval: 15s current_resistor: 0.001 ohm voltage_divider: 2351 change_mode_every: "never" initial_mode: VOLTAGE model: hlw8012 - platform: total_daily_energy power_id: hlw8012_power name: HLW8012 Total Daily Energy - platform: integration sensor: hlw8012_power name: Integration Sensor time_unit: s - platform: integration sensor: hlw8012_power name: Integration Sensor lazy time_unit: s - platform: hmc5883l address: 0x68 field_strength_x: name: HMC5883L Field Strength X field_strength_y: name: HMC5883L Field Strength Y field_strength_z: name: HMC5883L Field Strength Z heading: name: HMC5883L Heading range: 130uT oversampling: 8x update_interval: 15s i2c_id: i2c_bus - platform: honeywell_hih_i2c temperature: name: Living Room Temperature 7 humidity: name: Living Room Humidity 7 update_interval: 15s i2c_id: i2c_bus - platform: honeywellabp pressure: name: Honeywell pressure min_pressure: 0 max_pressure: 15 temperature: name: Honeywell temperature cs_pin: allow_other_uses: true number: GPIO5 - platform: honeywellabp2_i2c pressure: name: Honeywell2 pressure min_pressure: 0 max_pressure: 16000 transfer_function: A temperature: name: Honeywell temperature i2c_id: i2c_bus address: 0x28 - platform: hte501 temperature: name: Office Temperature 2 humidity: name: Office Humidity 1 address: 0x40 i2c_id: i2c_bus - platform: qmc5883l address: 0x0D field_strength_x: name: QMC5883L Field Strength X field_strength_y: name: QMC5883L Field Strength Y field_strength_z: name: QMC5883L Field Strength Z heading: name: QMC5883L Heading range: 800uT oversampling: 256x update_interval: 15s i2c_id: i2c_bus - platform: hx711 name: HX711 Value dout_pin: allow_other_uses: true number: GPIO23 clk_pin: allow_other_uses: true number: GPIO25 gain: 128 update_interval: 15s - platform: ina219 address: 0x40 shunt_resistance: 0.1 ohm current: name: INA219 Current power: name: INA219 Power bus_voltage: name: INA219 Bus Voltage shunt_voltage: name: INA219 Shunt Voltage max_voltage: 32.0V max_current: 3.2A update_interval: 15s i2c_id: i2c_bus - platform: ina226 address: 0x40 shunt_resistance: 0.1 ohm current: name: INA226 Current power: name: INA226 Power bus_voltage: name: INA226 Bus Voltage shunt_voltage: name: INA226 Shunt Voltage max_current: 3.2A update_interval: 15s i2c_id: i2c_bus - platform: ina3221 address: 0x40 channel_1: shunt_resistance: 0.1 ohm current: name: INA3221 Channel 1 Current power: name: INA3221 Channel 1 Power bus_voltage: name: INA3221 Channel 1 Bus Voltage shunt_voltage: name: INA3221 Channel 1 Shunt Voltage update_interval: 15s i2c_id: i2c_bus - platform: kmeteriso temperature: name: Outside Temperature internal_temperature: name: Internal Ttemperature update_interval: 15s i2c_id: i2c_bus - platform: combination type: kalman name: Kalman-filtered temperature process_std_dev: 0.00139 sources: - source: scd30_temperature error: !lambda |- return 0.4 + std::abs(x - 25) * 0.023; - source: scd4x_temperature error: 1.5 - platform: combination type: linear name: Linearly combined temperatures sources: - source: scd30_temperature coeffecient: !lambda |- return 0.4 + std::abs(x - 25) * 0.023; - source: scd4x_temperature coeffecient: 1.5 - platform: combination type: max name: Max of combined temperatures sources: - source: scd30_temperature - source: scd4x_temperature - platform: combination type: mean name: Mean of combined temperatures sources: - source: scd30_temperature - source: scd4x_temperature - platform: combination type: median name: Median of combined temperatures sources: - source: scd30_temperature - source: scd4x_temperature - platform: combination type: min name: Min of combined temperatures sources: - source: scd30_temperature - source: scd4x_temperature - platform: combination type: most_recently_updated name: Most recently updated of combined temperatures sources: - source: scd30_temperature - source: scd4x_temperature - platform: combination type: range name: Range of combined temperatures sources: - source: scd30_temperature - source: scd4x_temperature - platform: combination type: sum name: Sum of combined temperatures sources: - source: scd30_temperature - source: scd4x_temperature - platform: htu21d temperature: name: Living Room Temperature 6 humidity: name: Living Room Humidity 6 heater: name: Living Room Heater 6 update_interval: 15s i2c_id: i2c_bus - platform: max6675 name: Living Room Temperature cs_pin: allow_other_uses: true number: GPIO23 update_interval: 15s - platform: max31855 name: Den Temperature cs_pin: allow_other_uses: true number: GPIO23 update_interval: 15s reference_temperature: name: MAX31855 Internal Temperature - platform: max31856 name: BBQ Temperature cs_pin: allow_other_uses: true number: GPIO17 update_interval: 15s mains_filter: 50Hz - platform: max31865 name: Water Tank Temperature cs_pin: allow_other_uses: true number: GPIO23 update_interval: 15s reference_resistance: 430 Ω rtd_nominal_resistance: 100 Ω - platform: mhz19 uart_id: uart_0 co2: name: MH-Z19 CO2 Value temperature: name: MH-Z19 Temperature update_interval: 15s automatic_baseline_calibration: false - platform: mpu6050 address: 0x68 accel_x: name: MPU6050 Accel X accel_y: name: MPU6050 Accel Y accel_z: name: MPU6050 Accel z gyro_x: name: MPU6050 Gyro X gyro_y: name: MPU6050 Gyro Y gyro_z: name: MPU6050 Gyro z temperature: name: MPU6050 Temperature i2c_id: i2c_bus - platform: mpu6886 address: 0x68 accel_x: name: MPU6886 Accel X accel_y: name: MPU6886 Accel Y accel_z: name: MPU6886 Accel z gyro_x: name: MPU6886 Gyro X gyro_y: name: MPU6886 Gyro Y gyro_z: name: MPU6886 Gyro z temperature: name: MPU6886 Temperature i2c_id: i2c_bus - platform: bmi160 address: 0x68 acceleration_x: name: BMI160 Accel X acceleration_y: name: BMI160 Accel Y acceleration_z: name: BMI160 Accel z gyroscope_x: name: BMI160 Gyro X gyroscope_y: name: BMI160 Gyro Y gyroscope_z: name: BMI160 Gyro z temperature: name: BMI160 Temperature i2c_id: i2c_bus - platform: mmc5603 address: 0x30 field_strength_x: name: HMC5883L Field Strength X field_strength_y: name: HMC5883L Field Strength Y field_strength_z: name: HMC5883L Field Strength Z i2c_id: i2c_bus - platform: dps310 temperature: name: DPS310 Temperature pressure: name: DPS310 Pressure address: 0x77 update_interval: 15s i2c_id: i2c_bus - platform: ms5611 temperature: name: Outside Temperature pressure: name: Outside Pressure address: 0x77 update_interval: 15s i2c_id: i2c_bus - platform: pmsa003i pm_1_0: name: PMSA003i PM1.0 pm_2_5: name: PMSA003i PM2.5 pm_10_0: name: PMSA003i PM10.0 pmc_0_3: name: PMSA003i PMC <0.3µm pmc_0_5: name: PMSA003i PMC <0.5µm pmc_1_0: name: PMSA003i PMC <1µm pmc_2_5: name: PMSA003i PMC <2.5µm pmc_5_0: name: PMSA003i PMC <5µm pmc_10_0: name: PMSA003i PMC <10µm address: 0x12 standard_units: true i2c_id: i2c_bus - platform: pulse_counter name: Pulse Counter pin: ignore_strapping_warning: true number: GPIO12 allow_other_uses: true count_mode: rising_edge: INCREMENT falling_edge: DECREMENT internal_filter: 13us update_interval: 15s - platform: pulse_meter name: Pulse Meter id: pulse_meter_sensor pin: ignore_strapping_warning: true number: GPIO12 allow_other_uses: true internal_filter: 100ms timeout: 2 min on_value: - pulse_meter.set_total_pulses: id: pulse_meter_sensor value: 12345 total: name: Pulse Meter Total - platform: qmp6988 temperature: name: Living Temperature QMP oversampling: 32x pressure: name: Living Pressure QMP oversampling: 2x address: 0x70 update_interval: 30s iir_filter: 16x i2c_id: i2c_bus - platform: rotary_encoder name: Rotary Encoder id: rotary_encoder1 pin_a: allow_other_uses: true number: GPIO23 pin_b: allow_other_uses: true number: GPIO25 pin_reset: allow_other_uses: true number: GPIO25 filters: - or: - debounce: 0.1s - delta: 10 resolution: 4 min_value: -10 max_value: 30 on_value: - sensor.rotary_encoder.set_value: id: rotary_encoder1 value: 10 - sensor.rotary_encoder.set_value: id: rotary_encoder1 value: !lambda "return -1;" on_clockwise: - logger.log: Clockwise - display_menu.down: test_lcd_menu - display_menu.down: test_graphical_display_menu on_anticlockwise: - logger.log: Anticlockwise - display_menu.up: test_lcd_menu - display_menu.up: test_graphical_display_menu - platform: pulse_width name: Pulse Width pin: allow_other_uses: true number: GPIO12 - platform: sm300d2 uart_id: uart_0 co2: name: SM300D2 CO2 Value formaldehyde: name: SM300D2 Formaldehyde Value tvoc: name: SM300D2 TVOC Value pm_2_5: name: SM300D2 PM2.5 Value pm_10_0: name: SM300D2 PM10 Value temperature: name: SM300D2 Temperature Value humidity: name: SM300D2 Humidity Value update_interval: 60s - platform: sht3xd temperature: name: Living Room Temperature 8 humidity: name: Living Room Humidity 8 address: 0x44 i2c_id: i2c_bus update_interval: 15s - platform: sts3x name: Living Room Temperature 9 address: 0x4A i2c_id: i2c_bus - platform: scd30 co2: name: Living Room CO2 9 temperature: id: scd30_temperature name: Living Room Temperature 9 humidity: name: Living Room Humidity 9 address: 0x61 update_interval: 15s automatic_self_calibration: true altitude_compensation: 10m ambient_pressure_compensation: 961mBar temperature_offset: 4.2C i2c_id: i2c_bus - platform: scd4x id: scd40 co2: name: SCD4X CO2 temperature: id: scd4x_temperature name: SCD4X Temperature humidity: name: SCD4X Humidity update_interval: 15s automatic_self_calibration: true altitude_compensation: 10m ambient_pressure_compensation: 961mBar temperature_offset: 4.2C i2c_id: i2c_bus - platform: sfa30 formaldehyde: name: "SFA30 formaldehyde" temperature: name: "SFA30 temperature" humidity: name: "SFA30 humidity" i2c_id: i2c_bus address: 0x5D update_interval: 30s - platform: sen0321 name: Workshop Ozone Sensor id: sen0321_ozone update_interval: 10s i2c_id: i2c_bus - platform: sgp30 eco2: name: Workshop eCO2 accuracy_decimals: 1 tvoc: name: Workshop TVOC accuracy_decimals: 1 address: 0x58 update_interval: 5s i2c_id: i2c_bus - platform: sps30 pm_1_0: name: Workshop PM <1µm Weight concentration id: workshop_PM_1_0 pm_2_5: name: Workshop PM <2.5µm Weight concentration id: workshop_PM_2_5 pm_4_0: name: Workshop PM <4µm Weight concentration id: workshop_PM_4_0 pm_10_0: name: Workshop PM <10µm Weight concentration id: workshop_PM_10_0 pmc_0_5: name: Workshop PM <0.5µm Number concentration id: workshop_PMC_0_5 pmc_1_0: name: Workshop PM <1µm Number concentration id: workshop_PMC_1_0 pmc_2_5: name: Workshop PM <2.5µm Number concentration id: workshop_PMC_2_5 pmc_4_0: name: Workshop PM <4µm Number concentration id: workshop_PMC_4_0 pmc_10_0: name: Workshop PM <10µm Number concentration id: workshop_PMC_10_0 address: 0x69 update_interval: 10s i2c_id: i2c_bus - platform: sht4x temperature: name: SHT4X Temperature humidity: name: SHT4X Humidity address: 0x44 update_interval: 15s i2c_id: i2c_bus - platform: shtcx temperature: name: Living Room Temperature 10 humidity: name: Living Room Humidity 10 address: 0x70 update_interval: 15s i2c_id: i2c_bus - platform: template name: Template Sensor state_class: measurement id: template_sensor lambda: |- if (id(ultrasonic_sensor1).state > 1) { return 42.0; } else { return {}; } update_interval: 15s on_value: - sensor.template.publish: id: template_sensor state: 43.0 - sensor.template.publish: id: template_sensor state: !lambda "return NAN;" - platform: tsl2561 name: TSL2561 Ambient Light address: 0x39 update_interval: 15s is_cs_package: true integration_time: 402ms gain: 16x i2c_id: i2c_bus - platform: tsl2591 id: this_little_light_of_mine address: 0x29 update_interval: 15s integration_time: 600ms gain: high visible: name: tsl2591 visible id: tsl2591_vis unit_of_measurement: pH infrared: name: tsl2591 infrared id: tsl2591_ir full_spectrum: name: tsl2591 full_spectrum id: tsl2591_fs calculated_lux: name: tsl2591 calculated_lux id: tsl2591_cl i2c_id: i2c_bus - platform: veml3235 id: veml3235_sensor name: VEML3235 Light Sensor i2c_id: i2c_bus auto_gain: true auto_gain_threshold_high: 90% auto_gain_threshold_low: 15% digital_gain: 1X gain: 1X integration_time: 50ms - platform: tee501 name: Office Temperature 3 address: 0x48 i2c_id: i2c_bus - platform: ultrasonic trigger_pin: allow_other_uses: true number: GPIO25 echo_pin: number: GPIO23 allow_other_uses: true inverted: true name: Ultrasonic Sensor timeout: 5.5m id: ultrasonic_sensor1 - platform: uptime name: Uptime Sensor - id: !extend ${devicename}_uptime_pcg unit_of_measurement: s - platform: wifi_signal name: WiFi Signal Sensor update_interval: 15s - platform: mqtt_subscribe name: MQTT Subscribe Sensor 1 topic: mqtt/topic id: the_sensor qos: 2 on_value: - mqtt.publish_json: topic: the/topic payload: |- root["key"] = id(the_sensor).state; root["greeting"] = "Hello World"; - platform: sds011 uart_id: uart_0 pm_2_5: name: SDS011 PM2.5 pm_10_0: name: SDS011 PM10.0 update_interval: 5min rx_only: false - platform: ccs811 eco2: name: CCS811 eCO2 tvoc: name: CCS811 TVOC update_interval: 30s baseline: 0x4242 i2c_id: i2c_bus - platform: tx20 wind_speed: name: Windspeed wind_direction_degrees: name: Winddirection Degrees pin: number: GPIO04 mode: INPUT allow_other_uses: true - platform: zyaura clock_pin: allow_other_uses: true number: GPIO5 data_pin: allow_other_uses: true number: GPIO4 co2: name: ZyAura CO2 temperature: name: ZyAura Temperature humidity: name: ZyAura Humidity - platform: as3935 lightning_energy: name: Lightning Energy distance: name: Distance Storm - platform: tmp117 name: TMP117 Temperature update_interval: 5s i2c_id: i2c_bus - 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: CAQI i2c_id: i2c_bus - platform: teleinfo tag_name: HCHC name: hchc unit_of_measurement: Wh icon: mdi:flash teleinfo_id: myteleinfo - platform: mcp9808 name: MCP9808 Temperature update_interval: 15s i2c_id: i2c_bus - platform: ezo id: ph_ezo address: 99 unit_of_measurement: pH i2c_id: i2c_bus - platform: sdp3x name: HVAC Filter Pressure drop id: filter_pressure update_interval: 5s accuracy_decimals: 3 i2c_id: i2c_bus - platform: cs5460a id: cs5460a1 current: name: Socket current voltage: name: Mains voltage power: name: Socket power on_value: then: cs5460a.restart: cs5460a1 samples: 1600 pga_gain: 10X current_gain: 0.01 voltage_gain: 0.000573 current_hpf: true voltage_hpf: true phase_offset: 20 pulse_energy: 0.01 kWh cs_pin: mcp23xxx: mcp23017_hub number: 14 - platform: max9611 i2c_id: i2c_bus shunt_resistance: 0.2 ohm gain: 1X voltage: name: Max9611 Voltage current: name: Max9611 Current power: name: Max9611 Watts temperature: name: Max9611 Temp update_interval: 1s - platform: mlx90614 i2c_id: i2c_bus ambient: name: Ambient object: name: Object emissivity: 1.0 - platform: mpl3115a2 i2c_id: i2c_bus temperature: name: "MPL3115A2 Temperature" pressure: name: "MPL3115A2 Pressure" update_interval: 10s - platform: alpha3 ble_client_id: ble_foo flow: name: "Radiator Pump Flow" head: name: "Radiator Pump Head" power: name: "Radiator Pump Power" speed: name: "Radiator Pump Speed" - platform: ld2410 light: name: light moving_distance: name: "Moving distance (cm)" still_distance: name: "Still Distance (cm)" moving_energy: name: "Move Energy (%)" still_energy: name: "Still Energy (%)" detection_distance: name: "Distance Detection (cm)" g0: move_energy: name: g0 move energy still_energy: name: g0 still energy g1: move_energy: name: g1 move energy still_energy: name: g1 still energy g2: move_energy: name: g2 move energy still_energy: name: g2 still energy g3: move_energy: name: g3 move energy still_energy: name: g3 still energy g4: move_energy: name: g4 move energy still_energy: name: g4 still energy g5: move_energy: name: g5 move energy still_energy: name: g5 still energy g6: move_energy: name: g6 move energy still_energy: name: g6 still energy g7: move_energy: name: g7 move energy still_energy: name: g7 still energy g8: move_energy: name: g8 move energy still_energy: name: g8 still energy - platform: ld2420 moving_distance: name: "Moving distance (cm)" - platform: sen21231 name: "Person Sensor" i2c_id: i2c_bus - platform: fs3000 name: "Air Velocity" model: 1005 update_interval: 60s i2c_id: i2c_bus - platform: absolute_humidity name: DHT Absolute Humidity temperature: dht_temperature humidity: dht_humidity - platform: hyt271 i2c_id: i2c_bus temperature: name: "Temperature hyt271" id: temp_etuve humidity: name: "Humidity hyt271" - platform: iaqcore i2c_id: i2c_bus co2: name: "iAQ Core CO2 Sensor" tvoc: name: "iAQ Core TVOC Sensor" - platform: tmp1075 name: "Temperature TMP1075" update_interval: 10s i2c_id: i2c_bus conversion_rate: 27.5ms alert: limit_low: 50 limit_high: 75 fault_count: 1 polarity: active_high function: comparator - platform: zio_ultrasonic name: "Distance" update_interval: 60s i2c_id: i2c_bus - platform: bmp581 i2c_id: i2c_bus temperature: name: "BMP581 Temperature" iir_filter: 2x pressure: name: "BMP581 Pressure" oversampling: 128x - platform: debug free: name: "Heap Free" block: name: "Heap Max Block" loop_time: name: "Loop Time" psram: name: "PSRAM Free" - platform: mmc5983 i2c_id: i2c_bus field_strength_x: name: "Magnet X" id: magnet_x field_strength_y: name: "Magnet Y" id: magnet_y field_strength_z: name: "Magnet Z" id: magnet_z - platform: micronova room_temperature: name: Room Temperature fumes_temperature: name: Fumes Temperature water_temperature: name: Water temperature water_pressure: name: Water pressure stove_power: name: Stove Power fan_speed: fan_rpm_offset: 240 name: Fan RPM memory_address_sensor: memory_location: 0x20 memory_address: 0x7d name: Adres sensor - platform: ade7880 i2c_id: i2c_bus irq0_pin: number: GPIO13 allow_other_uses: true irq1_pin: number: GPIO5 allow_other_uses: true reset_pin: number: GPIO16 allow_other_uses: true frequency: 60Hz phase_a: name: Channel A voltage: Voltage current: Current active_power: Active Power power_factor: Power Factor forward_active_energy: Forward Active Energy reverse_active_energy: Reverse Active Energy calibration: current_gain: 3116628 voltage_gain: -757178 power_gain: -1344457 phase_angle: 188 phase_b: name: Channel B voltage: Voltage current: Current active_power: Active Power power_factor: Power Factor forward_active_energy: Forward Active Energy reverse_active_energy: Reverse Active Energy calibration: current_gain: 3133655 voltage_gain: -755235 power_gain: -1345638 phase_angle: 188 phase_c: name: Channel C voltage: Voltage current: Current active_power: Active Power power_factor: Power Factor forward_active_energy: Forward Active Energy reverse_active_energy: Reverse Active Energy calibration: current_gain: 3111158 voltage_gain: -743813 power_gain: -1351437 phase_angle: 180 neutral: name: Neutral current: Current calibration: current_gain: 3189 psram: esp32_touch: setup_mode: false iir_filter: 10ms sleep_duration: 27ms measurement_duration: 8ms low_voltage_reference: 0.5V high_voltage_reference: 2.7V voltage_attenuation: 1.5V binary_sensor: - platform: gpio name: "MCP23S08 Pin #1" pin: mcp23xxx: mcp23s08_hub # Use pin number 1 number: 1 # One of INPUT or INPUT_PULLUP mode: INPUT_PULLUP inverted: false - platform: gpio name: "MCP23S17 Pin #1" pin: mcp23xxx: mcp23s17_hub # Use pin number 1 number: 1 allow_other_uses: true # One of INPUT or INPUT_PULLUP mode: INPUT_PULLUP inverted: false - platform: gpio name: "MCP23S17 Pin #1 with interrupt" pin: mcp23xxx: mcp23s17_hub # Use pin number 1 allow_other_uses: true number: 1 # One of INPUT or INPUT_PULLUP mode: INPUT_PULLUP inverted: false interrupt: FALLING - platform: gpio pin: allow_other_uses: true number: GPIO9 name: Living Room Window device_class: window filters: - invert: - delayed_on_off: 40ms - delayed_on_off: time_on: 10s time_off: !lambda "return 1000;" - delayed_on: 40ms - delayed_off: 40ms - delayed_on_off: !lambda "return 10;" - delayed_on: !lambda "return 1000;" - delayed_off: !lambda "return 0;" - settle: 40ms - settle: !lambda "return 10;" on_press: then: - lambda: >- ESP_LOGD("main", "Pressed"); on_release: then: - lambda: >- ESP_LOGD("main", "Released"); on_click: - min_length: 50ms max_length: 350ms then: - lambda: >- ESP_LOGD("main", "Clicked"); - then: - lambda: >- ESP_LOGD("main", "Clicked"); on_double_click: - min_length: 50ms max_length: 350ms then: - lambda: >- ESP_LOGD("main", "Double Clicked"); - then: - lambda: >- ESP_LOGD("main", "Double Clicked"); on_multi_click: - timing: - ON for at most 1s - OFF for at most 1s - ON for at most 1s - OFF for at least 0.2s then: - logger.log: format: Multi Clicked TWO level: warn - timing: - OFF for 1s to 2s - ON for 1s to 2s - OFF for at least 0.5s then: - logger.log: format: Multi Clicked LONG SINGLE level: warn - timing: - ON for at most 1s - OFF for at least 0.5s then: - logger.log: format: Multi Clicked SINGLE level: warn id: binary_sensor1 - platform: gpio pin: number: GPIO9 allow_other_uses: true mode: INPUT_PULLUP name: Living Room Window 2 - platform: gpio pin: number: GPIO9 allow_other_uses: true mode: INPUT_OUTPUT_OPEN_DRAIN name: Living Room Button - platform: status name: Living Room Status - platform: esp32_touch name: ESP32 Touch Pad GPIO27 pin: GPIO27 threshold: 1000 id: btn_left on_press: - if: condition: display_menu.is_active: test_lcd_menu then: - display_menu.enter: test_lcd_menu else: - display_menu.left: test_lcd_menu - display_menu.right: test_lcd_menu - display_menu.show: test_lcd_menu - if: condition: display_menu.is_active: test_graphical_display_menu then: - display_menu.enter: test_graphical_display_menu else: - display_menu.left: test_graphical_display_menu - display_menu.right: test_graphical_display_menu - display_menu.show: test_graphical_display_menu - platform: template name: Garage Door Open id: garage_door lambda: |- if (isnan(id(${sensorname}_sensor).state)) { // isnan checks if the ultrasonic sensor echo // has timed out, resulting in a NaN (not a number) state // in that case, return {} to indicate that we don't know. return {}; } else if (id(${sensorname}_sensor).state > 30) { // Garage Door is open. return true; } else { // Garage Door is closed. return false; } on_press: - binary_sensor.template.publish: id: garage_door state: false - output.ledc.set_frequency: id: gpio_19 frequency: 500.0Hz - output.ledc.set_frequency: id: gpio_19 frequency: !lambda "return 500.0;" - platform: pn532 pn532_id: pn532_bs uid: 74-10-37-94 name: PN532 NFC Tag - platform: rdm6300 uid: 7616525 name: RDM6300 NFC Tag - platform: gpio name: PCF binary sensor pin: pcf8574: pcf8574_hub number: 1 mode: INPUT inverted: true - platform: gpio name: PCA9554 binary sensor pin: pca9554: pca9554_hub number: 1 mode: INPUT inverted: true - platform: gpio name: PCA6416A binary sensor pin: pca6416a: pca6416a_hub number: 15 mode: INPUT inverted: true - platform: gpio name: MCP21 binary sensor pin: mcp23xxx: mcp23017_hub number: 1 allow_other_uses: true mode: INPUT inverted: true - platform: gpio name: MCP22 binary sensor pin: mcp23xxx: mcp23008_hub number: 7 mode: INPUT_PULLUP inverted: false - platform: gpio name: MCP23 binary sensor pin: mcp23016: mcp23016_hub number: 7 mode: INPUT inverted: false - platform: gpio name: Speed Fan Cycle binary sensor" pin: number: 18 allow_other_uses: true mode: input: true pulldown: true on_press: - fan.cycle_speed: id: fan_speed off_speed_cycle: false - logger.log: "Cycle speed clicked" - platform: remote_receiver name: Raw Remote Receiver Test raw: code: [ 5685, -4252, 1711, -2265, 1712, -2265, 1711, -2264, 1712, -2266, 3700, -2263, 1712, -4254, 1711, -4249, 1715, -2266, 1710, -2267, 1709, -2265, 3704, -4250, 1712, -4254, 3700, -2260, 1714, -2265, 1712, -2262, 1714, -2267, 1709, ] - platform: remote_receiver name: Coolix Test 1 coolix: 0xB21F98 - platform: remote_receiver name: Coolix Test 2 coolix: first: 0xB2E003 - platform: remote_receiver name: Coolix Test 3 coolix: first: 0xB2E003 second: 0xB21F98 - platform: as3935 name: Storm Alert - platform: analog_threshold name: Analog Trheshold 1 sensor_id: template_sensor threshold: upper: 110 lower: 90 filters: - delayed_on: 0s - delayed_off: 10s - platform: analog_threshold name: Analog Trheshold 2 sensor_id: template_sensor threshold: 100 filters: - invert: - platform: template id: open_endstop_sensor - platform: template id: open_sensor - platform: template id: open_obstacle_sensor - platform: template id: close_endstop_sensor - platform: template id: close_sensor - platform: template id: close_obstacle_sensor - platform: ld2410 has_target: name: presence has_moving_target: name: movement has_still_target: name: still out_pin_presence_status: name: out pin presence status - platform: qwiic_pir i2c_id: i2c_bus name: "Qwiic PIR Motion Sensor" - platform: dfrobot_sen0395 id: mmwave_detected_uart dfrobot_sen0395_id: mmwave - platform: nfc nfcc_id: nfcc_pn7160_i2c ndef_contains: pulse name: MFC Tag 1 - platform: nfc nfcc_id: nfcc_pn7160_i2c tag_id: pulse name: MFC Tag 2 - platform: nfc nfcc_id: nfcc_pn7160_i2c uid: 59-FC-AB-15 name: MFC Tag 3 pca9685: frequency: 500 address: 0x0 i2c_id: i2c_bus tlc59208f: - address: 0x20 id: tlc59208f_1 i2c_id: i2c_bus - address: 0x22 id: tlc59208f_2 i2c_id: i2c_bus - address: 0x24 id: tlc59208f_3 i2c_id: i2c_bus my9231: data_pin: allow_other_uses: true number: GPIO12 clock_pin: allow_other_uses: true number: GPIO14 num_channels: 6 num_chips: 2 bit_depth: 16 sm2235: data_pin: allow_other_uses: true number: GPIO4 clock_pin: allow_other_uses: true number: GPIO5 max_power_color_channels: 9 max_power_white_channels: 9 sm2335: data_pin: allow_other_uses: true number: GPIO4 clock_pin: allow_other_uses: true number: GPIO5 max_power_color_channels: 9 max_power_white_channels: 9 bp1658cj: data_pin: allow_other_uses: true number: GPIO3 clock_pin: allow_other_uses: true number: GPIO5 max_power_color_channels: 4 max_power_white_channels: 6 bp5758d: data_pin: allow_other_uses: true number: GPIO3 clock_pin: allow_other_uses: true number: GPIO5 output: - platform: gpio pin: allow_other_uses: true number: GPIO26 id: gpio_26 power_supply: atx_power_supply inverted: false - platform: ledc pin: allow_other_uses: true number: 19 id: gpio_19 frequency: 1500Hz channel: 14 max_power: 0.5 - platform: pca9685 id: pca_0 channel: 0 - platform: pca9685 id: pca_1 channel: 1 - platform: pca9685 id: pca_2 channel: 2 - platform: pca9685 id: pca_3 channel: 3 - platform: pca9685 id: pca_4 channel: 4 - platform: pca9685 id: pca_5 channel: 5 - platform: pca9685 id: pca_6 channel: 6 - platform: pca9685 id: pca_7 channel: 7 - platform: tlc59208f id: tlc_0 channel: 0 tlc59208f_id: tlc59208f_1 - platform: tlc59208f id: tlc_1 channel: 1 tlc59208f_id: tlc59208f_1 - platform: tlc59208f id: tlc_2 channel: 2 tlc59208f_id: tlc59208f_1 - platform: tlc59208f id: tlc_3 channel: 0 tlc59208f_id: tlc59208f_2 - platform: tlc59208f id: tlc_4 channel: 1 tlc59208f_id: tlc59208f_2 - platform: tlc59208f id: tlc_5 channel: 2 tlc59208f_id: tlc59208f_2 - platform: tlc59208f id: tlc_6 channel: 0 tlc59208f_id: tlc59208f_3 - platform: tlc59208f id: tlc_7 channel: 1 tlc59208f_id: tlc59208f_3 - platform: tlc59208f id: tlc_8 channel: 2 tlc59208f_id: tlc59208f_3 - platform: gpio id: id2 pin: pcf8574: pcf8574_hub number: 0 # allow_other_uses: true mode: OUTPUT inverted: false - platform: gpio id: id26 pin: pca9554: pca9554_hub number: 0 # allow_other_uses: true mode: OUTPUT inverted: false - platform: gpio id: id22 pin: mcp23xxx: mcp23017_hub number: 0 mode: OUTPUT inverted: false - platform: gpio id: id23 pin: mcp23xxx: mcp23008_hub number: 0 mode: OUTPUT inverted: false - platform: gpio id: id25 pin: mcp23016: mcp23016_hub number: 0 mode: OUTPUT inverted: false - platform: my9231 id: my_0 channel: 0 - platform: my9231 id: my_1 channel: 1 - platform: my9231 id: my_2 channel: 2 - platform: my9231 id: my_3 channel: 3 - platform: my9231 id: my_4 channel: 4 - platform: my9231 id: my_5 channel: 5 - platform: sm2235 id: sm2235_red channel: 1 - platform: sm2235 id: sm2235_green channel: 0 - platform: sm2235 id: sm2235_blue channel: 2 - platform: sm2235 id: sm2235_coldwhite channel: 4 - platform: sm2235 id: sm2235_warmwhite channel: 3 - platform: sm2335 id: sm2335_red channel: 1 - platform: sm2335 id: sm2335_green channel: 0 - platform: sm2335 id: sm2335_blue channel: 2 - platform: sm2335 id: sm2335_coldwhite channel: 4 - platform: sm2335 id: sm2335_warmwhite channel: 3 - platform: slow_pwm id: id24 pin: allow_other_uses: true number: GPIO26 period: 15s - platform: ac_dimmer id: dimmer1 gate_pin: allow_other_uses: true number: GPIO5 zero_cross_pin: allow_other_uses: true number: GPIO26 - platform: esp32_dac pin: allow_other_uses: true number: GPIO25 id: dac_output - platform: mcp4725 id: mcp4725_dac_output i2c_id: i2c_bus - platform: mcp4728 id: mcp4728_dac_output_a channel: A vref: vdd power_down: normal - platform: mcp4728 id: mcp4728_dac_output_b channel: B vref: internal gain: X1 power_down: gnd_1k - platform: mcp4728 id: mcp4728_dac_output_c channel: C vref: vdd power_down: gnd_100k - platform: mcp4728 id: mcp4728_dac_output_d channel: D vref: internal gain: X2 power_down: gnd_500k - platform: bp1658cj id: bp1658cj_red channel: 1 - platform: bp1658cj id: bp1658cj_green channel: 2 - platform: bp1658cj id: bp1658cj_blue channel: 0 - platform: bp1658cj id: bp1658cj_coldwhite channel: 3 - platform: bp1658cj id: bp1658cj_warmwhite channel: 4 - platform: bp5758d id: bp5758d_red channel: 2 current: 10 - platform: bp5758d id: bp5758d_green channel: 3 current: 10 - platform: bp5758d id: bp5758d_blue channel: 1 current: 10 - platform: bp5758d id: bp5758d_coldwhite channel: 5 current: 10 - platform: bp5758d id: bp5758d_warmwhite channel: 4 current: 10 - platform: x9c id: test_x9c cs_pin: allow_other_uses: true number: GPIO25 inc_pin: allow_other_uses: true number: GPIO26 ud_pin: allow_other_uses: true number: GPIO27 initial_value: 0.5 light: - platform: binary name: Desk Lamp output: gpio_26 effects: - strobe: - strobe: name: My Strobe colors: - state: true duration: 250ms - state: false duration: 250ms on_turn_on: - switch.template.publish: id: livingroom_lights state: true on_turn_off: - switch.template.publish: id: livingroom_lights state: true - platform: monochromatic name: Kitchen Lights id: kitchen output: gpio_19 gamma_correct: 2.8 default_transition_length: 2s effects: - strobe: - flicker: - flicker: name: My Flicker alpha: 98% intensity: 1.5% - lambda: name: My Custom Effect update_interval: 1s lambda: |- static int state = 0; state += 1; if (state == 4) state = 0; - pulse: transition_length: 10s update_interval: 20s min_brightness: 10% max_brightness: 90% - pulse: name: pulse2 transition_length: on_length: 10s off_length: 5s update_interval: 15s min_brightness: 10% max_brightness: 90% - platform: rgb name: Living Room Lights id: ${roomname}_lights red: pca_0 green: pca_1 blue: pca_2 - platform: rgbw name: Living Room Lights 2 red: pca_3 green: pca_4 blue: pca_5 white: pca_6 color_interlock: true - platform: rgbww name: Living Room Lights 2 red: pca_3 green: pca_4 blue: pca_5 cold_white: pca_6 warm_white: pca_6 cold_white_color_temperature: 153 mireds warm_white_color_temperature: 500 mireds color_interlock: true - platform: rgbct name: Living Room Lights 2 red: pca_3 green: pca_4 blue: pca_5 color_temperature: pca_6 white_brightness: pca_6 cold_white_color_temperature: 153 mireds warm_white_color_temperature: 500 mireds color_interlock: true - platform: cwww name: Living Room Lights 2 cold_white: pca_6 warm_white: pca_6 cold_white_color_temperature: 153 mireds warm_white_color_temperature: 500 mireds constant_brightness: true - platform: color_temperature name: Living Room Lights 2 color_temperature: pca_6 brightness: pca_6 cold_white_color_temperature: 153 mireds warm_white_color_temperature: 500 mireds remote_transmitter: - pin: allow_other_uses: true number: 32 carrier_duty_percent: 100% climate: - platform: tcl112 name: TCL112 Climate With Sensor supports_heat: true supports_cool: true sensor: ${sensorname}_sensor - platform: tcl112 name: TCL112 Climate action_state_topic: action/state/topic away_command_topic: away/command/topic away_state_topic: away/state/topic current_temperature_state_topic: current/temperature/state/topic fan_mode_command_topic: fan_mode/mode/command/topic fan_mode_state_topic: fan_mode/mode/state/topic mode_command_topic: mode/command/topic mode_state_topic: mode/state/topic swing_mode_command_topic: swing_mode/command/topic swing_mode_state_topic: swing_mode/state/topic target_temperature_command_topic: target/temperature/command/topic target_temperature_high_command_topic: target/temperature/high/command/topic target_temperature_high_state_topic: target/temperature/high/state/topic target_temperature_low_command_topic: target/temperature/low/command/topic target_temperature_low_state_topic: target/temperature/low/state/topic target_temperature_state_topic: target/temperature/state/topic - platform: coolix name: Coolix Climate With Sensor supports_heat: true supports_cool: true sensor: ${sensorname}_sensor - platform: coolix name: Coolix Climate - platform: fujitsu_general name: Fujitsu General Climate - platform: daikin name: Daikin Climate - platform: daikin_brc name: Daikin BRC Climate use_fahrenheit: true - platform: delonghi name: Delonghi Climate - platform: yashima name: Yashima Climate - platform: mitsubishi name: Mitsubishi - platform: whirlpool name: Whirlpool Climate - platform: climate_ir_lg name: LG Climate - platform: toshiba name: Toshiba Climate - platform: hitachi_ac344 name: Hitachi Climate - platform: heatpumpir protocol: mitsubishi_heavy_zm horizontal_default: left vertical_default: up name: HeatpumpIR Climate min_temperature: 18 max_temperature: 30 - platform: heatpumpir protocol: greeyt horizontal_default: left vertical_default: up name: HeatpumpIR Climate min_temperature: 18 max_temperature: 30 - platform: midea_ir name: Midea IR use_fahrenheit: true - platform: midea on_control: - logger.log: Control message received! - lambda: |- x.set_mode(CLIMATE_MODE_FAN_ONLY); on_state: - logger.log: State changed! - lambda: |- if (x.mode == CLIMATE_MODE_FAN_ONLY) id(binary_sensor1).publish_state(true); id: midea_unit uart_id: uart_0 name: Midea Climate transmitter_id: period: 1s num_attempts: 5 timeout: 2s beeper: false autoconf: true visual: min_temperature: 17 °C max_temperature: 30 °C temperature_step: 0.5 °C supported_modes: - FAN_ONLY - HEAT_COOL - COOL - HEAT - DRY custom_fan_modes: - SILENT - TURBO supported_presets: - ECO - BOOST - SLEEP custom_presets: - FREEZE_PROTECTION supported_swing_modes: - VERTICAL - HORIZONTAL - BOTH outdoor_temperature: name: Temp power_usage: name: Power humidity_setpoint: name: Humidity - platform: anova name: Anova cooker ble_client_id: ble_blah unit_of_measurement: c icon: mdi:stove - platform: bedjet name: My Bedjet bedjet_id: my_bedjet_client heat_mode: extended - platform: whynter name: Whynter - platform: noblex name: AC Living id: noblex_ac sensor: ${sensorname}_sensor receiver_id: rcvr - platform: gree name: GREE model: generic - platform: zhlt01 name: ZH/LT-01 Climate script: - id: climate_custom then: - climate.control: id: midea_unit custom_preset: FREEZE_PROTECTION custom_fan_mode: SILENT - id: climate_preset then: - climate.control: id: midea_unit preset: SLEEP switch: - platform: template name: MIDEA_AC_BEEPER_CONTROL optimistic: true turn_on_action: midea_ac.beeper_on: turn_off_action: midea_ac.beeper_off: - platform: template name: MIDEA_RAW turn_on_action: - remote_transmitter.transmit_coolix: first: 0xB21F98 - remote_transmitter.transmit_coolix: first: 0xB21F98 second: 0xB21F98 - remote_transmitter.transmit_coolix: first: !lambda "return 0xB21F98;" second: !lambda "return 0xB21F98;" - remote_transmitter.transmit_midea: code: [0xA2, 0x08, 0xFF, 0xFF, 0xFF] - remote_transmitter.transmit_midea: code: !lambda "return {0xA2, 0x08, 0xFF, 0xFF, 0xFF};" - platform: gpio name: "MCP23S08 Pin #0" pin: mcp23xxx: mcp23s08_hub # Use pin number 0 number: 0 mode: OUTPUT inverted: false - platform: gpio name: "MCP23S17 Pin #0" pin: mcp23xxx: mcp23s17_hub # Use pin number 0 number: 1 allow_other_uses: true mode: OUTPUT inverted: false - platform: gpio pin: allow_other_uses: true number: GPIO25 name: Living Room Dehumidifier icon: "mdi:restart" inverted: true command_topic: custom_command_topic command_retain: true restore_mode: ALWAYS_OFF - platform: template name: JVC Off id: living_room_lights_on turn_on_action: remote_transmitter.transmit_jvc: data: 0x10EF - platform: template name: MagiQuest turn_on_action: remote_transmitter.transmit_magiquest: wand_id: 0x01234567 - platform: template name: NEC id: living_room_lights_off turn_on_action: remote_transmitter.transmit_nec: address: 0x4242 command: 0x8484 - platform: template name: LG turn_on_action: remote_transmitter.transmit_lg: data: 4294967295 nbits: 28 - platform: template name: Samsung turn_on_action: remote_transmitter.transmit_samsung: data: 0xABCDEF - platform: template name: Samsung36 turn_on_action: remote_transmitter.transmit_samsung36: address: 0x0400 command: 0x000E00FF - platform: template name: ToshibaAC turn_on_action: - remote_transmitter.transmit_toshiba_ac: rc_code_1: 0xB24DBF4050AF rc_code_2: 0xD5660001003C - platform: template name: Sony turn_on_action: remote_transmitter.transmit_sony: data: 0xABCDEF nbits: 12 - platform: template name: Panasonic turn_on_action: remote_transmitter.transmit_panasonic: address: 0x4004 command: 0x1000BCD - platform: template name: Pioneer turn_on_action: - remote_transmitter.transmit_pioneer: rc_code_1: 0xA556 rc_code_2: 0xA506 repeat: times: 2 - platform: template name: RC Switch Raw turn_on_action: remote_transmitter.transmit_rc_switch_raw: code: "00101001100111110101xxxx" protocol: 1 - platform: template name: RC Switch Type A turn_on_action: remote_transmitter.transmit_rc_switch_type_a: group: "11001" device: "01000" state: true protocol: pulse_length: 175 sync: [1, 31] zero: [1, 3] one: [3, 1] inverted: false - platform: template name: RC Switch Type B turn_on_action: remote_transmitter.transmit_rc_switch_type_b: address: 4 channel: 2 state: true - platform: template name: RC Switch Type C turn_on_action: remote_transmitter.transmit_rc_switch_type_c: family: "a" group: 1 device: 2 state: true - platform: template name: RC Switch Type D turn_on_action: remote_transmitter.transmit_rc_switch_type_d: group: "a" device: 2 state: true - platform: template name: RC5 turn_on_action: remote_transmitter.transmit_rc5: address: 0x00 command: 0x0B - platform: template name: RC5 turn_on_action: remote_transmitter.transmit_raw: code: [1000, -1000] - platform: template name: AEHA id: eaha_hitachi_climate_power_on turn_on_action: remote_transmitter.transmit_aeha: address: 0x8008 data: [ 0x00, 0x02, 0xFD, 0xFF, 0x00, 0x33, 0xCC, 0x49, 0xB6, 0xC8, 0x37, 0x16, 0xE9, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xCA, 0x35, 0x8F, 0x70, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, ] - platform: template name: Haier turn_on_action: remote_transmitter.transmit_haier: code: [ 0xA6, 0xDA, 0x00, 0x00, 0x40, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x05, ] - platform: template name: Living Room Lights id: livingroom_lights optimistic: true assumed_state: true turn_on_action: - switch.turn_on: living_room_lights_on - output.set_level: id: gpio_19 level: 50% - output.set_level: id: gpio_19 level: !lambda "return 0.5;" - output.set_level: id: dac_output level: 50% - output.set_level: id: dac_output level: !lambda "return 0.5;" - output.set_level: id: mcp4725_dac_output level: !lambda "return 0.5;" - output.set_level: id: mcp4728_dac_output_a level: !lambda "return 0.5;" turn_off_action: - switch.turn_on: living_room_lights_off on_turn_on: - switch.template.publish: id: livingroom_lights state: true - platform: restart name: Living Room Restart - platform: safe_mode name: Living Room Restart (Safe Mode) - platform: factory_reset name: Living Room Restart (Factory Default Settings) - platform: shutdown name: Living Room Shutdown - platform: output name: Generic Output output: pca_6 - platform: template name: Template Switch id: my_switch lambda: |- if (id(binary_sensor1).state) { return true; } else { return {}; } id(my_switch).publish_state(false); id(my_switch).publish_state(true); if (id(my_switch).state) { // Switch is ON, do something here id(my_switch).turn_off(); id(my_switch).turn_on(); } else { // Switch is OFF, do something else here } optimistic: true assumed_state: false on_turn_off: - switch.template.publish: id: my_switch state: !lambda "return false;" - platform: uart uart_id: uart_0 name: UART String Output data: DataToSend - platform: uart uart_id: uart_0 name: UART Bytes Output data: [0xDE, 0xAD, 0xBE, 0xEF] - platform: uart uart_id: uart_0 name: UART Recurring Output data: [0xDE, 0xAD, 0xBE, 0xEF] send_every: 1s - platform: uart uart_id: uart_0 name: "UART On/Off" data: turn_on: "TurnOn\r\n" turn_off: "TurnOff\r\n" - platform: template assumed_state: true name: Stepper Switch turn_on_action: - stepper.set_target: id: my_stepper target: !lambda |- static int32_t i = 0; i += 1000; if (i > 5000) { i = -5000; } return i; - stepper.report_position: id: my_stepper position: 0 - platform: gpio name: "SN74HC595 Pin #0" pin: sn74hc595: sn74hc595_hub_2 # Use pin number 0 number: 0 inverted: false - platform: template id: ble1_status optimistic: true - platform: template id: outlet_switch optimistic: true device_class: outlet - platform: ld2410 engineering_mode: name: "control ld2410 engineering mode" bluetooth: name: "control ld2410 bluetooth" - platform: micronova stove: name: Stove on/off fan: - platform: binary output: gpio_26 name: Living Room Fan 1 oscillation_output: gpio_19 direction_output: gpio_26 - platform: speed id: fan_speed icon: mdi:weather-windy output: pca_6 speed_count: 10 name: Living Room Fan 2 oscillation_output: gpio_19 direction_output: gpio_26 oscillation_state_topic: oscillation/state/topic oscillation_command_topic: oscillation/command/topic speed_level_state_topic: speed_level/state/topic speed_level_command_topic: speed_level/command/topic speed_state_topic: speed/state/topic speed_command_topic: speed/command/topic on_speed_set: then: - logger.log: Fan speed was changed! - platform: speed id: fan_speed_presets icon: mdi:weather-windy output: pca_6 speed_count: 10 name: Speed Fan w/ Presets oscillation_output: gpio_19 direction_output: gpio_26 preset_modes: - Preset 1 - Preset 2 on_preset_set: then: - logger.log: Preset mode was changed! - platform: hbridge id: fan_hbridge_presets icon: mdi:weather-windy speed_count: 4 name: H-bridge Fan w/ Presets pin_a: pca_6 pin_b: pca_7 preset_modes: - Preset 1 - Preset 2 on_preset_set: then: - logger.log: Preset mode was changed! - platform: bedjet name: My Bedjet fan bedjet_id: my_bedjet_client - platform: copy source_id: fan_speed name: Fan Speed Copy interval: - interval: 10s then: - display.page.show: !lambda |- if (true) return id(page1); else return id(page2); - display.page.show_next: display1 - display.page.show_previous: display1 - interval: 2s then: # yamllint disable rule:line-length - lambda: |- static uint16_t btn_left_state = id(btn_left)->get_value(); ESP_LOGD("adaptive touch", "___ Touch Pad '%s' (T%u): val: %u state: %u tres:%u", id(btn_left)->get_name().c_str(), id(btn_left)->get_touch_pad(), id(btn_left)->get_value(), btn_left_state, id(btn_left)->get_threshold()); btn_left_state = ((uint32_t) id(btn_left)->get_value() + 63 * (uint32_t)btn_left_state) >> 6; id(btn_left)->set_threshold(btn_left_state * 0.9); # yamllint enable rule:line-length - if: condition: display.is_displaying_page: id: display1 page_id: page1 then: - logger.log: Seeing page 1 - interval: 60min then: - ble_client.connect: ble_blah - ble_client.ble_write: id: ble_blah service_uuid: EBE0CCB0-7A0A-4B0C-8A1A-6FF2997DA3A6 characteristic_uuid: EBE0CCB7-7A0A-4B0C-8A1A-6FF2997DA3A6 value: !lambda |- return {1, 0}; - ble_client.disconnect: ble_blah color: - id: kbx_red red: 100% green_int: 123 blue: 2% - id: kbx_blue red: 0% green: 1% blue: 100% - id: kbx_green hex: "3DEC55" - id: layout_black red: 100% green: 100% blue: 100% - id: layout_white red: 0% green: 0% blue: 0% display: - platform: lcd_gpio id: my_lcd_gpio dimensions: 18x4 data_pins: - allow_other_uses: true number: GPIO19 - allow_other_uses: true number: GPIO21 - allow_other_uses: true number: GPIO22 - allow_other_uses: true number: GPIO23 enable_pin: allow_other_uses: true number: GPIO23 rs_pin: allow_other_uses: true number: GPIO25 lambda: |- it.print("Hello World!"); - platform: lcd_pcf8574 dimensions: 18x4 address: 0x3F user_characters: - position: 0 data: - 0b00000 - 0b01010 - 0b00000 - 0b00100 - 0b00100 - 0b10001 - 0b01110 - 0b00000 lambda: |- it.print("Hello World!"); i2c_id: i2c_bus - platform: max7219 cs_pin: allow_other_uses: true number: GPIO23 num_chips: 1 lambda: |- it.print("01234567"); - platform: tm1637 clk_pin: allow_other_uses: true number: GPIO23 dio_pin: allow_other_uses: true number: GPIO25 intensity: 3 lambda: |- it.print("1234"); - platform: tm1637 clk_pin: mcp23xxx: mcp23017_hub number: 1 allow_other_uses: true dio_pin: mcp23xxx: mcp23017_hub number: 2 intensity: 3 inverted: true length: 4 lambda: |- it.print("1234"); - platform: pcd8544 cs_pin: allow_other_uses: true number: GPIO23 dc_pin: allow_other_uses: true number: GPIO23 reset_pin: allow_other_uses: true number: GPIO23 contrast: 60 lambda: |- it.rectangle(0, 0, it.get_width(), it.get_height()); - platform: ssd1306_i2c model: SSD1306_128X64 reset_pin: allow_other_uses: true number: GPIO23 address: 0x3C id: display1 contrast: 60% pages: - id: page1 lambda: |- it.qr_code(0, 0, id(homepage_qr)); it.rectangle(0, 0, it.get_width(), it.get_height()); - id: page2 lambda: |- // Nothing on_page_change: from: page1 to: page2 then: lambda: |- ESP_LOGD("display", "1 -> 2"); i2c_id: i2c_bus - platform: ssd1306_spi model: SSD1306 128x64 cs_pin: allow_other_uses: true number: GPIO23 dc_pin: allow_other_uses: true number: GPIO23 reset_pin: allow_other_uses: true number: GPIO23 lambda: |- it.rectangle(0, 0, it.get_width(), it.get_height()); - platform: ssd1322_spi model: SSD1322 256x64 cs_pin: allow_other_uses: true number: GPIO23 dc_pin: allow_other_uses: true number: GPIO23 reset_pin: allow_other_uses: true number: GPIO23 lambda: |- it.rectangle(0, 0, it.get_width(), it.get_height()); - platform: ssd1325_spi model: SSD1325 128x64 cs_pin: allow_other_uses: true number: GPIO23 dc_pin: allow_other_uses: true number: GPIO23 reset_pin: allow_other_uses: true number: GPIO23 lambda: |- it.rectangle(0, 0, it.get_width(), it.get_height()); - platform: ssd1327_i2c model: SSD1327 128X128 reset_pin: allow_other_uses: true number: GPIO23 address: 0x3D id: display1327 brightness: 60% pages: - id: page13271 lambda: |- it.rectangle(0, 0, it.get_width(), it.get_height()); - id: page13272 lambda: |- // Nothing i2c_id: i2c_bus - platform: ssd1327_spi model: SSD1327 128x128 cs_pin: allow_other_uses: true number: GPIO23 dc_pin: allow_other_uses: true number: GPIO23 reset_pin: allow_other_uses: true number: GPIO23 lambda: |- it.rectangle(0, 0, it.get_width(), it.get_height()); - platform: ssd1331_spi cs_pin: allow_other_uses: true number: GPIO23 dc_pin: allow_other_uses: true number: GPIO23 reset_pin: allow_other_uses: true number: GPIO23 lambda: |- it.rectangle(0, 0, it.get_width(), it.get_height()); - platform: ssd1351_spi model: SSD1351 128x128 cs_pin: allow_other_uses: true number: GPIO23 dc_pin: allow_other_uses: true number: GPIO23 reset_pin: allow_other_uses: true number: GPIO23 lambda: |- it.rectangle(0, 0, it.get_width(), it.get_height()); - platform: st7789v model: TTGO TDisplay 135x240 cs_pin: allow_other_uses: true number: GPIO5 dc_pin: allow_other_uses: true number: GPIO16 reset_pin: allow_other_uses: true number: GPIO23 backlight_pin: false lambda: |- it.rectangle(0, 0, it.get_width(), it.get_height()); - platform: st7920 width: 128 height: 64 cs_pin: allow_other_uses: true number: GPIO23 inverted: true lambda: |- it.rectangle(0, 0, it.get_width(), it.get_height()); - platform: st7567_i2c id: st7735_display_i2c address: 0x3F i2c_id: i2c_bus lambda: |- it.rectangle(0, 0, it.get_width(), it.get_height()); - platform: st7567_spi id: st7735_display_spi cs_pin: allow_other_uses: true number: GPIO5 dc_pin: allow_other_uses: true number: GPIO16 reset_pin: allow_other_uses: true number: GPIO23 lambda: |- it.rectangle(0, 0, it.get_width(), it.get_height()); - platform: st7735 id: st7735_display model: INITR_BLACKTAB cs_pin: allow_other_uses: true number: GPIO5 dc_pin: allow_other_uses: true number: GPIO16 reset_pin: allow_other_uses: true number: GPIO23 rotation: 0 device_width: 128 device_height: 160 col_start: 0 row_start: 0 lambda: |- it.rectangle(0, 0, it.get_width(), it.get_height()); - platform: ili9xxx invert_colors: true dimensions: 320x240 transform: swap_xy: true mirror_x: true mirror_y: false model: TFT 2.4 cs_pin: allow_other_uses: true number: GPIO5 dc_pin: allow_other_uses: true number: GPIO4 color_palette: GRAYSCALE reset_pin: allow_other_uses: true number: GPIO22 lambda: |- it.rectangle(0, 0, it.get_width(), it.get_height()); - platform: ili9xxx dimensions: width: 320 height: 240 offset_width: 20 offset_height: 10 model: TFT 2.4 cs_pin: allow_other_uses: true number: GPIO5 dc_pin: allow_other_uses: true number: GPIO4 reset_pin: allow_other_uses: true number: GPIO22 auto_clear_enabled: false rotation: 90 lambda: |- if (!id(glob_bool_processed)) { it.fill(Color::WHITE); id(glob_bool_processed) = true; } - platform: pvvx_mithermometer ble_client_id: ble_foo time_id: sntp_time disconnect_delay: 3s update_interval: 10min validity_period: 20min lambda: |- it.print_bignum(188.8); it.print_unit(pvvx_mithermometer::UNIT_DEG_E); it.print_smallnum(88); it.print_percent(true); it.print_happy(true); it.print_sad(true); it.print_bracket(true); it.print_battery(true); - platform: tm1621 id: tm1621_display cs_pin: allow_other_uses: true number: GPIO17 data_pin: allow_other_uses: true number: GPIO5 read_pin: allow_other_uses: true number: GPIO23 write_pin: allow_other_uses: true number: GPIO18 lambda: |- it.printf(0, "%.1f", id(dht_temperature).state); it.display_celsius(true); it.printf(1, "%.1f", id(dht_humidity).state); it.display_humidity(true); tm1651: id: tm1651_battery clk_pin: allow_other_uses: true number: GPIO23 dio_pin: allow_other_uses: true number: GPIO23 remote_receiver: id: rcvr pin: allow_other_uses: true number: GPIO32 dump: all on_coolix: then: delay: !lambda "return x.first + x.second;" on_rc_switch: then: delay: !lambda "return uint32_t(x.code) + x.protocol;" status_led: pin: allow_other_uses: true number: GPIO2 ignore_strapping_warning: true pn532_spi: id: pn532_bs cs_pin: allow_other_uses: true number: GPIO23 update_interval: 1s on_tag: - lambda: |- ESP_LOGD("main", "Found tag %s", x.c_str()); - mqtt.publish: topic: the/topic payload: !lambda "return x;" on_tag_removed: - lambda: |- ESP_LOGD("main", "Removed tag %s", x.c_str()); - mqtt.publish: topic: the/topic payload: !lambda "return x;" pn532_i2c: i2c_id: i2c_bus pn7150_i2c: id: nfcc_pn7150_i2c i2c_id: i2c_bus irq_pin: allow_other_uses: true number: GPIO32 ven_pin: allow_other_uses: true number: GPIO16 pn7160_i2c: id: nfcc_pn7160_i2c i2c_id: i2c_bus dwl_req_pin: allow_other_uses: true number: GPIO17 irq_pin: allow_other_uses: true number: GPIO35 ven_pin: allow_other_uses: true number: GPIO16 wkup_req_pin: allow_other_uses: true number: GPIO21 emulation_message: https://www.home-assistant.io/tag/pulse_ce tag_ttl: 1000ms pn7160_spi: id: nfcc_pn7160_spi cs_pin: number: GPIO15 dwl_req_pin: allow_other_uses: true number: GPIO17 irq_pin: allow_other_uses: true number: GPIO35 ven_pin: allow_other_uses: true number: GPIO16 wkup_req_pin: allow_other_uses: true number: GPIO21 emulation_message: https://www.home-assistant.io/tag/pulse_ce tag_ttl: 1000ms rdm6300: uart_id: uart_0 rc522_spi: cs_pin: allow_other_uses: true number: GPIO23 update_interval: 1s on_tag: - lambda: |- ESP_LOGD("main", "Found tag %s", x.c_str()); rc522_i2c: - update_interval: 1s on_tag: - lambda: |- ESP_LOGD("main", "Found tag %s", x.c_str()); i2c_id: i2c_bus - update_interval: 1s on_tag: - lambda: |- ESP_LOGD("main", "Found tag %s", x.c_str()); i2c_id: i2c_bus mcp4728: - id: mcp4728_dac store_in_eeprom: false address: 0x60 i2c_id: i2c_bus gps: uart_id: uart_0 time: - platform: sntp id: sntp_time servers: - 0.pool.ntp.org - 1.pool.ntp.org - 192.168.178.1 on_time: cron: "/30 0-30,30/5 * ? JAN-DEC MON,SAT-SUN,TUE-FRI" then: - lambda: 'ESP_LOGD("main", "time");' - platform: gps on_time_sync: then: ds1307.write_time: id: ds1307_time - platform: ds1307 id: ds1307_time update_interval: never i2c_id: i2c_bus on_time: - seconds: 0 then: ds1307.read_time - at: "16:00:00" then: - if: condition: or: - binary_sensor.is_on: close_sensor - binary_sensor.is_on: open_sensor then: logger.log: "close_sensor or open_sensor is on" - if: condition: and: - binary_sensor.is_on: close_sensor - binary_sensor.is_on: open_sensor then: logger.log: "close_sensor and open_sensor are both on" - if: condition: xor: - binary_sensor.is_on: close_sensor - binary_sensor.is_on: open_sensor then: logger.log: "close_sensor or open_sensor is exclusively on" - if: condition: not: - binary_sensor.is_on: close_sensor then: logger.log: "close_sensor is not on" cover: - platform: template name: Template Cover id: template_cover lambda: |- if (id(binary_sensor1).state) { return COVER_OPEN; } else { return {}; } optimistic: true open_action: - cover.template.publish: id: template_cover state: CLOSED assumed_state: false has_position: true position_state_topic: position/state/topic position_command_topic: position/command/topic tilt_lambda: !lambda "return 0.5;" tilt_state_topic: tilt/state/topic tilt_command_topic: tilt/command/topic on_open: then: - lambda: 'ESP_LOGD("cover", "open");' on_closed: then: - lambda: 'ESP_LOGD("cover", "closed");' - platform: am43 name: Test AM43 id: am43_test ble_client_id: ble_foo icon: mdi:blinds - platform: feedback name: Feedback Cover id: gate device_class: gate infer_endstop_from_movement: false has_built_in_endstop: false max_duration: 30s direction_change_wait_time: 300ms acceleration_wait_time: 150ms obstacle_rollback: 10% open_duration: 22.1s open_endstop: open_endstop_sensor open_sensor: open_sensor open_obstacle_sensor: open_obstacle_sensor close_duration: 22.4s close_endstop: close_endstop_sensor close_sensor: close_sensor close_obstacle_sensor: close_obstacle_sensor open_action: - logger.log: Open Action close_action: - logger.log: Close Action stop_action: - logger.log: Stop Action debug: tca9548a: - address: 0x70 id: multiplex0 channels: - bus_id: multiplex0_chan0 channel: 0 i2c_id: i2c_bus - address: 0x71 id: multiplex1 i2c_id: multiplex0_chan0 pcf8574: - id: pcf8574_hub address: 0x21 pcf8575: false i2c_id: i2c_bus pca9554: - id: pca9554_hub pin_count: 8 address: 0x3F i2c_id: i2c_bus pca6416a: - id: pca6416a_hub address: 0x21 i2c_id: i2c_bus mcp23017: - id: mcp23017_hub open_drain_interrupt: true i2c_id: i2c_bus mcp23008: - id: mcp23008_hub address: 0x22 open_drain_interrupt: true i2c_id: i2c_bus mcp23016: - id: mcp23016_hub address: 0x23 i2c_id: i2c_bus stepper: - platform: a4988 id: my_stepper step_pin: allow_other_uses: true number: GPIO23 dir_pin: allow_other_uses: true number: GPIO25 sleep_pin: allow_other_uses: true number: GPIO25 max_speed: 250 steps/s acceleration: 100 steps/s^2 deceleration: 200 steps/s^2 globals: - id: glob_int type: int restore_value: true initial_value: "0" - id: glob_float type: float restore_value: true initial_value: "0.0f" - id: glob_bool type: bool restore_value: false initial_value: "true" - id: glob_string type: std::string restore_value: false # initial_value: "" - id: glob_bool_processed type: bool restore_value: false initial_value: "false" text_sensor: - platform: ble_client ble_client_id: ble_foo name: Sensor Location service_uuid: "180d" characteristic_uuid: "2a38" descriptor_uuid: "2902" notify: true update_interval: never on_notify: then: - lambda: |- ESP_LOGD("green_btn", "Location changed: %s", x.c_str()); - platform: mqtt_subscribe name: MQTT Subscribe Text topic: "the/topic" qos: 2 on_value: - text_sensor.template.publish: id: ${textname}_text state: Hello World - text_sensor.template.publish: id: ${textname}_text state: |- return "Hello World2"; - globals.set: id: glob_int value: "0" - canbus.send: canbus_id: mcp2515_can can_id: 23 data: [0x10, 0x20, 0x30] - canbus.send: canbus_id: mcp2515_can can_id: 23 data: !lambda return {0x10, 0x20, 0x30}; - canbus.send: canbus_id: esp32_internal_can can_id: 23 data: [0x10, 0x20, 0x30] - canbus.send: canbus_id: mcp2515_can can_id: 24 remote_transmission_request: true data: [] - canbus.send: canbus_id: esp32_internal_can can_id: 24 remote_transmission_request: true data: [] - platform: template name: Template Text Sensor id: ${textname}_text - platform: wifi_info scan_results: name: Scan Results ip_address: name: IP Address ssid: name: SSID bssid: name: BSSID mac_address: name: Mac Address dns_address: name: DNS ADdress - platform: version name: ESPHome Version No Timestamp hide_timestamp: true - platform: teleinfo tag_name: OPTARIF name: optarif teleinfo_id: myteleinfo - platform: ld2410 version: name: "presenece sensor version" mac_address: name: "presenece sensor mac address" sn74hc595: - id: sn74hc595_hub data_pin: allow_other_uses: true number: GPIO21 clock_pin: allow_other_uses: true number: GPIO23 latch_pin: allow_other_uses: true number: GPIO22 oe_pin: allow_other_uses: true number: GPIO32 sr_count: 2 - id: sn74hc595_hub_2 latch_pin: allow_other_uses: true number: GPIO22 oe_pin: allow_other_uses: true number: GPIO32 sr_count: 2 spi_id: spi_bus rtttl: output: gpio_19 canbus: - platform: mcp2515 id: mcp2515_can cs_pin: pca9554: pca9554_hub number: 7 mode: output: true inverted: true can_id: 4 bit_rate: 50kbps on_frame: - can_id: 500 then: - lambda: |- std::string b(x.begin(), x.end()); ESP_LOGD("canid 500", "%s", b.c_str()); - can_id: 23 then: - if: condition: lambda: "return x[0] == 0x11;" then: light.toggle: ${roomname}_lights - can_id: 0b00000000000000000000001000000 can_id_mask: 0b11111000000000011111111000000 use_extended_id: true then: - lambda: |- auto pdo_id = can_id >> 14; switch (pdo_id) { case 117: ESP_LOGD("canbus", "exhaust_fan_duty"); break; case 118: ESP_LOGD("canbus", "supply_fan_duty"); break; case 119: ESP_LOGD("canbus", "supply_fan_flow"); break; // to be continued... } - platform: esp32_can id: esp32_internal_can rx_pin: allow_other_uses: true number: GPIO04 tx_pin: allow_other_uses: true number: GPIO05 can_id: 4 bit_rate: 50kbps on_frame: - can_id: 500 then: - lambda: |- std::string b(x.begin(), x.end()); ESP_LOGD("canid 500", "%s", b.c_str() ); - can_id: 23 then: - if: condition: lambda: "return x[0] == 0x11;" then: light.toggle: ${roomname}_lights - can_id: 0b00000000000000000000001000000 can_id_mask: 0b11111000000000011111111000000 use_extended_id: true then: - lambda: |- auto pdo_id = can_id >> 14; switch (pdo_id) { case 117: ESP_LOGD("canbus", "exhaust_fan_duty"); break; case 118: ESP_LOGD("canbus", "supply_fan_duty"); break; case 119: ESP_LOGD("canbus", "supply_fan_flow"); break; // to be continued... } teleinfo: id: myteleinfo uart_id: uart_0 update_interval: 60s historical_mode: true number: - platform: template id: test_number state_topic: livingroom/custom_state_topic command_topic: livingroom/custom_command_topic min_value: 0 step: 1 max_value: 10 optimistic: true - platform: ld2410 light_threshold: name: light threshold timeout: name: timeout max_move_distance_gate: name: max move distance gate max_still_distance_gate: name: max still distance gate g0: move_threshold: name: g0 move threshold still_threshold: name: g0 still threshold g1: move_threshold: name: g1 move threshold still_threshold: name: g1 still threshold g2: move_threshold: name: g2 move threshold still_threshold: name: g2 still threshold g3: move_threshold: name: g3 move threshold still_threshold: name: g3 still threshold g4: move_threshold: name: g4 move threshold still_threshold: name: g4 still threshold g5: move_threshold: name: g5 move threshold still_threshold: name: g5 still threshold g6: move_threshold: name: g6 move threshold still_threshold: name: g6 still threshold g7: move_threshold: name: g7 move threshold still_threshold: name: g7 still threshold g8: move_threshold: name: g8 move threshold still_threshold: name: g8 still threshold - platform: micronova thermostat_temperature: name: Micronova Thermostaat step: 1 power_level: name: Micronova Power level select: - platform: template id: test_select state_topic: livingroom/custom_state_topic command_topic: livingroom/custom_command_topic options: - one - two optimistic: true - platform: copy source_id: test_select name: Test Select Copy - platform: ld2410 distance_resolution: name: distance resolution baud_rate: name: baud rate light_function: name: light function out_pin_level: name: out ping level qr_code: - id: homepage_qr value: https://esphome.io/index.html lock: - platform: template id: test_lock1 name: Template Switch lambda: |- if (id(binary_sensor1).state) { return LOCK_STATE_LOCKED; }else{ return LOCK_STATE_UNLOCKED; } optimistic: true assumed_state: false on_unlock: - lock.template.publish: id: test_lock1 state: !lambda "return LOCK_STATE_UNLOCKED;" on_lock: - lock.template.publish: id: test_lock1 state: !lambda "return LOCK_STATE_LOCKED;" - platform: output name: Generic Output Lock id: test_lock2 output: pca_6 - platform: copy source_id: test_lock2 name: Generic Output Lock Copy button: - platform: template name: Start calibration on_press: - scd4x.perform_forced_calibration: value: 419 id: scd40 - scd4x.factory_reset: id: scd40 - platform: template name: Midea Display Toggle on_press: midea_ac.display_toggle: - platform: template name: Midea Swing Step on_press: midea_ac.swing_step: - platform: template name: Midea Power On on_press: midea_ac.power_on: - platform: template name: Midea Power Off on_press: midea_ac.power_off: - platform: template name: Midea Power Inverse on_press: midea_ac.power_toggle: - platform: template name: Update Mmwave Sensor Settings on_press: - dfrobot_sen0395.settings: id: mmwave factory_reset: true detection_segments: - [0cm, 5m] - 600cm - !lambda |- return 7; output_latency: delay_after_detect: 0s delay_after_disappear: 0s sensitivity: 6 - platform: template name: Reset Mmwave Sensor on_press: - dfrobot_sen0395.reset: - platform: template name: Poller component suspend test on_press: - component.suspend: myteleinfo - delay: 20s - component.update: myteleinfo - delay: 20s - component.resume: myteleinfo - delay: 20s - component.resume: id: myteleinfo update_interval: 2s - delay: 20s - component.resume: id: myteleinfo update_interval: !lambda return 2500; - platform: ld2410 factory_reset: name: "factory reset" restart: name: "restart" query_params: name: query params - platform: uart uart_id: uart_0 name: UART button data: "Pressed\r\n" - platform: micronova custom_button: name: Custom Micronova Button memory_location: 0xA0 memory_address: 0x7D memory_data: 0x0F ld2410: id: my_ld2410 uart_id: ld2410_uart ld2420: id: my_ld2420 uart_id: ld2420_uart lcd_menu: id: test_lcd_menu display_id: my_lcd_gpio mark_back: 0x5e mark_selected: 0x3e mark_editing: 0x2a mark_submenu: 0x7e active: false mode: rotary on_enter: then: lambda: 'ESP_LOGI("lcd_menu", "root enter");' on_leave: then: lambda: 'ESP_LOGI("lcd_menu", "root leave");' items: - type: back text: Back - type: label - type: menu text: Submenu 1 items: - type: back text: Back - type: menu text: Submenu 21 items: - type: back text: Back - type: command text: Show Main on_value: then: - display_menu.show_main: test_lcd_menu - type: select text: Enum Item immediate_edit: true select: test_select on_enter: then: lambda: 'ESP_LOGI("lcd_menu", "select enter: %s, %s", it->get_text().c_str(), it->get_value_text().c_str());' on_leave: then: lambda: 'ESP_LOGI("lcd_menu", "select leave: %s, %s", it->get_text().c_str(), it->get_value_text().c_str());' on_value: then: lambda: 'ESP_LOGI("lcd_menu", "select value: %s, %s", it->get_text().c_str(), it->get_value_text().c_str());' - type: number text: Number number: test_number on_enter: then: lambda: 'ESP_LOGI("lcd_menu", "number enter: %s, %s", it->get_text().c_str(), it->get_value_text().c_str());' on_leave: then: lambda: 'ESP_LOGI("lcd_menu", "number leave: %s, %s", it->get_text().c_str(), it->get_value_text().c_str());' on_value: then: lambda: 'ESP_LOGI("lcd_menu", "number value: %s, %s", it->get_text().c_str(), it->get_value_text().c_str());' - type: command text: Hide on_value: then: - display_menu.hide: test_lcd_menu - type: switch text: Switch switch: my_switch on_text: Bright off_text: Dark immediate_edit: false on_value: then: lambda: 'ESP_LOGI("lcd_menu", "switch value: %s", it->get_value_text().c_str());' - type: custom text: !lambda 'return "Custom";' value_lambda: 'return "Val";' on_next: then: lambda: 'ESP_LOGI("lcd_menu", "custom next: %s", it->get_text().c_str());' on_prev: then: lambda: 'ESP_LOGI("lcd_menu", "custom prev: %s", it->get_text().c_str());' font: - file: "gfonts://Roboto" id: roboto size: 20 graphical_display_menu: id: test_graphical_display_menu display: st7735_display font: roboto active: false mode: rotary on_enter: then: lambda: 'ESP_LOGI("graphical_display_menu", "root enter");' on_leave: then: lambda: 'ESP_LOGI("graphical_display_menu", "root leave");' items: - type: back text: "Back" - type: label - type: menu text: "Submenu 1" items: - type: back text: "Back" - type: menu text: "Submenu 21" items: - type: back text: "Back" - type: command text: "Show Main" on_value: then: - display_menu.show_main: test_graphical_display_menu - type: select text: "Enum Item" immediate_edit: true select: test_select on_enter: then: lambda: 'ESP_LOGI("graphical_display_menu", "select enter: %s, %s", it->get_text().c_str(), it->get_value_text().c_str());' on_leave: then: lambda: 'ESP_LOGI("graphical_display_menu", "select leave: %s, %s", it->get_text().c_str(), it->get_value_text().c_str());' on_value: then: lambda: 'ESP_LOGI("graphical_display_menu", "select value: %s, %s", it->get_text().c_str(), it->get_value_text().c_str());' - type: number text: "Number" number: test_number on_enter: then: lambda: 'ESP_LOGI("graphical_display_menu", "number enter: %s, %s", it->get_text().c_str(), it->get_value_text().c_str());' on_leave: then: lambda: 'ESP_LOGI("graphical_display_menu", "number leave: %s, %s", it->get_text().c_str(), it->get_value_text().c_str());' on_value: then: lambda: 'ESP_LOGI("graphical_display_menu", "number value: %s, %s", it->get_text().c_str(), it->get_value_text().c_str());' - type: command text: "Hide" on_value: then: - display_menu.hide: test_graphical_display_menu - type: switch text: "Switch" switch: my_switch on_text: "Bright" off_text: "Dark" immediate_edit: false on_value: then: lambda: 'ESP_LOGI("graphical_display_menu", "switch value: %s", it->get_value_text().c_str());' - type: custom text: !lambda 'return "Custom";' value_lambda: 'return "Val";' on_next: then: lambda: 'ESP_LOGI("graphical_display_menu", "custom next: %s", it->get_text().c_str());' on_prev: then: lambda: 'ESP_LOGI("graphical_display_menu", "custom prev: %s", it->get_text().c_str());' alarm_control_panel: - platform: template id: alarmcontrolpanel1 name: Alarm Panel codes: - "1234" requires_code_to_arm: true arming_home_time: 1s arming_away_time: 15s pending_time: 15s trigger_time: 30s binary_sensors: - binary_sensor1 on_state: then: - lambda: !lambda |- ESP_LOGD("TEST", "State change %s", alarm_control_panel_state_to_string(id(alarmcontrolpanel1)->get_state()));