devices.esphome.io
BlitzWolf BW-SHP8 Power Monitoring Wall Outlet
BlitzWolf BW-SHP8 Power Monitoring Wall Outlet
Device Type: plugElectrical Standard: euBoard: esp8266
  
      
  
        
Model reference: BW-SHP8
Manufacturer: BlitzWolf
GPIO Pinout
| Pin | Function | 
|---|---|
| GPIO03 | Push Button (inverted, input_pullup) | 
| GPIO13 | Blue LED (inverted) | 
| GPIO01 | Red LED (inverted) | 
| GPIO14 | Relay | 
| GPIO12 | HLWBL SEL Pin | 
| GPIO04 | HLW8012 CF Pin | 
| GPIO05 | HLWBL CF1 Pin | 
Config
Parcial Config
substitutions:  hostname: "BW-SHP8"  # Higher value gives lower watt readout  current_resistor: "0.001"  # Lower value gives lower voltage readout  voltage_divider: "1727"    restore_mode: "ALWAYS_ON"
esphome:
esp8266:  board: esp8285
binary_sensor:  - platform: gpio    id: button    pin:      number: GPIO03      inverted: true      mode: INPUT_PULLUP    on_press:      then:        - switch.toggle: relay
switch:  - platform: gpio    name: "$hostname power"    id: relay    pin: GPIO14    restore_mode: $restore_mode    icon: "mdi:power-socket-de"    on_turn_on:      - light.turn_on: led    on_turn_off:      - light.turn_off: led
output:  - platform: esp8266_pwm    id: state_led    pin:      number: GPIO01      inverted: true
light:  - platform: monochromatic    output: state_led    id: led
sensor:  - platform: hlw8012    model: BL0937    current_resistor: $current_resistor    voltage_divider: $voltage_divider    change_mode_every: 2    update_interval: 2s    sel_pin:      number: GPIO12      inverted: True    cf_pin: GPIO04    cf1_pin: GPIO05    current:      name: "$hostname current"      unit_of_measurement: A      id: current      accuracy_decimals: 3    voltage:      name: "$hostname voltage"      unit_of_measurement: V      id: voltage      accuracy_decimals: 3    power:      name: "$hostname power"      unit_of_measurement: W      id: power      accuracy_decimals: 3  - platform: template    name: "$hostname apparent power"    id: apparent    unit_of_measurement: VA    accuracy_decimals: 3    lambda: |-      return id(voltage).state * id(current).state;  - platform: template    name: "$hostname reactive power"    id: reactive_power    unit_of_measurement: VAr    accuracy_decimals: 3    lambda: |-      if ( id(apparent).state > id(power).state ) {        return sqrt( id(apparent).state * id(apparent).state - id(power).state * id(power).state );      } else {        return 0;      }  - platform: template    name: "$hostname power factor"    accuracy_decimals: 1    lambda: |-      if ( id(power).state > id(apparent).state ) {        return 1;      } else if ( id(apparent).state == 0 ){        return 0;      } else {        return id(power).state / (id(apparent).state);      }
status_led:  pin:    number: GPIO13    inverted: true