Growatt não conecta mais via HA

Desde o inicio de Outubro/2023 o addons da Growatt não consegue se conectar ao servidor deles, pelo que parece ser, eles desabilitaram o acesso a API.
Esse modo era o que pegava pra ver a geração de energia dos meus painéis solares.
Gostaria de saber se alguém sabe contornar isso ou algum tutorial para pegar a medição de outra forma.

1 curtida

Olá Fabricio!

Qual integração você está usando? Já tentou verificar se existe atualização para a mesma?

Ja verifiquei e não há atualização, tentei retornar a versões anteriores, porém ainda não deixa conectar a API da Growatt.

Vi em outros fóruns, para pegar a medição via MQTT, mas os tutorais não ajudaram muito.

Olá!!!
Também estou à procura de uma solução, e encontrei este aqui.

Apesar de ter tudo aqui no jeitinho para montar, estou sem tempo e sem coragem de colocar a mão na massa. rssss

Boa tarde!
Recentemente passei pelo mesmo problema, vi algumas soluções radicais/complexas. Porém antes de tenta-las na reta final, consegui achar uma solução relativamente simples.

Em resumo, com o Hacs instalado, adiciona esse repositório da api, faça o download em hacs/integrações e depois configurações/dispositivos e serviços, adicionar integrações e procure por Growatt API e só fazer o login normalmente.

OBS: Não sei quanto tempo funcionará, porém já estou há 3 dias funcionando normalmente.

2 curtidas

Muito obrigado @D4n0n3, nao tinha visto que saiu essa atualização.
Também vi outras soluções muitos complicadas de realizar. Fiz essa é deu certo de conectar no servidor da growatt novamente. Poder olhar melhor a geração pelo HA.

1 curtida

Fico muito feliz em ter contribuído para uma solução. Mas como o próprio autor diz que não é uma solução a longo prazo, eu vou ir estudando alguma outra forma para ter um plano B caso apresentar algum problema futuro novamente. Talvez com um nodeMCU, não sei. Veremos haha

Olá,
Eu fiz a instalação e funcionou lindamente.
Mas no mesmo dia parou de funcionar e bloqueou minha conta do aplicativo por 24h.
Parece ser bloqueio por excesso de requisições à API.
Aconteceu com vcs?

Alguma solução?

O meu estava funcionando até ontem haha. Mas hoje contabilizou 2kWh no HA e no app foi 8kWh. Porém meu acesso no app e via browser continua normal.
Pelo o que eu entendi, é um problema que vem acontecendo desde setembro/outubro do ano passado, algo relacionado a api, como se a Growatt estivesse bloqueando ou sei lá (sou meio leigo no assunto e não pesquisei a fundo)
Vou tentar ver se encontro alguma solução amanhã e dou um retorno por aqui.

Não é bem que eles bloqueiam, eles fizeram rate limit.
Basicamente existem dois tipos de integração no HA, polling e push. Push quer dizer que o device ou servidor que envia menssagem pro home assistant falando que valor dele mudou somente quando valor mudar.

E polling quer dizer que o HA fica mandando sem parar mensagem pro dispositivo ou servidor:
Seu valor mudou?
Seu valor mudou?
Seu valor mudou?…

Isso tem gerado algumas controvérsias com diferentes empresas nos últimos meses. Um caso recente foi a haier que fez ameaças legais a um desenvolvedor de integração.

Issso porque o app da empresa só envia essas menssagens quando você abre o app. Já o home assistant fica o dia inteiro sem parar enviando, gerando mais custo para empresa.

O que eles fizeram foi basicamente limitar bastante quão rápido você pode mandar essa mensagens. Porém isso impede você ter dados real-time no home assistant.

Agora essa solução grot que enviaram que tem disponível para pegar os dados locais, parece fazer bem mais sentido caso funcione. Mesmo se não tuvessse rate limit é melhor que depender da nuvem.

1 curtida

Muito bem explicado @ariel_leventhal , agradeço pela transmissão do conhecimento, sempre muito bem vinda.
Me recordo de ler algo relacionado a Growatt começar a bloquear contas que fazem solicitações excessivas da API.
Enfim… Trago novidades, ainda em fase de testes e estudos. Em resumo, troquei o firmware do ShineWifiX (a grosso modo o responsável em enviar os dados via wifi, que fica conectado ao inversor via usb), troquei via ESPHome, em compensação perde o acesso ao APP, mas no meu caso quero centralizar tudo no HA.
Se quiserem, descrevo o passo a passo. E qualquer novidade atualizo vocês aqui.

1 curtida

Opa, eu quero tbm. Minha conta vive bloqueando por 24h. Daí perco acesso via app e via HA :frowning:

1 curtida

Opa, Muito bom.
Explica ai como vc fez.

1 curtida

@lucianovilasboas @flaviocorrea13

Perdão pela demora para responder aqui, muito trabalho hehe.
Vamos lá:
1- Retirem o modulo wifi (no meu caso é o ShineWifiX)
2- abre o modulo wifi, e jumpear o GND x GPIO0

3- Criar um dispositivo pelo esphome com o código pronto, e flashear pelo esphome app no pc, conectando na usb (nessa forma fica conectado direto pelo ESPhome do home assistant)

Código ESPHome

esphome:
name: growatt
on_boot:
priority: 600
then:
- lambda: |-
delay(60000);
project:
name: PVPro.ShineWifi-X
version: “1.0”

esp8266:
board: esp07s

Enable logging

logger:
baud_rate: 0

Enable Home Assistant API

api:
encryption:
key: “insira seu key”

ota:

wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password

Enable fallback hotspot (captive portal) in case wifi connection fails

ap:
ssid: “Growatt Fallback Hotspot”
password: “12345678”
manual_ip:
static_ip: 10.18.7.55
gateway: 10.18.7.1
subnet: 255.255.255.0

Enable Web server

web_server:
port: 80

captive_portal:

time:

  • platform: homeassistant
    id: homeassistant_time

output:

Blue Led

  • id: light_bl
    platform: gpio
    pin: 16

Green Led

  • id: light_gr
    platform: gpio
    pin: 0

Red Led

  • id: light_rd
    platform: gpio
    pin: 2

uart:

  • id: uart_id1
    baud_rate: 115200
    tx_pin: GPIO1
    rx_pin: GPIO3

modbus:
uart_id: uart_id1
flow_control_pin: GPIO4

For newer inverters use protocol_version “RTU2” like below. Certain older models require “RTU”.

sensor:

  • platform: growatt_solar
    update_interval: 5s
    protocol_version: RTU2

    inverter_status:
    name: “Growatt Status Code”
    phase_a:
    voltage:
    name: “Growatt Voltage Phase A”
    current:
    name: “Growatt Current Phase A”
    active_power:
    name: “Growatt Power Phase A”
    phase_b:
    voltage:
    name: “Growatt Voltage Phase B”
    current:
    name: “Growatt Current Phase B”
    active_power:
    name: “Growatt Power Phase B”
    phase_c:
    voltage:
    name: “Growatt Voltage Phase C”
    current:
    name: “Growatt Current Phase C”
    active_power:
    name: “Growatt Power Phase C”
    pv1:
    voltage:
    name: “Growatt PV1 Voltage”
    current:
    name: “Growatt PV1 Current”
    active_power:
    name: “Growatt PV1 Active Power”
    pv2:
    voltage:
    name: “Growatt PV2 Voltage”
    current:
    name: “Growatt PV2 Current”
    active_power:
    name: “Growatt PV2 Active Power”
    active_power:
    name: “Growatt Grid Active Power”
    pv_active_power:
    name: “Growatt PV Active Power”
    frequency:
    name: “Growatt Frequency”
    energy_production_day:
    name: “Growatt Today’s Generation”
    accuracy_decimals: 1
    total_energy_production:
    name: “Growatt Total Energy Production”
    accuracy_decimals: 1
    inverter_module_temp:
    name: “Growatt Inverter Module Temp”

  • platform: uptime
    name: “Growatt Uptime”
    update_interval: 60s

  • platform: wifi_signal
    name: “Growatt Wi-Fi Signal”
    update_interval: 60s

text_sensor:

  • platform: wifi_info
    ip_address:
    name: “Growatt IP Address”
    ssid:
    name: “Growatt Wi-Fi SSID”
    bssid:
    name: “Growatt Wi-Fi BSSID”
  • platform: version
    name: “ESPHome Version”
    hide_timestamp: true

Qualquer coisa, estou a disposição <3
OBS: Desde essa época está funcionando normalmente.

1 curtida

@D4n0n3 obrigado por compartilhar.

Consegue deixar o código com a formatação do yaml?

Procurando em mais locais por soluções alternativas, consegui ajustar o tempo de chamada da Integração Growat para 15 minutos usando os passos 1 a 16 conforme este link: https://github.com/muppet3000/homeassistant-growatt_server_api/blob/dev/FAQ.md#how-do-i-increase-the-update-interval-to-be-more-than-every-5-minutes. Desde ontem não tive problemas com o eventual boqueio do meu acesso. Tudo parece estar funcionando perfeitamente.

Lembre-se que antes de seguir esses passos acima, é necesário desabilitar na integração Growatt o auto update do Home Assistant, conforme: https://community.home-assistant.io/t/growatt-integration-roadmap/510221/26

1 curtida

Bom dia, você consegue mandar uma foto do Jumper no GND? Não achei aqui :confused:

esphome:
  name: growatt
  on_boot:
    priority: 600
    then:
      - lambda: |-        
          delay(60000);
  project:
    name: PVPro.ShineWifi-X
    version: "1.0"

esp8266:
  board: esp07s

# Enable logging
logger:
  baud_rate: 0

# Enable Home Assistant API
api:
  encryption:
    key: "J/Z1vRfDFTxDiexNI+82GMEZ9vv/4XQ2vo+pXql625U="

ota:

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Growatt Fallback Hotspot"
    password: "12345678"
  manual_ip: 
    static_ip: 10.18.7.6
    gateway: 10.18.7.1
    subnet: 255.255.255.0  
  
  # Enable Web server
web_server:
  port: 80

captive_portal:

time:
  - platform: homeassistant
    id: homeassistant_time

output:
# Blue Led
  - id: light_bl
    platform: gpio
    pin: 16
# Green Led
  - id: light_gr
    platform: gpio
    pin: 0
# Red Led
  - id: light_rd
    platform: gpio
    pin: 2

uart:
  - id: uart_id1
    baud_rate: 115200
    tx_pin: GPIO1
    rx_pin: GPIO3

modbus:
  uart_id: uart_id1
  flow_control_pin: GPIO4

# For newer inverters use protocol_version "RTU2" like below. Certain older models require "RTU".
sensor:
  - platform: growatt_solar
    update_interval: 5s
    protocol_version: RTU2

    inverter_status:
      name: "Growatt Status Code"
    phase_a:
      voltage:
          name: "Growatt Voltage Phase A"
      current:
          name: "Growatt Current Phase A"
      active_power:
          name: "Growatt Power Phase A"
    phase_b:
      voltage:
          name: "Growatt Voltage Phase B"
      current:
          name: "Growatt Current Phase B"
      active_power:
          name: "Growatt Power Phase B"
    phase_c:
      voltage:
          name: "Growatt Voltage Phase C"
      current:
          name: "Growatt Current Phase C"
      active_power:
          name: "Growatt Power Phase C"
    pv1:
      voltage:
          name: "Growatt PV1 Voltage"
      current:
          name: "Growatt PV1 Current"
      active_power:
          name: "Growatt PV1 Active Power"
    pv2:
      voltage:
          name: "Growatt PV2 Voltage"
      current:
          name: "Growatt PV2 Current"
      active_power:
          name: "Growatt PV2 Active Power"
    active_power:
      name: "Growatt Grid Active Power"
    pv_active_power:
      name: "Growatt PV Active Power"
    frequency:
      name: "Growatt Frequency"
    energy_production_day:
      name: "Growatt Today's Generation"
      accuracy_decimals: 1
    total_energy_production:
      name: "Growatt Total Energy Production"
      accuracy_decimals: 1
    inverter_module_temp:
      name: "Growatt Inverter Module Temp"
  - platform: uptime
    name: "Growatt Uptime"
    update_interval: 60s
  - platform: wifi_signal
    name: "Growatt Wi-Fi Signal"
    update_interval: 60s

text_sensor:
  - platform: wifi_info
    ip_address:
      name: "Growatt IP Address"
    ssid:
      name: "Growatt Wi-Fi SSID"
    bssid:
      name: "Growatt Wi-Fi BSSID"
  - platform: version
    name: "ESPHome Version"
    hide_timestamp: true
1 curtida


Geralmente são os dois últimos, eu nao tenho a foto de quando fiz T.T