diff --git a/zhaquirks/tuya/ts004f.py b/zhaquirks/tuya/ts004f.py index 1e679f1114..516a7a4381 100644 --- a/zhaquirks/tuya/ts004f.py +++ b/zhaquirks/tuya/ts004f.py @@ -31,6 +31,7 @@ COMMAND_OFF, COMMAND_ON, COMMAND_STEP, + COMMAND_STEP_COLOR_TEMP, COMMAND_STOP, COMMAND_STOP_MOVE_STEP, COMMAND_TOGGLE, @@ -440,6 +441,109 @@ class TuyaSmartRemote004FSK_v2(TuyaSmartRemote004FSK): } +class TuyaSmartRemote004FRotaryDimmer(EnchantedDevice): + """Tuya TS004F rotary encoder remote, _TZ3000_402vrq2i variant.""" + + signature = { + MODELS_INFO: [("_TZ3000_402vrq2i", "TS004F")], + ENDPOINTS: { + 1: { + PROFILE_ID: zha.PROFILE_ID, + DEVICE_TYPE: zha.DeviceType.DIMMER_SWITCH, + INPUT_CLUSTERS: [ + Basic.cluster_id, + PowerConfiguration.cluster_id, + Identify.cluster_id, + Groups.cluster_id, + OnOff.cluster_id, + LightLink.cluster_id, + ], + OUTPUT_CLUSTERS: [ + Ota.cluster_id, + Time.cluster_id, + Identify.cluster_id, + Groups.cluster_id, + Scenes.cluster_id, + OnOff.cluster_id, + LevelControl.cluster_id, + LightLink.cluster_id, + ], + }, + }, + } + + replacement = { + ENDPOINTS: { + 1: { + PROFILE_ID: zha.PROFILE_ID, + DEVICE_TYPE: zha.DeviceType.NON_COLOR_CONTROLLER, + INPUT_CLUSTERS: [ + Basic.cluster_id, + TuyaNoBindPowerConfigurationCluster, + Identify.cluster_id, + Groups.cluster_id, + OnOff.cluster_id, + LightLink.cluster_id, + ], + OUTPUT_CLUSTERS: [ + Ota.cluster_id, + Time.cluster_id, + Identify.cluster_id, + Groups.cluster_id, + Scenes.cluster_id, + TuyaSmartRemoteOnOffCluster, + LevelControl.cluster_id, + Color.cluster_id, + LightLink.cluster_id, + ], + }, + }, + } + + device_automation_triggers = { + # --- Dimmer / Remote mode --- + (SHORT_PRESS, BUTTON): {COMMAND: COMMAND_TOGGLE, ENDPOINT_ID: 1, CLUSTER_ID: 6}, + (ROTATED, DIM_UP): { + COMMAND: COMMAND_STEP, + ENDPOINT_ID: 1, + CLUSTER_ID: 8, + PARAMS: {"step_mode": 0}, + }, + (ROTATED, DIM_DOWN): { + COMMAND: COMMAND_STEP, + ENDPOINT_ID: 1, + CLUSTER_ID: 8, + PARAMS: {"step_mode": 1}, + }, + (ROTATED, RIGHT): { + COMMAND: COMMAND_STEP_COLOR_TEMP, + ENDPOINT_ID: 1, + CLUSTER_ID: 768, + PARAMS: {"step_mode": 1}, + }, + (ROTATED, LEFT): { + COMMAND: COMMAND_STEP_COLOR_TEMP, + ENDPOINT_ID: 1, + CLUSTER_ID: 768, + PARAMS: {"step_mode": 3}, + }, + # --- Scene mode --- + (SHORT_PRESS, BUTTON_1): {ENDPOINT_ID: 1, COMMAND: SHORT_PRESS}, + (DOUBLE_PRESS, BUTTON_1): {ENDPOINT_ID: 1, COMMAND: DOUBLE_PRESS}, + (LONG_PRESS, BUTTON_1): {ENDPOINT_ID: 1, COMMAND: LONG_PRESS}, + (SHORT_PRESS, RIGHT): { + COMMAND: RIGHT, + ENDPOINT_ID: 1, + CLUSTER_ID: 6, + }, + (SHORT_PRESS, LEFT): { + COMMAND: LEFT, + ENDPOINT_ID: 1, + CLUSTER_ID: 6, + }, + } + + class TuyaSmartRemote004F(EnchantedDevice): """Tuya 4-button New version remote device."""