ūüďĎ Como configurar o controlo de consumos el√©ctricos (aplica√ß√£o de tarif√°rios)


(jpm) #1

Numa altura em que muitos andam a tentar controlar os consumos deixo-vos aqui algumas variaveis que tenho criadas (eventualmente demasiadas para alguns) e que me permitem controlar o consumo na minha casa.

Gostaria de salientar que tenho um tarifario bi-horario semanal por isso tenho varios ciclos dependendo do dia da semana:

#A parte basica: variaveis com o valor das rates (idealmente a ir buscar a um site que até ja encontrei)

input_number:
  edp_eco_rate:
    name: EDPTarifa Vazio
    initial: 0.0969
    min: 0.0969
    max: 0.0979
    step: 0.001
    mode: box
    unit_of_measurement: '‚ā¨'
    icon: mdi:currency-eur
  edp_full_rate:
    name: EDP Tarifa Cheio
    initial: 0.2029
    min: 0.2029
    max: 0.2039
    step: 0.001
    mode: box
    unit_of_measurement: '‚ā¨'
    icon: mdi:currency-eur

#Variaveis com os multiplos horarios

input_datetime:
  economico_semana_ligar:
    name: Ligar Semana
    has_date: false
    has_time: true
    initial: '00:00:00'
  economico_semana_desligar:
    name: Desligar Semana
    has_date: false
    has_time: true
    initial: '06:59:00'
  economico_sab_on_verao_00:
    name: Ligar Sabado ver√£o 01
    has_date: false
    has_time: true
    initial: '00:00:00'
  economico_sab_on_verao_01:
    name: Ligar Sabado ver√£o 02
    has_date: false
    has_time: true
    initial: '14:00:00'
  economico_sab_on_verao_02:
    name: Ligar Sabado ver√£o 03
    has_date: false
    has_time: true
    initial: '22:00:00'
  economico_sab_off_verao_00:
    name: Desligar Sabado ver√£o 01
    has_date: false
    has_time: true
    initial: '09:00:00'
  economico_sab_off_verao_01:
    name: Desligar Sabado ver√£o 02
    has_date: false
    has_time: true
    initial: '20:00:00'
  economico_sab_on_inverno_00:
    name: Ligar Sabado Inverno 01
    has_date: false
    has_time: true
    initial: '00:00:00'
  economico_sab_on_inverno_01:
    name: Ligar Sabado Inverno 02
    has_date: false
    has_time: true
    initial: '13:00:00'
  economico_sab_on_inverno_02:
    name: Ligar Sabado Inverno 03
    has_date: false
    has_time: true
    initial: '22:00:00'
  economico_sab_off_inverno_00:
    name: Desligar Sabado Inverno 01
    has_date: false
    has_time: true
    initial: '09:30:00'
  economico_sab_off_inverno_01:
    name: Desligar Sabado Inverno 02
    has_date: false
    has_time: true
    initial: '18:30:00'

#Só porque não gosto de mexer em codigo especialmente quando é algo recorrente:

 input_select:   
    summer_time:
     name: Summer Time
     options:
      - verao
      - inverno

#Parte do codigo esparguete pois tenho tantas ideias para por em pratica que preocupo-me com as optimiza√ß√Ķes mais tarde, contudo pe√ßo a quem queira melhorar que n√£o s√≥ o fa√ßa como partilhe:
#Estamos em horario económico?

binary_sensor:
  - platform: template
    sensors:
      is_edp_eco_rate:
        value_template: >-
         {%- if now().weekday() in (0,1,2,3,4) and states('sensor.time') >= (states.input_datetime.economico_semana_ligar.attributes.timestamp | int | timestamp_custom('%H:%M', False)) and states('sensor.time') < (states.input_datetime.economico_semana_desligar.attributes.timestamp | int | timestamp_custom('%H:%M', False)) -%} 
           true
         {%- elif is_state("input_select.summer_time", "verao") and now().weekday() == 5 and states('sensor.time') >= (states.input_datetime.economico_sab_on_verao_00.attributes.timestamp | int | timestamp_custom('%H:%M', False)) and states('sensor.time') < (states.input_datetime.economico_sab_off_verao_00.attributes.timestamp | int | timestamp_custom('%H:%M', False)) -%} 
           true
         {%- elif is_state("input_select.summer_time", "verao") and now().weekday() == 5 and states('sensor.time') >= (states.input_datetime.economico_sab_on_verao_01.attributes.timestamp | int | timestamp_custom('%H:%M', False)) and states('sensor.time') < (states.input_datetime.economico_sab_off_verao_01.attributes.timestamp | int | timestamp_custom('%H:%M', False)) -%} 
           true
         {%- elif is_state("input_select.summer_time", "verao") and now().weekday() == 5 and states('sensor.time') >= (states.input_datetime.economico_sab_on_verao_02.attributes.timestamp | int | timestamp_custom('%H:%M', False))  -%} 
           true
         {%- elif is_state("input_select.summer_time", "inverno") and now().weekday() == 5 and states('sensor.time') >= (states.input_datetime.economico_sab_on_inverno_00.attributes.timestamp | int | timestamp_custom('%H:%M', False)) and states('sensor.time') < (states.input_datetime.economico_sab_off_inverno_00.attributes.timestamp | int | timestamp_custom('%H:%M', False)) -%} 
           true
         {%- elif is_state("input_select.summer_time", "inverno") and now().weekday() == 5 and states('sensor.time') >= (states.input_datetime.economico_sab_on_inverno_01.attributes.timestamp | int | timestamp_custom('%H:%M', False)) and states('sensor.time') < (states.input_datetime.economico_sab_off_inverno_01.attributes.timestamp | int | timestamp_custom('%H:%M', False)) -%} 
           true
         {%- elif is_state("input_select.summer_time", "inverno") and now().weekday() == 5 and states('sensor.time') >= (states.input_datetime.economico_sab_on_inverno_02.attributes.timestamp | int | timestamp_custom('%H:%M', False))  -%} 
           true
         {%- elif now().weekday() == 6 -%} 
           true
         {%- else -%}
           false
         {%- endif -%}
        friendly_name: 'EDP horario Económico'
        entity_id: sensor.time

#Como usar? ‚ÄúSimples‚ÄĚ

    - platform: template 
      sensors:
        edp_realtime_price_frigorifico:
          friendly_name: 'Frigorifico Spending'
          unit_of_measurement: '‚ā¨/h'
          value_template: >-
           {% if is_state("binary_sensor.is_edp_eco_rate", "on")  -%}
             {{ ((states.sensor.edp_plug_frigorifico_power.state | float / 1000 * states.input_number.edp_eco_rate.attributes.min)) | round(3) }}
           {%- else -%}
            {{ ((states.sensor.edp_plug_frigorifico_power.state | float / 1000 * states.input_number.edp_full_rate.attributes.min)) | round(3) }}
           {%- endif %}

Como configurar o controlo de consumos eléctricos (aplicação de tarifários)
(Jorge Assunção) #2

9 mensagens foram unidas em um tópico existente: Como configurar o controlo de consumos eléctricos (aplicação de tarifários)


(system) #3

Para comentar este tópico, por favor utilizem o tópico abaixo.


(Jorge Assunção) #4