Entity Map¶
Фабрики маппинга: связь HA domain и entity_id с соответствующими классами устройств Sber.
Mapping from HA entity domains to Sber device entity classes.
Provides factory functions that create the appropriate Sber entity
subclass based on the HA entity domain and device class.
Supports user-defined overrides via sber_category parameter.
CATEGORY_CONSTRUCTORS
module-attribute
¶
CATEGORY_CONSTRUCTORS = {'light': lambda data: LightEntity(data), 'led_strip': lambda data: LedStripEntity(data), 'relay': lambda data: RelayEntity(data), 'socket': lambda data: SocketEntity(data), 'curtain': lambda data: CurtainEntity(data), 'window_blind': lambda data: WindowBlindEntity(data), 'gate': lambda data: GateEntity(data), 'hvac_ac': lambda data: ClimateEntity(data), 'hvac_radiator': lambda data: HvacRadiatorEntity(data), 'hvac_heater': lambda data: HvacHeaterEntity(data), 'hvac_boiler': lambda data: HvacBoilerEntity(data), 'hvac_underfloor_heating': lambda data: HvacUnderfloorEntity(data), 'hvac_fan': lambda data: HvacFanEntity(data), 'valve': lambda data: ValveEntity(data), 'hvac_humidifier': lambda data: HumidifierEntity(data), 'scenario_button': lambda data: ScenarioButtonEntity(data), 'sensor_temp': lambda data: SensorTempEntity(data), 'sensor_humidity': lambda data: HumiditySensorEntity(data), 'sensor_pir': lambda data: MotionSensorEntity(data), 'sensor_door': lambda data: DoorSensorEntity(data), 'sensor_water_leak': lambda data: WaterLeakSensorEntity(data), 'sensor_smoke': lambda data: SmokeSensorEntity(data), 'sensor_gas': lambda data: GasSensorEntity(data), 'hvac_air_purifier': lambda data: HvacAirPurifierEntity(data), 'kettle': lambda data: KettleEntity(data), 'tv': lambda data: TvEntity(data), 'vacuum_cleaner': lambda data: VacuumCleanerEntity(data), 'intercom': lambda data: IntercomEntity(data)}
Mapping of Sber category names to entity constructor callables.
OVERRIDABLE_CATEGORIES
module-attribute
¶
OVERRIDABLE_CATEGORIES = ['light', 'led_strip', 'relay', 'socket', 'curtain', 'window_blind', 'gate', 'hvac_ac', 'hvac_radiator', 'hvac_heater', 'hvac_boiler', 'hvac_underfloor_heating', 'hvac_fan', 'valve', 'hvac_humidifier', 'scenario_button', 'hvac_air_purifier', 'kettle', 'tv', 'vacuum_cleaner', 'intercom']
Sber categories that users can select as type overrides.
ENTITY_CONSTRUCTORS
module-attribute
¶
ENTITY_CONSTRUCTORS = {'light': lambda data: LightEntity(data), 'cover': _create_cover, 'sensor': _create_sensor, 'binary_sensor': _create_binary_sensor, 'switch': _create_switch, 'script': lambda data: RelayEntity(data), 'button': lambda data: RelayEntity(data), 'input_boolean': lambda data: ScenarioButtonEntity(data), 'climate': _create_climate, 'valve': lambda data: ValveEntity(data), 'humidifier': lambda data: HumidifierEntity(data), 'fan': _create_fan, 'water_heater': _create_water_heater, 'media_player': _create_media_player, 'vacuum': lambda data: VacuumCleanerEntity(data)}
Mapping of HA domain names to Sber entity constructor callables.
create_sber_entity
¶
Create a Sber device entity from HA entity data.
When sber_category is provided (user override), it takes precedence
over the default domain-based mapping.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
entity_id
|
str
|
HA entity ID (e.g., 'light.living_room'). |
required |
entity_data
|
dict
|
Dict with entity registry data (entity_id, device_id, area_id, etc.) |
required |
sber_category
|
str | None
|
Optional Sber category override (e.g., 'light', 'relay'). |
None
|
Returns:
| Type | Description |
|---|---|
BaseEntity | None
|
BaseEntity subclass instance or None if domain not supported. |