summaryrefslogtreecommitdiffstats
path: root/esphome/config/powerplug_awp07l.yaml
blob: c8e372273822f35c9e100538067673c91175b6f2 (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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
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: GPIO5
    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: GPIO0
    inverted: true

  - platform: gpio
    id: unused_gpio1
    pin:
      number: GPIO1
      mode: INPUT_PULLUP
  - platform: gpio
    id: unused_gpio2
    pin:
      number: GPIO2
      mode: INPUT_PULLUP
  - platform: gpio
    id: unused_gpio3
    pin:
      number: GPIO3
      mode: INPUT_PULLUP
  - platform: gpio
    id: unused_gpio4
    pin:
      number: GPIO4
      mode: INPUT_PULLUP
  - platform: gpio
    id: unused_gpio16
    pin:
      number: GPIO16
      mode: INPUT_PULLDOWN