Obrigado pela dica @douglasit !
Criei as variaveis “input_number” e corrigi a lógica da programação.
Me parece que agora está correto.
#Configuração das variaveis auxiliares para controlar a tarifa de Agua por faixas de volume
input_number:
# Faixa 1 - consumo de agua até 15.000m³
tarifa_agua_faixa1:
name: Tarifa de agua Faixa 1
unit_of_measurement: 'R$'
initial: 3.8671
min: 0
max: 999
# Faixa 2 - consumo de agua entre 15.000m³ e 30.000m³
tarifa_agua_faixa2:
name: Tarifa de agua Faixa 2
unit_of_measurement: 'R$'
initial: 9.6677
min: 0
max: 999
# Faixa 3 - consumo de agua entre 30.000m³ e 45.000m³
tarifa_agua_faixa3:
name: Tarifa de agua Faixa 3
unit_of_measurement: 'R$'
initial: 11.9879
min: 0
max: 999
# Faixa 4 - consumo de agua entre 45.000m³ e 60.000m³
tarifa_agua_faixa4:
name: Tarifa de agua Faixa 4
unit_of_measurement: 'R$'
initial: 23.2024
min: 0
max: 999
# Faixa 5 - consumo de agua acima de 60.000m³
tarifa_agua_faixa5:
name: Tarifa de agua Faixa 5
unit_of_measurement: 'R$'
initial: 30.9366
min: 0
max: 999
Codigo do template:
- platform: template
sensors:
custo_mensal_aguas_de_niteroi:
friendly_name: "Custo Mensal Aguas de Niterói"
icon_template: mdi:cash-usd
unit_of_measurement: 'R$'
value_template: >-
{% if (states('sensor.monthly_water_in_aguas_de_niteroi') | float < 15000) %}
{{ ( float(states.sensor.monthly_water_in_aguas_de_niteroi.state) * ((states('input_number.tarifa_agua_faixa1') | float) * 2 / 1000) ) | round(2) }}
{% elif (states('sensor.monthly_water_in_aguas_de_niteroi') | float < 30000) %}
{{ ( (15000 * (states('input_number.tarifa_agua_faixa1') | float) * 2 / 1000) + ((float(states.sensor.monthly_water_in_aguas_de_niteroi.state)-15000) * ((states('input_number.tarifa_agua_faixa2') | float) * 2 / 1000)) ) | round(2) }}
{% elif (states('sensor.monthly_water_in_aguas_de_niteroi') | float < 45000) %}
{{ ( (15000 * (states('input_number.tarifa_agua_faixa1') | float * 2 / 1000) + (15000 * states('input_number.tarifa_agua_faixa2') | float) * 2 / 1000) + ((float(states.sensor.monthly_water_in_aguas_de_niteroi.state)-30000) * ((states('input_number.tarifa_agua_faixa3') | float) * 2 / 1000)) ) | round(2) }}
{% elif (states('sensor.monthly_water_in_aguas_de_niteroi') | float < 60000) %}
{{ ( (15000 * (states('input_number.tarifa_agua_faixa1') | float) * 2 / 1000) + (15000 * (states('input_number.tarifa_agua_faixa2') | float) * 2 / 1000) + (15000 * (states('input_number.tarifa_agua_faixa3') | float) * 2 / 1000) + ((float(states.sensor.monthly_water_in_aguas_de_niteroi.state)-45000) * ((states('input_number.tarifa_agua_faixa4') | float) * 2 / 1000)) ) | round(2) }}
{% else %}
{{ ( (15000 * (states('input_number.tarifa_agua_faixa1') | float) * 2 / 1000) + (15000 * (states('input_number.tarifa_agua_faixa2') | float) * 2 / 1000) + (15000 * (states('input_number.tarifa_agua_faixa3') | float) * 2 / 1000) + (15000 * (states('input_number.tarifa_agua_faixa4') | float) * 2 / 1000) + ((float(states.sensor.monthly_water_in_aguas_de_niteroi.state)-60000) * ((states('input_number.tarifa_agua_faixa5') | float) * 2 / 1000)) ) | round(2) }}
{% endif %}