mirror of
https://github.com/esphome/esphome.git
synced 2024-10-06 02:40:56 +01:00
05ab49a615
This lets downstream components respond to climate configuration changes, which take place through ClimateCall objects, without also being notified every time the state changes, which happens every time the input sensor announces a new value. FIXES https://github.com/esphome/feature-requests/issues/2136
3277 lines
75 KiB
YAML
3277 lines
75 KiB
YAML
---
|
|
substitutions:
|
|
devicename: test1
|
|
sensorname: my
|
|
textname: template
|
|
roomname: living_room
|
|
|
|
esphome:
|
|
name: test1
|
|
name_add_mac_suffix: true
|
|
platform: ESP32
|
|
board: nodemcu-32s
|
|
platformio_options:
|
|
board_build.partitions: huge_app.csv
|
|
on_boot:
|
|
priority: 150.0
|
|
then:
|
|
- lambda: >-
|
|
ESP_LOGD("main", "ON BOOT!");
|
|
on_shutdown:
|
|
then:
|
|
- lambda: >-
|
|
ESP_LOGD("main", "ON SHUTDOWN!");
|
|
on_loop:
|
|
then:
|
|
- lambda: >-
|
|
ESP_LOGV("main", "ON LOOP!");
|
|
- light.addressable_set:
|
|
id: addr1
|
|
range_from: 0
|
|
range_to: 100
|
|
red: 100%
|
|
green: !lambda "return 255;"
|
|
blue: 0%
|
|
white: 100%
|
|
- http_request.get:
|
|
url: https://esphome.io
|
|
headers:
|
|
Content-Type: application/json
|
|
verify_ssl: false
|
|
- http_request.post:
|
|
url: https://esphome.io
|
|
verify_ssl: false
|
|
json:
|
|
key: !lambda |-
|
|
return id(${textname}_text).state;
|
|
greeting: Hello World
|
|
- http_request.send:
|
|
method: PUT
|
|
url: https://esphome.io
|
|
headers:
|
|
Content-Type: application/json
|
|
body: Some data
|
|
verify_ssl: false
|
|
on_response:
|
|
then:
|
|
- logger.log:
|
|
format: "Response status: %d"
|
|
args:
|
|
- status_code
|
|
build_path: build/test1
|
|
|
|
packages:
|
|
wifi: !include test_packages/test_packages_package_wifi.yaml
|
|
pkg_test: !include test_packages/test_packages_package1.yaml
|
|
|
|
wifi:
|
|
networks:
|
|
- ssid: "MySSID"
|
|
password: "password1"
|
|
- ssid: "MySSID2"
|
|
password: ""
|
|
channel: 14
|
|
bssid: "A1:63:95:47:D3:1D"
|
|
manual_ip:
|
|
static_ip: 192.168.178.230
|
|
gateway: 192.168.178.1
|
|
subnet: 255.255.255.0
|
|
dns1: 1.1.1.1
|
|
dns2: 1.2.2.1
|
|
domain: .local
|
|
reboot_timeout: 120s
|
|
power_save_mode: light
|
|
|
|
mdns:
|
|
disabled: false
|
|
|
|
http_request:
|
|
useragent: esphome/device
|
|
timeout: 10s
|
|
|
|
mqtt:
|
|
broker: "192.168.178.84"
|
|
port: 1883
|
|
username: "debug"
|
|
password: "debug"
|
|
client_id: someclient
|
|
use_abbreviations: false
|
|
discovery: true
|
|
discovery_retain: false
|
|
discovery_prefix: discovery
|
|
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: uart0
|
|
data: Hello World
|
|
- uart.write:
|
|
id: uart0
|
|
data: [0x00, 0x20, 0x30]
|
|
- uart.write:
|
|
id: uart0
|
|
data: !lambda |-
|
|
return {};
|
|
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:
|
|
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: uart0
|
|
parity: NONE
|
|
data_bits: 8
|
|
stop_bits: 1
|
|
rx_buffer_size: 512
|
|
debug:
|
|
dummy_receiver: true
|
|
direction: both
|
|
after:
|
|
bytes: 50
|
|
timeout: 500ms
|
|
delimiter: "\r\n"
|
|
sequence:
|
|
- lambda: UARTDebug::log_hex(direction, bytes, ':');
|
|
- lambda: UARTDebug::log_string(direction, bytes);
|
|
- lambda: UARTDebug::log_int(direction, bytes, ',');
|
|
- lambda: UARTDebug::log_binary(direction, bytes, ';');
|
|
|
|
- id: adalight_uart
|
|
tx_pin: GPIO25
|
|
rx_pin: GPIO26
|
|
baud_rate: 115200
|
|
rx_buffer_size: 1024
|
|
- id: ld2410_uart
|
|
tx_pin: 18
|
|
rx_pin: 23
|
|
baud_rate: 256000
|
|
parity: NONE
|
|
stop_bits: 1
|
|
|
|
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
|
|
|
|
wled:
|
|
|
|
adalight:
|
|
|
|
esp32_ble_tracker:
|
|
|
|
ble_client:
|
|
- mac_address: AA:BB:CC:DD:EE:FF
|
|
id: ble_foo
|
|
- mac_address: 11:22:33:44:55:66
|
|
id: ble_blah
|
|
on_connect:
|
|
then:
|
|
- switch.turn_on: ble1_status
|
|
on_disconnect:
|
|
then:
|
|
- switch.turn_on: ble1_status
|
|
- 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
|
|
|
|
sensor:
|
|
- 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:
|
|
- 0.0 -> 0.0
|
|
- 40.0 -> 45.0
|
|
- 100.0 -> 102.5
|
|
- filter_out: 42.0
|
|
- filter_out: nan
|
|
- median:
|
|
window_size: 5
|
|
send_every: 5
|
|
send_first_at: 3
|
|
- min:
|
|
window_size: 5
|
|
send_every: 5
|
|
send_first_at: 3
|
|
- max:
|
|
window_size: 5
|
|
send_every: 5
|
|
send_first_at: 3
|
|
- sliding_window_moving_average:
|
|
window_size: 15
|
|
send_every: 15
|
|
send_first_at: 15
|
|
- exponential_moving_average:
|
|
alpha: 0.1
|
|
send_every: 15
|
|
send_first_at: 15
|
|
- throttle_average: 60s
|
|
- throttle: 1s
|
|
- heartbeat: 5s
|
|
- debounce: 0.1s
|
|
- delta: 5.0
|
|
- or:
|
|
- throttle: 1s
|
|
- delta: 5.0
|
|
- lambda: return x * (9.0/5.0) + 32.0;
|
|
on_value:
|
|
then:
|
|
# 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: 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: 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: kalman_combinator
|
|
name: Kalman-filtered temperature
|
|
process_std_dev: 0.00139
|
|
sources:
|
|
- source: scd30_temperature
|
|
error: !lambda |-
|
|
return 0.4 + std::abs(x - 25) * 0.023;
|
|
- source: scd4x_temperature
|
|
error: 1.5
|
|
- platform: htu21d
|
|
temperature:
|
|
name: Living Room Temperature 6
|
|
humidity:
|
|
name: Living Room Humidity 6
|
|
update_interval: 15s
|
|
i2c_id: i2c_bus
|
|
- platform: max6675
|
|
name: Living Room Temperature
|
|
cs_pin: GPIO23
|
|
update_interval: 15s
|
|
- platform: max31855
|
|
name: Den Temperature
|
|
cs_pin: GPIO23
|
|
update_interval: 15s
|
|
reference_temperature:
|
|
name: MAX31855 Internal Temperature
|
|
- platform: max31856
|
|
name: BBQ Temperature
|
|
cs_pin: GPIO17
|
|
update_interval: 15s
|
|
mains_filter: 50Hz
|
|
- platform: max31865
|
|
name: Water Tank Temperature
|
|
cs_pin: GPIO23
|
|
update_interval: 15s
|
|
reference_resistance: 430 Ω
|
|
rtd_nominal_resistance: 100 Ω
|
|
- platform: mhz19
|
|
uart_id: uart0
|
|
co2:
|
|
name: MH-Z19 CO2 Value
|
|
temperature:
|
|
name: MH-Z19 Temperature
|
|
update_interval: 15s
|
|
automatic_baseline_calibration: false
|
|
- platform: mpu6050
|
|
address: 0x68
|
|
accel_x:
|
|
name: MPU6050 Accel X
|
|
accel_y:
|
|
name: MPU6050 Accel Y
|
|
accel_z:
|
|
name: MPU6050 Accel z
|
|
gyro_x:
|
|
name: MPU6050 Gyro X
|
|
gyro_y:
|
|
name: MPU6050 Gyro Y
|
|
gyro_z:
|
|
name: MPU6050 Gyro z
|
|
temperature:
|
|
name: MPU6050 Temperature
|
|
i2c_id: i2c_bus
|
|
- platform: 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: 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: uart0
|
|
co2:
|
|
name: SM300D2 CO2 Value
|
|
formaldehyde:
|
|
name: SM300D2 Formaldehyde Value
|
|
tvoc:
|
|
name: SM300D2 TVOC Value
|
|
pm_2_5:
|
|
name: SM300D2 PM2.5 Value
|
|
pm_10_0:
|
|
name: SM300D2 PM10 Value
|
|
temperature:
|
|
name: SM300D2 Temperature Value
|
|
humidity:
|
|
name: SM300D2 Humidity Value
|
|
update_interval: 60s
|
|
- platform: sht3xd
|
|
temperature:
|
|
name: Living Room Temperature 8
|
|
humidity:
|
|
name: Living Room Humidity 8
|
|
address: 0x44
|
|
i2c_id: i2c_bus
|
|
update_interval: 15s
|
|
- platform: sts3x
|
|
name: Living Room Temperature 9
|
|
address: 0x4A
|
|
i2c_id: i2c_bus
|
|
- platform: scd30
|
|
co2:
|
|
name: Living Room CO2 9
|
|
temperature:
|
|
id: scd30_temperature
|
|
name: Living Room Temperature 9
|
|
humidity:
|
|
name: Living Room Humidity 9
|
|
address: 0x61
|
|
update_interval: 15s
|
|
automatic_self_calibration: true
|
|
altitude_compensation: 10m
|
|
ambient_pressure_compensation: 961mBar
|
|
temperature_offset: 4.2C
|
|
i2c_id: i2c_bus
|
|
- platform: scd4x
|
|
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: 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: uart0
|
|
pm_2_5:
|
|
name: SDS011 PM2.5
|
|
pm_10_0:
|
|
name: SDS011 PM10.0
|
|
update_interval: 5min
|
|
rx_only: false
|
|
- platform: ccs811
|
|
eco2:
|
|
name: CCS811 eCO2
|
|
tvoc:
|
|
name: CCS811 TVOC
|
|
update_interval: 30s
|
|
baseline: 0x4242
|
|
i2c_id: i2c_bus
|
|
- platform: tx20
|
|
wind_speed:
|
|
name: Windspeed
|
|
wind_direction_degrees:
|
|
name: Winddirection Degrees
|
|
pin:
|
|
number: GPIO04
|
|
mode: INPUT
|
|
- platform: zyaura
|
|
clock_pin: GPIO5
|
|
data_pin: GPIO4
|
|
co2:
|
|
name: ZyAura CO2
|
|
temperature:
|
|
name: ZyAura Temperature
|
|
humidity:
|
|
name: ZyAura Humidity
|
|
- platform: as3935
|
|
lightning_energy:
|
|
name: Lightning Energy
|
|
distance:
|
|
name: Distance Storm
|
|
- platform: tmp117
|
|
name: TMP117 Temperature
|
|
update_interval: 5s
|
|
i2c_id: i2c_bus
|
|
- platform: hm3301
|
|
pm_1_0:
|
|
name: PM1.0
|
|
pm_2_5:
|
|
name: PM2.5
|
|
pm_10_0:
|
|
name: PM10.0
|
|
aqi:
|
|
name: AQI
|
|
calculation_type: CAQI
|
|
i2c_id: i2c_bus
|
|
- platform: teleinfo
|
|
tag_name: HCHC
|
|
name: hchc
|
|
unit_of_measurement: Wh
|
|
icon: mdi:flash
|
|
teleinfo_id: myteleinfo
|
|
- platform: mcp9808
|
|
name: MCP9808 Temperature
|
|
update_interval: 15s
|
|
i2c_id: i2c_bus
|
|
- platform: ezo
|
|
id: ph_ezo
|
|
address: 99
|
|
unit_of_measurement: pH
|
|
i2c_id: i2c_bus
|
|
- platform: sdp3x
|
|
name: HVAC Filter Pressure drop
|
|
id: filter_pressure
|
|
update_interval: 5s
|
|
accuracy_decimals: 3
|
|
i2c_id: i2c_bus
|
|
- platform: cs5460a
|
|
id: cs5460a1
|
|
current:
|
|
name: Socket current
|
|
voltage:
|
|
name: Mains voltage
|
|
power:
|
|
name: Socket power
|
|
on_value:
|
|
then:
|
|
cs5460a.restart: cs5460a1
|
|
samples: 1600
|
|
pga_gain: 10X
|
|
current_gain: 0.01
|
|
voltage_gain: 0.000573
|
|
current_hpf: 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: mpl3115a2
|
|
i2c_id: i2c_bus
|
|
temperature:
|
|
name: "MPL3115A2 Temperature"
|
|
pressure:
|
|
name: "MPL3115A2 Pressure"
|
|
update_interval: 10s
|
|
- platform: ld2410
|
|
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"
|
|
- platform: sen21231
|
|
name: "Person Sensor"
|
|
i2c_id: i2c_bus
|
|
esp32_touch:
|
|
setup_mode: false
|
|
iir_filter: 10ms
|
|
sleep_duration: 27ms
|
|
measurement_duration: 8ms
|
|
low_voltage_reference: 0.5V
|
|
high_voltage_reference: 2.7V
|
|
voltage_attenuation: 1.5V
|
|
|
|
binary_sensor:
|
|
- platform: gpio
|
|
name: "MCP23S08 Pin #1"
|
|
pin:
|
|
mcp23xxx: mcp23s08_hub
|
|
# Use pin number 1
|
|
number: 1
|
|
# One of INPUT or INPUT_PULLUP
|
|
mode: INPUT_PULLUP
|
|
inverted: false
|
|
- platform: gpio
|
|
name: "MCP23S17 Pin #1"
|
|
pin:
|
|
mcp23xxx: mcp23s17_hub
|
|
# Use pin number 1
|
|
number: 1
|
|
# One of INPUT or INPUT_PULLUP
|
|
mode: INPUT_PULLUP
|
|
inverted: false
|
|
- platform: gpio
|
|
name: "MCP23S17 Pin #1 with interrupt"
|
|
pin:
|
|
mcp23xxx: mcp23s17_hub
|
|
# Use pin number 1
|
|
number: 1
|
|
# One of INPUT or INPUT_PULLUP
|
|
mode: INPUT_PULLUP
|
|
inverted: false
|
|
interrupt: FALLING
|
|
- platform: gpio
|
|
pin: GPIO9
|
|
name: Living Room Window
|
|
device_class: window
|
|
filters:
|
|
- invert:
|
|
- delayed_on: 40ms
|
|
- delayed_off: 40ms
|
|
on_press:
|
|
then:
|
|
- lambda: >-
|
|
ESP_LOGD("main", "Pressed");
|
|
on_release:
|
|
then:
|
|
- lambda: >-
|
|
ESP_LOGD("main", "Released");
|
|
on_click:
|
|
- min_length: 50ms
|
|
max_length: 350ms
|
|
then:
|
|
- lambda: >-
|
|
ESP_LOGD("main", "Clicked");
|
|
- then:
|
|
- lambda: >-
|
|
ESP_LOGD("main", "Clicked");
|
|
on_double_click:
|
|
- min_length: 50ms
|
|
max_length: 350ms
|
|
then:
|
|
- lambda: >-
|
|
ESP_LOGD("main", "Double Clicked");
|
|
- then:
|
|
- lambda: >-
|
|
ESP_LOGD("main", "Double Clicked");
|
|
on_multi_click:
|
|
- timing:
|
|
- ON for at most 1s
|
|
- OFF for at most 1s
|
|
- ON for at most 1s
|
|
- OFF for at least 0.2s
|
|
then:
|
|
- logger.log:
|
|
format: Multi Clicked TWO
|
|
level: warn
|
|
- timing:
|
|
- OFF for 1s to 2s
|
|
- ON for 1s to 2s
|
|
- OFF for at least 0.5s
|
|
then:
|
|
- logger.log:
|
|
format: Multi Clicked LONG SINGLE
|
|
level: warn
|
|
- timing:
|
|
- ON for at most 1s
|
|
- OFF for at least 0.5s
|
|
then:
|
|
- logger.log:
|
|
format: Multi Clicked SINGLE
|
|
level: warn
|
|
id: binary_sensor1
|
|
- platform: gpio
|
|
pin:
|
|
number: GPIO9
|
|
mode: INPUT_PULLUP
|
|
name: Living Room Window 2
|
|
- platform: 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: MCP21 binary sensor
|
|
pin:
|
|
mcp23xxx: mcp23017_hub
|
|
number: 1
|
|
mode: INPUT
|
|
inverted: true
|
|
- platform: gpio
|
|
name: MCP22 binary sensor
|
|
pin:
|
|
mcp23xxx: mcp23008_hub
|
|
number: 7
|
|
mode: INPUT_PULLUP
|
|
inverted: false
|
|
- platform: gpio
|
|
name: MCP23 binary sensor
|
|
pin:
|
|
mcp23016: mcp23016_hub
|
|
number: 7
|
|
mode: INPUT
|
|
inverted: false
|
|
|
|
- platform: remote_receiver
|
|
name: Raw Remote Receiver Test
|
|
raw:
|
|
code:
|
|
[
|
|
5685,
|
|
-4252,
|
|
1711,
|
|
-2265,
|
|
1712,
|
|
-2265,
|
|
1711,
|
|
-2264,
|
|
1712,
|
|
-2266,
|
|
3700,
|
|
-2263,
|
|
1712,
|
|
-4254,
|
|
1711,
|
|
-4249,
|
|
1715,
|
|
-2266,
|
|
1710,
|
|
-2267,
|
|
1709,
|
|
-2265,
|
|
3704,
|
|
-4250,
|
|
1712,
|
|
-4254,
|
|
3700,
|
|
-2260,
|
|
1714,
|
|
-2265,
|
|
1712,
|
|
-2262,
|
|
1714,
|
|
-2267,
|
|
1709,
|
|
]
|
|
- platform: as3935
|
|
name: Storm Alert
|
|
- 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
|
|
|
|
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
|
|
|
|
e131:
|
|
|
|
light:
|
|
- platform: binary
|
|
name: Desk Lamp
|
|
output: gpio_26
|
|
effects:
|
|
- strobe:
|
|
- strobe:
|
|
name: My Strobe
|
|
colors:
|
|
- state: true
|
|
duration: 250ms
|
|
- state: false
|
|
duration: 250ms
|
|
on_turn_on:
|
|
- switch.template.publish:
|
|
id: livingroom_lights
|
|
state: 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;
|
|
- platform: rgb
|
|
name: Living Room Lights
|
|
id: ${roomname}_lights
|
|
red: pca_0
|
|
green: pca_1
|
|
blue: pca_2
|
|
- platform: rgbw
|
|
name: Living Room Lights 2
|
|
red: pca_3
|
|
green: pca_4
|
|
blue: pca_5
|
|
white: pca_6
|
|
color_interlock: true
|
|
- platform: rgbww
|
|
name: Living Room Lights 2
|
|
red: pca_3
|
|
green: pca_4
|
|
blue: pca_5
|
|
cold_white: pca_6
|
|
warm_white: pca_6
|
|
cold_white_color_temperature: 153 mireds
|
|
warm_white_color_temperature: 500 mireds
|
|
color_interlock: true
|
|
- platform: rgbct
|
|
name: Living Room Lights 2
|
|
red: pca_3
|
|
green: pca_4
|
|
blue: pca_5
|
|
color_temperature: pca_6
|
|
white_brightness: pca_6
|
|
cold_white_color_temperature: 153 mireds
|
|
warm_white_color_temperature: 500 mireds
|
|
color_interlock: true
|
|
- platform: cwww
|
|
name: Living Room Lights 2
|
|
cold_white: pca_6
|
|
warm_white: pca_6
|
|
cold_white_color_temperature: 153 mireds
|
|
warm_white_color_temperature: 500 mireds
|
|
constant_brightness: true
|
|
- platform: color_temperature
|
|
name: Living Room Lights 2
|
|
color_temperature: pca_6
|
|
brightness: pca_6
|
|
cold_white_color_temperature: 153 mireds
|
|
warm_white_color_temperature: 500 mireds
|
|
- platform: fastled_clockless
|
|
id: addr1
|
|
chipset: WS2811
|
|
pin: GPIO23
|
|
num_leds: 60
|
|
rgb_order: BRG
|
|
max_refresh_rate: 20ms
|
|
power_supply: atx_power_supply
|
|
color_correct: [75%, 100%, 50%]
|
|
name: FastLED WS2811 Light
|
|
effects:
|
|
- addressable_color_wipe:
|
|
- addressable_color_wipe:
|
|
name: Color Wipe Effect With Custom Values
|
|
colors:
|
|
- red: 100%
|
|
green: 100%
|
|
blue: 100%
|
|
num_leds: 1
|
|
- red: 0%
|
|
green: 0%
|
|
blue: 0%
|
|
num_leds: 1
|
|
add_led_interval: 100ms
|
|
reverse: false
|
|
- addressable_scan:
|
|
- addressable_scan:
|
|
name: Scan Effect With Custom Values
|
|
move_interval: 100ms
|
|
- addressable_twinkle:
|
|
- addressable_twinkle:
|
|
name: Twinkle Effect With Custom Values
|
|
twinkle_probability: 5%
|
|
progress_interval: 4ms
|
|
- addressable_random_twinkle:
|
|
- addressable_random_twinkle:
|
|
name: Random Twinkle Effect With Custom Values
|
|
twinkle_probability: 5%
|
|
progress_interval: 32ms
|
|
- addressable_fireworks:
|
|
- addressable_fireworks:
|
|
name: Fireworks Effect With Custom Values
|
|
update_interval: 32ms
|
|
spark_probability: 10%
|
|
use_random_color: false
|
|
fade_out_rate: 120
|
|
- addressable_flicker:
|
|
- addressable_flicker:
|
|
name: Flicker Effect With Custom Values
|
|
update_interval: 16ms
|
|
intensity: 5%
|
|
- addressable_lambda:
|
|
name: Test For Custom Lambda Effect
|
|
lambda: |-
|
|
if (initial_run) {
|
|
it[0] = current_color;
|
|
}
|
|
|
|
- wled:
|
|
port: 11111
|
|
|
|
- adalight:
|
|
uart_id: adalight_uart
|
|
|
|
- automation:
|
|
name: Custom Effect
|
|
sequence:
|
|
- light.addressable_set:
|
|
id: addr1
|
|
red: 100%
|
|
green: 100%
|
|
blue: 0%
|
|
- delay: 100ms
|
|
- light.addressable_set:
|
|
id: addr1
|
|
red: 0%
|
|
green: 100%
|
|
blue: 0%
|
|
- e131:
|
|
universe: 1
|
|
- platform: fastled_spi
|
|
id: addr2
|
|
chipset: WS2801
|
|
data_pin: GPIO23
|
|
clock_pin: GPIO22
|
|
data_rate: 2MHz
|
|
num_leds: 60
|
|
rgb_order: BRG
|
|
name: FastLED SPI Light
|
|
- platform: neopixelbus
|
|
id: addr3
|
|
name: Neopixelbus Light
|
|
gamma_correct: 2.8
|
|
color_correct: [0.0, 0.0, 0.0, 0.0]
|
|
default_transition_length: 10s
|
|
power_supply: atx_power_supply
|
|
effects:
|
|
- addressable_flicker:
|
|
name: Flicker Effect With Custom Values
|
|
update_interval: 16ms
|
|
intensity: 5%
|
|
type: GRBW
|
|
variant: SK6812
|
|
method: ESP32_I2S_0
|
|
num_leds: 60
|
|
pin: GPIO23
|
|
- platform: partition
|
|
name: Partition Light
|
|
segments:
|
|
- id: addr1
|
|
from: 0
|
|
to: 0
|
|
- id: addr2
|
|
from: 1
|
|
to: 10
|
|
- id: addr2
|
|
from: 20
|
|
to: 25
|
|
- single_light_id: ${roomname}_lights
|
|
|
|
remote_transmitter:
|
|
- pin: 32
|
|
carrier_duty_percent: 100%
|
|
|
|
climate:
|
|
- platform: tcl112
|
|
name: TCL112 Climate With Sensor
|
|
supports_heat: true
|
|
supports_cool: true
|
|
sensor: ${sensorname}_sensor
|
|
- platform: tcl112
|
|
name: TCL112 Climate
|
|
action_state_topic: action/state/topic
|
|
away_command_topic: away/command/topic
|
|
away_state_topic: away/state/topic
|
|
current_temperature_state_topic: current/temperature/state/topic
|
|
fan_mode_command_topic: fan_mode/mode/command/topic
|
|
fan_mode_state_topic: fan_mode/mode/state/topic
|
|
mode_command_topic: mode/command/topic
|
|
mode_state_topic: mode/state/topic
|
|
swing_mode_command_topic: swing_mode/command/topic
|
|
swing_mode_state_topic: swing_mode/state/topic
|
|
target_temperature_command_topic: target/temperature/command/topic
|
|
target_temperature_high_command_topic: target/temperature/high/command/topic
|
|
target_temperature_high_state_topic: target/temperature/high/state/topic
|
|
target_temperature_low_command_topic: target/temperature/low/command/topic
|
|
target_temperature_low_state_topic: target/temperature/low/state/topic
|
|
target_temperature_state_topic: target/temperature/state/topic
|
|
- platform: coolix
|
|
name: Coolix Climate With Sensor
|
|
supports_heat: true
|
|
supports_cool: true
|
|
sensor: ${sensorname}_sensor
|
|
- platform: coolix
|
|
name: Coolix Climate
|
|
- platform: fujitsu_general
|
|
name: Fujitsu General Climate
|
|
- platform: daikin
|
|
name: Daikin Climate
|
|
- platform: 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: midea_ir
|
|
name: Midea IR
|
|
use_fahrenheit: true
|
|
- platform: midea
|
|
on_control:
|
|
logger.log: Control message received!
|
|
on_state:
|
|
logger.log: State changed!
|
|
id: midea_unit
|
|
uart_id: uart0
|
|
name: Midea Climate
|
|
transmitter_id:
|
|
period: 1s
|
|
num_attempts: 5
|
|
timeout: 2s
|
|
beeper: false
|
|
autoconf: true
|
|
visual:
|
|
min_temperature: 17 °C
|
|
max_temperature: 30 °C
|
|
temperature_step: 0.5 °C
|
|
supported_modes:
|
|
- FAN_ONLY
|
|
- HEAT_COOL
|
|
- COOL
|
|
- HEAT
|
|
- DRY
|
|
custom_fan_modes:
|
|
- SILENT
|
|
- TURBO
|
|
supported_presets:
|
|
- ECO
|
|
- BOOST
|
|
- SLEEP
|
|
custom_presets:
|
|
- FREEZE_PROTECTION
|
|
supported_swing_modes:
|
|
- VERTICAL
|
|
- HORIZONTAL
|
|
- BOTH
|
|
outdoor_temperature:
|
|
name: Temp
|
|
power_usage:
|
|
name: Power
|
|
humidity_setpoint:
|
|
name: Humidity
|
|
- platform: anova
|
|
name: Anova cooker
|
|
ble_client_id: ble_blah
|
|
unit_of_measurement: c
|
|
icon: mdi:stove
|
|
- platform: bedjet
|
|
name: My Bedjet
|
|
bedjet_id: my_bedjet_client
|
|
heat_mode: extended
|
|
- platform: whynter
|
|
name: Whynter
|
|
|
|
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_midea:
|
|
code: [0xA2, 0x08, 0xFF, 0xFF, 0xFF]
|
|
- platform: gpio
|
|
name: "MCP23S08 Pin #0"
|
|
pin:
|
|
mcp23xxx: mcp23s08_hub
|
|
# Use pin number 0
|
|
number: 0
|
|
mode: OUTPUT
|
|
inverted: false
|
|
- platform: gpio
|
|
name: "MCP23S17 Pin #0"
|
|
pin:
|
|
mcp23xxx: mcp23s17_hub
|
|
# Use pin number 0
|
|
number: 1
|
|
mode: OUTPUT
|
|
inverted: false
|
|
- platform: gpio
|
|
pin: GPIO25
|
|
name: Living Room Dehumidifier
|
|
icon: "mdi:restart"
|
|
inverted: true
|
|
command_topic: custom_command_topic
|
|
command_retain: true
|
|
restore_mode: ALWAYS_OFF
|
|
- platform: template
|
|
name: JVC Off
|
|
id: living_room_lights_on
|
|
turn_on_action:
|
|
remote_transmitter.transmit_jvc:
|
|
data: 0x10EF
|
|
- platform: template
|
|
name: 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: 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
|
|
restore_state: false
|
|
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
|
|
restore_state: true
|
|
on_turn_off:
|
|
- switch.template.publish:
|
|
id: my_switch
|
|
state: !lambda "return false;"
|
|
- platform: uart
|
|
uart_id: uart0
|
|
name: UART String Output
|
|
data: DataToSend
|
|
- platform: uart
|
|
uart_id: uart0
|
|
name: UART Bytes Output
|
|
data: [0xDE, 0xAD, 0xBE, 0xEF]
|
|
- platform: uart
|
|
uart_id: uart0
|
|
name: UART Recurring Output
|
|
data: [0xDE, 0xAD, 0xBE, 0xEF]
|
|
send_every: 1s
|
|
- platform: template
|
|
assumed_state: 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
|
|
# Use pin number 0
|
|
number: 0
|
|
inverted: false
|
|
- platform: template
|
|
id: ble1_status
|
|
optimistic: true
|
|
- platform: template
|
|
id: outlet_switch
|
|
optimistic: true
|
|
device_class: outlet
|
|
|
|
fan:
|
|
- platform: binary
|
|
output: gpio_26
|
|
name: Living Room Fan 1
|
|
oscillation_output: gpio_19
|
|
direction_output: gpio_26
|
|
- platform: speed
|
|
id: fan_speed
|
|
icon: mdi:weather-windy
|
|
output: pca_6
|
|
speed_count: 10
|
|
name: Living Room Fan 2
|
|
oscillation_output: gpio_19
|
|
direction_output: gpio_26
|
|
oscillation_state_topic: oscillation/state/topic
|
|
oscillation_command_topic: oscillation/command/topic
|
|
speed_level_state_topic: speed_level/state/topic
|
|
speed_level_command_topic: speed_level/command/topic
|
|
speed_state_topic: speed/state/topic
|
|
speed_command_topic: speed/command/topic
|
|
on_speed_set:
|
|
then:
|
|
- logger.log: Fan speed was changed!
|
|
- 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%
|
|
|
|
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: GPIO4
|
|
lambda: |-
|
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
|
- platform: st7920
|
|
width: 128
|
|
height: 64
|
|
cs_pin:
|
|
number: GPIO23
|
|
inverted: true
|
|
lambda: |-
|
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
|
- platform: st7735
|
|
model: INITR_BLACKTAB
|
|
cs_pin: GPIO5
|
|
dc_pin: GPIO16
|
|
reset_pin: GPIO23
|
|
rotation: 0
|
|
device_width: 128
|
|
device_height: 160
|
|
col_start: 0
|
|
row_start: 0
|
|
lambda: |-
|
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
|
- platform: ili9341
|
|
model: TFT 2.4
|
|
cs_pin: GPIO5
|
|
dc_pin: GPIO4
|
|
reset_pin: GPIO22
|
|
led_pin:
|
|
number: GPIO15
|
|
inverted: true
|
|
lambda: |-
|
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
|
- platform: ili9341
|
|
model: TFT 2.4
|
|
cs_pin: GPIO5
|
|
dc_pin: GPIO4
|
|
reset_pin: GPIO22
|
|
led_pin:
|
|
number: GPIO15
|
|
inverted: true
|
|
auto_clear_enabled: false
|
|
rotation: 90
|
|
lambda: |-
|
|
if (!id(glob_bool_processed)) {
|
|
it.fill(Color::WHITE);
|
|
id(glob_bool_processed) = true;
|
|
}
|
|
- 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:
|
|
pin: GPIO32
|
|
dump: all
|
|
|
|
status_led:
|
|
pin: GPIO2
|
|
|
|
pn532_spi:
|
|
id: pn532_bs
|
|
cs_pin: GPIO23
|
|
update_interval: 1s
|
|
on_tag:
|
|
- lambda: |-
|
|
ESP_LOGD("main", "Found tag %s", x.c_str());
|
|
- mqtt.publish:
|
|
topic: the/topic
|
|
payload: !lambda "return x;"
|
|
on_tag_removed:
|
|
- lambda: |-
|
|
ESP_LOGD("main", "Removed tag %s", x.c_str());
|
|
- mqtt.publish:
|
|
topic: the/topic
|
|
payload: !lambda "return x;"
|
|
|
|
pn532_i2c:
|
|
i2c_id: i2c_bus
|
|
|
|
rdm6300:
|
|
uart_id: uart0
|
|
|
|
rc522_spi:
|
|
cs_pin: GPIO23
|
|
update_interval: 1s
|
|
on_tag:
|
|
- lambda: |-
|
|
ESP_LOGD("main", "Found tag %s", x.c_str());
|
|
|
|
rc522_i2c:
|
|
- update_interval: 1s
|
|
on_tag:
|
|
- lambda: |-
|
|
ESP_LOGD("main", "Found tag %s", x.c_str());
|
|
i2c_id: i2c_bus
|
|
|
|
- update_interval: 1s
|
|
on_tag:
|
|
- lambda: |-
|
|
ESP_LOGD("main", "Found tag %s", x.c_str());
|
|
i2c_id: i2c_bus
|
|
|
|
mcp4728:
|
|
- id: mcp4728_dac
|
|
store_in_eeprom: false
|
|
address: 0x60
|
|
i2c_id: i2c_bus
|
|
|
|
gps:
|
|
uart_id: uart0
|
|
|
|
time:
|
|
- platform: sntp
|
|
id: sntp_time
|
|
servers:
|
|
- 0.pool.ntp.org
|
|
- 1.pool.ntp.org
|
|
- 192.168.178.1
|
|
on_time:
|
|
cron: "/30 0-30,30/5 * ? JAN-DEC MON,SAT-SUN,TUE-FRI"
|
|
then:
|
|
- lambda: 'ESP_LOGD("main", "time");'
|
|
- platform: gps
|
|
on_time_sync:
|
|
then:
|
|
ds1307.write_time:
|
|
id: ds1307_time
|
|
- platform: ds1307
|
|
id: ds1307_time
|
|
update_interval: never
|
|
on_time:
|
|
seconds: 0
|
|
then: ds1307.read_time
|
|
i2c_id: i2c_bus
|
|
|
|
cover:
|
|
- platform: template
|
|
name: Template Cover
|
|
id: template_cover
|
|
lambda: |-
|
|
if (id(binary_sensor1).state) {
|
|
return COVER_OPEN;
|
|
} else {
|
|
return {};
|
|
}
|
|
optimistic: true
|
|
open_action:
|
|
- cover.template.publish:
|
|
id: template_cover
|
|
state: CLOSED
|
|
assumed_state: 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
|
|
address: 0x3F
|
|
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: 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
|
|
- platform: version
|
|
name: ESPHome Version No Timestamp
|
|
hide_timestamp: true
|
|
- platform: teleinfo
|
|
tag_name: OPTARIF
|
|
name: optarif
|
|
teleinfo_id: myteleinfo
|
|
|
|
sn74hc595:
|
|
- id: sn74hc595_hub
|
|
data_pin: GPIO21
|
|
clock_pin: GPIO23
|
|
latch_pin: GPIO22
|
|
oe_pin: GPIO32
|
|
sr_count: 2
|
|
|
|
rtttl:
|
|
output: gpio_19
|
|
|
|
canbus:
|
|
- platform: mcp2515
|
|
id: mcp2515_can
|
|
cs_pin: GPIO17
|
|
can_id: 4
|
|
bit_rate: 50kbps
|
|
on_frame:
|
|
- can_id: 500
|
|
then:
|
|
- lambda: |-
|
|
std::string b(x.begin(), x.end());
|
|
ESP_LOGD("canid 500", "%s", b.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: uart0
|
|
update_interval: 60s
|
|
historical_mode: true
|
|
|
|
number:
|
|
- platform: template
|
|
id: test_number
|
|
state_topic: livingroom/custom_state_topic
|
|
command_topic: livingroom/custom_command_topic
|
|
min_value: 0
|
|
step: 1
|
|
max_value: 10
|
|
optimistic: true
|
|
|
|
select:
|
|
- platform: template
|
|
id: test_select
|
|
state_topic: livingroom/custom_state_topic
|
|
command_topic: livingroom/custom_command_topic
|
|
options:
|
|
- one
|
|
- two
|
|
optimistic: true
|
|
- platform: copy
|
|
source_id: test_select
|
|
name: Test Select Copy
|
|
|
|
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:
|
|
|
|
ld2410:
|
|
id: my_ld2410
|
|
uart_id: ld2410_uart
|
|
timeout: 150s
|
|
max_move_distance: 6m
|
|
max_still_distance: 0.75m
|
|
g0_move_threshold: 10
|
|
g0_still_threshold: 20
|
|
g2_move_threshold: 20
|
|
g2_still_threshold: 21
|
|
g8_move_threshold: 80
|
|
g8_still_threshold: 81
|
|
|
|
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());'
|