diff --git a/homeassistant/components/ezviz/alarm_control_panel.py b/homeassistant/components/ezviz/alarm_control_panel.py index f847b8445f9..21e9f2d0422 100644 --- a/homeassistant/components/ezviz/alarm_control_panel.py +++ b/homeassistant/components/ezviz/alarm_control_panel.py @@ -34,20 +34,13 @@ SCAN_INTERVAL = timedelta(seconds=60) PARALLEL_UPDATES = 0 -@dataclass(frozen=True) -class EzvizAlarmControlPanelEntityDescriptionMixin: - """Mixin values for EZVIZ Alarm control panel entities.""" +@dataclass(frozen=True, kw_only=True) +class EzvizAlarmControlPanelEntityDescription(AlarmControlPanelEntityDescription): + """Describe an EZVIZ Alarm control panel entity.""" ezviz_alarm_states: list -@dataclass(frozen=True) -class EzvizAlarmControlPanelEntityDescription( - AlarmControlPanelEntityDescription, EzvizAlarmControlPanelEntityDescriptionMixin -): - """Describe an EZVIZ Alarm control panel entity.""" - - ALARM_TYPE = EzvizAlarmControlPanelEntityDescription( key="ezviz_alarm", ezviz_alarm_states=[ diff --git a/homeassistant/components/ezviz/button.py b/homeassistant/components/ezviz/button.py index deb2ca33355..a4c101a81bc 100644 --- a/homeassistant/components/ezviz/button.py +++ b/homeassistant/components/ezviz/button.py @@ -23,21 +23,14 @@ from .entity import EzvizEntity PARALLEL_UPDATES = 1 -@dataclass(frozen=True) -class EzvizButtonEntityDescriptionMixin: - """Mixin values for EZVIZ button entities.""" +@dataclass(frozen=True, kw_only=True) +class EzvizButtonEntityDescription(ButtonEntityDescription): + """Describe a EZVIZ Button.""" method: Callable[[EzvizClient, str, str], Any] supported_ext: str -@dataclass(frozen=True) -class EzvizButtonEntityDescription( - ButtonEntityDescription, EzvizButtonEntityDescriptionMixin -): - """Describe a EZVIZ Button.""" - - BUTTON_ENTITIES = ( EzvizButtonEntityDescription( key="ptz_up", diff --git a/homeassistant/components/ezviz/number.py b/homeassistant/components/ezviz/number.py index 8fe0ba1330f..08fbd3afb34 100644 --- a/homeassistant/components/ezviz/number.py +++ b/homeassistant/components/ezviz/number.py @@ -31,21 +31,14 @@ PARALLEL_UPDATES = 0 _LOGGER = logging.getLogger(__name__) -@dataclass(frozen=True) -class EzvizNumberEntityDescriptionMixin: - """Mixin values for EZVIZ Number entities.""" +@dataclass(frozen=True, kw_only=True) +class EzvizNumberEntityDescription(NumberEntityDescription): + """Describe a EZVIZ Number.""" supported_ext: str supported_ext_value: list -@dataclass(frozen=True) -class EzvizNumberEntityDescription( - NumberEntityDescription, EzvizNumberEntityDescriptionMixin -): - """Describe a EZVIZ Number.""" - - NUMBER_TYPE = EzvizNumberEntityDescription( key="detection_sensibility", translation_key="detection_sensibility", diff --git a/homeassistant/components/ezviz/select.py b/homeassistant/components/ezviz/select.py index a63dad5ff7b..d6dc3dc8550 100644 --- a/homeassistant/components/ezviz/select.py +++ b/homeassistant/components/ezviz/select.py @@ -21,20 +21,13 @@ from .entity import EzvizEntity PARALLEL_UPDATES = 1 -@dataclass(frozen=True) -class EzvizSelectEntityDescriptionMixin: - """Mixin values for EZVIZ Select entities.""" +@dataclass(frozen=True, kw_only=True) +class EzvizSelectEntityDescription(SelectEntityDescription): + """Describe a EZVIZ Select entity.""" supported_switch: int -@dataclass(frozen=True) -class EzvizSelectEntityDescription( - SelectEntityDescription, EzvizSelectEntityDescriptionMixin -): - """Describe a EZVIZ Select entity.""" - - SELECT_TYPE = EzvizSelectEntityDescription( key="alarm_sound_mod", translation_key="alarm_sound_mode", diff --git a/homeassistant/components/ezviz/switch.py b/homeassistant/components/ezviz/switch.py index 7f568654870..65fb7b9f36b 100644 --- a/homeassistant/components/ezviz/switch.py +++ b/homeassistant/components/ezviz/switch.py @@ -23,20 +23,13 @@ from .coordinator import EzvizDataUpdateCoordinator from .entity import EzvizEntity -@dataclass(frozen=True) -class EzvizSwitchEntityDescriptionMixin: - """Mixin values for EZVIZ Switch entities.""" +@dataclass(frozen=True, kw_only=True) +class EzvizSwitchEntityDescription(SwitchEntityDescription): + """Describe a EZVIZ switch.""" supported_ext: str | None -@dataclass(frozen=True) -class EzvizSwitchEntityDescription( - SwitchEntityDescription, EzvizSwitchEntityDescriptionMixin -): - """Describe a EZVIZ switch.""" - - SWITCH_TYPES: dict[int, EzvizSwitchEntityDescription] = { 3: EzvizSwitchEntityDescription( key="3",