text: """Phillips RWL021 device."""
  from zigpy.profiles import zha, zll
  from zigpy.quirks import CustomCluster, CustomDevice
  import zigpy.types as t
  from zigpy.zcl.clusters.general import (
      Basic,
      BinaryInput,
      Groups,
      Identify,
      LevelControl,
      OnOff,
      Ota,
      PowerConfiguration,
      Scenes,
  )
  
  from ..const import (
      ARGS,
      CLUSTER_ID,
      COMMAND,
      COMMAND_OFF_WITH_EFFECT,
      COMMAND_ON,
      COMMAND_STEP,
      DEVICE_TYPE,
      DIM_DOWN,
      DIM_UP,
      ENDPOINT_ID,
      ENDPOINTS,
      INPUT_CLUSTERS,
      LONG_PRESS,
      OUTPUT_CLUSTERS,
      PROFILE_ID,
      SHORT_PRESS,
      TURN_OFF,
      TURN_ON,
  )
  
  DIAGNOSTICS_CLUSTER_ID = 0x0B05  # decimal = 2821
  
  
  class BasicCluster(CustomCluster, Basic):
      """Centralite acceleration cluster."""
  
      def __init__(self, *args, **kwargs):
          """Init."""
          super().__init__(*args, **kwargs)
          self.attributes = super().attributes.copy()
          self.attributes.update({0x0031: ("phillips", t.bitmap16)})
  
  
  class PhilipsRWL021(CustomDevice):
      """Phillips RWL021 device."""
  
      signature = {
          #  <SimpleDescriptor endpoint=1 profile=49246 device_type=2096
          #  device_version=2
          #  input_clusters=[0]
          #  output_clusters=[0, 3, 4, 6, 8, 5]>
          ENDPOINTS: {
              1: {
                  PROFILE_ID: zll.PROFILE_ID,
                  DEVICE_TYPE: zll.DeviceType.SCENE_CONTROLLER,
                  INPUT_CLUSTERS: [Basic.cluster_id],
                  OUTPUT_CLUSTERS: [
                      Basic.cluster_id,
                      Identify.cluster_id,
                      Groups.cluster_id,
                      OnOff.cluster_id,
                      LevelControl.cluster_id,
                      Scenes.cluster_id,
                  ],
              },
              #  <SimpleDescriptor endpoint=2 profile=260 device_type=12
              #  device_version=0
              #  input_clusters=[0, 1, 3, 15, 64512]
              #  output_clusters=[25]>
              2: {
                  PROFILE_ID: zha.PROFILE_ID,
                  DEVICE_TYPE: zha.DeviceType.SIMPLE_SENSOR,
                  INPUT_CLUSTERS: [
                      Basic.cluster_id,
                      PowerConfiguration.cluster_id,
                      Identify.cluster_id,
                      BinaryInput.cluster_id,
                      64512,
                  ],
                  OUTPUT_CLUSTERS: [Ota.cluster_id],
              },
          }
      }
  
      replacement = {
          ENDPOINTS: {
              1: {
                  INPUT_CLUSTERS: [Basic.cluster_id],
                  OUTPUT_CLUSTERS: [
                      Basic.cluster_id,
                      Identify.cluster_id,
                      Groups.cluster_id,
                      OnOff.cluster_id,
                      LevelControl.cluster_id,
                      Scenes.cluster_id,
                  ],
              },
              2: {
                  INPUT_CLUSTERS: [
                      BasicCluster,
                      PowerConfiguration.cluster_id,
                      Identify.cluster_id,
                      BinaryInput.cluster_id,
                      64512,
                  ],
                  OUTPUT_CLUSTERS: [Ota.cluster_id],
              },
          }
      }
  
      device_automation_triggers = {
          (SHORT_PRESS, TURN_ON): {COMMAND: COMMAND_ON},
          (LONG_PRESS, TURN_OFF): {COMMAND: COMMAND_OFF_WITH_EFFECT},
          (SHORT_PRESS, DIM_UP): {
              COMMAND: COMMAND_STEP,
              CLUSTER_ID: 8,
              ENDPOINT_ID: 1,
              ARGS: [0, 30, 9],
          },
          (LONG_PRESS, DIM_UP): {
              COMMAND: COMMAND_STEP,
              CLUSTER_ID: 8,
              ENDPOINT_ID: 1,
              ARGS: [0, 56, 9],
          },
          (SHORT_PRESS, DIM_DOWN): {
              COMMAND: COMMAND_STEP,
              CLUSTER_ID: 8,
              ENDPOINT_ID: 1,
              ARGS: [1, 30, 9],
          },
          (LONG_PRESS, DIM_DOWN): {
              COMMAND: COMMAND_STEP,
              CLUSTER_ID: 8,
              ENDPOINT_ID: 1,
              ARGS: [1, 56, 9],
          },
      }
  