Somar e apresentar valores do data point

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!

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.

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!

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

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;

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?

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

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

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

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;