Template para calculo de custo de Agua (Resolvido)

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 %}
1 curtida