mirror of
https://github.com/esphome/esphome.git
synced 2024-12-18 15:57:58 +01:00
3816 lines
87 KiB
YAML
3816 lines
87 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: 21
|
|
scl: 22
|
|
scan: true
|
|
frequency: 100kHz
|
|
setup_priority: -100
|
|
id: i2c_bus
|
|
|
|
spi:
|
|
id: spi_bus
|
|
clk_pin: GPIO21
|
|
mosi_pin: GPIO22
|
|
miso_pin: GPIO23
|
|
|
|
uart:
|
|
- tx_pin:
|
|
number: GPIO22
|
|
inverted: true
|
|
rx_pin:
|
|
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: 18
|
|
rx_pin: 23
|
|
baud_rate: 256000
|
|
parity: NONE
|
|
stop_bits: 1
|
|
- id: dfrobot_mmwave_uart
|
|
tx_pin: 14
|
|
rx_pin: 27
|
|
baud_rate: 115200
|
|
- id: ld2420_uart
|
|
tx_pin: 17
|
|
rx_pin: 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
|
|
inverted: true
|
|
|
|
deep_sleep:
|
|
run_duration: 20s
|
|
sleep_duration: 50s
|
|
wakeup_pin: GPIO2
|
|
wakeup_pin_mode: INVERT_WAKEUP
|
|
|
|
ads1115:
|
|
address: 0x48
|
|
i2c_id: i2c_bus
|
|
|
|
dallas:
|
|
pin: GPIO23
|
|
|
|
as3935_spi:
|
|
cs_pin: GPIO12
|
|
irq_pin: GPIO13
|
|
|
|
esp32_ble:
|
|
io_capability: keyboard_only
|
|
|
|
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
|
|
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: GPIO12
|
|
deviceaddress: 0
|
|
|
|
mcp23s17:
|
|
- id: mcp23s17_hub
|
|
cs_pin: GPIO12
|
|
deviceaddress: 1
|
|
|
|
micronova:
|
|
enable_rx_pin: 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: 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: 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: 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
|
|
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:
|
|
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: 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: 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
|
|
- 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: 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: 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: 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: 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: 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: 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: 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: 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
|
|
- display_menu.down:
|
|
on_anticlockwise:
|
|
- logger.log: Anticlockwise
|
|
- display_menu.up:
|
|
- platform: pulse_width
|
|
name: Pulse Width
|
|
pin: 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: GPIO25
|
|
echo_pin:
|
|
number: GPIO23
|
|
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
|
|
- 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: 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
|
|
# 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_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;"
|
|
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: gpio
|
|
pin:
|
|
number: GPIO9
|
|
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:
|
|
then:
|
|
- display_menu.enter:
|
|
else:
|
|
- display_menu.left:
|
|
- display_menu.right:
|
|
- display_menu.show:
|
|
- 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
|
|
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
|
|
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: GPIO12
|
|
clock_pin: GPIO14
|
|
num_channels: 6
|
|
num_chips: 2
|
|
bit_depth: 16
|
|
|
|
sm2235:
|
|
data_pin: GPIO4
|
|
clock_pin: GPIO5
|
|
max_power_color_channels: 9
|
|
max_power_white_channels: 9
|
|
|
|
sm2335:
|
|
data_pin: GPIO4
|
|
clock_pin: GPIO5
|
|
max_power_color_channels: 9
|
|
max_power_white_channels: 9
|
|
|
|
bp1658cj:
|
|
data_pin: GPIO3
|
|
clock_pin: GPIO5
|
|
max_power_color_channels: 4
|
|
max_power_white_channels: 6
|
|
|
|
bp5758d:
|
|
data_pin: GPIO3
|
|
clock_pin: GPIO5
|
|
|
|
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: id26
|
|
pin:
|
|
pca9554: pca9554_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: 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: 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
|
|
- 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: GPIO25
|
|
inc_pin: GPIO26
|
|
ud_pin: 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: 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
|
|
mode: OUTPUT
|
|
inverted: false
|
|
- platform: gpio
|
|
pin: GPIO25
|
|
name: Living Room Dehumidifier
|
|
icon: "mdi:restart"
|
|
inverted: true
|
|
command_topic: custom_command_topic
|
|
command_retain: true
|
|
restore_mode: ALWAYS_OFF
|
|
- platform: template
|
|
name: JVC Off
|
|
id: living_room_lights_on
|
|
turn_on_action:
|
|
remote_transmitter.transmit_jvc:
|
|
data: 0x10EF
|
|
- platform: template
|
|
name: 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: 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
|
|
|
|
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:
|
|
- GPIO19
|
|
- GPIO21
|
|
- GPIO22
|
|
- GPIO23
|
|
enable_pin: GPIO23
|
|
rs_pin: 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: GPIO23
|
|
num_chips: 1
|
|
lambda: |-
|
|
it.print("01234567");
|
|
- platform: tm1637
|
|
clk_pin: GPIO23
|
|
dio_pin: GPIO25
|
|
intensity: 3
|
|
lambda: |-
|
|
it.print("1234");
|
|
- platform: tm1637
|
|
clk_pin:
|
|
mcp23xxx: mcp23017_hub
|
|
number: 1
|
|
dio_pin:
|
|
mcp23xxx: mcp23017_hub
|
|
number: 2
|
|
intensity: 3
|
|
inverted: true
|
|
length: 4
|
|
lambda: |-
|
|
it.print("1234");
|
|
- platform: pcd8544
|
|
cs_pin: GPIO23
|
|
dc_pin: GPIO23
|
|
reset_pin: GPIO23
|
|
contrast: 60
|
|
lambda: |-
|
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
|
- platform: ssd1306_i2c
|
|
model: SSD1306_128X64
|
|
reset_pin: GPIO23
|
|
address: 0x3C
|
|
id: display1
|
|
contrast: 60%
|
|
pages:
|
|
- id: page1
|
|
lambda: |-
|
|
it.qr_code(0, 0, id(homepage_qr));
|
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
|
- id: page2
|
|
lambda: |-
|
|
// Nothing
|
|
on_page_change:
|
|
from: page1
|
|
to: page2
|
|
then:
|
|
lambda: |-
|
|
ESP_LOGD("display", "1 -> 2");
|
|
i2c_id: i2c_bus
|
|
- platform: ssd1306_spi
|
|
model: SSD1306 128x64
|
|
cs_pin: GPIO23
|
|
dc_pin: GPIO23
|
|
reset_pin: GPIO23
|
|
lambda: |-
|
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
|
- platform: ssd1322_spi
|
|
model: SSD1322 256x64
|
|
cs_pin: GPIO23
|
|
dc_pin: GPIO23
|
|
reset_pin: GPIO23
|
|
lambda: |-
|
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
|
- platform: ssd1325_spi
|
|
model: SSD1325 128x64
|
|
cs_pin: GPIO23
|
|
dc_pin: GPIO23
|
|
reset_pin: GPIO23
|
|
lambda: |-
|
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
|
- platform: ssd1327_i2c
|
|
model: SSD1327 128X128
|
|
reset_pin: GPIO23
|
|
address: 0x3D
|
|
id: display1327
|
|
brightness: 60%
|
|
pages:
|
|
- id: page13271
|
|
lambda: |-
|
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
|
- id: page13272
|
|
lambda: |-
|
|
// Nothing
|
|
i2c_id: i2c_bus
|
|
- platform: ssd1327_spi
|
|
model: SSD1327 128x128
|
|
cs_pin: GPIO23
|
|
dc_pin: GPIO23
|
|
reset_pin: GPIO23
|
|
lambda: |-
|
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
|
- platform: ssd1331_spi
|
|
cs_pin: GPIO23
|
|
dc_pin: GPIO23
|
|
reset_pin: GPIO23
|
|
lambda: |-
|
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
|
- platform: ssd1351_spi
|
|
model: SSD1351 128x128
|
|
cs_pin: GPIO23
|
|
dc_pin: GPIO23
|
|
reset_pin: GPIO23
|
|
lambda: |-
|
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
|
- platform: st7789v
|
|
model: TTGO TDisplay 135x240
|
|
cs_pin: GPIO5
|
|
dc_pin: GPIO16
|
|
reset_pin: GPIO23
|
|
backlight_pin: no
|
|
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: ili9xxx
|
|
invert_colors: true
|
|
dimensions: 320x240
|
|
transform:
|
|
swap_xy: true
|
|
mirror_x: true
|
|
mirror_y: false
|
|
model: TFT 2.4
|
|
cs_pin: GPIO5
|
|
dc_pin: GPIO4
|
|
color_palette: GRAYSCALE
|
|
reset_pin: 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: GPIO5
|
|
dc_pin: GPIO4
|
|
reset_pin: 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: GPIO17
|
|
data_pin: GPIO5
|
|
read_pin: GPIO23
|
|
write_pin: 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: GPIO23
|
|
dio_pin: GPIO23
|
|
|
|
remote_receiver:
|
|
id: rcvr
|
|
pin: 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: 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: uart_0
|
|
|
|
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
|
|
|
|
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: 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: 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: GPIO21
|
|
clock_pin: GPIO23
|
|
latch_pin: GPIO22
|
|
oe_pin: GPIO32
|
|
sr_count: 2
|
|
- id: sn74hc595_hub_2
|
|
latch_pin: GPIO22
|
|
oe_pin: 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: GPIO04
|
|
tx_pin: GPIO05
|
|
can_id: 4
|
|
bit_rate: 50kbps
|
|
on_frame:
|
|
- can_id: 500
|
|
then:
|
|
- lambda: |-
|
|
std::string b(x.begin(), x.end());
|
|
ESP_LOGD("canid 500", "%s", b.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:
|
|
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:
|
|
- 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:
|
|
- 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());'
|
|
|
|
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()));
|
|
|