Multiply a value: multiply
The multiply filter converts a value to a float and multiplies it by a specified amount. If the value cannot be converted to a number, it returns the default you provide instead of raising an error.
This is a convenient shorthand for scaling sensorSensors return information about a thing, for instance the level of water in a tank. [Learn more] values. Instead of converting to a float first and then multiplying, you can do it in a single step. Common uses include converting units (watts to kilowatts, Celsius to Fahrenheit), applying a cost rate to an energy reading, or scaling a percentage to a different range. For addition, see add.
Usage
Here’s how to use this template function. Copy any example and adjust it to your setup.
{{ states("sensor.power_watts") | multiply(0.001) }}
1.5
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.
multiply(
value: Any,
amount: float,
default: Any = _SENTINEL,
) -> float | Any
Function parameters
The following parameters can be provided to this filter.
The value to convert to a float and multiply. Must be a number or a string that can be converted to a float.
Using a default value
If the sensor might be unavailable, provide a default to prevent errors.
{{ states("sensor.power_watts") | multiply(0.001, default=0) }}
1.5
Good to know
- There is no division filter. Pass a fractional amount, like
0.001to divide by 1000. - The result is always a float, even when both inputs are integers.
- Without a default, non-numeric input raises an error. Always pass a default when working with state values.
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.
Convert watts to kilowatts
Scale a power reading from watts to kilowatts for cleaner display.
{{ states("sensor.power_usage") | multiply(0.001) | round(2) }}
1.50
Calculate energy cost
Multiply today’s energy consumption by the price per kWh.
{{ states("sensor.energy_today") | multiply(0.25) | round(2) }}
3.47
Scale a percentage to a brightness value
Convert a 0-100 percentage to a 0-255 brightness scale for a light.
action:
- action: light.turn_on
target:
entity_id: light.desk_lamp
data:
brightness: >
{{ states("sensor.ambient_light_pct") | multiply(2.55) | int(128) }}
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:
-
Add to a value: add - Adds a specified amount to a numeric value, with an optional default if conversion fails.
-
Convert to float: float - Converts a value to a floating-point number, with an optional default if conversion fails.
-
Convert to integer: int - Converts a value to an integer, with an optional default if conversion fails.
-
Round a number: round - Rounds a numeric value to a specified number of decimal places using various rounding methods.