devices.esphome.io
BlitzWolf BW-SHP2 Power Monitoring Plug
BlitzWolf BW-SHP2 Power Monitoring Plug
Device Type: plugElectrical Standard: euBoard: esp8266
  
      
  
        
        
Model reference: BW-SHP2
Manufacturer: BlitzWolf
⚠ WARNING: Latest hardware revision has replaced the ESP chip, and is no longer compatible with ESPHome.
GPIO Pinout
Base Hardware - GPIO Pinout
| Pin | Function | 
|---|---|
| GPIO13 | Push Button | 
| GPIO00 | Blue LED (Inverted: true) | 
| GPIO02 | Red LED (Inverted: true) | 
| GPIO15 | Relay | 
| GPIO12 | HLWBL SEL Pin | 
| GPIO05 | HLW8012 CF Pin | 
| GPIO14 | HLWBL CF1 Pin | 
Hardware Revision (v2.3) - GPIO Pinout
| Pin | Function | 
|---|---|
| GPIO03 | Push Button | 
| GPIO01 | Blue LED (Inverted: true) | 
| GPIO13 | Red LED (Inverted: true) | 
| GPIO14 | Relay | 
| GPIO12 | HLWBL SEL Pin | 
| GPIO04 | HLW8012 CF Pin | 
| GPIO05 | HLWBL CF1 Pin | 
Basic Config
Base Hardware - Base Config
substitutions:  devicename: blitzwolf_bw_shp2_plug_1  friendly_name: BlitzWolf BW-SHP2 Plug 1  device_description: BlitzWolf BW-SHP2 Power Monitoring Plug with button, Red and Blue led.  current_res: "0.00221" # Random value. Requires power monitoring calibration  voltage_div: "955" # Random value. Requires power monitoring calibration
esphome:  name: ${devicename}  comment: ${device_description}
esp8266:  board: esp8285
wifi:  ssid: !secret wifi_ssid  password: !secret wifi_password  ap:
captive_portal:
# Enable logginglogger:
# Web server can be removed after enabling HA API#web_server:#  port: 80
# Enable Home Assistant APIapi:  encryption:    key: !secret api_encryption_key
ota:  password: !secret OTA_Password
# Enable time component for use by daily power sensortime:  - platform: homeassistant    id: homeassistant_time
sensor:# Reports how long the device has been powered (in minutes)  - platform: uptime    name: ${friendly_name} Uptime    filters:      - lambda: return x / 60.0;    unit_of_measurement: minutes
# Reports the WiFi signal strength  - platform: wifi_signal    name: ${friendly_name} Wifi Signal    update_interval: 60s
# Reports the Current, Voltage, and Power used by the plugged-in device  - platform: hlw8012    sel_pin:      number: GPIO12      inverted: true    cf_pin: GPIO05    cf1_pin: GPIO14    change_mode_every: 8    update_interval: 10s    current:      name: ${friendly_name} Amperage      icon: mdi:current-ac      unit_of_measurement: A    voltage:      name: ${friendly_name} Voltage      icon: mdi:flash-circle      unit_of_measurement: V    power:      id: wattage      name: ${friendly_name} Wattage      icon: mdi:flash-outline      unit_of_measurement: W    current_resistor: ${current_res}    voltage_divider: ${voltage_div}
  # Reports the total Power so-far each day, resets at midnight, see https://esphome.io/components/sensor/total_daily_energy.html  - platform: total_daily_energy    name: ${friendly_name} Total Daily Energy    icon: mdi:circle-slice-3    power_id: wattage    filters:      # Multiplication factor from W to kW is 0.001      - multiply: 0.001    unit_of_measurement: kWh
binary_sensor:# Button on the front is pressed and then toggle relay  - platform: gpio    device_class: power    pin:      number: GPIO13      mode: INPUT_PULLUP      inverted: True    name: ${friendly_name} Button # Name to make button visible in HA    on_press:      - switch.toggle: relay
text_sensor:# Reports the ESPHome Version with compile date  - platform: version    name: ${friendly_name} ESPHome Version
# Reports detailed wifi info, can be commented out  - platform: wifi_info    ip_address:      name: ${friendly_name} IP Address    # ssid: # Some additional wifi info that is not normally needed    #   name: ${friendly_name} Connected SSID    # bssid:    #   name: ${friendly_name} Connected BSSID
switch:# Relay itself  - platform: gpio    name: ${friendly_name}    pin: GPIO15    id: relay    restore_mode: RESTORE_DEFAULT_OFF #Try to restore relay state after reboot/power-loss event.    #RESTORE_DEFAULT_OFF (Default) - Attempt to restore state and default to OFF if not possible to restore. Uses flash write cycles.    #RESTORE_DEFAULT_ON - Attempt to restore state and default to ON. Uses flash write cycles.    #ALWAYS_OFF - Always initialize the pin as OFF on bootup. Does not use flash write cycles.    #ALWAYS_ON - Always initialize the pin as ON on bootup. Does not use flash write cycles.    on_turn_on: # Action when relay is turned on      - script.execute: led_power_on    on_turn_off: # Action when relay is turned off      - script.execute: led_relay_off
output:# Output GPIOs for blue led- platform: esp8266_pwm # Blue  id: ${devicename}_blue_output  pin:    number: GPIO00    inverted: True
status_led:  pin:    number: GPIO02    inverted: True
light:# RGB light- platform: monochromatic  name: ${friendly_name} Light  output: ${devicename}_blue_output  id: ${devicename}_blue_led
# Blink the blue light if we aren't connected to WiFi. Could use https://esphome.io/components/status_led.html instead but then we couldn't use the blue light for other things as well.# Only if not connected after 30sinterval:  - interval: 2000ms    then:      - if:          condition:            for:              time: 30s              condition:                not:                  wifi.connected:          then:            - light.turn_on:                id: ${devicename}_blue_led                brightness: 100%
script:  - id: led_relay_off # Normal operation when relay is off    then:      - light.turn_off:          id: ${devicename}_blue_led  - id: led_power_on # Normal operation when relay is on    then:      - light.turn_on:          id: ${devicename}_blue_led          brightness: 80%Hardware Revision (v2.3) - Base Config
substitutions:  devicename: blitzwolf_bw_shp2_plug_1  friendly_name: BlitzWolf BW-SHP2 Plug 1  device_description: BlitzWolf BW-SHP2 Power Monitoring Plug with button, Red and Blue led.  current_res: "0.00221" # Random value. Requires power monitoring calibration  voltage_div: "955" # Random value. Requires power monitoring calibration
esphome:  name: ${devicename}  comment: ${device_description}
esp8266:  board: esp8285
wifi:  ssid: !secret wifi_ssid  password: !secret wifi_password  ap:
captive_portal:
# Enable logginglogger:
# Web server can be removed after enabling HA API#web_server:#  port: 80
# Enable Home Assistant APIapi:  encryption:    key: !secret api_encryption_key
ota:  password: !secret OTA_Password
# Enable time component for use by daily power sensortime:  - platform: homeassistant    id: homeassistant_time
sensor:# Reports how long the device has been powered (in minutes)  - platform: uptime    name: ${friendly_name} Uptime    filters:      - lambda: return x / 60.0;    unit_of_measurement: minutes
# Reports the WiFi signal strength  - platform: wifi_signal    name: ${friendly_name} Wifi Signal    update_interval: 60s
# Reports the Current, Voltage, and Power used by the plugged-in device  - platform: hlw8012    sel_pin:      number: GPIO12      inverted: true    cf_pin: GPIO04    cf1_pin: GPIO05    change_mode_every: 8    update_interval: 10s    current:      name: ${friendly_name} Amperage      icon: mdi:current-ac      unit_of_measurement: A    voltage:      name: ${friendly_name} Voltage      icon: mdi:flash-circle      unit_of_measurement: V    power:      id: wattage      name: ${friendly_name} Wattage      icon: mdi:flash-outline      unit_of_measurement: W    current_resistor: ${current_res}    voltage_divider: ${voltage_div}
  # Reports the total Power so-far each day, resets at midnight, see https://esphome.io/components/sensor/total_daily_energy.html  - platform: total_daily_energy    name: ${friendly_name} Total Daily Energy    icon: mdi:circle-slice-3    power_id: wattage    filters:      # Multiplication factor from W to kW is 0.001      - multiply: 0.001    unit_of_measurement: kWh
binary_sensor:# Button on the front is pressed and then toggle relay  - platform: gpio    device_class: power    pin:      number: GPIO03      mode: INPUT_PULLUP      inverted: True    name: ${friendly_name} Button # Name to make button visible in HA    on_press:      - switch.toggle: relay
text_sensor:# Reports the ESPHome Version with compile date  - platform: version    name: ${friendly_name} ESPHome Version
# Reports detailed wifi info, can be commented out  - platform: wifi_info    ip_address:      name: ${friendly_name} IP Address    # ssid: # Some additional wifi info that is not normally needed    #   name: ${friendly_name} Connected SSID    # bssid:    #   name: ${friendly_name} Connected BSSID
switch:# Relay itself  - platform: gpio    name: ${friendly_name}    pin: GPIO14    id: relay    restore_mode: RESTORE_DEFAULT_OFF #Try to restore relay state after reboot/power-loss event.    #RESTORE_DEFAULT_OFF (Default) - Attempt to restore state and default to OFF if not possible to restore. Uses flash write cycles.    #RESTORE_DEFAULT_ON - Attempt to restore state and default to ON. Uses flash write cycles.    #ALWAYS_OFF - Always initialize the pin as OFF on bootup. Does not use flash write cycles.    #ALWAYS_ON - Always initialize the pin as ON on bootup. Does not use flash write cycles.    on_turn_on: # Action when relay is turned on      - script.execute: led_power_on    on_turn_off: # Action when relay is turned off      - script.execute: led_relay_off
output:# Output GPIOs for blue led- platform: esp8266_pwm # Blue  id: ${devicename}_blue_output  pin:    number: GPIO01    inverted: True
status_led:  pin:    number: GPIO13    inverted: True
light:# RGB light- platform: monochromatic  name: ${friendly_name} Light  output: ${devicename}_blue_output  id: ${devicename}_blue_led
# Blink the blue light if we aren't connected to WiFi. Could use https://esphome.io/components/status_led.html instead but then we couldn't use the blue light for other things as well.# Only if not connected after 30sinterval:  - interval: 2000ms    then:      - if:          condition:            for:              time: 30s              condition:                not:                  wifi.connected:          then:            - light.turn_on:                id: ${devicename}_blue_led                brightness: 100%
script:  - id: led_relay_off # Normal operation when relay is off    then:      - light.turn_off:          id: ${devicename}_blue_led  - id: led_power_on # Normal operation when relay is on    then:      - light.turn_on:          id: ${devicename}_blue_led          brightness: 80%