Somar e apresentar valores do data point


#1

Boa tarde, tenho um datapoint multi-estados que apresenta valores de 0 a 4, gostaria de somar quantas vezes em 24hs ele esteve em certo valor (no caso valor =1) e apresentar na representação gráfica, alguma dica? Valeu!


#2

Talvez esta sequência de posts possa te ajudar a ter alguma ideia. Para esse tipo de aplicação é quase certeza que você vai acabar tendo que escrever um pouco de código.


#3

Olá Celso, eu preciso na realidade não do tempo em que o dp esteve em certo estado, mas sim mostrar na tela a quantidade de vezes que esteve nesse estado, estou tentando adaptar algo do que tem nesse post pq tem bastante informação útil, agradeço muito!


#4

Ainda não consegui, se alguém tiver uma luz eu agradeço


#5

Teste isso aqui:

var point_xid = "DP_112233";
var valor_procurado = 1;

var time_now = Date.now();
var time_yesterday = time_now - 86400000; // (Data de hoje) - (dia em milissegundos)


var dpVO = new com.serotonin.mango.db.dao.DataPointDao().getDataPoint(point_xid);
var pvDAO = new com.serotonin.mango.db.dao.PointValueDao();
var values = pvDAO.getPointValues(dpVO.getId(), time_yesterday);

var contador = 0;
for (var i = 0; i < values.size(); i++) {
	var thisValue = eval(String(values.get(i).value));
	if (thisValue == valor_procurado) {
		contador += 1;
	}
}

return contador;

#6

Maravilha Celso, muito obrigado, eu testei aqui colocando esse cod em um datapoint meta e substituindo o “DP_112233” por “DP_339” que seria o datapoint em questão, não deu certo, talvez tenha feito algo errado, onde consigo pegar essa informação do DP?


#7

Boa noite,

O XID (Export ID) é um valor que geralmente pode ser achado nas propriedades do data point quando você cria ou edita um data point novo:

xid


#8

Agora sim, funcionando perfeitamente, muito obrigado Celso!!!


#9

Fala mestre, estou tentando agora resetar e recomeçar a contagem em certos horários do dia, alguma dica?


#10

Bom dia, consegui chegar num script, mas não funciona, mostra sempre 0, alguma dica?

var point_xid = "DP_107588";
var valor_procurado = 1;

var time_now = Date.now();
var time_today_05_00 = new Date(time_now).setHours(5, 0, 0, 0);
var time_today_13_30 = new Date(time_now).setHours(13, 30, 0, 0);
var time_today_22_00 = new Date(time_now).setHours(22, 0, 0, 0);


if ((time_now >= time_today_05_00 && time_now < time_today_13_30) || time_now >= time_today_22_00) {
    time_yesterday = time_now;
}

var dpVO = new com.serotonin.mango.db.dao.DataPointDao().getDataPoint(point_xid);
var pvDAO = new com.serotonin.mango.db.dao.PointValueDao();
var values = pvDAO.getPointValues(dpVO.getId(), time_yesterday);

var contador = 0;
for (var i = 0; i < values.size(); i++) {
    var thisValue = eval(String(values.get(i).value));
    if (thisValue == valor_procurado) {
        contador += 1;
    }
}

return contador;