33import logging
44from typing import Any
55
6- from homeassistant .components .switch import SwitchEntity , SwitchEntityDescription
6+ from homeassistant .components .switch import SwitchEntity
77from homeassistant .config_entries import ConfigEntry
88from homeassistant .core import HomeAssistant
99from homeassistant .helpers .entity_platform import AddEntitiesCallback
10+ from homeassistant .helpers .typing import HomeAssistantType
1011from speedport import Speedport
1112
1213from .const import DOMAIN
14+ from .device import SpeedportEntity
1315
1416_LOGGER = logging .getLogger (__name__ )
1517
@@ -23,23 +25,25 @@ async def async_setup_entry(
2325 await speedport .update_status ()
2426 async_add_entities (
2527 [
26- SpeedportWifiSwitch (speedport ),
27- SpeedportGuestWifiSwitch (speedport ),
28- SpeedportOfficeWifiSwitch (speedport ),
28+ SpeedportWifiSwitch (hass , speedport ),
29+ SpeedportGuestWifiSwitch (hass , speedport ),
30+ SpeedportOfficeWifiSwitch (hass , speedport ),
2931 ]
3032 )
3133
3234
33- class SpeedportWifiSwitch (SwitchEntity ):
35+ class SpeedportWifiSwitch (SwitchEntity , SpeedportEntity ):
3436 _attr_is_on : bool | None = False
3537
36- def __init__ (self , speedport : Speedport ) -> None :
38+ def __init__ (self , hass : HomeAssistantType , speedport : Speedport ) -> None :
39+ super ().__init__ (hass , speedport )
3740 self ._speedport : Speedport = speedport
3841 self ._attr_icon = "mdi:wifi"
39- self ._attr_name = speedport .wlan_ssid
42+ self ._attr_name = f"WLAN { speedport .wlan_ssid } "
4043 self ._attr_unique_id = "wifi"
4144
42- async def is_on (self ) -> bool | None :
45+ @property
46+ def is_on (self ) -> bool | None :
4347 return self ._speedport .wlan_active
4448
4549 async def async_turn_on (self , ** kwargs : Any ) -> None :
@@ -51,16 +55,18 @@ async def async_turn_off(self, **kwargs: Any) -> None:
5155 await self ._speedport .wifi_off ()
5256
5357
54- class SpeedportGuestWifiSwitch (SwitchEntity ):
58+ class SpeedportGuestWifiSwitch (SwitchEntity , SpeedportEntity ):
5559 _attr_is_on : bool | None = False
5660
57- def __init__ (self , speedport : Speedport ) -> None :
61+ def __init__ (self , hass : HomeAssistantType , speedport : Speedport ) -> None :
62+ super ().__init__ (hass , speedport )
5863 self ._speedport : Speedport = speedport
5964 self ._attr_icon = "mdi:wifi"
60- self ._attr_name = speedport .wlan_guest_ssid
65+ self ._attr_name = f"WLAN { speedport .wlan_guest_ssid } "
6166 self ._attr_unique_id = "wifi_guest"
6267
63- async def is_on (self ) -> bool | None :
68+ @property
69+ def is_on (self ) -> bool | None :
6470 return self ._speedport .wlan_guest_active
6571
6672 async def async_turn_on (self , ** kwargs : Any ) -> None :
@@ -72,16 +78,18 @@ async def async_turn_off(self, **kwargs: Any) -> None:
7278 await self ._speedport .wifi_guest_off ()
7379
7480
75- class SpeedportOfficeWifiSwitch (SwitchEntity ):
81+ class SpeedportOfficeWifiSwitch (SwitchEntity , SpeedportEntity ):
7682 _attr_is_on : bool | None = False
7783
78- def __init__ (self , speedport : Speedport ) -> None :
84+ def __init__ (self , hass : HomeAssistantType , speedport : Speedport ) -> None :
85+ super ().__init__ (hass , speedport )
7986 self ._speedport : Speedport = speedport
8087 self ._attr_icon = "mdi:wifi"
81- self ._attr_name = speedport .wlan_office_ssid
88+ self ._attr_name = f"WLAN { speedport .wlan_office_ssid } "
8289 self ._attr_unique_id = "wifi_office"
8390
84- async def is_on (self ) -> bool | None :
91+ @property
92+ def is_on (self ) -> bool | None :
8593 return self ._speedport .wlan_office_ssid
8694
8795 async def async_turn_on (self , ** kwargs : Any ) -> None :
0 commit comments