T3E-PRO-V1.2 D121BBV flash ( openHASP )

Hi,

I bought a T3E display without buttons. I was under the impression that I could flash OpenHASP (or something similar) onto it. There’s an explanation for this here: https://www.openhasp.com/0.7.0/hardware/golden-security/gs-t3e/. But before I hit flash, it seems to me that this device doesn’t have an ESP32 chip in it.

Next to both chips, there’s a JTAG connector to communicate with and possibly flash the device.

I suspect that the D121BBV is the CPU for rendering the GUI on the display, but I’m not sure.
Does anyone have experience with this, or is this something I can’t use?

By the way, Home Assistant detects the Zigbee device (without additional sensors), but I would of course like to configure the buttons on the display myself and have that handled through Home Assistant.

Type: T3E-PRO-V1.2
CPU: D121BBV
Zigbee: ZS3L



Firmware OpenHASP:








[edit]
For clarity: I purchased the Tuya T3E Pro Smart Control Panel Switch (Touch Screen Panel Switch, Zigbee, Intelligent Home Wall Push Light Switch, black ABS).
The price is currently higher than when I bought it.


This version is without ESP, and uses a D121BBV CPU.
[/edit]

This one? https://nl.aliexpress.com/item/1005009264062272.html?gatewayAdapt=glo2nld

Seems the only thing in common with the openhasp device you mention is the name…

Yes, and based on a tip that it would be the same as this device https://www.thesmarthomebook.com/2022/09/30/sonoff-cam-slim-and-the-nspanel-pro/

and this GS-T3E v1 - DISCONTINUED PRODUCT !!




The casing looks the same, but the print is slightly different. So apparently it’s a few euros cheaper, but without the ESP and I don’t think it’s usable :frowning:






Oh, and because this post:

refers to:


https://www.alibaba.com/product-detail/2022-new-arrival-smart-wifi-switch_1600573806214.html?spm=a2700.details.0.0.252d69cf8GeWdp






And also:

Buy redirects to:
https://www.alibaba.com/product-detail/2022-new-arrival-smart-wifi-switch_1600573806214.html

Hello @Dirk2.0,
Have you received the pro version by buying the non pro version on your link ?
I was about to buy exactly the same and I suspect them to send the pro version that seems not based on esp anymore …

I’ve been working on a configuration for the TS0601 by _TZE284_6ewhzbx4 in ZHA and created a config file called
tze284_6ewhzbx4_display_switch.py.

Current results:

  • Time sync works
  • Scene page 1 & 2: Home Mode / Away Mode / Party Mode / Full-off Mode (sync not applicable)
  • Switch (including internal relays): Chandelier / Downlight / Light Strip — synced
  • Dimmer switch page 1 & 2: all 4 — fully synced
  • Curtains: 1 / 2 / 3 / 4 — synced
  • Device: Scene 4-gang switch 1 / 2 / 3 / 4 — not full synced

The only thing I can’t get fully synced is the Device switch. When I change it in Home Assistant, the state does not update on the display. All other sliders and buttons do sync correctly :wink:

However, since I originally wanted to flash it with ESP firmware, and that turns out not to be possible, I decided not to use it.

custom_zha_quirks/ze284_6ewhzbx4_display_switch.py

from zigpy.profiles import zha
from zigpy.zcl.clusters.general import Basic, Groups, Scenes, Ota, Time
from zigpy.types import t  # Nodig voor t.enum8
# import zigpy.types as t
from zhaquirks.tuya.builder import TuyaQuirkBuilder
from zhaquirks.tuya.mcu import MoesSwitchManufCluster, TuyaOnOff, TuyaOnOffNM

class CurtainControlEnum(t.enum8):
    OPEN = 0
    STOP = 1
    CLOSE = 2


class ModeEnum(t.enum_factory(t.uint8_t)):
    SWITCH = 0
    SCENE = 1
    LIGHT = 2
    CURTAIN = 3

(
    TuyaQuirkBuilder("_TZE284_6ewhzbx4", "TS0601")

# ----- CURTAINS : 1 / 2 / 3 / 4 SYNC--------
    .tuya_enum(
        dp_id=133,
        attribute_name="curtain_control_1",
        enum_class=CurtainControlEnum,
        translation_key="curtain_control",
        fallback_name="Gordijn: Open/Stop/Close",
    )

    .tuya_enum(
        dp_id=134,
        attribute_name="curtain_control_2",
        enum_class=CurtainControlEnum,
        translation_key="curtain_control",
        fallback_name="Gordijn: Open/Stop/Close",
    )

    .tuya_enum(
        dp_id=135,
        attribute_name="curtain_control_3",
        enum_class=CurtainControlEnum,
        translation_key="curtain_control",
        fallback_name="Gordijn: Open/Stop/Close",
    )
    .tuya_enum(
        dp_id=136,
        attribute_name="curtain_control_4",
        enum_class=CurtainControlEnum,
        translation_key="curtain_control",
        fallback_name="Gordijn: Open/Stop/Close",
    )


#----------- SWITCH (relais):  Candelier / Downligt / Ligt Strip SYNC--------------

    .tuya_switch(
        dp_id=24,
        attribute_name="switch_control_24",
        translation_key="switch",
        fallback_name="Switch Chandelier",
        entity_type="standard",
    )
    .tuya_switch(
        dp_id=25,
        attribute_name="switch_control_25",
        translation_key="switch",
        fallback_name="Switch Downligt",
        entity_type="standard",
    )
    .tuya_switch(
        dp_id=26,
        attribute_name="switch_control_26",
        translation_key="switch",
        fallback_name="Switch Light Strip",
        entity_type="standard",
    )

#-------- Device: Scene 4 gang switch 1 /2 /3/ 4 (not sync)------------

    .tuya_switch(
        dp_id=148,
        attribute_name="switch_148",
        translation_key="switch",
        fallback_name="Knop 4-1",
        entity_type="standard",
    )


    .tuya_switch(
        dp_id=149,
        attribute_name="switch_149",
        translation_key="switch",
        fallback_name="Knop 4-2",
        entity_type="standard",
    )

    .tuya_switch(
        dp_id=150,
        attribute_name="switch_150",
        translation_key="switch",
        fallback_name="Knop 4-3",
        entity_type="standard",
    )
    .tuya_switch(
        dp_id=151,
        attribute_name="switch_151",
        translation_key="switch",
        fallback_name="Knop 4-4",
        entity_type="standard",
        force_inverted=True,
    )
    
#------- Scene1/2: Home Mode / Away Mode / Party Mode / Full-off Mode (sync nvt)-------
    .tuya_switch(
        dp_id=1,
        attribute_name="switch1",
        translation_key="switch",
        fallback_name="Scene1 Home mode",
        entity_type="standard",
    )
    .tuya_switch(
        dp_id=2,
        attribute_name="switch_2",
        translation_key="switch",
        fallback_name="Scene1 Always Mode",
        entity_type="standard",
    )
    .tuya_switch(
        dp_id=3,
        attribute_name="switch_3",
        translation_key="switch",
        fallback_name="Scene1 Party Mode",
        entity_type="standard",
    )

    .tuya_switch(
        dp_id=4,
        attribute_name="switch_4",
        translation_key="switch",
        fallback_name="Scnene1 Full-off Mode",
        entity_type="standard",
    )
    .tuya_switch(
        dp_id=5,
        attribute_name="switch5",
        translation_key="switch",
        fallback_name="Scene2 Home mode",
        entity_type="standard",
    )
    .tuya_switch(
        dp_id=6,
        attribute_name="switch62",
        translation_key="switch",
        fallback_name="Scene2 Always Mode",
        entity_type="standard",
    )
    .tuya_switch(
        dp_id=7,
        attribute_name="switch_7",
        translation_key="switch",
        fallback_name="Scene2 Party Mode",
        entity_type="standard",
    )

    .tuya_switch(
        dp_id=8,
        attribute_name="switch_8",
        translation_key="switch",
        fallback_name="Scnene2 Full-off Mode",
        entity_type="standard",
    )


#------- Dimmer switch page 1/2 (sync3d)--------
    .tuya_switch(
        dp_id=121,
        attribute_name="switch_121",
        translation_key="switch",
        fallback_name="Dimmer1_1",
        entity_type="standard",
        #force_inverted=True,
    )
    .tuya_number(
        dp_id=125,	
        attribute_name="colortemp_125",
        translation_key="colortemp",
        fallback_name="Color temperature 1/1",
        entity_type="standard",
        type=t.uint8_t,
        min_value=0,
        max_value=100,
        step=1,
    )
    .tuya_number(
        dp_id=129,
        attribute_name="brightness_129",
        translation_key="brightness",
        fallback_name="Brightness 1/1",
        entity_type="standard",
        type=t.uint8_t,
        min_value=0,
        max_value=100,
        step=1,
    )

    .tuya_switch(
        dp_id=122,
        attribute_name="switch_122",
        translation_key="switch",
        fallback_name="Dimmer1_2",
        entity_type="standard",
        #force_inverted=True,
    )
    .tuya_number(
        dp_id=126,
        attribute_name="colortemp_126",
        translation_key="colortemp",
        fallback_name="Color temperature 1/2",
        entity_type="standard",
        type=t.uint8_t,
        min_value=0,
        max_value=100,
        step=1,
    )
    .tuya_number(
        dp_id=130,
        attribute_name="brightness_130",
        translation_key="brightness",
        fallback_name="Brightness 1/2",
        entity_type="standard",
        type=t.uint8_t,
        min_value=0,
        max_value=100,
        step=1,
    )

    .tuya_switch(
        dp_id=123,
        attribute_name="switch_123",
        translation_key="switch",
        fallback_name="Dimmer2_1",
        entity_type="standard",
        #force_inverted=True,
    )
    .tuya_number(
        dp_id=127,
        attribute_name="colortemp_127",
        translation_key="colortemp",
        fallback_name="Color temperature 2/1",
        entity_type="standard",
        type=t.uint8_t,
        min_value=0,
        max_value=100,
        step=1,
    )
    .tuya_number(
        dp_id=131,
        attribute_name="brightness_131",
        translation_key="brightness",
        fallback_name="Brightness 2/1",
        entity_type="standard",
        type=t.uint8_t,
        min_value=0,
        max_value=100,
        step=1,
    )    

    .tuya_switch(
        dp_id=124,
        attribute_name="switch_124",
        translation_key="switch",
        fallback_name="Dimmer2_2",
        entity_type="standard",
        #force_inverted=True,
    )
    .tuya_number(
        dp_id=128,
        attribute_name="colortemp_128",
        translation_key="colortemp",
        fallback_name="Color temperature 2/2",
        entity_type="standard",
        type=t.uint8_t,
        min_value=0,
        max_value=100,
        step=1,
    )
    .tuya_number(
        dp_id=132,
        attribute_name="brightness_132",
        translation_key="brightness",
        fallback_name="Brightness 2/2",
        entity_type="standard",
        type=t.uint8_t,
        min_value=0,
        max_value=100,
        step=1,
    )
    .skip_configuration()
    .add_to_registry()
)