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!"); - light.addressable_set: id: addr1 range_from: 0 range_to: 100 red: 100% green: !lambda "return 255;" blue: 0% white: 100% - 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 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 - 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 brightness: !lambda "return id(${roomname}_lights).current_values.get_brightness() + 0.5;" - light.dim_relative: id: ${roomname}_lights relative_brightness: 5% - uart.write: id: uart0 data: Hello World - uart.write: id: uart0 data: [0x00, 0x20, 0x30] - uart.write: id: uart0 data: !lambda |- return {}; i2c: sda: 21 scl: 22 scan: True frequency: 100kHz setup_priority: -100 id: i2c_bus spi: clk_pin: GPIO21 mosi_pin: GPIO22 miso_pin: GPIO23 uart: - tx_pin: number: GPIO22 inverted: yes rx_pin: number: GPIO23 inverted: yes baud_rate: 115200 id: uart0 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: adalight_uart tx_pin: GPIO25 rx_pin: GPIO26 baud_rate: 115200 rx_buffer_size: 1024 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 ota: true css_url: https://esphome.io/_static/webserver-v1.min.css js_url: https://esphome.io/_static/webserver-v1.min.js power_supply: id: "atx_power_supply" enable_time: 20ms keep_on_time: 10s pin: number: 13 inverted: true deep_sleep: run_duration: 20s sleep_duration: 50s wakeup_pin: GPIO39 wakeup_pin_mode: INVERT_WAKEUP ads1115: address: 0x48 i2c_id: i2c_bus dallas: pin: GPIO23 as3935_spi: cs_pin: GPIO12 irq_pin: GPIO13 wled: adalight: esp32_ble_tracker: ble_client: - mac_address: AA:BB:CC:DD:EE:FF id: ble_foo - mac_address: 11:22:33:44:55:66 id: ble_blah on_connect: then: - switch.turn_on: ble1_status on_disconnect: then: - switch.turn_on: ble1_status mcp23s08: - id: "mcp23s08_hub" cs_pin: GPIO12 deviceaddress: 0 mcp23s17: - id: "mcp23s17_hub" cs_pin: GPIO12 deviceaddress: 1 sensor: - platform: ble_client 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: 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: - 0.0 -> 0.0 - 40.0 -> 45.0 - 100.0 -> 102.5 - 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 - throttle_average: 60s - throttle: 1s - heartbeat: 5s - debounce: 0.1s - delta: 5.0 - or: - throttle: 1s - delta: 5.0 - lambda: return x * (9.0/5.0) + 32.0; on_value: then: - 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); 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: atm90e32 cs_pin: 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 resolution: 1.0 update_interval: 30s retain: False availability: state_topic: livingroom/custom_state_topic measurement_duration: 31 i2c_id: i2c_bus - platform: bme280 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: 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: GPIO26 temperature: name: "Living Room Temperature 3" 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: GPIO25 name: Duty Cycle Sensor - platform: esp32_hall name: "ESP32 Hall Sensor" update_interval: 15s - platform: hdc1080 temperature: name: "Living Room Temperature 5" humidity: name: "Living Room Pressure 5" update_interval: 15s i2c_id: i2c_bus - platform: hlw8012 sel_pin: 5 cf_pin: 14 cf1_pin: 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: 16 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 min_save_interval: 60s - 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: 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: GPIO23 clk_pin: 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: kalman_combinator 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: htu21d temperature: name: "Living Room Temperature 6" humidity: name: "Living Room Humidity 6" update_interval: 15s i2c_id: i2c_bus - platform: max6675 name: "Living Room Temperature" cs_pin: GPIO23 update_interval: 15s - platform: max31855 name: "Den Temperature" cs_pin: GPIO23 update_interval: 15s reference_temperature: name: "MAX31855 Internal Temperature" - platform: max31856 name: "BBQ Temperature" cs_pin: GPIO17 update_interval: 15s mains_filter: 50Hz - platform: max31865 name: "Water Tank Temperature" cs_pin: GPIO23 update_interval: 15s reference_resistance: "430 Ω" rtd_nominal_resistance: "100 Ω" - platform: mhz19 uart_id: uart0 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: 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: GPIO12 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: GPIO12 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: rotary_encoder name: "Rotary Encoder" id: rotary_encoder1 pin_a: GPIO23 pin_b: GPIO25 pin_reset: 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" on_anticlockwise: - logger.log: "Anticlockwise" - platform: pulse_width name: Pulse Width pin: GPIO12 - platform: sm300d2 uart_id: uart0 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 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: 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: ultrasonic trigger_pin: GPIO25 echo_pin: number: GPIO23 inverted: true name: "Ultrasonic Sensor" timeout: 5.5m id: ultrasonic_sensor1 - platform: uptime name: Uptime Sensor - 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: uart0 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 - platform: zyaura clock_pin: GPIO5 data_pin: 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: on voltage_hpf: on phase_offset: 20 pulse_energy: 0.01 kWh cs_pin: mcp23xxx: mcp23017_hub number: 14 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 # 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 number: 1 # One of INPUT or INPUT_PULLUP mode: INPUT_PULLUP inverted: False interrupt: FALLING - platform: gpio pin: GPIO9 name: "Living Room Window" device_class: window filters: - invert: - delayed_on: 40ms - delayed_off: 40ms 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 mode: INPUT_PULLUP name: "Living Room Window 2" - platform: status name: "Living Room Status" - platform: esp32_touch name: "ESP32 Touch Pad GPIO27" pin: GPIO27 threshold: 1000 id: btn_left - 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: OFF - 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: "MCP21 binary sensor" pin: mcp23xxx: mcp23017_hub number: 1 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: 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: as3935 name: "Storm Alert" 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: GPIO12 clock_pin: GPIO14 num_channels: 6 num_chips: 2 bit_depth: 16 output: - platform: gpio pin: GPIO26 id: gpio_26 power_supply: atx_power_supply inverted: False - platform: ledc pin: 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 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: slow_pwm id: id24 pin: GPIO26 period: 15s - platform: ac_dimmer id: dimmer1 gate_pin: GPIO5 zero_cross_pin: GPIO26 - platform: esp32_dac pin: GPIO25 id: dac_output - platform: mcp4725 id: mcp4725_dac_output i2c_id: i2c_bus e131: 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: yes on_turn_off: - switch.template.publish: id: livingroom_lights state: yes - 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; - 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 - platform: fastled_clockless id: addr1 chipset: WS2811 pin: GPIO23 num_leds: 60 rgb_order: BRG max_refresh_rate: 20ms power_supply: atx_power_supply color_correct: [75%, 100%, 50%] name: "FastLED WS2811 Light" effects: - addressable_color_wipe: - addressable_color_wipe: name: Color Wipe Effect With Custom Values colors: - red: 100% green: 100% blue: 100% num_leds: 1 - red: 0% green: 0% blue: 0% num_leds: 1 add_led_interval: 100ms reverse: False - addressable_scan: - addressable_scan: name: Scan Effect With Custom Values move_interval: 100ms - addressable_twinkle: - addressable_twinkle: name: Twinkle Effect With Custom Values twinkle_probability: 5% progress_interval: 4ms - addressable_random_twinkle: - addressable_random_twinkle: name: Random Twinkle Effect With Custom Values twinkle_probability: 5% progress_interval: 32ms - addressable_fireworks: - addressable_fireworks: name: Fireworks Effect With Custom Values update_interval: 32ms spark_probability: 10% use_random_color: false fade_out_rate: 120 - addressable_flicker: - addressable_flicker: name: Flicker Effect With Custom Values update_interval: 16ms intensity: 5% - addressable_lambda: name: "Test For Custom Lambda Effect" lambda: |- if (initial_run) { it[0] = current_color; } - wled: port: 11111 - adalight: uart_id: adalight_uart - automation: name: Custom Effect sequence: - light.addressable_set: id: addr1 red: 100% green: 100% blue: 0% - delay: 100ms - light.addressable_set: id: addr1 red: 0% green: 100% blue: 0% - e131: universe: 1 - platform: fastled_spi id: addr2 chipset: WS2801 data_pin: GPIO23 clock_pin: GPIO22 data_rate: 2MHz num_leds: 60 rgb_order: BRG name: "FastLED SPI Light" - platform: neopixelbus id: addr3 name: "Neopixelbus Light" gamma_correct: 2.8 color_correct: [0.0, 0.0, 0.0, 0.0] default_transition_length: 10s power_supply: atx_power_supply effects: - addressable_flicker: name: Flicker Effect With Custom Values update_interval: 16ms intensity: 5% type: GRBW variant: SK6812 method: ESP32_I2S_0 num_leds: 60 pin: GPIO23 - platform: partition name: "Partition Light" segments: - id: addr1 from: 0 to: 0 - id: addr2 from: 1 to: 10 - id: addr2 from: 20 to: 25 - single_light_id: ${roomname}_lights remote_transmitter: - pin: 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: 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: midea_ir name: Midea IR use_fahrenheit: true - platform: midea on_state: logger.log: "State changed!" id: midea_unit uart_id: uart0 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 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_TOGGLE_LIGHT turn_on_action: midea_ac.display_toggle: - platform: template name: MIDEA_AC_SWING_STEP turn_on_action: midea_ac.swing_step: - 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_midea: code: [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 mode: OUTPUT inverted: False - platform: gpio pin: 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: 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: Living Room Lights id: livingroom_lights optimistic: True assumed_state: yes 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;" turn_off_action: - switch.turn_on: living_room_lights_off restore_state: False on_turn_on: - switch.template.publish: id: livingroom_lights state: yes - platform: restart name: "Living Room Restart" - platform: safe_mode name: "Living Room Restart (Safe Mode)" - 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: no restore_state: True on_turn_off: - switch.template.publish: id: my_switch state: !lambda "return false;" - platform: uart uart_id: uart0 name: "UART String Output" data: "DataToSend" - platform: uart uart_id: uart0 name: "UART Bytes Output" data: [0xDE, 0xAD, 0xBE, 0xEF] - platform: uart uart_id: uart0 name: "UART Recurring Output" data: [0xDE, 0xAD, 0xBE, 0xEF] send_every: 1s - platform: template assumed_state: yes 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 # 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 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!" 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: - 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); - if: condition: display.is_displaying_page: id: display1 page_id: page1 then: - logger.log: "Seeing page 1" color: - id: kbx_red red: 100% green_int: 123 blue: 2% - id: kbx_blue red: 0% green: 1% blue: 100% display: - platform: lcd_gpio dimensions: 18x4 data_pins: - GPIO19 - GPIO21 - GPIO22 - GPIO23 enable_pin: GPIO23 rs_pin: GPIO25 lambda: |- it.print("Hello World!"); - platform: lcd_pcf8574 dimensions: 18x4 address: 0x3F lambda: |- it.print("Hello World!"); i2c_id: i2c_bus - platform: max7219 cs_pin: GPIO23 num_chips: 1 lambda: |- it.print("01234567"); - platform: tm1637 clk_pin: GPIO23 dio_pin: GPIO25 intensity: 3 lambda: |- it.print("1234"); - platform: tm1637 clk_pin: mcp23xxx: mcp23017_hub number: 1 dio_pin: mcp23xxx: mcp23017_hub number: 2 intensity: 3 inverted: true length: 4 lambda: |- it.print("1234"); - platform: pcd8544 cs_pin: GPIO23 dc_pin: GPIO23 reset_pin: GPIO23 contrast: 60 lambda: |- it.rectangle(0, 0, it.get_width(), it.get_height()); - platform: ssd1306_i2c model: "SSD1306_128X64" reset_pin: 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: GPIO23 dc_pin: GPIO23 reset_pin: GPIO23 lambda: |- it.rectangle(0, 0, it.get_width(), it.get_height()); - platform: ssd1322_spi model: "SSD1322 256x64" cs_pin: GPIO23 dc_pin: GPIO23 reset_pin: GPIO23 lambda: |- it.rectangle(0, 0, it.get_width(), it.get_height()); - platform: ssd1325_spi model: "SSD1325 128x64" cs_pin: GPIO23 dc_pin: GPIO23 reset_pin: GPIO23 lambda: |- it.rectangle(0, 0, it.get_width(), it.get_height()); - platform: ssd1327_i2c model: "SSD1327 128X128" reset_pin: 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: GPIO23 dc_pin: GPIO23 reset_pin: GPIO23 lambda: |- it.rectangle(0, 0, it.get_width(), it.get_height()); - platform: ssd1331_spi cs_pin: GPIO23 dc_pin: GPIO23 reset_pin: GPIO23 lambda: |- it.rectangle(0, 0, it.get_width(), it.get_height()); - platform: ssd1351_spi model: "SSD1351 128x128" cs_pin: GPIO23 dc_pin: GPIO23 reset_pin: GPIO23 lambda: |- it.rectangle(0, 0, it.get_width(), it.get_height()); - platform: st7789v cs_pin: GPIO5 dc_pin: GPIO16 reset_pin: GPIO23 backlight_pin: GPIO4 lambda: |- it.rectangle(0, 0, it.get_width(), it.get_height()); - platform: st7920 width: 128 height: 64 cs_pin: number: GPIO23 inverted: true lambda: |- it.rectangle(0, 0, it.get_width(), it.get_height()); - platform: st7735 model: "INITR_BLACKTAB" cs_pin: GPIO5 dc_pin: GPIO16 reset_pin: 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: ili9341 model: "TFT 2.4" cs_pin: GPIO5 dc_pin: GPIO4 reset_pin: GPIO22 led_pin: number: GPIO15 inverted: true lambda: |- it.rectangle(0, 0, it.get_width(), it.get_height()); - platform: ili9341 model: "TFT 2.4" cs_pin: GPIO5 dc_pin: GPIO4 reset_pin: GPIO22 led_pin: number: GPIO15 inverted: true auto_clear_enabled: false rotation: 90 lambda: |- if (!id(glob_bool_processed)) { it.fill(Color::WHITE); id(glob_bool_processed) = true; } tm1651: id: tm1651_battery clk_pin: GPIO23 dio_pin: GPIO23 remote_receiver: pin: GPIO32 dump: all status_led: pin: GPIO2 pn532_spi: id: pn532_bs cs_pin: 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 rdm6300: uart_id: uart0 rc522_spi: cs_pin: 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 gps: uart_id: uart0 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 on_time: seconds: 0 then: ds1307.read_time i2c_id: i2c_bus 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: no has_position: yes 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 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 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: GPIO23 dir_pin: GPIO25 sleep_pin: GPIO25 max_speed: 250 steps/s acceleration: 100 steps/s^2 deceleration: 200 steps/s^2 globals: - id: glob_int type: int restore_value: yes initial_value: "0" - id: glob_float type: float restore_value: yes initial_value: "0.0f" - id: glob_bool type: bool restore_value: no initial_value: "true" - id: glob_string type: std::string restore_value: no # initial_value: "" - id: glob_bool_processed type: bool restore_value: no initial_value: "false" text_sensor: - 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: esp32_internal_can can_id: 23 data: [0x10, 0x20, 0x30] - 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" - platform: version name: "ESPHome Version No Timestamp" hide_timestamp: True - platform: teleinfo tag_name: "OPTARIF" name: "optarif" teleinfo_id: myteleinfo sn74hc595: - id: "sn74hc595_hub" data_pin: GPIO21 clock_pin: GPIO23 latch_pin: GPIO22 oe_pin: GPIO32 sr_count: 2 rtttl: output: gpio_19 canbus: - platform: mcp2515 id: mcp2515_can cs_pin: GPIO17 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[0] ); - can_id: 23 then: - if: condition: lambda: "return x[0] == 0x11;" then: light.toggle: ${roomname}_lights - platform: esp32_can id: esp32_internal_can rx_pin: GPIO04 tx_pin: 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[0] ); - can_id: 23 then: - if: condition: lambda: "return x[0] == 0x11;" then: light.toggle: ${roomname}_lights teleinfo: id: myteleinfo uart_id: uart0 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 select: - platform: template id: test_select state_topic: livingroom/custom_state_topic command_topic: livingroom/custom_command_topic options: - one - two optimistic: true 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: no 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