Repository: zigpy/zha-device-handlers

Issue:
[Device Support Request] Hue LWB014 - no PhilipsOnOffCluster
**Is your feature request related to a problem? Please describe.**
I am in process of moving my Hue devices from Hue hub to HA ZHA. But as I started added my first few LWB014 bulbs, I noticed I could not set the power restore state as mentioned in https://github.com/zigpy/zha-device-handlers/pull/399. Do all bulbs need their own handler?

**Describe the solution you'd like**
The ability to set PhilipsOnOffCluster for LWB014 bulbs. 

**Device signature - this can be acquired by removing the device from ZHA and pairing it again from the add devices screen. Be sure to add the entire content of the log panel after pairing the device to a code block below this line.**
```
{
  "node_descriptor": "NodeDescriptor(byte1=1, byte2=64, mac_capability_flags=142, manufacturer_code=4107, maximum_buffer_size=71, maximum_incoming_transfer_size=45, server_mask=0, maximum_outgoing_transfer_size=45, descriptor_capability_field=0)",
  "endpoints": {
    "11": {
      "profile_id": 49246,
      "device_type": "0x0100",
      "in_clusters": [
        "0x0000",
        "0x0003",
        "0x0004",
        "0x0005",
        "0x0006",
        "0x0008",
        "0x1000"
      ],
      "out_clusters": [
        "0x0019"
      ]
    },
    "242": {
      "profile_id": 41440,
      "device_type": "0x0061",
      "in_clusters": [
        "0x0021"
      ],
      "out_clusters": [
        "0x0021"
      ]
    }
  },
  "manufacturer": "Philips",
  "model": "LWB014",
  "class": "zigpy.device.Device"
}
```

**Additional context**
None. 

Thank you



Discussion:
If it matters, these bulbs add to HA and function ok for on/off/dimming. There are **no** quirks assigned to them

Resolving patch:
diff --git a/zhaquirks/philips/lwb010.py b/zhaquirks/philips/zlldimmablelight.py
similarity index 92%
rename from zhaquirks/philips/lwb010.py
rename to zhaquirks/philips/zlldimmablelight.py
--- a/zhaquirks/philips/lwb010.py
+++ b/zhaquirks/philips/zlldimmablelight.py
@@ -1,4 +1,4 @@
-"""Quirk for Phillips LWB010."""
+"""Quirk for Phillips dimmable bulbs."""
 from zigpy.profiles import zll
 from zigpy.quirks import CustomDevice
 from zigpy.zcl.clusters.general import (
@@ -25,11 +25,11 @@
 from zhaquirks.philips import PHILIPS, PhilipsOnOffCluster
 
 
-class PhilipsLBW010(CustomDevice):
-    """Philips LBW010 device."""
+class ZLLDimmableLight(CustomDevice):
+    """Philips ZigBee LightLink dimmable bulb device."""
 
     signature = {
-        MODELS_INFO: [(PHILIPS, "LWB010")],
+        MODELS_INFO: [(PHILIPS, "LWB010"), (PHILIPS, "LWB014")],
         ENDPOINTS: {
             11: {
                 # <SimpleDescriptor endpoint=11 profile=49246 device_type=528
diff --git a/zhaquirks/philips/zllextendedcolorlight.py b/zhaquirks/philips/zllextendedcolorlight.py
--- a/zhaquirks/philips/zllextendedcolorlight.py
+++ b/zhaquirks/philips/zllextendedcolorlight.py
@@ -110,3 +110,68 @@ class ZLLExtendedColorLight(CustomDevice):
             },
         }
     }
+
+
+class ZLLExtendedColorLight2(CustomDevice):
+    """Philips ZigBee LightLink extended color bulb device without input cluster 64513."""
+
+    signature = {
+        MODELS_INFO: [(PHILIPS, "LCT012")],
+        ENDPOINTS: {
+            11: {
+                # <SimpleDescriptor endpoint=11 profile=49246 device_type=528
+                # device_version=2
+                # input_clusters=[0, 3, 4, 5, 6, 8, 4096, 768, 64513]
+                # output_clusters=[25]
+                PROFILE_ID: zll.PROFILE_ID,
+                DEVICE_TYPE: zll.DeviceType.EXTENDED_COLOR_LIGHT,
+                INPUT_CLUSTERS: [
+                    Basic.cluster_id,
+                    Identify.cluster_id,
+                    Groups.cluster_id,
+                    Scenes.cluster_id,
+                    OnOff.cluster_id,
+                    LevelControl.cluster_id,
+                    LightLink.cluster_id,
+                    Color.cluster_id,
+                ],
+                OUTPUT_CLUSTERS: [Ota.cluster_id],
+            },
+            242: {
+                # <SimpleDescriptor endpoint=242 profile=41440 device_type=97
+                # device_version=0
+                # input_clusters=[33]
+                # output_clusters=[33]
+                PROFILE_ID: 41440,
+                DEVICE_TYPE: 97,
+                INPUT_CLUSTERS: [GreenPowerProxy.cluster_id],
+                OUTPUT_CLUSTERS: [GreenPowerProxy.cluster_id],
+            },
+        },
+    }
+
+    replacement = {
+        ENDPOINTS: {
+            11: {
+                PROFILE_ID: zll.PROFILE_ID,
+                DEVICE_TYPE: zll.DeviceType.EXTENDED_COLOR_LIGHT,
+                INPUT_CLUSTERS: [
+                    Basic.cluster_id,
+                    Identify.cluster_id,
+                    Groups.cluster_id,
+                    Scenes.cluster_id,
+                    PhilipsOnOffCluster,
+                    PhilipsLevelControlCluster,
+                    LightLink.cluster_id,
+                    PhilipsColorCluster,
+                ],
+                OUTPUT_CLUSTERS: [Ota.cluster_id],
+            },
+            242: {
+                PROFILE_ID: 41440,
+                DEVICE_TYPE: 97,
+                INPUT_CLUSTERS: [GreenPowerProxy.cluster_id],
+                OUTPUT_CLUSTERS: [GreenPowerProxy.cluster_id],
+            },
+        }
+    }


Test patch: