1 """A base class for Rabbit Air entities."""
3 from __future__
import annotations
8 from rabbitair
import Model
15 from .const
import DOMAIN
16 from .coordinator
import RabbitAirDataUpdateCoordinator
18 _LOGGER = logging.getLogger(__name__)
22 Model.BioGS:
"BioGS 2.0",
23 Model.MinusA2:
"MinusA2",
29 """Base class for Rabbit Air entity."""
33 coordinator: RabbitAirDataUpdateCoordinator,
36 """Initialize the entity."""
41 identifiers={(DOMAIN, entry.data[CONF_MAC])},
42 manufacturer=
"Rabbit Air",
43 model=MODELS.get(coordinator.data.model),
45 sw_version=coordinator.data.wifi_firmware,
46 hw_version=coordinator.data.main_firmware,
49 def _is_model(self, model: Model | list[Model]) -> bool:
50 """Check the model of the device."""
51 if isinstance(model, list):
52 return self.coordinator.data.model
in model
53 return self.coordinator.data.model
is model
56 """Change the state of the device."""
57 _LOGGER.debug(
"Set state %s", kwargs)
58 await self.coordinator.device.set_state(**kwargs)
bool _is_model(self, Model|list[Model] model)
None _set_state(self, **Any kwargs)
None __init__(self, RabbitAirDataUpdateCoordinator coordinator, ConfigEntry entry)
None async_request_refresh(self)