substitutions:
device_name: "dishwasher"
friendly_name: "Dishwasher"
main_icon: "dishwasher"
default_state: "ALWAYS_ON"
activity_threshold: "5"
esphome:
name: "${device_name}"
platform: ESP8266
board: esp01_1m
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
logger:
api:
ota:
time:
- platform: sntp
id: sntp_time
binary_sensor:
- platform: gpio
pin:
number: GPIO13
mode: INPUT_PULLUP
inverted: true
name: "${friendly_name} Button"
on_press:
- switch.toggle: relay
- platform: status
name: "${friendly_name} Server Status"
switch:
- platform: gpio
name: "${friendly_name}"
icon: "mdi:${main_icon}"
pin: GPIO15
id: relay
restore_mode: "${default_state}"
on_turn_on:
- light.turn_on:
id: led
brightness: 100%
transition_length: 0s
on_turn_off:
- light.turn_off:
id: led
transition_length: 0s
sensor:
- platform: wifi_signal
name: "${friendly_name} WiFi Status"
update_interval: 60s
- platform: hlw8012
sel_pin:
number: GPIO12
inverted: true
cf_pin: GPIO5
cf1_pin: GPIO14
change_mode_every: 3
update_interval: 3s
voltage:
name: "${friendly_name} Voltage"
id: voltage
unit_of_measurement: V
accuracy_decimals: 1
filters:
- calibrate_linear:
- 0.0 -> 0.0
- 602.87506 -> 229.9
- 609.8 -> 232.8
power:
name: "${friendly_name} Power"
id: power
unit_of_measurement: W
accuracy_decimals: 0
filters:
- calibrate_linear:
- 0.0 -> 1.14
- 62.06167 -> 10.93
- 1503.27161 -> 247.6
- 1599.81213 -> 263.7
- 3923.67700 -> 631.4
- 7109.50928 -> 1148.0
- 7237.0857 -> 1193.0
- 7426.71338 -> 1217.0
current:
name: "${friendly_name} Current"
id: current
unit_of_measurement: A
accuracy_decimals: 3
filters:
- calibrate_linear:
- 0.0 -> 0.013
- 0.08208 -> 0.071
- 1.34223 -> 1.066
- 5.57170 -> 4.408
- 6.69184 -> 5.259
- 6.97187 -> 5.540
- platform: total_daily_energy
name: "${friendly_name} Daily Energy"
power_id: power
filters:
- multiply: 0.001
unit_of_measurement: kWh
text_sensor:
- platform: template
name: "${friendly_name} Activity State"
icon: "mdi:${main_icon}"
lambda: |-
if (id(power).state >= $activity_threshold) {
return {"Active"};
} else {
return {"Idle"};
}
update_interval: 5s
output:
- platform: esp8266_pwm
id: state_led
pin:
number: GPIO0
inverted: true
light:
- platform: monochromatic
output: state_led
id: led