esphome/tests/test1.yaml
Andrey Bodrov 4b783c0372
BME280 SPI (#5538)
* bme spi finally

* linter

* CO

* tidy

* lint

* tidy [2]

* tidy[-1]

* final solution

* Update test1.yaml

remove failed test

* Update test1.1.yaml

add test to another file with free GPIO5 pin

* fix spi read bytes

* fix tests

* rename bme280 to bme280_i2c
2024-01-09 22:31:38 -06:00

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