Conversão de valor lido via SNMP

Eu importo e revendo um monitor de temperatura e umidade com acesso ethernet que informa os valores lidos via SNMP ou ModBus/IP.

Testei e tenho recomendado o uso do ScadaBR a nossos clientes, no entanto tenho uma dificuldade no uso do protocolo SNMP, pois embora o valor lido seja numérico, vem no formato: temperatura*10, ou seja quando recebo o valor 227 na verdade indica que a temperatura é 22,7

No protocolo modbus, há a possibilidade de dividir por 10 para ter os decimais, mas no protocolo SNMP não existe essa função.

Alguem sabe como fazer com que os gráficos e a aquisição dos valores sejam decimais e não inteiro?

Será que há a possibilidade dos programadores de colocar a mesma função existente no modbus?

Desde já agradeço.

Olá,

Atualmente para os protocolos que não tem essa funcionalidade, é necessário criar um Meta Data Source.

Inicialmente você cria a variãvel SNMP normalmente, digamos que ela se chame “temperatura_snmp”
Então volte para os datasources e adicione uma nova fonte do tipo Meta Data Source.
Adicione uma variavel, por exemplo “temperatura_corrigida”. Na opção “contexto do script”, adicione a variável “temperatura_snmp” e coloque um nome simples para ela, por exemplo “temp”
No campo script digite:
return (temp.value / 10);
Aqui vc pode aproveitar para fazer uma eventual correção no sensor se necessário.

Após o cálculo normalmente ocorrer uma questão de arredondamento das casas decimais, que é comum com sistemas informatizados (por exemplo 27,00000000000001 ao invés de 27). A correção é simples e pode ser vista nesse vídeo, a partir de mais ou menos 2:10, onde o usuário entra nos “detalhes do datapoint” e depois aplica uma formatação:
http://www.youtube.com/watch?v=h14Wzt-6k6g

Iremos discutir entre os desenvolvedores se seria possível incluir a mesma opção do modbus para todos os outros protocolos, conforme nossas prioridades atuais.

grande abraço, obrigado por participar :slight_smile: