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 
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()
)