119 lines
2.3 KiB
YAML
119 lines
2.3 KiB
YAML
substitutions:
|
|
# Change this via CLI with:
|
|
# $ esphome -s name tools -s friendly_name Tools run mystrom.yaml
|
|
name: "spare-power-meter"
|
|
friendly_name: "Spare power meter"
|
|
|
|
esphome:
|
|
name: "${name}"
|
|
friendly_name: "${friendly_name}"
|
|
|
|
project:
|
|
name: "dasfoo.${name}"
|
|
version: "1.0"
|
|
|
|
esp32:
|
|
board: esp32doit-devkit-v1
|
|
framework:
|
|
type: esp-idf
|
|
|
|
packages:
|
|
mqtt: !include mqtt.yaml
|
|
ota: !include ota.yaml
|
|
wifi: !include wifi.yaml
|
|
uptime: !include uptime.yaml
|
|
restart: !include restart.yaml
|
|
syslog: !include syslog.yaml
|
|
|
|
logger:
|
|
|
|
i2c:
|
|
sda: 22
|
|
scl: 19
|
|
scan: false
|
|
|
|
status_led:
|
|
# Red LED on the front panel.
|
|
pin: GPIO16
|
|
|
|
binary_sensor:
|
|
- platform: gpio
|
|
id: mystrom_side
|
|
name: "Side button (plus) pressed"
|
|
pin:
|
|
number: GPIO23
|
|
mode:
|
|
input: true
|
|
pullup: true
|
|
inverted: true
|
|
- platform: gpio
|
|
id: mystrom_bottom
|
|
name: "Bottom button (power) pressed"
|
|
pin:
|
|
number: GPIO18
|
|
mode:
|
|
input: true
|
|
pullup: true
|
|
inverted: true
|
|
on_press:
|
|
then:
|
|
- switch.toggle: mystrom_relay
|
|
|
|
sensor:
|
|
- platform: pulse_counter
|
|
pin: 4
|
|
update_interval: 10s
|
|
id: mystrom_power_consumption
|
|
name: "Power relay consumption"
|
|
device_class: "power"
|
|
state_class: "measurement"
|
|
unit_of_measurement: "W"
|
|
accuracy_decimals: 0
|
|
filters:
|
|
- multiply: 3.29E-02 # pulse/min -> W
|
|
|
|
total:
|
|
name: "Energy consumption"
|
|
unit_of_measurement: "kWh"
|
|
device_class: "energy"
|
|
state_class: "total_increasing"
|
|
accuracy_decimals: 3
|
|
filters:
|
|
- multiply: 5.48E-07 # pulses -> kWh
|
|
|
|
- platform: tmp102
|
|
id: mystrom_temperature
|
|
name: "Internal temperature"
|
|
update_interval: 60s
|
|
entity_category: diagnostic
|
|
address: 0x48
|
|
on_value_range:
|
|
above: 80
|
|
then:
|
|
- switch.turn_off: mystrom_relay
|
|
|
|
- platform: duty_time
|
|
id: continuous_on_time
|
|
name: Continuous on time
|
|
lambda: "return id(mystrom_relay).state;"
|
|
|
|
switch:
|
|
- platform: gpio
|
|
name: None # Main entity for the device.
|
|
pin: GPIO27
|
|
id: mystrom_relay
|
|
restore_mode: RESTORE_DEFAULT_ON
|
|
device_class: outlet
|
|
on_turn_off:
|
|
- sensor.duty_time.reset: continuous_on_time
|
|
|
|
- platform: gpio
|
|
# Exposing this as a switch rather than light to avoid
|
|
# automations and dashboard picking it up as illuminance
|
|
# source.
|
|
name: "Identify LED (white)"
|
|
restore_mode: ALWAYS_OFF
|
|
pin:
|
|
number: GPIO17
|
|
inverted: true
|