summaryrefslogtreecommitdiffstats
path: root/esphome/config/powerplug_awp07l.yaml
blob: 08a9e620947089ecb54c9d88a426892958f0f12e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
substitutions:
  device_name: powerplug-awp07l
  friendly_name: "Power Plug AWP07L"
  #current_resistor: 0.001
  #voltage_divider: 1886
  current_resistor: 0.000995585395670478
  voltage_divider: 1913.830752419618
  current_multiply: 0.8667070272988949
  # max power is 3450W for 15A and 2300W for 10A
  max_power: "2300"

esphome:
  name: ${device_name}
  friendly_name: ${friendly_name}

esp8266:
  board: esp01_1m

# Enable logging
logger:
  # make RXD / TXD available
  baud_rate: 0

# Enable Home Assistant API
api:
  encryption:
    key: !secret api_encryption_key

# OTA
ota:
  - platform: esphome
    password: !secret ota_password

# WiFi Credentials
wifi:
  domain: .lan
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  # see https://github.com/esphome/issues/issues/1532
  power_save_mode: HIGH

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "${device_name} Hotspot"
    password: !secret wifi_ap_password

captive_portal:

binary_sensor:
  - platform: gpio
    name: "Button"
    device_class: power
    pin:
      number: GPIO13
      inverted: true
    on_press:
      - switch.toggle: relay
    internal: true

sensor:
  - platform: hlw8012
    model: BL0937
    sel_pin:
      number: GPIO12
      inverted: true
    cf_pin: GPIO05
    cf1_pin: GPIO14
    current_resistor: ${current_resistor}
    voltage_divider: ${voltage_divider}
    current:
      name: "Current"
      unit_of_measurement: "A"
      accuracy_decimals: 3
      icon: "mdi:flash-outline"
      filters:
        - multiply: ${current_multiply}
        - throttle_with_priority:
            timeout: 10s
            value:
              - nan
              - 0
    voltage:
      name: "Voltage"
      unit_of_measurement: "V"
      icon: "mdi:flash-outline"
      filters:
        - throttle_with_priority:
            timeout: 10s
            value:
              - nan
              - 0
    power:
      name: "Power"
      unit_of_measurement: "W"
      icon: "mdi:flash-outline"
      filters:
        - throttle_with_priority:
            timeout: 10s
            value:
              - nan
              - 0
      on_value_range:
        - above: ${max_power}
          then:
            - switch.turn_off: relay
            - output.turn_off: led
    energy:
      name: "Energy"
      unit_of_measurement: "Wh"
      icon: "mdi:flash-outline"
    update_interval: 1s
    change_mode_every: 4

switch:
  - platform: gpio
    name: "Relay"
    pin: GPIO15
    id: relay
    on_turn_on:
      - output.turn_on: led
    on_turn_off:
      - output.turn_off: led

output:
  - platform: esp8266_pwm
    id: led
    pin: GPIO00
    inverted: true