Bitwise AND: bitwise_and
The bitwise_and template function performs a bitwise AND operation on two integer values. Each bit in the result is set to 1 only if both corresponding bits in the input values are 1.
This is useful when working with devicesA device is a model representing a physical or logical unit that contains entities. that communicate status or configuration using bitmasks. For example, some sensorsSensors return information about a thing, for instance the level of water in a tank. [Learn more] report multiple flags packed into a single integer value, and you can use bitwise_and to check whether a specific flag bit is set. It is also helpful for masking out specific bits from a register value.
Usage
Here’s how to use this template function. Copy any example and adjust it to your setup.
{{ bitwise_and(7, 3) }}
3
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.
bitwise_and(
first_value: Any,
second_value: Any,
) -> int
Function parameters
The following parameters can be provided to this function.
Good to know
- Both inputs must be integers. Convert state strings with
intfirst. - To test whether a specific bit is set, compare the result to the bit mask or to zero.
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.
Checking a status bit
Check if bit 2 (value 4) is set in a sensor’s status register.
{% set status = states("sensor.device_status") | int %}
{{ bitwise_and(status, 4) > 0 }}
True
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:
-
Bitwise OR: bitwise_or - Performs a bitwise OR operation on two values.
-
Bitwise XOR: bitwise_xor - Performs a bitwise XOR (exclusive OR) operation on two values.