ESPHome - Blitzwolf BW-SHP6 configuration

Here is my Blitzwolf SHP6 ESPHOME configuration file

Functions:

  • Button - ON / OFF
  • When the button on blue LED on
  • When power consumption above 1W red LED on (delayed)
  • after boot turn on the relay
# Blitzwolf SHP6 15A Power Monitoring Plug
# https://templates.blakadder.com/blitzwolf_SHP6-15A.html
substitutions:
  plug_name: blitzwolf_shp6_04
  # Higher value gives lower watt readout
  current_res: '0.00290'
  # Lower value gives lower voltage readout
  voltage_div: '760'

esphome:
  name: ${plug_name}
  platform: ESP8266
  board: esp8285
  on_boot:
    priority: -10
    then:
    # on affter boot
    - switch.toggle: relay

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

logger:

api:

ota:

web_server:
  port: 80

time:
  - platform: homeassistant
    id: homeassistant_time

binary_sensor:
  - platform: gpio
    internal: true
    pin:
      number: GPIO13
      inverted: True
    on_press:
      - switch.toggle: relay
    name: "${plug_name}_button"
        
switch:
- platform: gpio
  name: "${plug_name}_Relay"
  id: relay
  pin: GPIO15
  on_turn_on:
    - switch.turn_on: "${plug_name}_LED_Blue"
  on_turn_off:
    - switch.turn_off: "${plug_name}_LED_Blue"
    - switch.turn_off: "${plug_name}_LED_Red"
- platform: gpio
  internal: true
  name: "${plug_name}_LED_Blue"
  id: "${plug_name}_LED_Blue"
  pin: GPIO2
  inverted: True
- platform: gpio
  name: "${plug_name}_LED_Red"
  internal: true
  id: "${plug_name}_LED_Red"
  pin: GPIO0
  inverted: True
sensor:
  - platform: hlw8012
    sel_pin:
      number: GPIO12
      inverted: True
    cf_pin: GPIO05
    cf1_pin: GPIO04
    current_resistor: ${current_res}
    voltage_divider: ${voltage_div}
    current:
      name: "${plug_name}_Amperage"
      unit_of_measurement: 'A'
      accuracy_decimals: 3
    voltage:
      name: "${plug_name}_Voltage"
      unit_of_measurement: 'V'
    power:
      name: "${plug_name}_Wattage"
      unit_of_measurement: 'W'
      id: "${plug_name}_Wattage"
      on_value_range:
        - above: 2.0
          then:
            - switch.turn_on: "${plug_name}_LED_Red"
        - below: 2.0
          then:
            - switch.turn_off: "${plug_name}_LED_Red"
    change_mode_every: 8
    update_interval: 5s
  - platform: total_daily_energy
    name: "${plug_name}_Total Daily Energy"
    power_id: "${plug_name}_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: '${plug_name}_Uptime'
    unit_of_measurement: days
    update_interval: 300s
    filters:
      - multiply: 0.000011574
# BlitzWolf BW-SHP6 10A Power Monitoring Plug
# https://templates.blakadder.com/blitzwolf_SHP6.html
substitutions:
  plug_name: blitzwolf_shp6_01
  # Higher value gives lower watt readout
  current_res: '0.00290'
  # Lower value gives lower voltage readout
  voltage_div: '940'

esphome:
  name: ${plug_name}
  platform: ESP8266
  board: esp8285
  on_boot:
    priority: -10
    then:
    # on affter boot
    - switch.toggle: relay

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

logger:

api:

ota:

web_server:
  port: 80

time:
  - platform: homeassistant
    id: homeassistant_time

binary_sensor:
  - platform: gpio
    internal: true
    pin:
      number: GPIO13
      inverted: True
    on_press:
      - switch.toggle: relay
    name: "${plug_name}_button"
        
switch:
- platform: gpio
  name: "${plug_name}_Relay"
  id: relay
  pin: GPIO15
  on_turn_on:
    - switch.turn_on: "${plug_name}_LED_Blue"
  on_turn_off:
    - switch.turn_off: "${plug_name}_LED_Blue"
    - switch.turn_off: "${plug_name}_LED_Red"
- platform: gpio
  internal: true
  name: "${plug_name}_LED_Blue"
  id: "${plug_name}_LED_Blue"
  pin: GPIO2
  inverted: True
- platform: gpio
  name: "${plug_name}_LED_Red"
  internal: true
  id: "${plug_name}_LED_Red"
  pin: GPIO0
  inverted: True
sensor:
  - platform: hlw8012
    sel_pin:
      number: GPIO12
      inverted: True
    cf_pin: GPIO05
    cf1_pin: GPIO14
    current_resistor: ${current_res}
    voltage_divider: ${voltage_div}
    current:
      name: "${plug_name}_Amperage"
      unit_of_measurement: 'A'
      accuracy_decimals: 3
    voltage:
      name: "${plug_name}_Voltage"
      unit_of_measurement: 'V'
    power:
      name: "${plug_name}_Wattage"
      unit_of_measurement: 'W'
      id: "${plug_name}_Wattage"
      on_value_range:
        - above: 1.0
          then:
            - switch.turn_on: "${plug_name}_LED_Red"
        - below: 1.0
          then:
            - switch.turn_off: "${plug_name}_LED_Red"
    change_mode_every: 8
    update_interval: 5s
  - platform: total_daily_energy
    name: "${plug_name}_Total Daily Energy"
    power_id: "${plug_name}_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: '${plug_name}_Uptime'
    unit_of_measurement: days
    update_interval: 300s
    filters:
      - multiply: 0.000011574
5 Likes