Script para dizer a quanto tempo um datapoint Mudou!

Olá, vamos criar um Datapoint meta que vai informar a quanto tempo um datapoint mudou de valor.
Para saber a hora que um datapoint mudou usamos p.time (que retorna um valor em TimeStamp do ScadaBR, vou explicar no final isso, mas vamos usar o timestampBR para calculos…
Primeiro, crie um dataSource Meta e coloque dois datapoints…
um Datapoint que seja atualizado a cada segundo por exemplo, mesmo que não seja útil em outro lugar, é só para o script ser executado a cada segundo.
Coloque o datapoint da variável que deseje monitorar o tempo descorrido, no caso, vou pegar a ultima vez que a umidade ambiente mudou…

atribua a este segundo datapoint o nome p
coloque o código abaixo:

var timeAtual = (Date.now());
var atual=p.value;  
var ms= (timeAtual-p.time); 
  var horas = ms / (1000*60*60); // Pega Horas dos milisegundos
  var HorasAbsolutas = Math.floor(horas);
  var h = HorasAbsolutas > 9 ?HorasAbsolutas : '0' + HorasAbsolutas;

  //pega a sobra de horas e transforma em minutos
  var minutos = (horas - HorasAbsolutas) * 60;
  var MinutosAbsolutos = Math.floor(minutos);
  var m = MinutosAbsolutos > 9 ? MinutosAbsolutos : '0' +  MinutosAbsolutos;

  
  var segundos = (minutos - MinutosAbsolutos) * 60;
  var SegundosAbsolutos = Math.floor(segundos);
  var s = SegundosAbsolutos > 9 ? SegundosAbsolutos : '0' + SegundosAbsolutos;
  return "Valor mudou para "+atual+" ás: "+
    Date(p.time).substring(16,25)+", ou a ("+h + ':' + m + ':' + s+")";

ou pode se usar essa linha abaixo só para mostrar a diferenca de tempo…

return "Mudanca ocorrida a "+h + ':' + m + ':' + s;

Teste e veja toda vez que p mudar de valor, ele vai calcular o novo tempo sempre.

vamos ver o que ocorreu?

veja no watchList:

Lembre-se que é sempre bom consultar a fonte:
https://docs-v3.mango-os.com/about-mango-java-script

2 curtidas