As you may have heard, Biedronka (the largest supermarket chain in Poland) is offering a $10 smart socket. They claim with the device you can remotely control anything up to 16 A (3680 W), monitoring the power usage too. I bought a few Sonoff Pows for this purpose before, and I couldn’t get them for less than $15 if I remember correctly. Also, the PP-W162 is much more compact and it doesn’t need any external wiring.
It’s pretty much clear that the device contains an ESP8266, so it’s just a matter of flashing it with your own firmware for turning it into something useful. It’d be perfect if the device could be flashed over-the-air, but most manufacturers don’t allow it for obvious reasons (as we all know, the ”S” in IoT stands for ”security”). Despite the fact that the casing doesn’t seem to have any screws, it can be easily opened using a screwdriver (you’d need to glue it after flashing). Here’s how I hooked it up:

Remember to ground the GPIO0 before powering the ESP to turn on
the flashing mode. The device consists of:
- TYWE2S board
- energy metering component based on
BL0937
(HLW8012 clone), connected to: GPIO4(CF),GPIO5(CF1),GPIO12(SEL, inverted)
- 230 V relay connected to GPIO14
- blue LED connected to GPIO13(inverted)
- switch connected to GPIO3(inverted)
Here’s the full ESPHome configuration:
esphome:
  name: PPW162
  platform: ESP8266
  board: esp01_1m
wifi:
  ssid: …
  password: …
logger:
api:
ota:
binary_sensor:
  - platform: gpio
    pin:
      number: GPIO3
      mode: INPUT_PULLUP
      inverted: true
    name: "Button"
    on_press:
      - switch.toggle: relay
sensor:
  - platform: hlw8012
    sel_pin:
      number: GPIO12
      inverted: true
    cf_pin: 4
    cf1_pin: 5
    current:
      name: "Current"
    voltage:
      name: "Voltage"
    power:
      name: "Power"
    update_interval: 1s
    voltage_divider: 800
    current_resistor: 0.0023
switch:
  - platform: gpio
    name: "Relay"
    pin: GPIO14
    id: relay
status_led:
  pin:
    number: GPIO13
    inverted: yes
The energy consumption monitoring needs some additional calibration (e.g. linear scaling). The above voltage divider and current resistor values give pretty accurate results for low-power devices (10 W), but I’ve noticed that the results are a bit off (~5%) when you connect something bigger than a kilowatt.