SHA1 hash: sha1
The sha1 template function calculates the SHA1 hash of a string and returns the result as a hexadecimal string. SHA1 produces a 160-bit (40-character hex) hash value from any input string.
This is useful when you need a longer hash than MD5 for generating identifiers or checksums. SHA1 provides a 40-character hex output compared to MD5’s 32 characters. Like MD5, it is not recommended for security-sensitive purposes. For cryptographic use cases, prefer sha256 or sha512.
Usage
Here’s how to use this template function. Copy any example and adjust it to your setup.
{{ sha1("Hello, World!") }}
0a0a9f2a6772942557ab5355d76af442f8f65e01
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.
sha1(
value: str,
) -> str
Function parameters
The following parameters can be provided to this function.
Good to know
- SHA1 is no longer considered secure for cryptographic use. Prefer
sha256orsha512for anything sensitive. - The result is always a 40-character lowercase hexadecimal string.
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.
Generate a unique identifier
Create a consistent identifier from a combination of entity ID and date.
{{ sha1("sensor.temperature_" ~ now().date() | string) }}
b2e5f8a1c3d4e6f7a8b9c0d1e2f3a4b5c6d7e8f9
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:
-
MD5 hash: md5 - Calculates the MD5 hash of a string.
-
SHA256 hash: sha256 - Calculates the SHA256 hash of a string.
-
SHA512 hash: sha512 - Calculates the SHA512 hash of a string.