Deye por Modbus: o que aprendemos ao escrever nossa própria integração
Procurando um mapa de registradores para ler o Deye por conta própria? Percorremos esse caminho ao escrever o Svitgrid e compartilhamos o que não está na documentação, inclusive os endereços dos registradores. E se você precisa de um resultado e não de um projeto, ele está pronto.
O Deye não fala Modbus TCP diretamente
Pelo datalogger: Solarman V5
O datalogger Wi-Fi envolve o Modbus RTU no próprio protocolo Solarman V5 na porta TCP 8899. Toda requisição leva o número de série do datalogger. Um cliente Modbus TCP comum com cabeçalho MBAP não monta esses quadros.
Dataloggers com número de série começando em 26
A nova geração de dataloggers Deye não aceita requisições locais: os dados vão apenas para a nuvem da Deye. Sobra o cabo.
Por cabo: Modbus RTU
RS-485, 9600 8N1, holding registers (função 0x03). O endereço é o campo Modbus SN na tela do inversor, geralmente 01. O endereço 00 é o de broadcast, e o Deye nunca responde nele. Pinagem e armadilhas do cabo.
Armadilhas do mapa de registradores que medimos nós mesmos
A maioria dos mapas do Deye na internet é montada a partir de documentos do fabricante e de projetos da comunidade. Veja o que se mostrou diferente em inversores reais. Os endereços são decimais.
Os mapas trifásico e monofásico são diferentes
No SG04LP3, a potência do PV1 é o registrador 672, a carga da bateria é 588 e a rede é 625. Nos monofásicos SG01LP1, SG02LP1 e SG05LP1 são 186, 184 e 169. As temperaturas também ficam em blocos diferentes, 540/541 e 90/91, e o bloco errado lê zeros ou 65535. A potência da bateria (590 e 190) é positiva na descarga.
Potência em unidades de 10 W
Algumas versões de firmware informam um registrador de potência dez vezes menor enquanto os outros campos estão corretos. No SG02LP1 isso acontece com o consumo 178 e 179, e no SG01HP3 de alta tensão com a potência da bateria 590. Confira com os contadores diários do próprio inversor (em unidades monofásicas: 76 é importação, 84 é consumo, 108 é solar), não com valores instantâneos.
A corrente da rede não existe
Os endereços documentados da corrente da rede (610–612 em trifásicos, 160 em monofásicos) guardam outra coisa em inversores reais: o registrador 160 mostrou cerca de 5,6 A quando a troca com a rede era zero. Calcule a corrente como |P| / U.
O Time of Use não é o que habilita a carga pela rede
A permissão de carga pela rede é o bit 0 do registrador 130 em unidades trifásicas e 232 em unidades monofásicas. A chave geral Time of Use, bit 0 do registrador 146 ou 248, apenas ativa o agendamento das faixas. Nos nossos dados, inversores carregaram pela rede com o Time of Use desligado também, e nenhum carregou com o bit 0 de 130/232 desligado.
Uma faixa sem fim
As seis faixas de Time of Use dividem o dia sem lacunas: o fim da faixa N é o início da faixa N+1 (148–153 em trifásicos, 250–255 em monofásicos). Gravar uma faixa desloca o limite da vizinha, e os horários de início precisam entrar em ordem crescente.
Bits desconhecidos na habilitação da faixa
Nos registradores 172–177 (trifásico) e 274–279 (monofásico), o bit 0 ativa a faixa, e bits mais altos também podem estar definidos, com significado desconhecido. Altere apenas o bit 0 com leitura, modificação e escrita. Nunca escreva 0 ou 1 como palavra inteira.
Antes de escrever em qualquer registrador, leia-o no seu inversor e salve o que havia nele.
O que mais é preciso para transformar registradores em uma estação
| Etapa | O que isso envolve | Tempo aproximado |
|---|---|---|
| Cliente | Solarman V5 ou RTU, novas tentativas, tempos limite e conexões perdidas | dias |
| O mapa do seu modelo | Escalas, sinais, 16 ou 32 bits e uma verificação em um inversor real | dias |
| Gravações | Faixas horárias e modos sem o risco de deixar o inversor em um estado estranho | uma semana |
| Tudo ao redor | Onde isto funciona 24 horas por dia, o armazenamento do histórico, os alertas e o acesso pelo celular | semanas |
| Total | várias semanas |
O tempo é aproximado: até a primeira estação que você pode usar todos os dias.
Suporte
Dúvidas ou um problema com o seu Deye? Escreva para nós.
Escreva para nós no WhatsApp, em português, ou para o grupo do Svitgrid no Telegram. Lemos todas as mensagens e respondemos rápido: no grupo, o bot enxerga a sua estação pelo código de diagnóstico do app, então a conversa começa de dados, não de perguntas para esclarecer.
Valorizamos quem reporta problemas. Um bug confirmado rende pontos, e os pontos pagam a sua assinatura.
Perguntas
O Deye é compatível com Modbus TCP?
Não diretamente. O datalogger Wi-Fi fala Solarman V5 na porta 8899: é Modbus RTU envolvido em um quadro com o número de série do datalogger. Dataloggers com número de série começando em 26 não aceitam nem isso. Por um cabo RS-485, o inversor responde em Modbus RTU comum.
Quais são as configurações Modbus RTU do Deye?
9600 baud, 8 bits de dados, sem paridade, 1 stop bit (8N1). O endereço é o campo Modbus SN na tela do inversor. O Deye nunca responde no endereço 00; use 01 e, em cada inversor seguinte no mesmo barramento, 02, 03.
Como leio a corrente da rede do Deye?
Não dá, porque não está nos registradores: os endereços documentados (610–612 em trifásicos, 160 em monofásicos) guardam outra coisa. Dividimos a potência absoluta da rede pela tensão da rede.
Por que o Deye não carrega a bateria pela rede mesmo com o Time of Use ligado?
Verifique o bit 0 do registrador 130 (trifásico) ou 232 (monofásico): essa é a permissão de carga pela rede. A chave geral Time of Use, registrador 146 ou 248, apenas ativa o agendamento e não permite a carga pela rede por si só.
Onde consigo o mapa de registradores do Deye?
Os endereços principais estão acima. O SG04LP3 trifásico e os modelos monofásicos têm mapas diferentes, e algumas versões de firmware informam a potência em unidades de 10 W, então confira cada endereço no seu próprio inversor.
Leia a seguir
Experimente antes de escrever o seu próprio
Gravar o firmware do Svitgrid no seu próprio ESP32-S3 é grátis. Se o Svitgrid não servir para você, você perde uma noite, não um mês.
