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
Beispiel #2
0
    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
Beispiel #3
0
    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
Beispiel #4
0
    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
Beispiel #5
0
    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