Parabéns pelo projeto e quero agradecer a todos desenvolvedores que fizeram parte deste projeto.
Tenho o Backup UPS BZ1500PBI-BR e na interface grafica do software da APC aparece algumas informações que no "apcaccess" não aparece.
Eu não conheço nada de C, mas tentei adicionar alguns recursos (fuçando)
Adicionei as linhas abaixo, no arquivo "brazildriver.c"
bool BrazilUpsDriver::get_capabilities() { Dmsg(50, "get_capabilities()\n"); write_lock(_ups); . . . _ups->UPS_Cap[CI_LoadApparent] = TRUE; _ups->UPS_Cap[CI_OutputCurrent] = TRUE; _ups->UPS_Cap[CI_NomApparent] = TRUE; . . .
Consegui adicionar os valores de OUTCURNT, porem os valores de NOMAPNT e LOADAPNT ficam zerados, acredito que não está processando essas informações.
Essas informações aparecem no software da APC.
Apparent Power
Real Power
Power Factor
Seria possivel adicionar esse recuros?
Um outro ponto:
Acredito que seja um BUG.. mas a carga da Bateria fica ocilando nos valores de 50% e 100%.
O meu Nobreak tem uma semana de uso e no software da APC não acontece isso, então acredito se seja algum problema de codigo.
Agradeço pelo tempo dedicado ao projeto.
Excelente observações Levi!
A sua observação final quanto a carga da bateria é válida. Esse comportamento é proposital, mas é questionável. Quando o nobreak informa ao apcctrl que a bateria está sendo carregada, o apcctrl informa que a carga da bateria é de 50%. Isso foi feito assim porque não temos a informação quanto a carga real da bateria quando o nobreak está conectado a rede elétrica, já que o nobreak só informa a tensão da bateria em carregamento ou flutuação. Mas ler a tensão da bateria quando ela está sendo carregada é na verdade igual a ler a tensão do carregador de bateria e não da bateria propriamente, portanto, estipulei que a carga da bateria devia ser admitida como sendo de apenas 50%, afinal, seria melhor ter o computador desligando corretamente antes da hora do que dar uma estimativa de tempo de carga maior do que realmente é. Já quando a bateria está em modo de flutuação (que é a maior parte do tempo) ele informa que a carga da bateria é de 100%. Nesse modo a bateria de chumbo-ácido é constantemente carregada para compensar o descarregamento natural. Portanto, nos dois modos, carregamento e flutuação, nós só tempos acesso a tensão da bateria, que é na verdade a tensão do carregador da bateria.
Acredito que durante a operação do seu nobreak ele está oscilando entre o carregamento e a flutuação, por isso os valores de carga da bateria estão oscilando. Isso tem causado algum problema?
Quanto a implementação, você está no caminho certo. Só faltou alterar as funções read_static_data e read_volatile_data para atualizar essas informações. Vou implementar isso aqui e testar.
Não está causando nenhum problema, eu utilizo o software home-assistant na minha estrutura de IOT aqui e casa e e vi o grafico ocilando, então isso se dá quando esta carregando. Existe algum status quando a bateria está carregando?
Eu recebo alerta quando a bateria esta abaixo de um threshold então vou ignorar o numero 50% e assim consigo resolver o problema.
A informação do consumo é importante porque quero monitorar a eficiencia do consumo (power factor) e quantidade de WATTS somando quantidade de KWh está sendo utilizado por mês pelos equipamentos conectado a este NOBREAK.
O ideal para mim "sendo egoista :-)" , seria ter um item que mostrasse a quantidade de WATTS dos ultimos 5 minutos, sendo assim poderia coletar essa informação a cada 5 minutos e somar para obter a quantidade de watts utilizadas no dia ou no mês. Para evitar ficar lendo o apcaccess a cada 1 segundo.
Agradeço a atenção.
Se eu puder contribuir com alguma ajuda só dizer.
Eu não utilizaria o nobreak como um equipamento de medição. As informações que o nobreak envia não tem esse nível de precisão. O nobreak informa os valores da tensão de saída, corrente de saída e da potência real. Ocorre com alguma frequência da potência aparente (medida em VA, multiplicando os valores de tensão de saída e corrente de saída) ser menor que a potência real (medida em Watts). Isso não é matematicamente possível. Então, esses valores que o nobreak informa são bem imprecisos.
Mas caso você queira fazer isso, a melhor forma é alterar o arquivo apcctrl/src/reports.c na linha 158. Nesse ponto ele escreve no arquivo /var/log/syslog. Você pode incluir outros parâmetros e depois fazer um parser do syslog.
A formatação dos dados que são escritos é baseado na função printf da lib stdio. Dá uma olhada no link http://www.cplusplus.com/reference/cstdio/printf/
No código do apcctrl ele compara se o valor da potência real está maior que a potência aparente. Se isso ocorrer, ele ajusta o valor da potência real igual a potência aparente. Por isso você não verá esse comportamento errático nos dados no apcaccess.
Valeu pela dica.
Já monitoro a energia utilizando o "energy monitor", em relação ao nobreak eu não preciso de precisão, mas noção de quanto aproximadamente ele esta consumindo.. eu coloquei um alicate amperimetro na tomada e estou verificando se os valores chegam proximos se for aceitavel vou utilizar os dados do nobreak, mas se forem muito diferentes eu descarto eles.
Legal. Depois me envia o resultado? Valeu!
Levi, já publiquei a nova release (0.8.15) com suas sugestões.
abraço,
Wagner
Obrigado,
Abcs
Perfeito.
Opa blz
Seria possivel adicionar 2 recursos.
1. Watts/Hora.. que seria ROUND (( NOMPOWER / LOADPCT ) * 100)).
2. BCHARGE poderia usar o valor de BATTV para fazer o calculo conforme abaixo.
https://imgur.com/a/0g7bqb9
No caso de 24v apenas multiplicar.
Last edit: Levi Pereira 2019-04-24
Levi, implementei o cálculo automátivo de potência de saída. Por enquanto, só testei no Debian. Mas a versão para Windows já está disponível.
Já em relação ao cálculo da bateria, isso é muito mais complexo que a imagem que você enviou. Se tiver interesse, dê uma olhada no arquivo brazilbattery.c
Outra característica que influencia muito o cálculo é a precisão do conversor analógico digital embutido no nobreak. As medidas são discretas, variando de alguns mili Volts. Por exemplo, o nobreak informa que a bateria está com 11,8V. O próximo valor, inferior, é de 11,7Volts. Se o valor estiver variando nesse limiar, o cálculo de autonomia terá uma variação de alguns minutos.
A mesma obsservação se aplica com as outras variáveis.
Sem contar que o nobreak informa que a potência aparente (medida em VA) é, muitas vezes, menor que a potência real (medida emWatts). Isso demonstra que o equipamento não tem nenhuma qualidade técnica quanto a confiabilidade dos dados informados.
Att,
Wagner
Obrigado vou verificar