devices.esphome.io

Digitaling 20A Power Monitor RTL8710BX t102-v1.1

Digitaling 20A Power Monitor RTL8710BX t102-v1.1

Device Type: plug
Electrical Standard: eu
Board: rtl87xx

Bought from: Aliexpress

Board/Pinout: libretiny.eu

Pictures: elektroda.com (Pinout picture is off, uart2 is on the two unconnected pads labled 0/12.)

Due to a bug libretiny-eu/libretiny#227 the board w2 needs to be selected for the relay to work: Due to another bug you need to apply this fix to platforms\[email protected]\cores\realtek-amb\arduino\src\wiring_irq.c https://github.com/libretiny-eu/libretiny/issues/155#issuecomment-1826470433

Chips used

McuBoard: T102_V1.1

MCU: RTL8710BX

Flash: GD25Q16ETIG 2 M x 8 NOR Flash

Power Sensor: BL0937

Relay: JIEYING JY3FF-S-DC5V-A(K)

Flashing

Hook up 3v3 and GND

Connect TX2 and RX2 to serial interface.

Short TX2 to GND during power on, then flash via ltchiptool.

Can be flashed in-place without desoldering.

GPIO Pinout

PinFunction
PA00BL0937 cf_pin
PA05LED (Inverted)
PA12BL0937 cf1_pin
PA14BL0937 sel_pin (Inverted)
PA15Relay & LED2
PA18Button (Inverted)

platformio.ini

[env:wr2]
platform = libretiny
board = wr2
framework = arduino

Basic Configuration

substitutions:
devicename: smartplug
friendly_name: t102-v1.1-2
device_description: Digitaling 20A Power Monitor RTL8710BX t102-v1.1
current_res: "0.001" # Power monitoring calibration https://esphome.io/components/sensor/hlw8012.html
voltage_div: "1600" # Power monitoring calibration
esphome:
name: ${devicename}
friendly_name: ${friendly_name}
comment: ${device_description}
rtl87xx:
board: wr2 # actually t102-v1.1 but https://github.com/libretiny-eu/libretiny/issues/247
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: !secret api_encryption
ota:
#password: !secret ota_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot in case wifi connection fails
ap:
ssid: ${friendly_name} Fallback Hotspot
password: !secret wifi_ap_password
captive_portal:
web_server:
port: 80
auth:
username: !secret web_server_username
password: !secret web_server_password
# Enable time component for use by daily power sensor
time:
- platform: homeassistant
id: homeassistant_time
binary_sensor:
# Button on the front is pressed and then toggle relay
- platform: gpio
device_class: power
pin:
number: PA18
mode: INPUT_PULLUP
inverted: True
name: Button
on_press:
- switch.toggle: relay
- switch.toggle: statusled
text_sensor:
# Reports the ESPHome Version with compile date
- platform: version
name: ESPHome Version
- platform: libretiny
version:
name: LibreTiny Version
switch:
# Relay itself
- platform: gpio
name: Relay
pin: PA15
id: relay
restore_mode: RESTORE_DEFAULT_OFF
- platform: gpio
name: statusled
pin: PA05
id: statusled
restore_mode: RESTORE_DEFAULT_OFF
inverted: true
#bootloop fix: https://github.com/libretiny-eu/libretiny/issues/155#issuecomment-1826470433
#https://esphome.io/components/sensor/hlw8012.html
sensor:
- platform: hlw8012
model: BL0937
sel_pin:
number: PA14
inverted: true
cf_pin: PA00
cf1_pin: PA12
current:
name: "Current"
voltage:
name: "Voltage"
power:
name: "Power"
id: power
update_interval: 1s
initial_mode: CURRENT
change_mode_every: 8
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: Total Daily Energy
icon: mdi:circle-slice-3
power_id: power
filters:
- multiply: 0.001
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
Edit this page on GitHub