Strip whitespace: trim
The trim filter removes leading and trailing whitespace from a string. You can optionally specify which characters to strip instead of whitespace.
This is useful when working with sensorSensors return information about a thing, for instance the level of water in a tank. [Learn more] values or other data that may include extra spaces or unwanted characters at the beginning or end. For example, some devicesA device is a model representing a physical or logical unit that contains entities. report states with trailing spaces, or you may need to remove surrounding quotes or other characters before processing a value further.
Usage
Here’s how to use this template function. Copy any example and adjust it to your setup.
{{ " hello world " | trim }}
hello world
Function signature
The signature is a technical summary of this template function. It shows the name of the function, the values (called parameters) it accepts, and what type of data each parameter expects (for example, a piece of text or a number).
Function parameters that have a = with a value after them are optional. If you leave them out, the default value shown is used automatically. Function parameters without a default are required.
trim(
value: str,
chars: str | None = None,
) -> str
Function parameters
The following parameters can be provided to this function.
Stripping specific characters
Pass a string of characters to remove from both ends instead of whitespace.
{{ "---hello---" | trim("-") }}
hello
Good to know
- Only affects the beginning and end of the string. Whitespace between words is kept intact. Use
replacefor inner cleanup. - When you pass the
charsargument, every character in that string is treated as a candidate to strip.trim("-_")removes both dashes and underscores from each end.
Try it yourself
Ready to test this? Open Developer tools > Template, paste the example into the Template editor, and watch the result update on the right. Edit the values to see how the function adapts to your own entitiesAn entity represents a sensor, actor, or function in Home Assistant. Entities are used to monitor physical properties or to control other entities. An entity is usually part of a device or a service. [Learn more].
More examples
Real scenarios where this function comes up in automations and templates. Copy any example and adapt it to your setup.
Clean up a sensor value
Remove extra whitespace from a sensor state before using it in a comparison.
{% set status = states("sensor.status") | trim %}
{% if status == "ready" %}
System is ready
{% endif %}
System is ready
Still stuck?
The Home Assistant community is quick to help: join Discord for real-time chat, post on the community forum with your template and expected result, or share on our subreddit /r/homeassistant.
AI assistants like ChatGPT or Claude can also explain or fix templates when you describe what you want in plain language.
Related template functions
These functions work well alongside this one:
-
Replace occurrences in a string: replace - Replaces all occurrences of a substring with another string.
-
Strip HTML tags: striptags - Removes all HTML/XML tags from a string, leaving only the text content.