Boa noite pessoal, tenho um nobreak Ragtech Easy Pro 2000 com saída USB e Serial.

Estou querendo utilizar um ESP (8266 ou 32) para conectar ao nobreak e coletar informações sobre ele (tensão, carga da bateria, potência,...) e transmitir via MQTT para ser consumido em um projeto maior.

Alguém já fez algo parecido e/ou poderia me dar uma luz?

Exibições: 1339

Responder esta

Respostas a este tópico

Bom dia,

Você vai precisar das especificações da porta serial. E do protocolo de comunicação. 

Envie para a gente o manual do produto. 

Normalmente, a porta serial é RS232, 9600 Bps, 8, N, 1 

Não conecte diretamente no ESP32, antes de descobrir as especificações. 

Agradeço pelas orientações.

Olá.

   Como o José Gustavo Abreu Murta já disse, eletricamente vc precisa converter de RS232, que é coisa como +12V e -12V para 0 e 3.3V (respectivamente).

   O melhor jeito seria com uma plaquinha assim:

Pesquisa ML

   Mas é preciso que ela tenha a saída em 3.3V mesmo, a maioria é para 5V.

   Isso eletricamente, ainda tem a questão da velocidade (que pode estar no manual) e o protocolo, que pode ser um mais  universal, algo inventado por eles mas super simples, em texto, ou algo binário travadão (feito de forma propositalmente difícil de entender para evitar cópia ou uso do sw deles com outros produtos).

   Digo que a maioria usa algo binário travadão.

   

   O protocolo serial algo como:

https://www.upspowercom.com/Download/UPS-Protocol.pdf

https://networkupstools.org/protocols/microdowell/MicroDowell_UPS_s...

    Esses 2 o google devolveu quando procurei por "UPS RS232 Protocol", mas a busca incluindo o nome do fabricante do seu não resultou nada. Nada consigo afirmar.

   Num trabalho de engenharia reversa bem feito vc poderia escutar o protocolo dele conversando com o software e decodificar. Pode ser coisa bem simples, não tenho ideia mesmo, mas se por ex for 

   Também poderia entrar em contato com o fabricante e perguntar, vai que ele abre para vc...

A engenharia reversa tem se mostrado meio inútil (considerando meu conhecimento de comunicação serial que beira o inútil também LoL). Até achei um software que "escuta" como se fosse um sniffer a comunicação serial, mas o que foi registrado é um tanto quando incompreensivel.

O fabricante se recusou prontamente a me ajudar rsrs

Olá Felipe.

Com anda com essa engenharia?

Efetuei aqui algo semelhante com um Nobreak da Ragtech modelo Senium.

Consegui entender algo do protocolo serial que já atingiu o que eu preciso (Saber se estamos com energia e a garga de bateria). Quero gerenciar o desligamento dos servidores. Mas se puder aprender mais do protocolo serial legal, bem como compartilhar..

Abraços.

Olá Felipe,

Tem como ver essas capturas com a janela em EXADECIMAL? Clicando no HEX ali em baixo? 

Já decifrei bastante do protocolo. Com umas informações de outro modelo, como o teu, poderia ajudar.

Grato.

Gustavo, você pode compartilhar o que já descobriu do protocolo ?

Olá Ivan.

Não conclui o estudo totalmente. Notei pelas capturas do Felipe que muda conforme o modelo.

O que consegui é que numa porta serial a 2400 bps 8n1 você envia uma mensagem de 6 bytes e o nobreak executa uma ação e responde ou retorna alguns valores.

Por exemplo ((demonstrado aqui em hexa):

 - envie: FF Fe 00 85 01 83 e o nobreak retorna algo como C2 (alguma informação relativo a faimilia)

No caso do meu, família 2.

A partir disso o formato das mensagens precisa ser adequada a família:

 

- Primeiro byte => Modelo do NB

 - Segundo byte => tipo de mensagem (01: escreve, 02: op AND, 03: op OR, 04: leitura)

- Terceiro e quarto bytes => endereço de memória do NB

- Quinto byte => Valor

- Sexto byte Checksum.

Com isso se monta a mensagem.

Preciso melhorar minhas anotações para criar um artigo e me fazer entender corretamente..

:)

Obrigado Gustavo,

Aqui o meu fica o tempo todo mandando dados (então não consegui confirmar qual a velocidade certa), tentei verificar se tinha um chksum simples dos bytes (como você indicou em blocos de 6 bytes) mas não teve nenhum bate.

O meu é um EasyWay 1800 Tri com porta USB.

Vou tentar depois com mais calma identificar os blocos e ver se bate com esse formato que você indicou.

Ele funciona no software Supervise?

Tenta com um software de monitoramento de porta, como o Advanced Serial Port Monitor. Ele vai mostrar a velocidade correta da porta e te mostra a conversa do Nobreak com o Supervise. A partir daí consegues os dados pra analizar.

Ivan boa tarde, 

Seu Nobreak é EasyWay - USB. 

Qual programa e sistema operacional vocês usa para controlar o equipamento? 

https://ragtech.com.br/downloads/

Gustavo e José Gustavo,

já utilizei um supervise para testar no Windows e falou com o nobreak (mas não tinha naquela maquina ambiente para dump e salvar os dados). 

Mas não tenho mais a disponibilidade da maquina com windows, e no Linux nunca consegui fazer funcionar o supervise, e colocar uma VM para isso somente também é um trabalho que não quero ter. Só queria pegar os valores , mas a ragtech tem esse protocolo proprietário e não cria um driver simples para o nut que resolveria o problema de muita gente..

Como tenho outras coisas mais importantes vou olhando quando tenho algum tempo, quando encontrei esse tópico e o Gustavo falou que tinha decodificado uma parte achei que dava para partir desse ponto. Mas como ele indicou parece que eles tem diversas versões de protocolo.

Pelo que percebi conectando na USB ele fica sempre enviando algum tipo de status, se identificar o que vem nesses bytes eu mesmo converto para o que precisar. Mas o tempo para ficar fazendo a engenharia reversa não tenho nesse momento.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço