Hi everyone,
I am looking to move a lot of my devices to ESPHome but I cannot find an official support page for the Eightree ET28.
It comes with Tasmota preinstalled.
Does anybody have reliable info and maybe had one setup?
Thanks
Alex
Hi everyone,
I am looking to move a lot of my devices to ESPHome but I cannot find an official support page for the Eightree ET28.
It comes with Tasmota preinstalled.
Does anybody have reliable info and maybe had one setup?
Thanks
Alex
The config would be similar to Sonoff pow, esp32-c3 though.
Tasmota gives you correct pinout and you could extract your calibration values before flashing.
Iām not sure about 74x595 here, what is it used for?
Not sure what the 74x595 SRCLK is used for, unfortunately. But I can try to find information on it. I think it is for the relay, but not sure.
I have doubts itās used at all.
Relay is on GPIO06.
Flashed this config but the relay is not working. ESPHome reports the toggle and state but the hardware does nothing, so no clicking, no nothing. Any ideas?
# If factory.bin flashing fails and keeps restarting into tasmota safeboot, then flash OTA and then run these commands on ESPHome LXC:
# cd /root/config/
# curl -O https://esphome.io/files/ota/partitions_tasmota_migration_a.bin
# curl -O https://esphome.io/files/ota/partitions_esphome.bin
# /usr/local/bin/esphome upload --partition-table --file partitions_tasmota_migration_a.bin eightree_et28.yaml
# /usr/local/bin/esphome upload --partition-table --file partitions_esphome.bin eightree_et28.yaml
substitutions:
devicename: "eightree_et28_543204f70d18"
friendly_name: "Eightree ET28 54:32:04:F7:0D:18"
esphome:
name: ${devicename}
friendly_name: ${friendly_name}
comment: ${friendly_name}
esp32:
board: esp32-c3-devkitm-1
framework:
type: esp-idf
logger:
api:
encryption:
key: !secret api_encryption_key_eightree_et28_543204f70d18
ota:
- platform: esphome
password: !secret ota_password
#allow_partition_access: true # For ESP32 devices migrating from Tasmota's safeboot layout, ESPHome needs explicit permission to access and modify the partition table. Add allow_partition_access: true to ota: block
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
manual_ip:
static_ip: !secret static_ip_eightree_et28_543204f70d18
gateway: !secret gateway_ip
subnet: !secret subnet_mask
dns1: !secret dns_ip
web_server:
port: 80
# auth:
# username: admin
# password: !secret web_server_password
time:
- platform: homeassistant
id: homeassistant_time
captive_portal:
text_sensor:
- platform: wifi_info
mac_address:
name: "MAC Address"
sensor:
- platform: wifi_signal
name: "WiFi Signal"
device_class: signal_strength
update_interval: 60s
- platform: hlw8012
cf_pin: GPIO3
cf1_pin: GPIO7
sel_pin:
number: GPIO4
inverted: true
current_resistor: 0.001
voltage_divider: 708
update_interval: 10s
voltage:
name: "Voltage"
device_class: voltage
state_class: measurement
current:
name: "Current"
device_class: current
state_class: measurement
power:
name: "Power"
id: "${devicename}_power"
device_class: power
state_class: measurement
- platform: total_daily_energy
name: "Daily Energy"
power_id: "${devicename}_power"
device_class: energy
state_class: total_increasing
filters:
- multiply: 0.001
switch:
- platform: gpio
id: relay
name: None
pin: GPIO6
restore_mode: RESTORE_DEFAULT_OFF
binary_sensor:
- platform: gpio
id: switchid
internal: true
pin:
number: GPIO5
mode:
input: true
pullup: true
inverted: true
filters:
- delayed_on_off: 50ms
on_press:
then:
- switch.toggle: relay
output:
- platform: gpio
id: state_led
pin:
number: GPIO20
inverted: true
light:
- platform: binary
id: status_led
internal: true
output: state_led
P.S.: Reverted to tasmota and it works there, so it is not a hardware failure.
Capture the actual template you use there (Iām not familiar with Tasmota).
Template {"NAME":"EIGHTREE","GPIO":[0,0,0,2720,2624,32,224,2656,0,0,0,0,0,0,0,0,0,0,0,0,320,7648],"FLAG":0,"BASE":1}
And it shows relay on gpio6. Weird.
Is the physical button doing anything on esphome ?
Nope. Also dead.
Anything suspicious on esphome logs?
Logs only show me turning on/off but no errors or anything else. Essentially pretending to work.
My bag is empty.
You could post boot log here to see if thereās something abnormal.
INFO Starting log output from 192.168.0.231 using esphome API
INFO Successfully resolved eightree_et28_543204f70d18 @ 192.168.0.231 in 0.000s
INFO Successfully connected to eightree_et28_543204f70d18 @ 192.168.0.231 in 3.156s
INFO Successful handshake with eightree_et28_543204f70d18 @ 192.168.0.231 in 0.073s
[08:27:29.107][I][app:151]: ESPHome version 2026.5.1 compiled on 2026-07-21 08:26:24 +0200
[08:27:29.107][I][app:158]: ESP32 Chip: ESP32-C3 rev0.4, 1 core(s)
[08:27:29.107][W][app:193]: Bootloader too old for OTA rollback. Flash via USB once to update the bootloader
[08:27:29.107][C][logger:219]: Logger:
[08:27:29.107][C][logger:219]: Max Level: DEBUG
[08:27:29.107][C][logger:219]: Initial Level: DEBUG
[08:27:29.111][C][logger:226]: Log Baud Rate: 115200
[08:27:29.111][C][logger:226]: Hardware UART: USB_SERIAL_JTAG
[08:27:29.115][C][logger:235]: Task Log Buffer Size: 768 bytes
[08:27:29.133][C][switch.gpio:088]: GPIO Switch 'Eightree ET28 54:32:04:F7:0D:18'
[08:27:29.133][C][switch.gpio:088]: Restore Mode: restore defaults to OFF
[08:27:29.154][C][switch.gpio:152]: Pin: GPIO6
[08:27:29.154][C][gpio.binary_sensor:016]: GPIO Binary Sensor 'switchid'
[08:27:29.154][C][gpio.binary_sensor:152]: Pin: GPIO5
[08:27:29.159][C][gpio.binary_sensor:061]: Mode: interrupt
[08:27:29.160][C][gpio.binary_sensor:063]: Interrupt Type: ANY_EDGE
[08:27:29.206][C][gpio.output:009]: Binary Output:
[08:27:29.206][C][gpio.output:152]: Pin: GPIO20
[08:27:29.206][C][light:093]: Light 'status_led'
[08:27:29.214][C][homeassistant.time:009]: Home Assistant Time
[08:27:29.219][C][time:049]: Timezone: UTC+1:00 (DST UTC+2:00)
[08:27:29.230][C][time:055]: Current time: 2026-07-21 08:27:29
[08:27:29.238][C][wifi_info:016]: MAC Address 'MAC Address'
[08:27:29.256][C][hlw8012:035]: HLW8012:
[08:27:29.256][C][hlw8012:035]: Change measurement mode every 8
[08:27:29.256][C][hlw8012:035]: Current resistor: 1.0 mΩ
[08:27:29.256][C][hlw8012:035]: Voltage Divider: 708.0
[08:27:29.260][C][hlw8012:152]: SEL Pin: GPIO4
[08:27:29.266][C][hlw8012:152]: CF Pin: GPIO3
[08:27:29.266][C][hlw8012:152]: CF1 Pin: GPIO7
[08:27:29.267][C][hlw8012:451]: Update Interval: 10.0s
[08:27:29.271][C][hlw8012:017]: Voltage 'Voltage'
[08:27:29.271][C][hlw8012:017]: State Class: 'measurement'
[08:27:29.271][C][hlw8012:017]: Unit of Measurement: 'V'
[08:27:29.271][C][hlw8012:017]: Accuracy Decimals: 1
[08:27:29.275][C][hlw8012:232]: Device Class: 'voltage'
[08:27:29.280][C][hlw8012:017]: Current 'Current'
[08:27:29.280][C][hlw8012:017]: State Class: 'measurement'
[08:27:29.280][C][hlw8012:017]: Unit of Measurement: 'A'
[08:27:29.280][C][hlw8012:017]: Accuracy Decimals: 2
[08:27:29.282][C][hlw8012:232]: Device Class: 'current'
[08:27:29.287][C][hlw8012:017]: Power 'Power'
[08:27:29.287][C][hlw8012:017]: State Class: 'measurement'
[08:27:29.287][C][hlw8012:017]: Unit of Measurement: 'W'
[08:27:29.287][C][hlw8012:017]: Accuracy Decimals: 1
[08:27:29.293][C][hlw8012:232]: Device Class: 'power'
[08:27:29.307][C][total_daily_energy:017]: Total Daily Energy 'Daily Energy'
[08:27:29.307][C][total_daily_energy:017]: State Class: 'total_increasing'
[08:27:29.307][C][total_daily_energy:017]: Unit of Measurement: 'Wh'
[08:27:29.307][C][total_daily_energy:017]: Accuracy Decimals: 3
[08:27:29.310][C][total_daily_energy:232]: Device Class: 'energy'
[08:27:29.335][C][captive_portal:133]: Captive Portal:
[08:27:29.348][C][wifi:1526]: WiFi:
[08:27:29.348][C][wifi:1526]: Local MAC: 54:32:04:F7:0D:18
[08:27:29.348][C][wifi:1526]: Connected: YES
[08:27:29.351][C][wifi:1237]: IP Address: 192.168.0.231
[08:27:29.352][C][wifi:1248]: SSID: [redacted]
[08:27:29.352][C][wifi:1248]: BSSID: [redacted]
[08:27:29.352][C][wifi:1248]: Hostname: 'eightree_et28_543204f70d18'
[08:27:29.352][C][wifi:1248]: Signal strength: -59 dB āāāā
[08:27:29.352][C][wifi:1248]: Channel: 1
[08:27:29.352][C][wifi:1248]: Subnet: 255.255.255.0
[08:27:29.352][C][wifi:1248]: Gateway: 192.168.0.1
[08:27:29.352][C][wifi:1248]: DNS1: 192.168.0.1
[08:27:29.352][C][wifi:1248]: DNS2: 0.0.0.0
[08:27:29.371][C][web_server:450]: Web Server:
[08:27:29.371][C][web_server:450]: Address: 192.168.0.231:80
[08:27:29.389][C][esphome.ota:097]: Over-The-Air updates:
[08:27:29.389][C][esphome.ota:097]: Address: 192.168.0.231:3232
[08:27:29.389][C][esphome.ota:097]: Version: 2
[08:27:29.395][C][esphome.ota:104]: Password configured
[08:27:29.409][C][safe_mode:058]: Safe Mode:
[08:27:29.409][C][safe_mode:058]: Successful after: 60s
[08:27:29.409][C][safe_mode:058]: Invoke after: 10 attempts
[08:27:29.409][C][safe_mode:058]: Duration: 300s
[08:27:29.415][C][safe_mode:079]: Bootloader rollback: not supported
[08:27:29.434][C][web_server.ota:256]: Web Server OTA
[08:27:29.447][C][api:238]: Server:
[08:27:29.447][C][api:238]: Address: 192.168.0.231:6053
[08:27:29.447][C][api:238]: Listen backlog: 4
[08:27:29.447][C][api:238]: Max connections: 5
[08:27:29.450][C][api:245]: Noise encryption: YES
[08:27:29.468][C][wifi_signal.sensor:017]: WiFi Signal 'WiFi Signal'
[08:27:29.468][C][wifi_signal.sensor:017]: State Class: 'measurement'
[08:27:29.468][C][wifi_signal.sensor:017]: Unit of Measurement: 'dBm'
[08:27:29.468][C][wifi_signal.sensor:017]: Accuracy Decimals: 0
[08:27:29.474][C][wifi_signal.sensor:232]: Device Class: 'signal_strength'
[08:27:29.487][C][mdns:230]: mDNS:
[08:27:29.487][C][mdns:230]: Hostname: eightree_et28_543204f70d18
[08:27:30.018][S][sensor]: 'WiFi Signal' >> -59 dBm
[08:27:30.039][D][api:223]: Accept 192.168.0.5
[08:27:30.099][D][api.connection:2458]: ESPHome Logs 2026.5.1 (192.168.0.5): connected
[08:27:30.124][D][total_daily_energy:075]: Scheduling midnight check in 50550s
[08:27:48.781][S][sensor]: 'Daily Energy' >> 0.000 Wh
[08:27:48.781][S][sensor]: 'Power' >> 0.0 W
[08:27:58.785][S][sensor]: 'Voltage' >> 228.0 V
[08:27:58.785][S][sensor]: 'Daily Energy' >> 0.000 Wh
[08:27:58.785][S][sensor]: 'Power' >> 0.0 W
[08:28:08.797][S][sensor]: 'Voltage' >> 228.0 V
[08:28:08.798][S][sensor]: 'Daily Energy' >> 0.000 Wh
[08:28:08.798][S][sensor]: 'Power' >> 0.0 W
[08:28:18.783][S][sensor]: 'Voltage' >> 227.7 V
[08:28:18.783][S][sensor]: 'Daily Energy' >> 0.000 Wh
[08:28:18.783][S][sensor]: 'Power' >> 0.0 W
[08:28:25.123][I][safe_mode:142]: Boot seems successful; resetting boot loop counter
[08:28:26.273][D][preferences:148]: Writing 2 items: 1 cached, 1 written, 0 failed
[08:28:28.789][S][sensor]: 'Voltage' >> 226.8 V
[08:28:28.789][S][sensor]: 'Daily Energy' >> 0.000 Wh
[08:28:28.789][S][sensor]: 'Power' >> 0.0 W
[08:28:30.029][S][sensor]: 'WiFi Signal' >> -58 dBm
[08:28:38.795][S][sensor]: 'Voltage' >> 227.9 V
[08:28:38.795][S][sensor]: 'Daily Energy' >> 0.000 Wh
[08:28:38.795][S][sensor]: 'Power' >> 0.0 W
[08:28:48.787][S][sensor]: 'Voltage' >> 228.0 V
[08:28:48.788][S][sensor]: 'Daily Energy' >> 0.000 Wh
[08:28:48.788][S][sensor]: 'Power' >> 0.0 W
[08:28:58.786][S][sensor]: 'Voltage' >> 227.9 V
[08:28:58.787][S][sensor]: 'Daily Energy' >> 0.000 Wh
[08:28:58.787][S][sensor]: 'Power' >> 0.0 W
[08:29:08.807][S][sensor]: 'Voltage' >> 227.7 V
[08:29:08.807][S][sensor]: 'Daily Energy' >> 0.000 Wh
[08:29:08.807][S][sensor]: 'Power' >> 0.0 W
[08:29:18.785][S][sensor]: 'Daily Energy' >> 0.000 Wh
[08:29:18.785][S][sensor]: 'Power' >> 0.0 W
[08:29:28.790][S][sensor]: 'Current' >> 0.00 A
[08:29:28.790][S][sensor]: 'Daily Energy' >> 0.000 Wh
[08:29:28.790][S][sensor]: 'Power' >> 0.0 W
[08:29:30.013][S][sensor]: 'WiFi Signal' >> -59 dBm
[08:29:38.791][S][sensor]: 'Current' >> 0.00 A
[08:29:38.791][S][sensor]: 'Daily Energy' >> 0.000 Wh
[08:29:38.791][S][sensor]: 'Power' >> 0.0 W
[08:29:39.516][S][switch]: '' >> ON
[08:29:48.211][S][switch]: '' >> OFF
[08:29:48.783][S][sensor]: 'Current' >> 0.00 A
[08:29:48.783][S][sensor]: 'Daily Energy' >> 0.000 Wh
[08:29:48.783][S][sensor]: 'Power' >> 0.0 W
Nothing on logs..
Did you just copy this from the site you linked?
You need to extract the info from your device if you use pre-flashed firmware.
No, that was the command I run to flash the template via console.
This is when I re-run on device
08:58:41.033 CMD: template
08:58:41.040 MQT: stat/tasmota_F66EEC/RESULT = {"NAME":"EIGHTREE","ARCH":"ESP32C3","GPIO":[0,0,0,2720,2624,32,224,2656,0,0,0,0,0,0,0,0,0,0,0,0,320,7648],"FLAG":0,"BASE":1}
Your device has evil inside.
Try with just switch and use variant instead of board.
This is getting quite desperateā¦
substitutions:
devicename: "eightree_et28_543204f70d18"
friendly_name: "Eightree ET28 54:32:04:F7:0D:18"
esphome:
name: ${devicename}
friendly_name: ${friendly_name}
comment: ${friendly_name}
esp32:
variant: esp32c3
framework:
type: esp-idf
logger:
api:
encryption:
key: !secret api_encryption_key_eightree_et28_543204f70d18
ota:
- platform: esphome
password: !secret ota_password
#allow_partition_access: true # For ESP32 devices migrating from Tasmota's safeboot layout, ESPHome needs explicit permission to access and modify the partition table. Add allow_partition_access: true to ota: block
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
manual_ip:
static_ip: !secret static_ip_eightree_et28_543204f70d18
gateway: !secret gateway_ip
subnet: !secret subnet_mask
dns1: !secret dns_ip
web_server:
port: 80
# auth:
# username: admin
# password: !secret web_server_password
switch:
- platform: gpio
id: relay
name: None
pin: GPIO6
restore_mode: RESTORE_DEFAULT_OFF
![]()
Unfortunately, does not seem to be the issue. Still not turning on the power.
I did test the physical button with my original config and that did register in ESPHome, so the physical button seems to āworkā. But for physical and digital button, the device just does not turn on.
Ok,
Get one foot long nail made of pure silver and hit it to the rightmost plug-hole of the device.
That might be an option, yes ![]()
Tried every AI I could find and so far I only get hallucination marathonsā¦
I donāt know if your relay is active low of high so it might be inverted. But it should change the state when you toggle the switch to ON and back OFF.
Does tasmota have any configuration for 74x595 ? Presence of that remains mystery to me.