def name(self) -> str | UndefinedType | None:
        """
        Return the name of the entity.

        Override by CC.
        A hm entity can consist of two parts. The first part is already defined by the user,
        and the second part is the english named parameter that must be translated.
        This translated parameter will be used in the combined name.
        """

        entity_name = self._data_point.name

        if (translated_name := super().name) is not None and not isinstance(translated_name, UndefinedType):
            entity_name = translated_name

        if not self._data_point.channel and entity_name and isinstance(entity_name, str):
            if isinstance(self._data_point, GenericSysvarDataPoint) and not entity_name.lower().startswith(
                tuple({"v_", "sv_", "sv"})
            ):
                entity_name = f"SV {entity_name}"
            elif isinstance(self._data_point, GenericProgramDataPoint) and not entity_name.lower().startswith(
                tuple({"p_", "prg_"})
            ):
                entity_name = f"P {entity_name}"

        if entity_name == "":
            return None
        if isinstance(entity_name, UndefinedType):
            return None
        return entity_name.replace("_", " ")

        Return the name of the entity.

        Override by CC.
        A hm entity can consist of two parts. The first part is already defined by the user,
        and the second part is the english named parameter that must be translated.
        This translated parameter will be used in the combined name.
        
custom_components/homematicip_local/generic_entity.py