Excedente solar

@luuuis , não querendo ser chato, gostava de saber se podes partilhar aqui no fórum a totalidade do teu projeto e se possível um tutorial, para a tua ideia de aproveitamento do excedente fotovoltaico tirando partido do netmetering de 15 minutos.

Obrigado

1 Curtiu

Viva,

O meu flow no Node RED foi uma coisa que se foi desenvolvendo organicamente, logo mistura uma série de funções tal como termostato, perfis de utilização, modo de férias, gestão de excedentes. Logo, não constitui um módulo de gestão de excedentes que se possa conjugar facilmente e não adianta partilhar tudo porque não vai servir.

O ideal seria eu fazer um “subflow” que trata só da parte dos excedentes e depois pode ser partilhado e reutilizado facilmente, mas ter tempo para isso já é outra coisa. Entretanto posso partilhar aqui o screenshot do flow que trata disto. A parte do profile que trata da gestão de excedente está num link que já partilhei em Excedente solar - #59 por luuuis.

2 Curtiram

Obrigado @luuuis.
Lá vou eu ter de estudar mais um pouco… :sweat_smile:

Viva @luuuis,

Antes de mais, obrigado pela partilha.

Estava a ver o yaml que partilhaste no neste post e fique confuso se para experimentar devo colocar tal como está ou tenho que substituir pelas minhas entidade do Shelly EM.

Obrigado,

Em vez de sensor.home_grid_consumption_total e sensor.home_grid_feed_in_total deves usar os teus sensores “totalizadores” de consumo e produção. Tudo o resto é derivado desses valores.

Nota: os totalizadores do Shelly aparentemente não enviam dados com a frequência necessária para o nosso propósito pois só enviam quando houve uma alteração significativa em kWh e nós estamos a lidar com valores pequenos por ser só em períodos de 15 minutos. Por essa razão recomendo a usar directamente os sensores _current_consumption (que reportam em W) e calcular os acumulados com um sensor integration .

Anteriormente estava a trabalhar com Wibeee e agora tenho isto a funcionar com um Shelly 3EM. Em breve colocarei aqui a configuração relevante para um Shelly.

Eu tenho assim com o meu Shelly:

Tenho o sensor de potência a dar o valor instantâneo do consumo da rede e da injeção da rede.

  - platform: template
    sensors:

      consumo_geral_potencia_instantanea:
        friendly_name: "Consumo Geral - Watts da Rede"
        unit_of_measurement: 'W'
        value_template: >
          {% if states('sensor.potencia_instantanea_geral') | int > 0 %}
            {{ states('sensor.potencia_instantanea_geral') }}
          {% else -%}
            0
          {% endif %}

      injecao_potencia_instantanea:
        friendly_name: "Injeção Rede Watts"
        unit_of_measurement: 'W'
        value_template: >
          {% if states('sensor.potencia_instantanea_geral') | int < 0 %}
            {{ states('sensor.potencia_instantanea_geral') | float * -1 }}
          {% else -%}
            0
          {% endif %}






# cálculos valores uteis energia usada na casa
      energia_utilizada_solar:
        friendly_name: "KWh Energia Solar Usada (2021-09-10)"
        value_template: >-
          {{ states('sensor.energia_producao_paineis') | float - states('sensor.energia_injecao_para_rede') | float | round(2) }}
        unit_of_measurement: 'KWh'

      energia_utilizada_solar_diaria:
        friendly_name: "KWh Energia Solar Usada Diária"
        value_template: >-
          {{ states('sensor.energia_producao_diaria') | float - states('sensor.energia_injecao_rede_diaria') | float | round(2) }}
        unit_of_measurement: 'KWh'



Após isso isso uso o integration:

sensor:



  - platform: integration
    name: "Energia Geral Total"
    source: sensor.consumo_geral_potencia_instantanea
    unit_prefix: k
    round: 3
    method: left



  - platform: integration
    name: "Energia Produção Paineis"
    source: sensor.producao_solar_instantanea
    unit_prefix: k
    round: 3
    method: left


  - platform: integration
    name: "Energia Injeção para Rede"
    source: sensor.injecao_potencia_instantanea
    unit_prefix: k
    round: 3
    method: left

Utility meter:

utility_meter:




  energia_consumo_rede_15_15: 
    source: sensor.energia_geral_total
    cycle: quarter-hourly

  energia_injecao_rede_15_15:
    source: sensor.energia_injecao_para_rede
    cycle: quarter-hourly

Nota importante: fiz esta resposta no telemóvel, o que não é simples. Algum erro, desculpem.

1 Curtiu

Hoje estou no PC.

Criei um auxiliar e dei o seguinte nome: input_number.valor_kwh_ligar_resistencia_1
Uso este auxiliar para definir o valor, a partir do qual, pretendo que a resistência se ligue. Tenho exposto no lovelace.
Vou partilhar o flow do NR (já passei o flow no Scrubber - https://zachowj.github.io/node-red-contrib-home-assistant-websocket/scrubber/):

[{"id":"4a2f69dbe60798af","type":"trigger-state","z":"695d2e761986ef56","name":"Kwh > XX Valor definido 1","server":"","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityid":"sensor.saldo_injecao_consumo_15_em_15_minutos","entityidfiltertype":"exact","debugenabled":false,"constraints":[{"targetType":"this_entity","targetValue":"","propertyType":"current_state","comparatorType":">","comparatorValueDatatype":"jsonata","comparatorValue":"$entities(\"input_number.valor_kwh_ligar_resistencia_1\").state","propertyValue":"new_state.state"},{"targetType":"this_entity","targetValue":"","propertyType":"previous_state","comparatorType":"<=","comparatorValueDatatype":"jsonata","comparatorValue":"$entities(\"input_number.valor_kwh_ligar_resistencia_1\").state","propertyValue":"old_state.state"}],"inputs":1,"outputs":2,"customoutputs":[],"outputinitially":false,"state_type":"str","enableInput":true,"x":150,"y":100,"wires":[["8f5bf7dd619a5d81"],[]]},{"id":"8f5bf7dd619a5d81","type":"api-current-state","z":"695d2e761986ef56","name":"Ainda Ligada?","server":"","version":2,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"switch.aqs_resistencia_acumulador","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":380,"y":100,"wires":[[],["059c647acb7496d0"]]},{"id":"059c647acb7496d0","type":"api-call-service","z":"695d2e761986ef56","name":"Ligar Resistência Acumulador","server":"","version":3,"debugenabled":false,"service_domain":"switch","service":"turn_on","entityId":"switch.aqs_resistencia_acumulador","data":"","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"data"}],"queue":"none","x":650,"y":100,"wires":[[]]},{"id":"5debddfe79e45f47","type":"trigger-state","z":"695d2e761986ef56","name":"Kwh = 0","server":"","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityid":"sensor.saldo_injecao_consumo_15_em_15_minutos","entityidfiltertype":"exact","debugenabled":false,"constraints":[{"targetType":"this_entity","targetValue":"","propertyType":"previous_state","comparatorType":">","comparatorValueDatatype":"num","comparatorValue":"0","propertyValue":"old_state.state"},{"targetType":"this_entity","targetValue":"","propertyType":"current_state","comparatorType":"<=","comparatorValueDatatype":"num","comparatorValue":"0","propertyValue":"new_state.state"}],"inputs":1,"outputs":2,"customoutputs":[],"outputinitially":false,"state_type":"str","enableInput":true,"x":100,"y":180,"wires":[["7be007d140d7a7ce"],[]]},{"id":"7be007d140d7a7ce","type":"api-call-service","z":"695d2e761986ef56","name":"Desligar Resistência Acumulador","server":"","version":3,"debugenabled":false,"service_domain":"switch","service":"turn_off","entityId":"switch.aqs_resistencia_acumulador","data":"","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"data"}],"queue":"none","x":400,"y":180,"wires":[[]]}]
3 Curtiram

fui buscar este tópico porque aquilo que li aqui parece que está muito bem conseguido e muito interessante a ideia.

vinha solicitar no entanto alguma ajuda no manuseamento do HA, pois sou muito novato nestas coisas e ainda nao consegui perceber ao certo onde de coloca o quê…

tenho um sistema FV 1800W, termoacumulador, shelly EM entre outros.

como posso fazer os testes que aqui referem, por forma a ativar a resistencia do meu termoacumulador?
concretamente onte escrevo os exemplos de códico que aqui são aparesentados?

Boa tarde podes usar Gestor de Excedentes Fotovoltaicos pesquisa no youtube nos vídeos de Roberto Jorge como ele fez

viva,

utilizando os videos que referiste, envolve algum investimento, sendo a coisa feita por software, confirme ideia do Luís M., fica mais economico, principalmente porque quem já tem esse controlo feito de forma manual.

uma das minhas duvidas maiores no controlo e calculos por software é como sabermos que estamos a fazer os calculos sincronos com o nosso contador? O meu já tem a contagem por GPRS 15 em 15mim.

Olá.

O método do HA usa o utility meter com os 15 minutos. Faz reset de 15 em 15 minutos e começa sempre à hora certa (por exemplo: 00h15, 00h30, 00h45, 01h00… 04h00, 04h15, etc etc) sempre de 15 em 15. Usa a hora do HA.

O contador devia estar com a hora sincronizada com a hora legal em Portugal. Problema: existem contadores que não atualizam a hora sempre que a mesma não está certa. O meu por exemplo. A solução é vir o técnico cá a casa acertar a hora. Ando a reclamar com a E-Redes sobre esse problema (inclusive incumprimento legal).

Mas caso o teu contador tenha a hora certa e o HA também, não terás problemas.

Nota: o erro do meu contador é de aproximadamente 2 minutos

2 Curtiram

Não vale apena

Volta ao mesmo ao fim de umas horas

O bug é nos minutos apenas

1 Curtiu

Posso estar a ver um problema onde ele nao existe, mas o HA está a ir buscar as horas a um servidor da web, independente do reset que ele faça, ele apenas se acerta a ele próprio para garantir que não há atrasos por as interações que ele faz…

A hora face ao contador, tenho de ser eu a verificar volta e meia, para ver se ha atrasos certo?

João, tu tb tens isso feito no Node-Red? Poderás disponibilizar o flow code?

Obrigado

Lê este tópico e os anteriores :Excedente solar - #81 por lopitos

viva

já tenho andado aqui com experiencias a tentar fazer o meu gestor de energia, mas sem sucesso…

Node-red

o que eu estou aqui a fazer na função é ler a diferença entre a produção e o consumo, e se a produção for superior calculo o tempo que uma resistencia de 2000W pode estar ligada, nao deixando que esse tempo seja superior aos 5mim que faltam para o intervalo de tempo dos 15mim em 15mim.
NOTA: O switch é procura o “0” para depois iniciar o delay.

no debug tenho os valores corretos, só que comparando com o que o contador da E-redes, devia ter o consumo da rede a zero e aparece sempre consumo… como no exemplo abaixo

Alguém me consegue ajudar a perceber o que possa estar a fazer mal?

obrigado

Deveria aparecer uma coluna com a diferença

no excel que retiro, apenas tenho valores nessas duas colunas… quando estou a produzir mais que o que estou a consumir, na coluna “Consumos” aparece “0”

Isso é quase zero

Acho que ainda é preciso dividir cada valor por 4

Porque cada intervalo é um rate/hora

Acho que isso nao reflete o netmetering

Podes explicar melhor isso do dividir por 4?? Não percebi…

No diagrama coloquei vários debugs para testar todo o processo e no meu entender parece que não devia estar a falhar… neste exemplo em vez dos 10mim de delay até coloqui apenas 8mim.

Conseguem verificar algum erro que me esteja a passar?

Ou seja por os valores lidos a resistencia irá ligar 180000ms = 3mim


Copyright © 2017-2021. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade