esphome/tests/test1.yaml

1345 lines
30 KiB
YAML
Raw Normal View History

esphome:
2018-08-26 11:26:14 +02:00
name: test1
platform: ESP32
board: nodemcu-32s
on_boot:
priority: 150.0
then:
- lambda: >-
ESP_LOGD("main", "ON BOOT!");
on_shutdown:
then:
- lambda: >-
ESP_LOGD("main", "ON SHUTDOWN!");
2018-09-23 18:58:41 +02:00
on_loop:
then:
- lambda: >-
ESP_LOGV("main", "ON LOOP!");
- light.addressable_set:
id: addr1
2019-05-27 19:35:36 +02:00
range_from: 0
range_to: 100
red: 100%
green: !lambda 'return 255;'
blue: 0%
white: 100%
2018-09-26 18:39:41 +02:00
build_path: build/test1
2018-08-26 11:26:14 +02:00
wifi:
2019-01-06 11:43:14 +01:00
networks:
- ssid: 'MySSID'
password: 'password1'
- ssid: 'MySSID2'
password: ''
channel: 14
bssid: 'A1:63:95:47:D3:1D'
2018-08-26 11:26:14 +02:00
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: none
2018-08-26 11:26:14 +02:00
mqtt:
broker: '192.168.178.84'
port: 1883
username: 'debug'
password: 'debug'
client_id: someclient
discovery: True
discovery_retain: False
discovery_prefix: discovery
topic_prefix: helloworld
log_topic:
topic: helloworld/hi
level: INFO
2018-08-26 11:26:14 +02:00
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: >-
2018-09-23 18:58:41 +02:00
ESP_LOGD("main", "Got message %s", x.c_str());
2018-08-26 11:26:14 +02:00
- topic: livingroom/ota_mode
then:
- deep_sleep.prevent: deep_sleep_1
2018-08-26 11:26:14 +02:00
- topic: livingroom/ota_mode
then:
- deep_sleep.enter: deep_sleep_1
on_json_message:
topic: the/topic
then:
- if:
condition:
- wifi.connected:
- mqtt.connected:
2019-05-30 13:12:12 +02:00
- light.is_on: kitchen
- light.is_off: kitchen
then:
- lambda: |-
int data = x["my_data"];
ESP_LOGD("main", "The data is: %d", data);
- light.turn_on:
id: living_room_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: living_room_lights
brightness: !lambda 'return id(living_room_lights).current_values.get_brightness() + 0.5;'
- light.dim_relative:
id: living_room_lights
relative_brightness: 5%
- uart.write:
id: uart0
data: Hello World
- uart.write: [0x00, 0x20, 0x30]
- uart.write: !lambda |-
return {};
2018-08-26 11:26:14 +02:00
i2c:
sda: 21
scl: 22
scan: True
frequency: 100kHz
setup_priority: -100
2018-08-26 11:26:14 +02:00
spi:
clk_pin: GPIO21
mosi_pin: GPIO22
miso_pin: GPIO23
uart:
tx_pin: GPIO22
rx_pin: GPIO23
baud_rate: 115200
id: uart0
2018-08-26 11:26:14 +02:00
ota:
safe_mode: True
password: 'superlongpasswordthatnoonewillknow'
port: 3286
logger:
baud_rate: 0
level: VERBOSE
logs:
mqtt.component: DEBUG
mqtt.client: ERROR
web_server:
port: 8080
css_url: https://esphome.io/_static/webserver-v1.min.css
js_url: https://esphome.io/_static/webserver-v1.min.js
2018-08-26 11:26:14 +02:00
power_supply:
id: 'atx_power_supply'
enable_time: 20ms
keep_on_time: 10s
pin:
number: 13
inverted: true
deep_sleep:
run_duration: 20s
sleep_duration: 50s
wakeup_pin: GPIO39
wakeup_pin_mode: INVERT_WAKEUP
id: deep_sleep_1
ads1115:
address: 0x48
dallas:
pin: GPIO23
sensor:
- 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
2018-08-26 11:26:14 +02:00
filters:
- offset: 2.0
- multiply: 1.2
- calibrate_linear:
- 0.0 -> 0.0
- 40.0 -> 45.0
- 100.0 -> 102.5
2018-08-26 11:26:14 +02:00
- filter_out: 42.0
- filter_out: nan
2018-08-26 11:26:14 +02:00
- sliding_window_moving_average:
window_size: 15
send_every: 15
send_first_at: 15
2018-08-26 11:26:14 +02:00
- exponential_moving_average:
alpha: 0.1
send_every: 15
- 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:
[Huge] Util Refactor, Dashboard Improvements, Hass.io Auth API, Better Validation Errors, Conditions, Custom Platforms, Substitutions (#234) * Implement custom sensor platform * Update * Ethernet * Lint * Fix * Login page * Rename cookie secret * Update manifest * Update cookie check logic * Favicon * Fix * Favicon manifest * Fix * Fix * Fix * Use hostname * Message * Temporary commit for screenshot * Automatic board selection * Undo temporary commit * Update esphomeyaml-edge * In-dashboard editing and hosting files locally * Update esphomeyaml-edge * Better ANSI color escaping * Message * Lint * Download Efficiency * Fix gitlab * Fix * Rename extra_libraries to libraries * Add example * Update README.md * Update README.md * Update README.md * HassIO -> Hass.io * Updates * Add update available notice * Update * Fix substitutions * Better error message * Re-do dashboard ANSI colors * Only include FastLED if user says so * Autoscroll logs * Remove old checks * Use safer RedirectText * Improvements * Fix * Use enviornment variable * Use http://hassio/host/info * Fix conditions * Update platformio versions * Revert "Use enviornment variable" This reverts commit 7f038eb5d26df72f76ea9ae76774e2cec1fd7f59. * Fix * README update * Temp * Better invalid config messages * Platformio debug * Improve error messages * Debug * Remove debug * Multi Conf * Update * Better paths * Remove unused * Fixes * Lint * lib_ignore * Try fix platformio colors * Fix dashboard scrolling * Revert * Lint * Revert
2018-12-05 21:22:06 +01:00
- lambda: |-
2018-08-26 11:26:14 +02:00
ESP_LOGD("main", "Got value %f", x);
id(my_sensor).publish_state(42.0);
ESP_LOGI("main", "Value of my sensor: %f", id(my_sensor).state);
ESP_LOGI("main", "Raw Value of my sensor: %f", id(my_sensor).state);
2018-08-26 11:26:14 +02:00
on_value_range:
above: 5
below: 10
then:
- lambda: >-
ESP_LOGD("main", "Got value range %f", x);
2019-02-17 19:27:33 +01:00
- wait_until:
binary_sensor.is_on: binary_sensor1
2018-08-26 11:26:14 +02:00
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"
2018-08-26 11:26:14 +02:00
- mqtt.publish:
topic: some/topic
payload: Hello
qos: 2
retain: True
- platform: esp32_hall
name: ESP32 Hall Sensor
2018-08-26 11:26:14 +02:00
- platform: ads1115
multiplexer: 'A0_A1'
gain: 1.024
id: my_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"
gain_voltage: 47660
gain_ct: 12577
phase_b:
current:
name: "EMON CT2 Current"
power:
name: "EMON Active Power CT2"
gain_voltage: 47660
gain_ct: 12577
phase_c:
current:
name: "EMON CT3 Current"
power:
name: "EMON Active Power CT3"
gain_voltage: 47660
gain_ct: 12577
frequency:
name: "EMON Line Frequency"
line_frequency: 50Hz
gain_pga: 2X
2018-08-26 11:26:14 +02:00
- platform: bh1750
name: "Living Room Brightness 3"
internal: true
address: 0x23
resolution: 1.0
update_interval: 30s
retain: False
availability:
state_topic: livingroom/custom_state_topic
- 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
- 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
- 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
- platform: bmp280
temperature:
name: "Outside Temperature"
oversampling: 16x
pressure:
name: "Outside Pressure"
address: 0x77
update_interval: 15s
iir_filter: 16x
- platform: dallas
address: 0x1C0000031EDD2A28
name: "Living Room Temperature"
resolution: 9
- platform: dallas
index: 1
name: "Living Room Temperature 2"
- platform: dht
pin: GPIO26
temperature:
name: "Living Room Temperature 3"
humidity:
name: "Living Room Humidity 3"
model: AM2302
update_interval: 15s
- platform: dht12
temperature:
name: "Living Room Temperature 4"
humidity:
name: "Living Room Humidity 4"
update_interval: 15s
- platform: duty_cycle
pin: GPIO25
name: Duty Cycle Sensor
- platform: esp32_hall
name: "ESP32 Hall Sensor"
update_interval: 15s
- platform: hdc1080
temperature:
name: "Living Room Temperature 5"
humidity:
name: "Living Room Pressure 5"
update_interval: 15s
- 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
2018-08-26 11:26:14 +02:00
update_interval: 15s
current_resistor: 0.001 ohm
voltage_divider: 2351
change_mode_every: 16
initial_mode: VOLTAGE
- platform: total_daily_energy
power_id: hlw8012_power
name: "HLW8012 Total Daily Energy"
- platform: integration
sensor: hlw8012_power
name: "Integration Sensor"
time_unit: s
2018-08-26 11:26:14 +02:00
- 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
update_interval: 15s
- platform: hx711
name: "HX711 Value"
dout_pin: GPIO23
clk_pin: GPIO24
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
- 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
- platform: htu21d
temperature:
name: "Living Room Temperature 6"
humidity:
name: "Living Room Humidity 6"
update_interval: 15s
- platform: max6675
name: "Living Room Temperature"
cs_pin: GPIO23
update_interval: 15s
- platform: max31855
name: "Den Temperature"
cs_pin: GPIO23
update_interval: 15s
2018-08-26 11:26:14 +02:00
- platform: mhz19
co2:
name: "MH-Z19 CO2 Value"
temperature:
name: "MH-Z19 Temperature"
update_interval: 15s
- 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"
- platform: ms5611
temperature:
name: "Outside Temperature"
pressure:
name: "Outside Pressure"
address: 0x77
update_interval: 15s
- platform: pulse_counter
name: "Pulse Counter"
pin: GPIO12
count_mode:
rising_edge: INCREMENT
falling_edge: DECREMENT
internal_filter: 13us
update_interval: 15s
- platform: rotary_encoder
name: "Rotary Encoder"
pin_a: GPIO23
pin_b: GPIO24
pin_reset: GPIO25
filters:
- or:
- debounce: 0.1s
- delta: 10
resolution: 4
min_value: -10
max_value: 30
- platform: pulse_width
name: Pulse Width
pin: GPIO12
2018-08-26 11:26:14 +02:00
- platform: sht3xd
temperature:
name: "Living Room Temperature 8"
humidity:
name: "Living Room Humidity 8"
address: 0x44
update_interval: 15s
- platform: template
name: "Template Sensor"
id: template_sensor
lambda: |-
if (id(ultrasonic_sensor1).state > 1) {
2018-08-26 11:26:14 +02:00
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;'
2018-08-26 11:26:14 +02:00
- platform: tsl2561
name: "TSL2561 Ambient Light"
address: 0x39
update_interval: 15s
is_cs_package: true
integration_time: 402ms
gain: 16x
- platform: ultrasonic
trigger_pin: GPIO24
echo_pin:
number: GPIO23
inverted: true
name: "Ultrasonic Sensor"
timeout: 5.5m
2018-08-26 11:26:14 +02:00
id: ultrasonic_sensor1
- platform: uptime
name: Uptime Sensor
- platform: wifi_signal
name: "WiFi Signal Sensor"
update_interval: 15s
- platform: mqtt_subscribe
name: "MQTT Subscribe Sensor 1"
topic: "mqtt/topic"
id: the_sensor
qos: 2
on_value:
- mqtt.publish_json:
topic: the/topic
payload: |-
root["key"] = id(the_sensor).state;
root["greeting"] = "Hello World";
- platform: sds011
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
2018-08-26 11:26:14 +02:00
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
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
2018-08-26 11:26:14 +02:00
id: binary_sensor1
2018-12-02 13:16:02 +01:00
- platform: gpio
pin:
number: GPIO9
mode: INPUT_PULLUP
name: "Living Room Window 2"
2018-08-26 11:26:14 +02:00
- platform: status
name: "Living Room Status"
- platform: esp32_touch
name: "ESP32 Touch Pad GPIO27"
pin: GPIO27
threshold: 1000
id: btn_left
2018-08-26 11:26:14 +02:00
- platform: nextion
page_id: 0
component_id: 2
name: "Nextion Component 2 Touch"
- platform: template
name: "Garage Door Open"
id: garage_door
lambda: |-
if (isnan(id(my_sensor).state)) {
2018-08-26 11:26:14 +02:00
// 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(my_sensor).state > 30) {
2018-08-26 11:26:14 +02:00
// Garage Door is open.
return true;
} else {
// Garage Door is closed.
return false;
}
on_press:
- binary_sensor.template.publish:
id: garage_door
state: OFF
2018-08-26 11:26:14 +02:00
- platform: pn532
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: "MCP binary sensor"
pin:
mcp23017: mcp23017_hub
number: 1
mode: INPUT
inverted: True
- 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]
2018-08-26 11:26:14 +02:00
pca9685:
frequency: 500
address: 0x0
2018-11-13 16:51:30 +01:00
my9231:
data_pin: GPIO12
clock_pin: GPIO14
num_channels: 6
num_chips: 2
bit_depth: 16
2018-08-26 11:26:14 +02:00
output:
- platform: gpio
pin: GPIO26
id: gpio_26
power_supply: atx_power_supply
inverted: False
- platform: ledc
pin: 19
id: gpio_19
frequency: 1500Hz
bit_depth: 8
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: gpio
id: id2
pin:
pcf8574: pcf8574_hub
number: 0
mode: OUTPUT
inverted: False
- platform: gpio
id: id22
pin:
mcp23017: mcp23017_hub
number: 0
mode: OUTPUT
inverted: False
2018-11-13 16:51:30 +01:00
- 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
2018-08-26 11:26:14 +02:00
light:
- platform: binary
name: "Desk Lamp"
output: gpio_26
effects:
- strobe:
- strobe:
name: "My Strobe"
colors:
- state: True
duration: 250ms
- state: False
duration: 250ms
- 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: living_room_lights
2018-08-26 11:26:14 +02:00
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
- 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
- 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
- platform: fastled_clockless
2019-02-16 16:47:23 +01:00
id: addr1
2018-08-26 11:26:14 +02:00
chipset: WS2811
pin: GPIO23
num_leds: 60
rgb_order: BRG
max_refresh_rate: 20ms
power_supply: atx_power_supply
color_correct: [75%, 100%, 50%]
2018-08-26 11:26:14 +02:00
name: "FastLED WS2811 Light"
effects:
2019-01-02 13:04:27 +01:00
- addressable_color_wipe:
- addressable_color_wipe:
2018-08-26 11:26:14 +02:00
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
2019-01-02 13:04:27 +01:00
- addressable_scan:
- addressable_scan:
2018-08-26 11:26:14 +02:00
name: Scan Effect With Custom Values
move_interval: 100ms
2019-01-02 13:04:27 +01:00
- addressable_twinkle:
- addressable_twinkle:
2018-08-26 11:26:14 +02:00
name: Twinkle Effect With Custom Values
twinkle_probability: 5%
progress_interval: 4ms
2019-01-02 13:04:27 +01:00
- addressable_random_twinkle:
- addressable_random_twinkle:
2018-08-26 11:26:14 +02:00
name: Random Twinkle Effect With Custom Values
twinkle_probability: 5%
progress_interval: 32ms
2019-01-02 13:04:27 +01:00
- addressable_fireworks:
- addressable_fireworks:
2018-08-26 11:26:14 +02:00
name: Fireworks Effect With Custom Values
update_interval: 32ms
spark_probability: 10%
use_random_color: false
fade_out_rate: 120
2019-01-02 13:04:27 +01:00
- addressable_flicker:
- addressable_flicker:
2018-08-26 11:26:14 +02:00
name: Flicker Effect With Custom Values
update_interval: 16ms
intensity: 5%
- addressable_lambda:
name: "Test For Custom Lambda Effect"
lambda: |-
it[0] = current_color;
2019-05-27 19:35:36 +02:00
- 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%
2018-08-26 11:26:14 +02:00
- platform: fastled_spi
2019-02-16 16:47:23 +01:00
id: addr2
2018-08-26 11:26:14 +02:00
chipset: WS2801
data_pin: GPIO23
clock_pin: GPIO22
num_leds: 60
rgb_order: BRG
name: "FastLED SPI Light"
2019-01-06 16:59:11 +01:00
- platform: neopixelbus
2019-02-16 16:47:23 +01:00
id: addr3
2019-01-06 16:59:11 +01:00
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
2019-02-16 16:47:23 +01:00
- platform: partition
name: "Partition Light"
segments:
- id: addr1
from: 0
to: 0
- id: addr2
from: 1
to: 10
- id: addr2
from: 20
to: 25
2018-08-26 11:26:14 +02:00
remote_transmitter:
- pin: 32
🏗 Merge C++ into python codebase (#504) ## Description: Move esphome-core codebase into esphome (and a bunch of other refactors). See https://github.com/esphome/feature-requests/issues/97 Yes this is a shit ton of work and no there's no way to automate it :( But it will be worth it 👍 Progress: - Core support (file copy etc): 80% - Base Abstractions (light, switch): ~50% - Integrations: ~10% - Working? Yes, (but only with ported components). Other refactors: - Moves all codegen related stuff into a single class: `esphome.codegen` (imported as `cg`) - Rework coroutine syntax - Move from `component/platform.py` to `domain/component.py` structure as with HA - Move all defaults out of C++ and into config validation. - Remove `make_...` helpers from Application class. Reason: Merge conflicts with every single new integration. - Pointer Variables are stored globally instead of locally in setup(). Reason: stack size limit. Future work: - Rework const.py - Move all `CONF_...` into a conf class (usage `conf.UPDATE_INTERVAL` vs `CONF_UPDATE_INTERVAL`). Reason: Less convoluted import block - Enable loading from `custom_components` folder. **Related issue (if applicable):** https://github.com/esphome/feature-requests/issues/97 **Pull request in [esphome-docs](https://github.com/esphome/esphome-docs) with documentation (if applicable):** esphome/esphome-docs#<esphome-docs PR number goes here> ## Checklist: - [ ] The code change is tested and works locally. - [ ] Tests have been added to verify that the new code works (under `tests/` folder). If user exposed functionality or configuration variables are added/changed: - [ ] Documentation added/updated in [esphomedocs](https://github.com/OttoWinter/esphomedocs).
2019-04-17 12:06:00 +02:00
carrier_duty_percent: 100%
2018-08-26 11:26:14 +02:00
climate:
- platform: tcl112
name: TCL112 Climate With Sensor
supports_heat: True
supports_cool: True
sensor: my_sensor
- platform: tcl112
name: TCL112 Climate
- platform: coolix
name: Coolix Climate With Sensor
supports_heat: True
supports_cool: True
sensor: my_sensor
- platform: coolix
name: Coolix Climate
2018-08-26 11:26:14 +02:00
switch:
- platform: gpio
pin: GPIO25
name: "Living Room Dehumidifier"
icon: "mdi:restart"
inverted: True
command_topic: custom_command_topic
2019-01-06 11:43:14 +01:00
restore_mode: ALWAYS_OFF
🏗 Merge C++ into python codebase (#504) ## Description: Move esphome-core codebase into esphome (and a bunch of other refactors). See https://github.com/esphome/feature-requests/issues/97 Yes this is a shit ton of work and no there's no way to automate it :( But it will be worth it 👍 Progress: - Core support (file copy etc): 80% - Base Abstractions (light, switch): ~50% - Integrations: ~10% - Working? Yes, (but only with ported components). Other refactors: - Moves all codegen related stuff into a single class: `esphome.codegen` (imported as `cg`) - Rework coroutine syntax - Move from `component/platform.py` to `domain/component.py` structure as with HA - Move all defaults out of C++ and into config validation. - Remove `make_...` helpers from Application class. Reason: Merge conflicts with every single new integration. - Pointer Variables are stored globally instead of locally in setup(). Reason: stack size limit. Future work: - Rework const.py - Move all `CONF_...` into a conf class (usage `conf.UPDATE_INTERVAL` vs `CONF_UPDATE_INTERVAL`). Reason: Less convoluted import block - Enable loading from `custom_components` folder. **Related issue (if applicable):** https://github.com/esphome/feature-requests/issues/97 **Pull request in [esphome-docs](https://github.com/esphome/esphome-docs) with documentation (if applicable):** esphome/esphome-docs#<esphome-docs PR number goes here> ## Checklist: - [ ] The code change is tested and works locally. - [ ] Tests have been added to verify that the new code works (under `tests/` folder). If user exposed functionality or configuration variables are added/changed: - [ ] Documentation added/updated in [esphomedocs](https://github.com/OttoWinter/esphomedocs).
2019-04-17 12:06:00 +02:00
- platform: template
name: JVC Off
2018-08-26 11:26:14 +02:00
id: living_room_lights_on
🏗 Merge C++ into python codebase (#504) ## Description: Move esphome-core codebase into esphome (and a bunch of other refactors). See https://github.com/esphome/feature-requests/issues/97 Yes this is a shit ton of work and no there's no way to automate it :( But it will be worth it 👍 Progress: - Core support (file copy etc): 80% - Base Abstractions (light, switch): ~50% - Integrations: ~10% - Working? Yes, (but only with ported components). Other refactors: - Moves all codegen related stuff into a single class: `esphome.codegen` (imported as `cg`) - Rework coroutine syntax - Move from `component/platform.py` to `domain/component.py` structure as with HA - Move all defaults out of C++ and into config validation. - Remove `make_...` helpers from Application class. Reason: Merge conflicts with every single new integration. - Pointer Variables are stored globally instead of locally in setup(). Reason: stack size limit. Future work: - Rework const.py - Move all `CONF_...` into a conf class (usage `conf.UPDATE_INTERVAL` vs `CONF_UPDATE_INTERVAL`). Reason: Less convoluted import block - Enable loading from `custom_components` folder. **Related issue (if applicable):** https://github.com/esphome/feature-requests/issues/97 **Pull request in [esphome-docs](https://github.com/esphome/esphome-docs) with documentation (if applicable):** esphome/esphome-docs#<esphome-docs PR number goes here> ## Checklist: - [ ] The code change is tested and works locally. - [ ] Tests have been added to verify that the new code works (under `tests/` folder). If user exposed functionality or configuration variables are added/changed: - [ ] Documentation added/updated in [esphomedocs](https://github.com/OttoWinter/esphomedocs).
2019-04-17 12:06:00 +02:00
turn_on_action:
remote_transmitter.transmit_jvc:
data: 0x10EF
- platform: template
name: NEC
2018-08-26 11:26:14 +02:00
id: living_room_lights_off
🏗 Merge C++ into python codebase (#504) ## Description: Move esphome-core codebase into esphome (and a bunch of other refactors). See https://github.com/esphome/feature-requests/issues/97 Yes this is a shit ton of work and no there's no way to automate it :( But it will be worth it 👍 Progress: - Core support (file copy etc): 80% - Base Abstractions (light, switch): ~50% - Integrations: ~10% - Working? Yes, (but only with ported components). Other refactors: - Moves all codegen related stuff into a single class: `esphome.codegen` (imported as `cg`) - Rework coroutine syntax - Move from `component/platform.py` to `domain/component.py` structure as with HA - Move all defaults out of C++ and into config validation. - Remove `make_...` helpers from Application class. Reason: Merge conflicts with every single new integration. - Pointer Variables are stored globally instead of locally in setup(). Reason: stack size limit. Future work: - Rework const.py - Move all `CONF_...` into a conf class (usage `conf.UPDATE_INTERVAL` vs `CONF_UPDATE_INTERVAL`). Reason: Less convoluted import block - Enable loading from `custom_components` folder. **Related issue (if applicable):** https://github.com/esphome/feature-requests/issues/97 **Pull request in [esphome-docs](https://github.com/esphome/esphome-docs) with documentation (if applicable):** esphome/esphome-docs#<esphome-docs PR number goes here> ## Checklist: - [ ] The code change is tested and works locally. - [ ] Tests have been added to verify that the new code works (under `tests/` folder). If user exposed functionality or configuration variables are added/changed: - [ ] Documentation added/updated in [esphomedocs](https://github.com/OttoWinter/esphomedocs).
2019-04-17 12:06:00 +02:00
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: 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: RC Switch Raw
turn_on_action:
remote_transmitter.transmit_rc_switch_raw:
code: '00101001100111110101xxxx'
🏗 Merge C++ into python codebase (#504) ## Description: Move esphome-core codebase into esphome (and a bunch of other refactors). See https://github.com/esphome/feature-requests/issues/97 Yes this is a shit ton of work and no there's no way to automate it :( But it will be worth it 👍 Progress: - Core support (file copy etc): 80% - Base Abstractions (light, switch): ~50% - Integrations: ~10% - Working? Yes, (but only with ported components). Other refactors: - Moves all codegen related stuff into a single class: `esphome.codegen` (imported as `cg`) - Rework coroutine syntax - Move from `component/platform.py` to `domain/component.py` structure as with HA - Move all defaults out of C++ and into config validation. - Remove `make_...` helpers from Application class. Reason: Merge conflicts with every single new integration. - Pointer Variables are stored globally instead of locally in setup(). Reason: stack size limit. Future work: - Rework const.py - Move all `CONF_...` into a conf class (usage `conf.UPDATE_INTERVAL` vs `CONF_UPDATE_INTERVAL`). Reason: Less convoluted import block - Enable loading from `custom_components` folder. **Related issue (if applicable):** https://github.com/esphome/feature-requests/issues/97 **Pull request in [esphome-docs](https://github.com/esphome/esphome-docs) with documentation (if applicable):** esphome/esphome-docs#<esphome-docs PR number goes here> ## Checklist: - [ ] The code change is tested and works locally. - [ ] Tests have been added to verify that the new code works (under `tests/` folder). If user exposed functionality or configuration variables are added/changed: - [ ] Documentation added/updated in [esphomedocs](https://github.com/OttoWinter/esphomedocs).
2019-04-17 12:06:00 +02:00
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]
2018-08-26 11:26:14 +02:00
- platform: template
name: Living Room Lights
id: livingroom_lights
2018-08-26 11:26:14 +02:00
optimistic: True
assumed_state: yes
2018-08-26 11:26:14 +02:00
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;'
2018-08-26 11:26:14 +02:00
turn_off_action:
- switch.turn_on: living_room_lights_off
restore_state: False
on_turn_on:
- switch.template.publish:
id: livingroom_lights
state: yes
2018-08-26 11:26:14 +02:00
- platform: restart
name: "Living Room Restart"
- 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) {
2018-08-26 11:26:14 +02:00
return true;
} else {
return {};
}
id(my_switch).publish_state(false);
id(my_switch).publish_state(true);
if (id(my_switch).state) {
2018-08-26 11:26:14 +02:00
// Switch is ON, do something here
id(my_switch).turn_off();
id(my_switch).turn_on();
2018-08-26 11:26:14 +02:00
} else {
// Switch is OFF, do something else here
}
optimistic: true
assumed_state: no
restore_state: True
on_turn_off:
- switch.template.publish:
id: my_switch
state: !lambda 'return false;'
2018-08-26 11:26:14 +02:00
- platform: uart
name: "UART String Output"
data: 'DataToSend'
- platform: uart
name: "UART Bytes Output"
data: [0xDE, 0xAD, 0xBE, 0xEF]
- platform: template
assumed_state: yes
name: Stepper Switch
turn_on_action:
- stepper.set_target:
id: my_stepper
target: !lambda |-
static int32_t i = 0;
i += 1000;
if (i > 5000) {
i = -5000;
}
return i;
- stepper.report_position:
id: my_stepper
position: 0
2018-08-26 11:26:14 +02:00
fan:
- platform: binary
output: gpio_26
name: "Living Room Fan 1"
- platform: speed
output: pca_6
name: "Living Room Fan 2"
speed:
low: 0.45
medium: 0.75
high: 1.0
2019-02-17 00:35:23 +01:00
interval:
- interval: 10s
then:
- display.page.show: !lambda |-
if (true) return id(page1); else return id(page2);
🏗 Merge C++ into python codebase (#504) ## Description: Move esphome-core codebase into esphome (and a bunch of other refactors). See https://github.com/esphome/feature-requests/issues/97 Yes this is a shit ton of work and no there's no way to automate it :( But it will be worth it 👍 Progress: - Core support (file copy etc): 80% - Base Abstractions (light, switch): ~50% - Integrations: ~10% - Working? Yes, (but only with ported components). Other refactors: - Moves all codegen related stuff into a single class: `esphome.codegen` (imported as `cg`) - Rework coroutine syntax - Move from `component/platform.py` to `domain/component.py` structure as with HA - Move all defaults out of C++ and into config validation. - Remove `make_...` helpers from Application class. Reason: Merge conflicts with every single new integration. - Pointer Variables are stored globally instead of locally in setup(). Reason: stack size limit. Future work: - Rework const.py - Move all `CONF_...` into a conf class (usage `conf.UPDATE_INTERVAL` vs `CONF_UPDATE_INTERVAL`). Reason: Less convoluted import block - Enable loading from `custom_components` folder. **Related issue (if applicable):** https://github.com/esphome/feature-requests/issues/97 **Pull request in [esphome-docs](https://github.com/esphome/esphome-docs) with documentation (if applicable):** esphome/esphome-docs#<esphome-docs PR number goes here> ## Checklist: - [ ] The code change is tested and works locally. - [ ] Tests have been added to verify that the new code works (under `tests/` folder). If user exposed functionality or configuration variables are added/changed: - [ ] Documentation added/updated in [esphomedocs](https://github.com/OttoWinter/esphomedocs).
2019-04-17 12:06:00 +02:00
- display.page.show_next: display1
- display.page.show_previous: display1
- interval: 2s
then:
- lambda: |-
static uint16_t btn_left_state = id(btn_left)->get_value();
ESP_LOGD("adaptive touch", "___ Touch Pad '%s' (T%u): val: %u state: %u tres:%u", id(btn_left)->get_name().c_str(), id(btn_left)->get_touch_pad(), id(btn_left)->get_value(), btn_left_state, id(btn_left)->get_threshold());
btn_left_state = ((uint32_t) id(btn_left)->get_value() + 63 * (uint32_t)btn_left_state) >> 6;
id(btn_left)->set_threshold(btn_left_state * 0.9);
2019-02-17 00:35:23 +01:00
2018-08-26 11:26:14 +02:00
display:
- platform: lcd_gpio
dimensions: 18x4
data_pins:
- GPIO19
- GPIO20
- GPIO21
- GPIO22
enable_pin: GPIO23
rs_pin: GPIO24
lambda: |-
it.print("Hello World!");
- platform: lcd_pcf8574
dimensions: 18x4
address: 0x3F
lambda: |-
it.print("Hello World!");
- platform: max7219
cs_pin: GPIO23
num_chips: 1
lambda: |-
it.print("01234567");
- platform: nextion
lambda: |-
it.set_component_value("gauge", 50);
it.set_component_text("textview", "Hello World!");
- platform: ssd1306_i2c
model: "SSD1306 128x64"
reset_pin: GPIO23
address: 0x3C
🏗 Merge C++ into python codebase (#504) ## Description: Move esphome-core codebase into esphome (and a bunch of other refactors). See https://github.com/esphome/feature-requests/issues/97 Yes this is a shit ton of work and no there's no way to automate it :( But it will be worth it 👍 Progress: - Core support (file copy etc): 80% - Base Abstractions (light, switch): ~50% - Integrations: ~10% - Working? Yes, (but only with ported components). Other refactors: - Moves all codegen related stuff into a single class: `esphome.codegen` (imported as `cg`) - Rework coroutine syntax - Move from `component/platform.py` to `domain/component.py` structure as with HA - Move all defaults out of C++ and into config validation. - Remove `make_...` helpers from Application class. Reason: Merge conflicts with every single new integration. - Pointer Variables are stored globally instead of locally in setup(). Reason: stack size limit. Future work: - Rework const.py - Move all `CONF_...` into a conf class (usage `conf.UPDATE_INTERVAL` vs `CONF_UPDATE_INTERVAL`). Reason: Less convoluted import block - Enable loading from `custom_components` folder. **Related issue (if applicable):** https://github.com/esphome/feature-requests/issues/97 **Pull request in [esphome-docs](https://github.com/esphome/esphome-docs) with documentation (if applicable):** esphome/esphome-docs#<esphome-docs PR number goes here> ## Checklist: - [ ] The code change is tested and works locally. - [ ] Tests have been added to verify that the new code works (under `tests/` folder). If user exposed functionality or configuration variables are added/changed: - [ ] Documentation added/updated in [esphomedocs](https://github.com/OttoWinter/esphomedocs).
2019-04-17 12:06:00 +02:00
id: display1
2019-02-17 00:35:23 +01:00
pages:
- id: page1
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height());
- id: page2
lambda: |-
// Nothing
2018-08-26 11:26:14 +02:00
- 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: waveshare_epaper
cs_pin: GPIO23
dc_pin: GPIO23
busy_pin: GPIO23
reset_pin: GPIO23
model: 2.90in
full_update_every: 30
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height());
remote_receiver:
pin: GPIO32
dump: all
status_led:
pin: GPIO2
pn532:
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;'
2018-08-26 11:26:14 +02:00
rdm6300:
gps:
2018-08-26 11:26:14 +02:00
time:
- platform: sntp
id: sntp_time
servers:
- 0.pool.ntp.org
- 1.pool.ntp.org
- 192.168.178.1
2018-09-23 18:58:41 +02:00
on_time:
cron: '/30 0-30,30/5 * ? JAN-DEC MON,SAT-SUN,TUE-FRI'
then:
- lambda: 'ESP_LOGD("main", "time");'
- platform: gps
2018-08-26 11:26:14 +02:00
cover:
- platform: template
name: "Template Cover"
id: template_cover
lambda: |-
if (id(binary_sensor1).state) {
return COVER_OPEN;
2018-08-26 11:26:14 +02:00
} else {
return {};
}
optimistic: true
open_action:
- cover.template.publish:
id: template_cover
state: CLOSED
assumed_state: no
2018-08-26 11:26:14 +02:00
debug:
pcf8574:
- id: 'pcf8574_hub'
address: 0x21
pcf8575: False
mcp23017:
- id: 'mcp23017_hub'
stepper:
- platform: a4988
id: my_stepper
step_pin: GPIO23
dir_pin: GPIO24
sleep_pin: GPIO25
max_speed: 250 steps/s
acceleration: 100 steps/s^2
deceleration: 200 steps/s^2
globals:
- id: glob_int
type: int
restore_value: yes
initial_value: '0'
- id: glob_float
type: float
restore_value: yes
initial_value: '0.0f'
- id: glob_bool
type: bool
restore_value: no
initial_value: 'true'
- id: glob_string
type: std::string
restore_value: no
# initial_value: ""
text_sensor:
- platform: mqtt_subscribe
name: "MQTT Subscribe Text"
topic: "the/topic"
qos: 2
on_value:
- text_sensor.template.publish:
id: template_text
state: Hello World
- text_sensor.template.publish:
id: template_text
state: |-
return "Hello World2";
- globals.set:
id: glob_int
value: '0'
- platform: template
name: Template Text Sensor
id: template_text
- platform: wifi_info
ip_address:
name: "IP Address"
ssid:
name: "SSID"
bssid:
name: "BSSID"