Ter uma estimativa aproximada do consumo de energia do computador.

2

Estou desenvolvendo um aplicativo que precisa saber sobre o consumo de energia em computadores (no Windows). Eu percebi que o sistema operacional não tem funcionalidades para suportar isso diretamente, então minha solução é coletar informações sobre todos os dispositivos de hardware e agregar a quantidade de energia que consomem, encontrei bancos de dados como eXtreme Power Supply Calculator , mas eles não têm nenhuma API que eu possa usar. Você tem alguma sugestão de como fazer isso? qualquer software de código aberto?

Como meu aplicativo deve funcionar principalmente em laptops, eu estava pensando em fazer uma estimativa aproximada com base no modelo do laptop, mas não consegui encontrar um banco de dados com essas informações, alguma idéia? Obrigado

    
por ePezhman 18.07.2016 / 17:55

3 respostas

3

Esta seria uma tarefa impossível, o consumo de energia pode variar muito dependendo da carga do sistema e das configurações de economia de energia. Por exemplo, na minha estação de trabalho, quando inativo, ele usa ~ 300 watts e ~ 900 watts sob carga, de acordo com o meu SmartUPS da APC. Embora um laptop seja menos extremo ao comparar números absolutos, ele ainda seria significativo entre o tempo ocioso e a carga total.

E como prova de como isso é inútil, eu tentei entrar no meu sistema para o eXtreme Power Supply Calculator que você vinculou em seu modo "Expert". Subestimou a carga em ~ 100 watts. E, surpreendentemente, ele acha que meu pico de carga irá variar dependendo de quantas horas por dia eu uso meu computador.

Consumo de energia ocioso

Consumodeenergiasobcarga(esqueceudecarregarosHDDs)

    
por 21.07.2016 / 19:46
2

Dê uma olhada no Win32_PowerMeter Classe WMI localizada no namespace root\CIMV2\power . Este namespace tem muitas outras classes e eventos relacionados ao gerenciamento de energia e perfis.

Para um exemplo de como usar essa classe, consulte o gadget pwrdrain-gadget de código-fonte aberto ( usa um objeto ActiveX). Para exemplos do VBScript, veja este . Para exemplos em C #, veja este .

    
por 21.07.2016 / 18:45
1

Os laptops geralmente fornecem uma interface ACPI para as baterias que você pode usar. Você estará especificamente interessado no objeto "Status da bateria" descrito no capítulo 10.2.2.6 da especificação da ACPI :

_BST returns a package in the format below

Package { 
 Battery State                    // Integer (DWORD)
 Battery Present Rate             // Integer (DWORD)
 Battery Remaining Capacity       // Integer (DWORD)
 Battery Present Voltage          // Integer (DWORD)
}

Battery Present Rate é tipicamente um valor de energia em mW ou um valor atual em mA (que você terá que multiplicar por Battery Present Voltage para obter o valor de energia). Naturalmente, há muito mais valores de ACPI a serem explorados (incluindo a medição de corrente e tensão da fonte de alimentação), mas esses não podem ser implementados em todos os sistemas. Instale o System Information Viewer e confira Machine->Battery para ter uma ideia. Ou, se você for um usuário do Linux, confira o diretório /sys/class/power_supply .

Você precisará aprender como fazer chamadas de ACPI no Windows a partir de qualquer linguagem de programação e estrutura que estiver usando. Este artigo do MSDN pode ser um bom começo.

    
por 27.07.2016 / 19:08