diff --git a/homeassistant/components/zha/core/channels/manufacturerspecific.py b/homeassistant/components/zha/core/channels/manufacturerspecific.py index febe589dffa..5139854d66a 100644 --- a/homeassistant/components/zha/core/channels/manufacturerspecific.py +++ b/homeassistant/components/zha/core/channels/manufacturerspecific.py @@ -62,7 +62,7 @@ class PhillipsRemote(ZigbeeChannel): @registries.CHANNEL_ONLY_CLUSTERS.register(0xFCC0) @registries.ZIGBEE_CHANNEL_REGISTRY.register(0xFCC0) class OppleRemote(ZigbeeChannel): - """Opple button channel.""" + """Opple channel.""" REPORT_CONFIG = () @@ -82,6 +82,10 @@ class OppleRemote(ZigbeeChannel): "motion_sensitivity": True, "approach_distance": True, } + elif self.cluster.endpoint.model in ("lumi.plug.mmeu01", "lumi.plug.maeu01"): + self.ZCL_INIT_ATTRS = { + "power_outage_memory": True, + } async def async_initialize_channel_specific(self, from_cache: bool) -> None: """Initialize channel specific.""" diff --git a/homeassistant/components/zha/switch.py b/homeassistant/components/zha/switch.py index 3db142694fb..e2c956e0722 100644 --- a/homeassistant/components/zha/switch.py +++ b/homeassistant/components/zha/switch.py @@ -293,6 +293,18 @@ class P1MotionTriggerIndicatorSwitch( _attr_name = "LED trigger indicator" +@CONFIG_DIAGNOSTIC_MATCH( + channel_names="opple_cluster", models={"lumi.plug.mmeu01", "lumi.plug.maeu01"} +) +class XiaomiPlugPowerOutageMemorySwitch( + ZHASwitchConfigurationEntity, id_suffix="power_outage_memory" +): + """Representation of a ZHA power outage memory configuration entity.""" + + _zcl_attribute: str = "power_outage_memory" + _attr_name = "Power outage memory" + + @CONFIG_DIAGNOSTIC_MATCH( channel_names="ikea_airpurifier", models={"STARKVIND Air purifier", "STARKVIND Air purifier table"},