[AJUDA] Manter a última medição de um sensor após ele ficar como Desconhecido

Boa tarde,
Iniciei no HA a pouco tempo e ainda estou aprendendo e descobrindo algumas coisas (principalmente com a ajuda do forum). Porem ainda estou me batendo em algumas coisas

Eu tenho um inversor da Solarman/Sofar que consegui puxar os dados pelo Addon Solarman, porem após anoitecer o inversor entra em modo standby e para de enviar informações, sendo assim, os sensores ficam como “Desconhecido”.

Eu estou utilizando um cartao no estilo INDICADOR pra mostrar o resumo da produção, e quando anoitece, ele apresenta a mensagem “Entidade não é numérica: sensor.solarman_pv_generation.today”. Justamente pelo fato de estar como “Desconhecido”

Eu gostaria de tentar armazenar a ultima informação registrada no sensor. Da forma que está, caso eu queira ver a noite o que gerou de produção, só consigo pelo aplicativo da Solarman que joga pro servidor deles. Tentei usar um codigo que o chatgpt me passou, porem não funcionou.

Na aba ENERGIA ele armazena certo, porem estava querendo colocar as informaçoes uma aba da visão geral, onde eu vou deixar um resumo do gerado por dia, mes, semana e ano; além de outras informações do proprio inversor (temperatura, fases, erros e etc). A ideira era ter uma aba mais específica pras informações do inversor, alem de só a energia consumida/gerada.

Em um futuro, a ideia tambem é fazer o registro dessas leituras e joga-las pro SQL e posteriormente disparar um e-mail ao final do mes pra mim, pra saber o que gerou em cada dia do mes, o que foi consumido da rede e o que foi injetado. Tendo assim um controle melhor do que estou gastando/produzindo aqui na fazenda.
Pra fazer esse SQL achei um topico no forum de portugal, mas ainda preciso encomendar o equipamento (Sonoff POW Ring ou Shelly) pra fazer a medição de entrada/injetada pra colocar lá no quadro principal Meu inversor não faz essa medição, infelizmente. Então isso é coisa pra um futuro ainda hehehe.

Agradeço desde já

Vá em Configurações/Dispositivos/Entidades Auxiliares.

Crie uma entidade auxiliar do tipo Medidor de Utilidade, utilize a entidade de produção diária ou de produção total da integração solarman e defina o ciclo conforme sua necessidade, diária, mensal, etc.

A entidade auxiliar será alimentada assim que a entidade de referência for incrementada.

Faça isso para cada entidade ou ciclo que quiser medir.

Opa André, boa tarde.
Então, eu acabei criando as Entidades Auxiliares, porém tem o problema de que se por algum motivo reiniciar o HA, a leitura inicia do zero novamente.
Por exemplo, vamos dizer que o inversor começou a passar a leitura as 7:00 da manhã a entidade auxiliar começa a fazer a contagem. Porem se por algum motivo eu tiver que reiniciar o HA durante o dia, a medição começa a partir do zero novamente.

Se usar medidor de utilidade, ele não zera para o período que determinou o ciclo.
image

Opa André, beleza?
Eu estava tentando fazer dessa forma que voce falou mas acontecia o problema que te falei, se o HA fechava, ele iniciava a contagem do zero novamente. Mas consegui aqui fazer funcionar agora. Segue solução que encontrei

Criei um sensor no configuration.yaml com o seguinte codigo

sensor:

  • platform: template
    sensors:
    producao_fotovoltaica_dia:
    friendly_name: “Produção Fotovoltaica Dia”
    value_template: “{{ states(‘sensor.solarman_pv_generation_today’) }}”

Após isso criei uma automatização no automation.yaml que faz a atualização do valor do sensor criado acima ser atualizado a medida que o valor recebido pelo inversor muda

  • id: ‘id criado automaticamente pela UI
    alias: Producao Fotovoltaica Dia
    description: ''Mantem a ultima leitura da producao fotovolaica do dia"
    trigger:
    • platform: state
      entity_id:
      • sensor.solarman_pv_generation_today
        condition: [ ]
        action:
        • service: homeassistant.update_entity
          entity_id: producao_fotovoltaica_dia
          data_template:
          state: “{{ trigger.to_state.state }}”

Dessa forma vou criar as entidades auxiliares pra fazer o calculo da geração semanal, mensal e anual, seguindo os passos que vc falou. Como não inicia do zero mais, acredito que vai dar certo.
Desde já agradeço a atenção e a ajuda André. abraços

Obs. Não sei colocar os codigos citados acimas dentro de um box. Caso puder ensinar como fazer, agradeço, a fim de deixar a resposta mais “limpa” pra caso algum usuário acesse aqui.

Amigo, você está complicando algo simples. Provavelmente você não escolheu o ciclo correto.

Mas ok. Uma das vantagem do HA é que ele permite fazer a mesma coisa de formas diferentes.

Opa André, boa noite. Novamente eu aqui.
Então, o processo que fiz não funcionou tambem hahahaha…

Acho que me expliquei mal quando tentei falar sobre a situação que está ocorrendo aqui.
Pela entidade axiliar criada, ele realmente recebe as informações do sensor.solarman, e ele vai fazendo essa contagem, e mesmo se o sensor ficar como Desconhecido, esse valor aparece la. Posso reiniciar o HA e tudo mais que tudo funciona.

O problema está caso venha a acontecer algum travamento no HA em que ele fique “congelado”, ou se tanto o inversor quanto HA caiam da rede. Essa janela de tempo que ele está travado ou fora da rede, ele não consegue fazer essa contagem pela entidade auxiliar. E quando o HA retorna, ele continua a fazer a contagem a partir do valor recebido antes de congelar, e não efetivamente do valor do inversor.

Por exemplo:
O sensor.solarman está marcando 30 kWh e vai aumentando gradativamente 31 / 32 e etc.
A entidade auxiliar vai fazendo essa contagem tudo certinho. Mas vamos dizer que durante 40 minutos por algum motivo o HA desconectou da rede. Quando ele retornar, a contagem da entidade auxiliar vai “perder” essa janela de informações desse intervalo de 40 minutos, e vai continuar a contagem a partir do valor antes de cair da rede, no caso 32 por exemplo, ou seja, vai dar diferente do valor que realmente está sendo enviado/gerado do Sensor.solarman
É esse o problema que estou enfrentando.

Então a ideía era pegar essa informação do sensor.solarman (que mesmo quando cai da rede, quando retorna ele só capta o valor do sensor) e usar ela, pq ela atualiza em tempo real o que realmente o inversor está gerando. Independente se a conexao com o inversor ou do HA caia. Ele só faz uma leitura do sensor. Mas aí quando o inversor desliga a noite, a informação recebida no Sensor é “Desconhecido”. Então a ideia era que ao invés de usar a informação “DESCONHECIDO” (que aparece o erro “Entidade não é numérica”) que ela mostrasse o último valor numerico recebido antes do Desconhecido

Agora entendi sua preocupação. Mas você não deve se preocupar tanto. Porque o HA trabalha com a variação da última informação recebida e seu valor anterior recebido. O que acontece nesses casos de um intervalo de tempo maior sem atualizado é que a entidade auxiliar irá ficar com um valor fixo, até que a entidade de referência seja atualizada. Então ela será incrementada com o delta apurado. O valor não ficará errado no final. O que fica errado é a curva de valor naquele período off-line.

1 curtida

Encontrei outras pessoas com o mesmo “problema” que enfrentei no forum americano e consegui achar a solução em uma das respostas. Agora deu certinho, caso alguem precise.
Só adicionar ao configuration.yaml um template que ele deixa “salvo” a ultima informação numerica recebida do sensor. Então quando ele fica como Desconhecido, esse template guarda a ultima leitura numerica.

segue codigo pra adicionar ao configuration.yaml

template:
  - trigger:
      - platform: state
        entity_id: NOME DO SENSOR QUE ENVIA A INFORMAÇÃO
        not_to:
          - unknown
          - unavailable
    sensor:
      - name: NOME DO SENSOR NOVO QUE ARMAZENA A ULTIMA LEITURA NUMERICA
        state: "{{ trigger.to_state.state }}"
1 curtida