esphome/tests/test1.yaml
Tim Niemueller 11f1e28139
Make per-loop display clearing optional (#2626)
Currently, in each loop during DisplayBuffer::update_() the display is
cleared by calling DisplayBuffer::clear().

This prevents more efficient display usages that do not render the
screen in each loop, but only if necessary. This can be helpful, for
example, if images are rendered. This would cause the loop time to be
exceeded frequently.

This change adds a new optional flag "auto_clear" that can be used to
control the clearing behavior. If unset, the DisplayBuffer defaults to
enabled auto clearing, the current behavior and thus backward compatible.

This flag applies to displays that use DisplayBuffer.

Example excerpt:
globals:
  - id: state
    type: bool
    restore_value: no
    initial_value: "false"
  - id: state_processed
    type: bool
    restore_value: no
    initial_value: "false"

switch:
  - platform: template
    name: "State"
    id: state_switch
    lambda: |-
      return id(state);
    turn_on_action:
      - globals.set:
          id: state
          value: "true"
      - globals.set:
          id: state_processed
          value: "false"
    turn_off_action:
      - globals.set:
          id: state
          value: "false"
      - globals.set:
          id: state_processed
          value: "false"

display:
  - platform: ili9341
    # ...
    auto_clear_enabled: false
    lambda: |-
      if (!id(state_processed)) {
        it.fill(COLOR_WHITE);
        if (id(state)) {
          it.image(80, 20, id(image1));
        } else {
          it.image(80, 20, id(image2));
        }
        id(state_processed) = true;
      }

Co-authored-by: Tim Niemueller <timdn@google.com>
2021-11-03 17:56:09 +01:00

2502 lines
57 KiB
YAML

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
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
- 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
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: 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:
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:
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
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
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
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
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.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:
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
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
teleinfo:
id: myteleinfo
uart_id: uart0
update_interval: 60s
historical_mode: true