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!
Somar e apresentar valores do data point
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!
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:
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;