mirror of
https://github.com/esphome/esphome.git
synced 2024-11-14 19:18:09 +01:00
defe8ac97b
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
672 lines
14 KiB
YAML
672 lines
14 KiB
YAML
---
|
|
esphome:
|
|
name: $device_name
|
|
comment: $device_comment
|
|
build_path: build/test3.1
|
|
includes:
|
|
- custom.h
|
|
|
|
esp8266:
|
|
board: d1_mini
|
|
|
|
substitutions:
|
|
device_name: test3-1
|
|
device_comment: test3-1 device
|
|
min_sub: "0.03"
|
|
max_sub: "12.0%"
|
|
|
|
api:
|
|
|
|
wifi:
|
|
ssid: "MySSID"
|
|
password: "password1"
|
|
|
|
network:
|
|
enable_ipv6: true
|
|
|
|
web_server:
|
|
port: 80
|
|
version: 2
|
|
|
|
i2c:
|
|
sda: 4
|
|
scl: 5
|
|
scan: false
|
|
|
|
spi:
|
|
clk_pin: GPIO12
|
|
mosi_pin: GPIO13
|
|
miso_pin: GPIO14
|
|
|
|
ota:
|
|
|
|
logger:
|
|
|
|
debug:
|
|
|
|
sensor:
|
|
- platform: apds9960
|
|
type: proximity
|
|
name: APDS9960 Proximity
|
|
- platform: vl53l0x
|
|
name: VL53L0x Distance
|
|
address: 0x29
|
|
update_interval: 60s
|
|
enable_pin: GPIO13
|
|
timeout: 200us
|
|
- platform: apds9960
|
|
type: clear
|
|
name: APDS9960 Clear
|
|
- platform: apds9960
|
|
type: red
|
|
name: APDS9960 Red
|
|
- platform: apds9960
|
|
type: green
|
|
name: APDS9960 Green
|
|
- platform: apds9960
|
|
type: blue
|
|
name: APDS9960 Blue
|
|
|
|
- platform: aht10
|
|
temperature:
|
|
name: Temperature
|
|
humidity:
|
|
name: Humidity
|
|
- platform: am2320
|
|
temperature:
|
|
name: Temperature
|
|
humidity:
|
|
name: Humidity
|
|
- platform: adc
|
|
pin: VCC
|
|
id: my_sensor
|
|
filters:
|
|
- offset: 5.0
|
|
- multiply: 2.0
|
|
- filter_out: NAN
|
|
- sliding_window_moving_average:
|
|
- exponential_moving_average:
|
|
- quantile:
|
|
window_size: 5
|
|
send_every: 5
|
|
send_first_at: 3
|
|
quantile: .8
|
|
- lambda: "return 0;"
|
|
- delta: 100
|
|
- throttle: 100ms
|
|
- debounce: 500s
|
|
- timeout: 10min
|
|
- timeout:
|
|
timeout: 10min
|
|
value: 0
|
|
- calibrate_linear:
|
|
method: exact
|
|
datapoints:
|
|
- -1 -> 3
|
|
- 0.0 -> 1.0
|
|
- 1.0 -> 2.0
|
|
- 2.0 -> 3.0
|
|
- calibrate_polynomial:
|
|
degree: 3
|
|
datapoints:
|
|
- 0 -> 0
|
|
- 100 -> 200
|
|
- 400 -> 500
|
|
- -50 -> -1000
|
|
- -100 -> -10000
|
|
- platform: cd74hc4067
|
|
id: cd74hc4067_0
|
|
number: 0
|
|
sensor: my_sensor
|
|
- platform: resistance
|
|
sensor: my_sensor
|
|
configuration: DOWNSTREAM
|
|
resistor: 10kΩ
|
|
reference_voltage: 3.3V
|
|
name: Resistance
|
|
id: resist
|
|
- platform: ntc
|
|
sensor: resist
|
|
name: NTC Sensor
|
|
calibration:
|
|
b_constant: 3950
|
|
reference_resistance: 10k
|
|
reference_temperature: 25°C
|
|
- platform: ntc
|
|
sensor: resist
|
|
name: NTC Sensor2
|
|
calibration:
|
|
- 10.0kOhm -> 25°C
|
|
- 27.219kOhm -> 0°C
|
|
- 14.674kOhm -> 15°C
|
|
- platform: ct_clamp
|
|
sensor: my_sensor
|
|
name: CT Clamp
|
|
sample_duration: 500ms
|
|
update_interval: 5s
|
|
|
|
- platform: tcs34725
|
|
red_channel:
|
|
name: Red Channel
|
|
green_channel:
|
|
name: Green Channel
|
|
blue_channel:
|
|
name: Blue Channel
|
|
clear_channel:
|
|
name: Clear Channel
|
|
illuminance:
|
|
name: Illuminance
|
|
color_temperature:
|
|
name: Color Temperature
|
|
integration_time: 614ms
|
|
gain: 60x
|
|
- platform: custom
|
|
lambda: |-
|
|
auto s = new CustomSensor();
|
|
App.register_component(s);
|
|
return {s};
|
|
sensors:
|
|
- id: custom_sensor
|
|
name: Custom Sensor
|
|
|
|
- platform: ade7953_i2c
|
|
irq_pin: GPIO16
|
|
voltage:
|
|
name: ADE7953 Voltage
|
|
id: ade7953_voltage
|
|
current_a:
|
|
name: ADE7953 Current A
|
|
id: ade7953_current_a
|
|
current_b:
|
|
name: ADE7953 Current B
|
|
id: ade7953_current_b
|
|
power_factor_a:
|
|
name: "ADE7953 Power Factor A"
|
|
power_factor_b:
|
|
name: "ADE7953 Power Factor B"
|
|
apparent_power_a:
|
|
name: "ADE7953 Apparent Power A"
|
|
apparent_power_b:
|
|
name: "ADE7953 Apparent Power B"
|
|
active_power_a:
|
|
name: ADE7953 Active Power A
|
|
active_power_b:
|
|
name: ADE7953 Active Power B
|
|
reactive_power_a:
|
|
name: "ADE7953 Reactive Power A"
|
|
reactive_power_b:
|
|
name: "ADE7953 Reactive Power B"
|
|
update_interval: 1s
|
|
|
|
- platform: ade7953_spi
|
|
cs_pin: GPIO04
|
|
irq_pin: GPIO16
|
|
voltage:
|
|
name: ADE7953 Voltage
|
|
current_a:
|
|
name: ADE7953 Current A
|
|
current_b:
|
|
name: ADE7953 Current B
|
|
power_factor_a:
|
|
name: "ADE7953 Power Factor A"
|
|
power_factor_b:
|
|
name: "ADE7953 Power Factor B"
|
|
apparent_power_a:
|
|
name: "ADE7953 Apparent Power A"
|
|
apparent_power_b:
|
|
name: "ADE7953 Apparent Power B"
|
|
active_power_a:
|
|
name: ADE7953 Active Power A
|
|
active_power_b:
|
|
name: ADE7953 Active Power B
|
|
reactive_power_a:
|
|
name: "ADE7953 Reactive Power A"
|
|
reactive_power_b:
|
|
name: "ADE7953 Reactive Power B"
|
|
update_interval: 1s
|
|
|
|
- platform: tmp102
|
|
name: TMP102 Temperature
|
|
- 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: AQI
|
|
- platform: ezo
|
|
id: ph_ezo
|
|
address: 99
|
|
unit_of_measurement: pH
|
|
- platform: tof10120
|
|
name: Distance sensor
|
|
update_interval: 5s
|
|
|
|
- platform: mlx90393
|
|
oversampling: 1
|
|
filter: 0
|
|
gain: 3X
|
|
x_axis:
|
|
name: mlxxaxis
|
|
y_axis:
|
|
name: mlxyaxis
|
|
z_axis:
|
|
name: mlxzaxis
|
|
resolution: 17BIT
|
|
temperature:
|
|
name: mlxtemp
|
|
oversampling: 2
|
|
|
|
- platform: adc128s102
|
|
id: adc128s102_channel_0
|
|
channel: 0
|
|
|
|
apds9960:
|
|
address: 0x20
|
|
update_interval: 60s
|
|
|
|
mpr121:
|
|
id: mpr121_first
|
|
address: 0x5A
|
|
|
|
binary_sensor:
|
|
- platform: apds9960
|
|
direction: up
|
|
name: APDS9960 Up
|
|
device_class: motion
|
|
filters:
|
|
- invert
|
|
- delayed_on: 20ms
|
|
- delayed_off: 20ms
|
|
- lambda: "return false;"
|
|
on_state:
|
|
- logger.log: New state
|
|
id: my_binary_sensor
|
|
- platform: apds9960
|
|
direction: down
|
|
name: APDS9960 Down
|
|
- platform: apds9960
|
|
direction: left
|
|
name: APDS9960 Left
|
|
- platform: apds9960
|
|
direction: right
|
|
name: APDS9960 Right
|
|
|
|
- platform: mpr121
|
|
id: touchkey0
|
|
channel: 0
|
|
name: touchkey0
|
|
- platform: mpr121
|
|
channel: 1
|
|
name: touchkey1
|
|
id: bin1
|
|
- platform: mpr121
|
|
channel: 2
|
|
name: touchkey2
|
|
id: bin2
|
|
- platform: mpr121
|
|
channel: 3
|
|
name: touchkey3
|
|
id: bin3
|
|
on_press:
|
|
then:
|
|
- switch.toggle: mpr121_toggle
|
|
- platform: ttp229_lsf
|
|
channel: 1
|
|
name: TTP229 LSF Test
|
|
- platform: ttp229_bsf
|
|
channel: 1
|
|
name: TTP229 BSF Test
|
|
- platform: custom
|
|
lambda: |-
|
|
auto s = new CustomBinarySensor();
|
|
App.register_component(s);
|
|
return {s};
|
|
binary_sensors:
|
|
- id: custom_binary_sensor
|
|
name: Custom Binary Sensor
|
|
|
|
- platform: template
|
|
id: cover_toggle
|
|
on_press:
|
|
then:
|
|
- cover.toggle: time_based_cover
|
|
- cover.toggle: endstop_cover
|
|
- cover.toggle: current_based_cover
|
|
|
|
globals:
|
|
- id: my_global_string
|
|
type: std::string
|
|
initial_value: '""'
|
|
|
|
text_sensor:
|
|
- platform: custom
|
|
lambda: |-
|
|
auto s = new CustomTextSensor();
|
|
App.register_component(s);
|
|
return {s};
|
|
text_sensors:
|
|
- id: custom_text_sensor
|
|
name: Custom Text Sensor
|
|
|
|
sm2135:
|
|
data_pin: GPIO12
|
|
clock_pin: GPIO14
|
|
rgb_current: 20mA
|
|
cw_current: 60mA
|
|
|
|
grove_tb6612fng:
|
|
id: test_motor
|
|
address: 0x14
|
|
|
|
switch:
|
|
- platform: template
|
|
name: mpr121_toggle
|
|
id: mpr121_toggle
|
|
optimistic: true
|
|
- platform: gpio
|
|
id: gpio_switch1
|
|
pin:
|
|
mcp23xxx: mcp23017_hub
|
|
number: 0
|
|
mode: OUTPUT
|
|
interlock: &interlock [gpio_switch1, gpio_switch2, gpio_switch3]
|
|
- platform: gpio
|
|
id: gpio_switch2
|
|
pin:
|
|
mcp23xxx: mcp23008_hub
|
|
number: 0
|
|
mode: OUTPUT
|
|
interlock: *interlock
|
|
- platform: gpio
|
|
id: gpio_switch3
|
|
pin: GPIO1
|
|
interlock: *interlock
|
|
- platform: custom
|
|
lambda: |-
|
|
auto s = new CustomSwitch();
|
|
return {s};
|
|
switches:
|
|
- id: custom_switch
|
|
name: Custom Switch
|
|
on_turn_on:
|
|
- 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(custom_text_sensor).state;
|
|
greeting: Hello World
|
|
- http_request.send:
|
|
method: PUT
|
|
url: https://esphome.io
|
|
headers:
|
|
Content-Type: application/json
|
|
body: Some data
|
|
verify_ssl: false
|
|
- platform: template
|
|
name: open_vent
|
|
id: open_vent
|
|
optimistic: True
|
|
on_turn_on:
|
|
then:
|
|
- grove_tb6612fng.run:
|
|
channel: 1
|
|
speed: 255
|
|
direction: BACKWARD
|
|
id: test_motor
|
|
|
|
|
|
custom_component:
|
|
lambda: |-
|
|
auto s = new CustomComponent();
|
|
s->set_update_interval(15000);
|
|
return {s};
|
|
|
|
stepper:
|
|
- platform: uln2003
|
|
id: my_stepper
|
|
pin_a: GPIO12
|
|
pin_b: GPIO13
|
|
pin_c: GPIO14
|
|
pin_d: GPIO15
|
|
sleep_when_done: false
|
|
step_mode: HALF_STEP
|
|
max_speed: 250 steps/s
|
|
acceleration: inf
|
|
deceleration: inf
|
|
- platform: a4988
|
|
id: my_stepper2
|
|
step_pin: GPIO1
|
|
dir_pin: GPIO2
|
|
max_speed: 0.1 steps/s
|
|
acceleration: 10 steps/s^2
|
|
deceleration: 10 steps/s^2
|
|
|
|
interval:
|
|
interval: 5s
|
|
then:
|
|
- logger.log: Interval Run
|
|
- stepper.set_target:
|
|
id: my_stepper2
|
|
target: 500
|
|
- stepper.set_target:
|
|
id: my_stepper
|
|
target: !lambda "return 0;"
|
|
- stepper.report_position:
|
|
id: my_stepper2
|
|
position: 0
|
|
- stepper.report_position:
|
|
id: my_stepper
|
|
position: !lambda "return 50/100.0;"
|
|
|
|
cover:
|
|
- platform: endstop
|
|
name: Endstop Cover
|
|
id: endstop_cover
|
|
stop_action:
|
|
- switch.turn_on: gpio_switch1
|
|
open_endstop: my_binary_sensor
|
|
open_action:
|
|
- switch.turn_on: gpio_switch1
|
|
open_duration: 5min
|
|
close_endstop: my_binary_sensor
|
|
close_action:
|
|
- switch.turn_on: gpio_switch2
|
|
- output.set_level:
|
|
id: out
|
|
level: 50%
|
|
- output.esp8266_pwm.set_frequency:
|
|
id: out
|
|
frequency: 500.0Hz
|
|
- output.esp8266_pwm.set_frequency:
|
|
id: out
|
|
frequency: !lambda "return 500.0;"
|
|
- servo.write:
|
|
id: my_servo
|
|
level: -100%
|
|
- servo.write:
|
|
id: my_servo
|
|
level: !lambda "return -1.0;"
|
|
- delay: 2s
|
|
- servo.detach: my_servo
|
|
close_duration: 4.5min
|
|
max_duration: 10min
|
|
- platform: time_based
|
|
name: Time Based Cover
|
|
id: time_based_cover
|
|
stop_action:
|
|
- switch.turn_on: gpio_switch1
|
|
open_action:
|
|
- switch.turn_on: gpio_switch1
|
|
open_duration: 5min
|
|
close_action:
|
|
- switch.turn_on: gpio_switch2
|
|
close_duration: 4.5min
|
|
- platform: current_based
|
|
name: Current Based Cover
|
|
id: current_based_cover
|
|
open_sensor: ade7953_current_a
|
|
open_moving_current_threshold: 0.5
|
|
open_obstacle_current_threshold: 0.8
|
|
open_duration: 12s
|
|
open_action:
|
|
- switch.turn_on: gpio_switch1
|
|
close_sensor: ade7953_current_b
|
|
close_moving_current_threshold: 0.5
|
|
close_obstacle_current_threshold: 0.8
|
|
close_duration: 10s
|
|
close_action:
|
|
- switch.turn_on: gpio_switch2
|
|
stop_action:
|
|
- switch.turn_off: gpio_switch1
|
|
- switch.turn_off: gpio_switch2
|
|
obstacle_rollback: 30%
|
|
start_sensing_delay: 0.8s
|
|
malfunction_detection: true
|
|
malfunction_action:
|
|
then:
|
|
- logger.log: Malfunction Detected
|
|
- platform: template
|
|
name: Template Cover with Tilt
|
|
tilt_lambda: "return 0.5;"
|
|
tilt_action:
|
|
- output.set_level:
|
|
id: out
|
|
level: !lambda "return tilt;"
|
|
position_action:
|
|
- output.set_level:
|
|
id: out
|
|
level: !lambda "return pos;"
|
|
|
|
output:
|
|
- platform: esp8266_pwm
|
|
id: out
|
|
pin: D3
|
|
frequency: 50Hz
|
|
- platform: esp8266_pwm
|
|
id: out2
|
|
pin: D4
|
|
- platform: custom
|
|
type: binary
|
|
lambda: |-
|
|
auto s = new CustomBinaryOutput();
|
|
App.register_component(s);
|
|
return {s};
|
|
outputs:
|
|
- id: custom_binary
|
|
- platform: sigma_delta_output
|
|
id: sddac
|
|
update_interval: 60s
|
|
pin: D4
|
|
turn_on_action:
|
|
then:
|
|
- logger.log: "Turned on"
|
|
turn_off_action:
|
|
then:
|
|
- logger.log: "Turned off"
|
|
state_change_action:
|
|
then:
|
|
- logger.log:
|
|
format: "Changed state: %d"
|
|
args: ["state"]
|
|
- platform: custom
|
|
type: float
|
|
lambda: |-
|
|
auto s = new CustomFloatOutput();
|
|
App.register_component(s);
|
|
return {s};
|
|
outputs:
|
|
- id: custom_float
|
|
- platform: slow_pwm
|
|
pin: GPIO5
|
|
id: my_slow_pwm
|
|
period: 15s
|
|
restart_cycle_on_state_change: false
|
|
- platform: sm2135
|
|
id: sm2135_0
|
|
channel: 0
|
|
- platform: sm2135
|
|
id: sm2135_1
|
|
channel: 1
|
|
- platform: sm2135
|
|
id: sm2135_2
|
|
channel: 2
|
|
- platform: sm2135
|
|
id: sm2135_3
|
|
channel: 3
|
|
- platform: sm2135
|
|
id: sm2135_4
|
|
channel: 4
|
|
|
|
mcp23017:
|
|
id: mcp23017_hub
|
|
|
|
mcp23008:
|
|
id: mcp23008_hub
|
|
|
|
|
|
light:
|
|
- platform: hbridge
|
|
name: Icicle Lights
|
|
pin_a: out
|
|
pin_b: out2
|
|
|
|
servo:
|
|
id: my_servo
|
|
output: out
|
|
restore: true
|
|
min_level: $min_sub
|
|
max_level: $max_sub
|
|
|
|
ttp229_lsf:
|
|
|
|
ttp229_bsf:
|
|
sdo_pin: D2
|
|
scl_pin: D1
|
|
|
|
|
|
display:
|
|
- platform: max7219digit
|
|
cs_pin: GPIO15
|
|
num_chips: 4
|
|
rotate_chip: 0
|
|
intensity: 10
|
|
scroll_mode: STOP
|
|
id: my_matrix
|
|
lambda: |-
|
|
it.printdigit("hello");
|
|
|
|
|
|
http_request:
|
|
useragent: esphome/device
|
|
timeout: 10s
|
|
|
|
button:
|
|
- platform: output
|
|
id: output_button
|
|
output: out
|
|
duration: 100ms
|
|
- platform: wake_on_lan
|
|
target_mac_address: 12:34:56:78:90:ab
|
|
name: wol_test_1
|
|
id: wol_1
|
|
- platform: factory_reset
|
|
name: Restart Button (Factory Default Settings)
|
|
|
|
cd74hc4067:
|
|
pin_s0: GPIO12
|
|
pin_s1: GPIO13
|
|
pin_s2: GPIO14
|
|
pin_s3: GPIO15
|
|
|
|
adc128s102:
|
|
cs_pin: GPIO12
|