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.
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.
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
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:
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.
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.
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 }}"