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: 1348

Responder esta

Respostas a este tópico

Colegas, é muito fácil hackear o protocolo Serial RS232, pois ele é muito lento. 

Primeiramente, não é possível conectar diretamente em um analisador lógico, pois o sinal RS-232 varia entre -10V e +10V. Se conectar diretamente vai queimar as portas do analisador lógico. 

Use um conversor de sinal RS232 para TTL. Mas o detalhe é que vai ter que converter duas portas RS-232, pois essas duas portas serão conectadas nos pinos TXD e RXD da interface RS232. Entenderam? 

Baseando nesse circuito do tutorial da Sparkfun, você deverá montar dois circuitos identicos a esse (somente parte infeiror)   https://www.sparkfun.com/tutorials/215

Na parte inferior, o pino TX-RS232 com a saída no transistor RX-TTL.  A alimentação VCC = 5V (fonte externa). 

Os transistores podem ser qualquer NPN, como BC 548. 

Esse dois circuitos (TX-RS232=>RX-TTL) você vai conectar, um no pino TXD e o outro no pino RXD da sua interface serial RS-232 do Nobreak.  Como o cabo serial do Nobreak deverá estar conectado na porta serial do seu PC, tente um jeito de conectar esses fios em uma extensão ou desmontando o conector do cabo. Atenção o pino GND do circuito conversor deverá ser conectado no pino GND do DB-9. 

Os pinos RX-TTL do circuito acima, conecte-os nas portas do analisador lógico. Muito cuidado ao montar esse circuito. Meça as tensões antes de conectar esse adaptador!! Se montar incorretamente, poderá queimar a interface. 

Qualquer dúvida, me perguntem antes !!! 

Veja a pinagem do conector DB-9 RS232 MACHO. 

Tutorial para usar o analisador lógico (versão 2) 

Download do programa:

https://www.saleae.com/pt/downloads/

Tutoriais: 

https://support.saleae.com/getting-started

https://support.saleae.com/getting-started/record

https://support.saleae.com/getting-started/protocols

O programa funciona com o analisador lógico chinês:

https://lista.mercadolivre.com.br/analisador-logico#D[A:analisador%20logico]

Interessante... Posteriormente vou explorar a ideia, gostei.

Pessoal,

Reavivando o tópico.

Comprei um Ragtech Easy Pro de 1200va.

Também me negaram mais detalhes do protocolo no suporte.

Mas pelos logs que capturei na comunicação do app, consegui chegar em algo que não é perfeito mas atende minhas necessidade, que é de integrar monitorar o nobreak com o Home Assistant que tenho rodando aqui em casa.

Eles se comunicam com 2400bps, 8, N, 1

Enviando o hexa "AA 04 00 80 1E 9E", o nobreak responde com algo assim:
"aa 21 00 00 58 ff ff ff ff 00 e1 c6 73 04 03 37 fb 00 00 03 82 c2 00 a2 30 00 73 06 0a 00 c8"

o byte 9 (em negrito ff), acho que é a bateria.

ff é 100%. 

o quinto byte do final para o começo (73), acho que é a voltagem de entrada.

convertendo de HEX para INT, dá 115. adicionando +5 fica bem próximo da realidade.
quando desconecto para a tomada, ele cai para 06. que estou entendendo que é sem entrada da rede.
uso isso para detectar que está sem rede. 

exemplo, se for menor que 10, assumo que está usando bateria.

por ultimo, esse em negrito (37) é a temperatura.

convertendo de HEX para INT, fica 55 graus. que bate bem com o que comparei.

O nobreak está conectado na USB do PC que roda o Home Assistant (acho que com um Raspberry também deve funcionar).

Tenho o addon do Nodered instalado no Home Assistant.

Criei um fluxo no Nodered que fica a cada 10 segundos requisitando informações, recebendo o retorno e interpretando os bytes que ACHO que informam: Voltagem Externa, Nível da Bateria e Temperatura.

Fluxo completo está em anexo.

Entrando nos nós de funções dá pra copiar e observar as fórmulas que apliquei.

Só importar num nodered (os conectores finais, que mandam dados para sensores do Home Assistant poderiam ser substituídos por mqtt, por exemplo).

Fiz alguns testes comparando os valores com os que aparecem no aplicativo do windows e me parecem bem próximos.

flows.json

se alguém conseguir mais informações sobre o que são esses bytes de retorno, por favor, ajudem.

os que observei ai foram inteiramente obtidos com empirismo. testando e anotando resultados.

mais uma coisa...
se quiserem fazer testes rápidos direto no terminal do linux, consegui do seguinte modo:
abram 2 terminais.

No primeiro, mandem esse comando para ajustar a porta:
stty -F /dev/ttyACM0 2400 cs8 -cstopb -parenb raw -echo

Depois, esse para escutar o que vem da porta e mandar num arquivo:
cat /dev/ttyACM0 > data.dump


No segundo terminal, esse comando manda o pedido de status para o nobreak:
echo -en '\xAA\x04\x00\x80\x1E\x9E' > /dev/ttyACM0

Depois, esse comando mostra o que foi recebido:
xxd data.dump

"O nobreak está conectado na USB do PC que roda o Home Assistant (acho que com um Raspberry também deve funcionar).Tenho o addon do Nodered instalado no Home Assistant."

Minha indicação - use o Wireshark para monitorar toda a comunicação USB entre o PC e o Nobreak. 

Qualquer dúvida me avise! Sou especialista na ferramenta. 

WireShark :

https://www.wireshark.org/

Como monitorar USB com o WireShark:

https://www.youtube.com/results?search_query=wireshark+usb

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço