Last active
October 10, 2021 07:40
-
-
Save jungervin/8cf196d58637fdfd16d317b794123744 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
###################################################################### | |
# OLDER BW VERSION | |
# https://blog.quindorian.org/2019/02/home-assistant-10-wifi-energy-meter-with-esphome.html | |
###################################################################### | |
esphomeyaml: | |
name: bw2 | |
platform: ESP8266 | |
board: esp8285 | |
wifi: | |
ssid: !secret wifi_ssid | |
password: !secret wifi_password | |
# Enable logging | |
logger: | |
# Enable Web server | |
web_server: | |
port: 80 | |
# Enable Home Assistant API | |
api: | |
password: !secret hass_api | |
ota: | |
password: !secret hass_api | |
time: | |
- platform: homeassistant | |
id: homeassistant_time | |
binary_sensor: | |
- platform: gpio | |
pin: | |
number: GPIO3 | |
inverted: True | |
name: "bw2_button" | |
switch: | |
- platform: gpio | |
name: "bw2_Relay" | |
pin: GPIO14 | |
restore_mode: ALWAYS_ON | |
- platform: gpio | |
name: "bw2_LED_Blue" | |
pin: GPIO1 | |
inverted: True | |
restore_mode: ALWAYS_OFF | |
- platform: gpio | |
name: "bw2_LED_Red" | |
pin: GPIO13 | |
inverted: True | |
restore_mode: ALWAYS_OFF | |
sensor: | |
- platform: hlw8012 | |
sel_pin: | |
number: GPIO12 | |
inverted: True | |
cf_pin: GPIO04 | |
cf1_pin: GPIO05 | |
# Higher value gives lower watt readout | |
current_resistor: 0.00221 | |
# Lower value gives lower voltage readout | |
voltage_divider: 895 | |
current: | |
name: "bw2_Amperage" | |
unit_of_measurement: A | |
voltage: | |
name: "bw2_Voltage" | |
unit_of_measurement: V | |
power: | |
name: "bw2_Wattage" | |
unit_of_measurement: W | |
id: "bw2_Wattage" | |
change_mode_every: 8 | |
update_interval: 10s | |
- platform: total_daily_energy | |
name: "bw2_Total Daily Energy" | |
power_id: "bw2_Wattage" | |
filters: | |
# Multiplication factor from W to kW is 0.001 | |
- multiply: 0.001 | |
unit_of_measurement: kWh | |
# Extra sensor to keep track of plug uptime | |
- platform: uptime | |
name: bw2_Uptime Sensor | |
###################################################################### | |
# NEWER BW VERSION | |
###################################################################### | |
esphomeyaml: | |
name: bw3 | |
platform: ESP8266 | |
board: esp8285 | |
wifi: | |
ssid: !secret wifi_ssid | |
password: !secret wifi_password | |
# Enable logging | |
logger: | |
# Enable Web server | |
web_server: | |
port: 80 | |
# Enable Home Assistant API | |
api: | |
password: !secret hass_api | |
ota: | |
password: !secret hass_api | |
time: | |
- platform: homeassistant | |
id: homeassistant_time | |
binary_sensor: | |
- platform: gpio | |
pin: | |
number: GPIO13 | |
inverted: True | |
name: "bw3_button" | |
switch: | |
- platform: gpio | |
name: "bw3_Relay" | |
pin: GPIO15 | |
restore_mode: ALWAYS_ON | |
- platform: gpio | |
name: "bw3_LED_Blue" | |
pin: GPIO2 | |
inverted: True | |
restore_mode: ALWAYS_OFF | |
- platform: gpio | |
name: "bw3_LED_Red" | |
pin: GPIO0 | |
inverted: True | |
restore_mode: ALWAYS_OFF | |
sensor: | |
- platform: hlw8012 | |
sel_pin: | |
number: GPIO12 | |
inverted: True | |
cf_pin: GPIO5 | |
cf1_pin: GPIO14 | |
# Higher value gives lower watt readout | |
#current_resistor: 0.00221 | |
#current_resistor: 0.00089 | |
current_resistor: 0.00091 | |
# Lower value gives lower voltage readout | |
#voltage_divider: 904 | |
#voltage_divider: 914 | |
voltage_divider: 924 | |
current: | |
name: "bw3_Amperage" | |
unit_of_measurement: A | |
voltage: | |
name: "bw3_Voltage" | |
unit_of_measurement: V | |
power: | |
name: "bw3_Wattage" | |
unit_of_measurement: W | |
id: "bw3_Wattage" | |
change_mode_every: 8 | |
update_interval: 10s | |
- platform: total_daily_energy | |
name: "bw3_Total Daily Energy" | |
power_id: "bw3_Wattage" | |
filters: | |
# Multiplication factor from W to kW is 0.001 | |
- multiply: 0.001 | |
unit_of_measurement: kWh | |
# Extra sensor to keep track of plug uptime | |
- platform: uptime | |
name: bw3_Uptime Sensor | |
###################################################################### | |
## BETTER VERSION FOR NEW BW | |
## https://github.com/mjoshd/esphome_teckin-sp20 | |
###################################################################### | |
substitutions: | |
# https://esphome.io/guides/configuration-types.html#substitutions | |
device_name: bw3 | |
friendly_name: bw3 | |
#ip_address: !secret teckin_sp20_ip | |
esphome: | |
# https://esphome.io/components/esphome | |
name: $device_name | |
platform: ESP8266 | |
board: esp8285 | |
wifi: | |
# https://esphome.io/components/wifi | |
ssid: !secret wifi_ssid | |
password: !secret wifi_password | |
# manual_ip: | |
# static_ip: $ip_address | |
# gateway: !secret wifi_gateway | |
# subnet: !secret wifi_subnet | |
# dns1: !secret wifi_dns1 | |
web_server: | |
port: 80 | |
# https://esphome.io/components/web_server.html | |
logger: | |
# https://esphome.io/components/logger | |
api: | |
password: !secret hass_api | |
# https://esphome.io/components/api | |
ota: | |
password: !secret hass_api | |
# https://esphome.io/components/ota | |
sensor: | |
- platform: hlw8012 | |
# https://esphome.io/components/sensor/hlw8012.html | |
# current, power, voltage can all use sensor options https://esphome.io/components/sensor/#config-sensor | |
sel_pin: | |
number: GPIO12 | |
inverted: True | |
cf_pin: GPIO5 | |
cf1_pin: GPIO14 | |
current: | |
name: $friendly_name Current | |
power: | |
name: $friendly_name Power | |
id: power_monitor_value | |
filters: | |
- lambda: return (x / 2.2); | |
voltage: | |
name: $friendly_name Voltage | |
current_resistor: 0.001 # default 0.001 | |
voltage_divider: 924 # default 2351 | |
change_mode_every: 3 # default 8 | |
update_interval: 3s # default 60s | |
- platform: total_daily_energy | |
# https://esphome.io/components/sensor/total_daily_energy.html | |
name: $friendly_name Total Daily Energy | |
power_id: power_monitor_value | |
filters: | |
- multiply: 0.001 # convert Wh to kWh | |
unit_of_measurement: kWh | |
status_led: | |
# https://esphome.io/components/status_led | |
pin: | |
number: GPIO0 | |
inverted: True | |
output: | |
# https://esphome.io/components/output/esp8266_pwm.html | |
- platform: esp8266_pwm | |
id: blue_led_output | |
pin: | |
number: GPIO2 | |
inverted: True | |
light: | |
# https://esphome.io/components/light/monochromatic.html | |
- platform: monochromatic | |
name: $friendly_name Blue LED | |
output: blue_led_output | |
id: blue_led | |
default_transition_length: 1ms # default 1s | |
internal: True | |
binary_sensor: | |
- platform: gpio | |
# https://esphome.io/components/binary_sensor/gpio.html | |
pin: | |
number: GPIO13 | |
id: button | |
name: $friendly_name Button | |
on_press: | |
- switch.toggle: relay_template | |
internal: True | |
switch: | |
- platform: gpio | |
# https://esphome.io/components/switch/gpio | |
pin: GPIO15 | |
id: relay | |
# tie the led & relay operation together and report status based on relay state | |
- platform: template | |
# https://esphome.io/components/switch/template.html | |
name: $friendly_name Relay | |
id: relay_template | |
lambda: |- | |
if (id(relay).state) { | |
return true; | |
} else { | |
return false; | |
} | |
turn_on_action: | |
- light.turn_on: blue_led | |
- switch.turn_on: relay | |
turn_off_action: | |
- light.turn_off: blue_led | |
- switch.turn_off: relay | |
# optimistic: true # this will change the toggle switch to individual on/off buttons | |
# Enable time component to reset energy at midnight | |
time: | |
- platform: sntp | |
id: my_time |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment