Skip to content
/ powir Public

Powir is a Windows 10 based tool to monitor and analyze your system's power and battery usage.

License

Notifications You must be signed in to change notification settings

SlapBot/powir

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Logo

Powir

Windows 10 based tool to monitor and analyze your system's power and battery usage
Explore the website »

Join Slack · Report Bug · Request Feature · Give Feedback


Table of Contents


About The Project

What is it?

Powir is a Windows 10 based tool to monitor and analyze your system's power and battery usage.

It provides you with various information and statistics about the current and overall history of the power and battery usage of your system.

Installation

There are two ways to install powir:

  • Desktop App (Main Mode): Installation is as quick as simply downloading the executable and running it. The App is completely portable meaning you don't have to go through an installation wizard, and it can be copied from system to system seamlessly without any dependencies or extra files needed. Recommended

    • Terminal: Simply download the binary and run it:
    curl -L https://github.com/SlapBot/powir/releases/download/v1.0.4/powir.1.0.4.exe --output powir.exe
    ./powir
    • Double Click: Again download the binary and run it but please read this note
  • Browser Window (Lite Mode): Installation requires few pre-requisites (node & npm) and firing a command from the command prompt which opens up a tab in your default browser serving file via a local server. Actions (Export PDF, JSON) are missing in the lite mode.

Features

What it does?

  • Provides you with a simple and clean UI to list your battery and system information.
  • Shows you the change in battery capacity since the OS was installed.
  • Analyzes the current and overall estimated battery life of your system.
  • Computes various statistics to give a better understanding of your power usage.
  • Ability to export all the data via various formats: PDF (app), JSON (processed), HTML (original report).
  • 100% free and completely open-source for an absolute transparency.
  • Completely portable app with no installation required, ready to use out of the box.

Why build it?

  • Complete lack of any such power/battery monitoring analyzing tool available in the market.
  • Obscure documentation over how to find battery statuses on the Internet.
  • Required to use terminal in order to run a command showing information about the system.
  • Devoid of any simple and understandable metrics from the underlying API or report.

Actions

  • Export the current report of your system from Powir in PDF format
  • Export the parsed and processed data of your system from Powir in JSON format
  • Shows original report generated by Windows using the command: powercfg /batteryreport in the terminal

Gallery

Battery Information

System Information

Power And Battery Usage

Installation Methods

Desktop App (Main Mode)

  • Simply go to Releases and pick the latest version to download.
  • Download Current Latest Version (Powir v1): Github or GDrive: Please take a note below before downloading the app

Browser And Windows Defender Warnings

Note: Since the application isn't code signed yet (because all of the certificates require annual fee payment regardless of whether you're non-profit or open-source). Please refer to the issue: #1, Both (Browser & Windows Defender will raise warnings suggesting that app is not protected).

This doesn't mean that application is inherently unsafe in fact entire source code is open, and you can build your own distribution following Build section but its due to the paperwork and money involved in getting the certificates to sign the applications which can cost as much as $699 a year or more.

If you are someone who has an experience around self signing certificates with Windows based builds which result in bypassing these warnings, kindly reply in the given thread #1 :)

Solution

For now the solution is to simply ignore the warnings as shown below and always download the application from this repository only:


Browser Window (Lite Mode)

Open up the terminal (for non-developers: that is Command Prompt [cmd.exe]) and follow these instructions:

Only one time setup

Commands (copy-paste):

git clone https://github.com/SlapBot/powir.git
cd powir
npm install --production

Explanation:

  • Ensure you have git, node and npm installed using commands: git --version, node -v and npm -v respectively, else install it from here: Git and NodeJS (installer contains both node and npm)
  • Clone the repository using: git clone https://github.com/SlapBot/powir.git and cd into the folder: cd powir
  • Run npm install --production to install dependencies

Anytime

Command (copy-paste)

npm run lite-mode

Explanation:

  • Now simply run npm run lite-mode whenever you want from the directory, and it will open up the dashboard allowing you to monitor and analyze power states.

FAQs

Is it completely free?

Yes, Powir is 100% free to download and use.

Are the numbers displayed 100% correct?

Depends, Powir parses the raw reports generated from Windows and does the computations of the various statistics and render the charts.

What tooling is used to build the app?

Powir runs as an electron app (chromium web engine embedded) while using React to facilitate the UI and data workflow.

Does it share my data anywhere?

No, Powir will never share your data anywhere outside your local system, the entire source code of the app is online for anyone to check. In fact, it never makes any request to a server since there is none. Its simply a client sided app.


Developer

If you're looking to build it from the source or inspect the app, its extremely simply and you only have to follow few instructions as listed below:

Prerequisites

  • Git
  • Node
  • NPM

Setup

  • Clone the repository: git clone https://github.com/SlapBot/powir.git
  • Cd into the directory: cd powir and run: npm install

Build

  • Run npm run build which will package the app at dist/ folder.

Usage

Electron App

  • Run these two commands in two separate sessions when you are developing in order to use HMR (hot module reloading):
    • Run react server: npm run react-start
    • Run electron app: npm run electron-start
  • All of the server code is located at: public/server directory.
  • Entrypoint of the electron app is atpublic/electron.js.
  • Everything related to rendering is done at: src directory.
  • Any of the changes you make at src directory will reflect instantly in the app.
  • Any of the changes made for server requires the app to be restarted using: npm run electron-start

Browser Window App

  • Run npm run lite-mode which opens up a tab in your default browser again with HMR enabled.
  • Entrypoint of the browser window app is atpublic/browser.js.
  • Everything related to rendering is done at: src directory.
  • Any of the changes you make at src directory will reflect instantly in the app.
  • Any of the changes made for server requires the app to be restarted using: npm run lite-mode

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Feel free to join our slack chat group to get more help: Slack

License

Distributed under the GPU General Public License. See LICENSE for more information.

Contact

Hey there! I'm Ujjwal who goes around with the name Slapbot in open source communities, You'd often find me blabbering my completely biased opinions in /r/soccer or busy building new things.

I'm most accessible via Twitter and tend to update about whatever I'm working there, so feel free to follow or send a dm there. :)

Acknowledgement

Many thanks to these amazing frameworks/libraries/tools/arts without which none of this had been possible! <3

Major Libraries

Minor Libraries

Icons