def __init__( self, hass: HomeAssistant, object_id: str | None, friendly_name: template.Template | None, device_class: str, value_template: template.Template, icon_template: template.Template | None, entity_picture_template: template.Template | None, availability_template: template.Template | None, delay_on_raw, delay_off_raw, attribute_templates: dict[str, template.Template], unique_id: str | None, ): """Initialize the Template binary sensor.""" super().__init__( attribute_templates=attribute_templates, availability_template=availability_template, icon_template=icon_template, entity_picture_template=entity_picture_template, ) if object_id is not None: self.entity_id = async_generate_entity_id(ENTITY_ID_FORMAT, object_id, hass=hass) self._name: str | None = None self._friendly_name_template: template.Template | None = friendly_name # Try to render the name as it can influence the entity ID if friendly_name: friendly_name.hass = hass try: self._name = friendly_name.async_render(parse_result=False) except template.TemplateError: pass self._device_class = device_class self._template = value_template self._state = None self._delay_cancel = None self._delay_on = None self._delay_on_raw = delay_on_raw self._delay_off = None self._delay_off_raw = delay_off_raw self._unique_id = unique_id
def __init__( self, command_template: template.Template | None, *, hass: HomeAssistant | None = None, entity: Entity | None = None, ) -> None: """Instantiate a command template.""" self._attr_command_template = command_template if command_template is None: return self._entity = entity command_template.hass = hass if entity: command_template.hass = entity.hass
def __init__( self, hass: HomeAssistant, object_id: str | None, friendly_name_template: template.Template | None, unit_of_measurement: str | None, state_template: template.Template, icon_template: template.Template | None, entity_picture_template: template.Template | None, availability_template: template.Template | None, device_class: str | None, attribute_templates: dict[str, template.Template], unique_id: str | None, state_class: str | None, ) -> None: """Initialize the sensor.""" super().__init__( attribute_templates=attribute_templates, availability_template=availability_template, icon_template=icon_template, entity_picture_template=entity_picture_template, ) if object_id is not None: self.entity_id = async_generate_entity_id( ENTITY_ID_FORMAT, object_id, hass=hass ) self._friendly_name_template = friendly_name_template # Try to render the name as it can influence the entity ID if friendly_name_template: friendly_name_template.hass = hass try: self._attr_name = friendly_name_template.async_render( parse_result=False ) except template.TemplateError: pass self._attr_native_unit_of_measurement = unit_of_measurement self._template = state_template self._attr_device_class = device_class self._attr_state_class = state_class self._attr_unique_id = unique_id
def __init__( self, value_template: template.Template | None, *, hass: HomeAssistant | None = None, entity: Entity | None = None, config_attributes: TemplateVarsType = None, ) -> None: """Instantiate a value template.""" self._value_template = value_template self._config_attributes = config_attributes if value_template is None: return value_template.hass = hass self._entity = entity if entity: value_template.hass = entity.hass
def __init__( self, command_template: template.Template | None, hass: HomeAssistant, ) -> None: """Instantiate a command template.""" self._attr_command_template = command_template if command_template is None: return command_template.hass = hass