Integrar contadores inteligentes da EDP em Home Assistant

Eu gostava de abrir um tópico, no ponto certo do forum, para discutir eficiência de inversores em modo de bateria e off grid. Acho que se passarmos a informação adiante outros não terão o mesmo problema que hoje eu tenho.

Podes sugerir o ponto correto?

Acho que vou colocar isto em outro forum… Não podemos esquecer que o forum aqui é do HA e não de energia solar. Para ser honesto, acho que abusei do forum.

Dito isto, tu conheces alguma empresa séria, e com capacidade de execução, que faça venda de sistemas de produção solar na zona da grande Lisboa e que te sintas confortável em recomendar?

No post original o Tiago recolhe os valores via o comando:
“+1,14,m,1,9600,EB,5,50,0104006C,01040079,…”

No manual o 6C é o Instantaneous Voltage L1. Entretanto, ele extrai o valor da tensão e da corrente a partir do mesmo registo via:

1,010404UUuuxxxx@i0:10,Tensão,V,Voltage_P1,17
1,010404xxxxUUuu@i0:10,Corrente,A,Current_P1,17"

Se ele não pega os dois valores (i.e.: r0104006C0002) como é que isto funciona? Não era de pegar o 6C e o 6D?

Fico confuso porque o script parece funcionar!

Desculpe… Resolvido:

"Register # (as Hexadecimal codification, without the prefix 0x . Example: 0x00790079 ) the number of requested registers is fixed to 2, however with the char ‘r’ before the hex string the complete request string may be specified ...r010400000001,r010400020003,...".

1 Curtiu

Viva, pode indicar o que fez de diferente?

Já tentei com esse e não consegui…

Obrigado

Tasmota > Console

sensor53 d1

Viva!

Observando com atenção as mensagens enviadas pelo tasmota eu vi que as medidas parciais são enviadas, uma a uma, via o tópico o"/SENSOR". À cada minuto (depende do valor do tper) é também enviado o mesmo conteúdo via “/STATE”.

Há como desabilitar o envio das mensagens parciais (SENSOR) e enviar apenas a de STATE? Pior, há alguma razão técnica para se enviar as duas que eu não esteja a ver?

Errei outra vez… Há uma mensagem com todos os dados mas no mesmo tópico. A pergunta fica então: Há como eliminar as mensagens parciais?

1,010404UUuu@i1:10,Voltage L1 ,V,VolL1,17
1,010404xxxxUUuu@i1:10,Current L1 ,A,CurL1,17

-16

1,010404UUuu@i1:10,Voltage L1 ,V,VolL1,1
1,010404xxxxUUuu@i1:10,Current L1 ,A,CurL1,1

Obrigado Nikito! Não fazes ideia do quanto me poupas em horas de pesquisa… Voltei o documento que já enviaste e é bastante claro. Deixo aqui copia do doc para quem queira rapidamente entender também.

Já que “ajudas tanto”, deixo então mais uma pergunta: Já retirei os “16” de todos os sensores. Alterei o tper para 300 (5 em 5 minutos). Há como forçar a que o script tenha início no minuto zero da hora, resultando assim colheita de dados sempre em múltiplos de 5 minutos a partir do minuto zero?

No meu script eu tenho:

if upsecs>20
and upsecs<30
then
smlj=1
endif

Mesmo que seja possivel.

O mais certo é só activar na hora seguinte

O “upsecs” é uma variável do tasmota, certo? Onde há documentação das variáveis que podemos utilizar no scrip?

https://tasmota.github.io/docs/Scripting-Language/

Depois de muito sofrer na tentativa de ter um contador preciso, com início no dia 1 de cada mês e fim no último dia do mês, resolvi instalar InfluxDb e MariaDb. No InfluxDb mantenho as “time series”; no MariaDb, utilizo Node Red a fazer queries ao InfluxDb para depois então guardar o resultado no MariaDb. Dito isto, reparei que se tiveres o configuration.yaml sem qualquer sensor definido, mesmo assim o InfluxDb recebe e guarda as mensagens de MQTT vindas do meu tasmota que está ligado ao contador. Entretanto, o HA não calssifica o que vem deste tasmota, por exemplo, a medida (i.e.: kWh, V, A, etc.). Para que no Lovelace apareça a grandeza é então necessário criar um sensor no configuration.yaml e definir o “unit_of_measurement”. Daí resulta a duplicação de de dados no InfluxDb porque uma é aquela que ele guarda vinda diretamente do tasmota e outra é aquela que ele grava devido a definição do sensor.

Duas perguntas:

  • Há como definir no HA a grandeza de uma publicação MQTT sem no entanto definir um sensor no configuration.yaml, evitando assim a duplicação de dados no InfluxDb?

  • Verifiquei que os Shelly enviam os dados tal e qual os tasmotas mas que, de alguma forma, o HA sabe e qualifica as grandezas, tipo consumo, em W. Há como alterar o firmware dos tasmotas do contador por forma a ele fazer o mesmo?

Desculpem, foi mais um erro meu! Continuo aprendendo…

Destruí a base de dados InfluxDb e recriei ela a seguir, numa tentativa de destruir toda a história que lá havia. Parece-me (repito, “parece-me”) que os dados que estavam no SQLite do HA, devido a retenção de 3 dias, foram escritos no InfluxDb assim que a nova base de dados subiu, criando assim a ideia de que o quê o tasmota publicava era metido no InfluxDb mesmo sem estar definido um sensor.

Para a referência de quem tiver curiosidade, minha configuração das bases de dados é:

recorder:
  purge_keep_days: 3
  purge_interval: 1

influxdb:
  host: 192.168.0.1
  port: 8086
  database: homeassistant
  username: homeassistant
  password: ***********
  max_retries: 3
  default_measurement: state

Energy

Tasmota mqtt yaml

    #...
    unit_of_measurement: "kWh"
    device_class: energy
    state_class: measurement
    last_reset_value_template: >-
        {{ "1970-01-01T00:00:00+00:00" }}
    last_reset_topic: "tele/edpbox3/STATE" 

Liguei a fazer o pedido e disseram-me que a porta de série só está disponível para quem é produtor de energia.

Alguém confirma isso?

Nada de mais errado! Ligaste para onde? Tens aqui no forum umas dezenas de utilizadores que não têm produção e têm porta HAN activa…


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


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