Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
116 changes: 116 additions & 0 deletions zhaquirks/tuya/ts0003_3_usb_switch.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
"""Custom quirk for TS0003 (_TZ3000_mw1pqqqt) 3-USB switch — without power metering."""

from zigpy.profiles import zgp, zha
from zigpy.quirks import CustomDevice
from zigpy.zcl.clusters.general import (
Basic,
GreenPowerProxy,
Groups,
Identify,
OnOff,
Ota,
Scenes,
Time,
)

from zhaquirks.const import (
DEVICE_TYPE,
ENDPOINTS,
INPUT_CLUSTERS,
MODELS_INFO,
OUTPUT_CLUSTERS,
PROFILE_ID,
)


class TS0003USB3Switch(CustomDevice):
"""Custom quirk for TS0003 (_TZ3000_mw1pqqqt) 3-USB switch — without power metering."""

signature = {
MODELS_INFO: [("_TZ3000_mw1pqqqt", "TS0003")],
ENDPOINTS: {
1: {
PROFILE_ID: 0x0104,
DEVICE_TYPE: 0x0100,
INPUT_CLUSTERS: [
0x0000, # Basic
0x0003, # Identify
0x0004, # Groups
0x0005, # Scenes
0x0006, # OnOff
0x0702, # Metering — ignored
0x0B04, # Electrical Measurement — ignored
0xE000, # Tuya proprietary
0xE001, # Tuya proprietary
],
OUTPUT_CLUSTERS: [
0x000A, # Time
0x0019, # OTA
],
},
2: {
PROFILE_ID: 0x0104,
DEVICE_TYPE: 0x0100,
INPUT_CLUSTERS: [0x0004, 0x0005, 0x0006],
OUTPUT_CLUSTERS: [],
},
3: {
PROFILE_ID: 0x0104,
DEVICE_TYPE: 0x0100,
INPUT_CLUSTERS: [0x0004, 0x0005, 0x0006],
OUTPUT_CLUSTERS: [],
},
242: {
PROFILE_ID: 0xA1E0,
DEVICE_TYPE: 0x0061,
INPUT_CLUSTERS: [],
OUTPUT_CLUSTERS: [0x0021], # Green Power Proxy
},
},
}

replacement = {
ENDPOINTS: {
1: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: zha.DeviceType.ON_OFF_SWITCH,
INPUT_CLUSTERS: [
Basic,
Identify,
Groups,
Scenes,
OnOff,
],
OUTPUT_CLUSTERS: [
Time,
Ota,
],
},
2: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: zha.DeviceType.ON_OFF_SWITCH,
INPUT_CLUSTERS: [
Groups,
Scenes,
OnOff,
],
OUTPUT_CLUSTERS: [],
},
3: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: zha.DeviceType.ON_OFF_SWITCH,
INPUT_CLUSTERS: [
Groups,
Scenes,
OnOff,
],
OUTPUT_CLUSTERS: [],
},
242: {
PROFILE_ID: zgp.PROFILE_ID,
DEVICE_TYPE: zgp.DeviceType.PROXY_BASIC,
INPUT_CLUSTERS: [],
OUTPUT_CLUSTERS: [GreenPowerProxy],
},
}
}
Loading