PowerCalc
Custom component for Home Assistant to estimate the power consumption (as virtual meters) of lights, fans, smart speakers and other devices, which don't have a built-in power meter.
https://github.com/bramstroker/homeassistant-powercalc
Category: Energy Systems
Sub Category: Building Energy Monitoring
Keywords
consumption energy-monitor hacktoberfest hacs home-assistant homeassistant metering power virtual-sensors
Keywords from Contributors
hue-lights varta varta-storage hacs-integration climate sensor thermostat tuya homeassistant-integration lovelace
Last synced: about 22 hours ago
JSON representation
Repository metadata
Custom component to calculate estimated power consumption of lights and other appliances
- Host: GitHub
- URL: https://github.com/bramstroker/homeassistant-powercalc
- Owner: bramstroker
- License: mit
- Created: 2021-06-04T13:10:11.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2025-12-27T18:38:11.000Z (12 days ago)
- Last Synced: 2025-12-28T09:14:10.930Z (12 days ago)
- Topics: consumption, energy-monitor, hacktoberfest, hacs, home-assistant, homeassistant, metering, power, virtual-sensors
- Language: Python
- Homepage:
- Size: 60.3 MB
- Stars: 1,327
- Watchers: 11
- Forks: 345
- Open Issues: 16
- Releases: 405
-
Metadata Files:
- Readme: README.md
- License: LICENSE
README.md
PowerCalc is a versatile custom component for Home Assistant that estimates power consumption for devices like lights, fans, smart speakers, and more—especially those without built-in power meters.
It acts as a virtual energy monitor, using advanced strategies to calculate power usage. For light entities, PowerCalc analyzes factors such as brightness, hue, saturation, and color temperature to deliver accurate consumption estimates. For other devices, it offers extensive configuration possibilities.
Additionally, PowerCalc includes a powerful measurement utility, enabling users to assess their devices' power usage and contribute custom power profiles to the growing PowerCalc library.

Go to the Quick Start for installation instruction.
Powered by
Owner metadata
- Name: Bram Gerritsen
- Login: bramstroker
- Email:
- Kind: user
- Description: Passionate web developer. Like to work on Home automation projects in my spare time.
- Website: https://www.emico.nl
- Location: Rhenen, The Netherlands
- Twitter:
- Company: Emico
- Icon url: https://avatars.githubusercontent.com/u/2345875?u=3bc54d845208b407819688f74e356d9a50d4a38b&v=4
- Repositories: 84
- Last ynced at: 2024-06-11T15:56:48.851Z
- Profile URL: https://github.com/bramstroker
GitHub Events
Total
- Fork event: 69
- Create event: 272
- Commit comment event: 1
- Issues event: 313
- Release event: 45
- Watch event: 237
- Delete event: 266
- Member event: 1
- Issue comment event: 1765
- Push event: 2633
- Pull request review event: 250
- Pull request review comment event: 228
- Pull request event: 1106
Last Year
- Fork event: 69
- Create event: 272
- Commit comment event: 1
- Issues event: 315
- Release event: 45
- Watch event: 237
- Delete event: 266
- Member event: 1
- Issue comment event: 1768
- Push event: 2633
- Pull request review event: 250
- Pull request review comment event: 228
- Pull request event: 1106
Committers metadata
Last synced: 8 days ago
Total Commits: 5,348
Total Committers: 305
Avg Commits per committer: 17.534
Development Distribution Score (DDS): 0.394
Commits in past year: 1,802
Committers in past year: 77
Avg Commits per committer in past year: 23.403
Development Distribution Score (DDS) in past year: 0.488
| Name | Commits | |
|---|---|---|
| Bram | b****n@e****l | 3243 |
| pre-commit-ci[bot] | 6****] | 348 |
| GitHub Actions | 4****] | 331 |
| renovate[bot] | 2****] | 298 |
| CV | d****t | 90 |
| @RubenKelevra | c****d@g****m | 74 |
| Crowdin Bot | s****t@c****m | 43 |
| Thorsten1982 | T****N@g****m | 23 |
| Michal Bartak | m****l@g****m | 22 |
| Jort | 6****l | 20 |
| Alexandre Bertrand | a****d@i****o | 18 |
| Dr-Seltsam | 4****m | 18 |
| Stefan Gries | 1****s | 18 |
| Daniel O'Connor | d****r@g****m | 18 |
| Marius | 3****b | 16 |
| dewbot6 | d****s@c****t | 15 |
| nepozs | 5****s | 14 |
| CM000n | s****e@g****m | 14 |
| Josh Barnard | b****e | 12 |
| alvinchen1 | 2****1 | 12 |
| ltloopy | 5****y | 12 |
| LtKowalski | 2****i | 10 |
| Marcus Voß | 4****6 | 10 |
| Miguel | m****2 | 10 |
| misa1515 | 6****5 | 10 |
| naamah75 | w****r@n****t | 9 |
| Sergio | s****o@m****m | 9 |
| Justin Hahn | h****7@g****m | 8 |
| Linus | l****n@g****m | 8 |
| Chris Hallgren | c****n@g****m | 8 |
| and 275 more... | ||
Committer domains:
- me.com: 2
- gmx.net: 2
- bcpearce.com: 1
- uosiu.info: 1
- codechimp.org: 1
- kabelmail.de: 1
- zapto.de: 1
- ausborn.de: 1
- vandalon.nl: 1
- posteo.de: 1
- mark.atwood.name: 1
- iki.fi: 1
- roscarraig.com: 1
- vanwerkhoven.org: 1
- aiven.io: 1
- dfki.de: 1
- frenck.dev: 1
- cafun.nl: 1
- planet.nl: 1
- bnck.me: 1
- emico.nl: 1
- crowdin.com: 1
- invirtus.io: 1
- comcast.net: 1
- naamah.it: 1
- monesi.com: 1
- napych.com: 1
- wouterrutgers.nl: 1
- trab.dk: 1
- tom-frenzel.de: 1
- saadeh.dev: 1
- projectcataclysma.com: 1
- knudsvik.com: 1
- ifood.com.br: 1
- leap.ac: 1
- whi.tw: 1
- gradussen.com: 1
- telenet.be: 1
- macbookpro.localdomain: 1
- bernards.nl: 1
- jla3.com: 1
- chrisbreuer.de: 1
- techtree.co.uk: 1
- fisch3r.net: 1
- koeln.de: 1
- kleinhans.info: 1
- ytterdal.net: 1
- snuzzle.me: 1
- coding4coffee.ch: 1
- neon1.net: 1
- skarum.net: 1
- cihar.com: 1
- henabytes.com: 1
- microsoft.com: 1
- nice.net.nz: 1
- currency-one.com: 1
- jhbruhn.de: 1
- alberg.dk: 1
- fastlikehell.com: 1
- pm.me: 1
- takacs.net: 1
- pwnagepeter.net: 1
- nohn.net: 1
- utwente.nl: 1
- next.gen.nz: 1
- long.id.au: 1
- tigrou.nl: 1
- sam-dunne.com: 1
- illinoisalumni.org: 1
- piio.info: 1
- swiggers.net: 1
- kastarinen.net: 1
- mbks.mbks: 1
- stormshaker.com: 1
Issue and Pull Request metadata
Last synced: 19 days ago
Total issues: 374
Total pull requests: 2,107
Average time to close issues: 14 days
Average time to close pull requests: 2 days
Total issue authors: 221
Total pull request authors: 176
Average comments per issue: 4.73
Average comments per pull request: 1.31
Merged pull request: 1,832
Bot issues: 7
Bot pull requests: 741
Past year issues: 144
Past year pull requests: 825
Past year average time to close issues: 11 days
Past year average time to close pull requests: 2 days
Past year issue authors: 86
Past year pull request authors: 60
Past year average comments per issue: 4.15
Past year average comments per pull request: 0.84
Past year merged pull request: 698
Past year bot issues: 1
Past year bot pull requests: 328
Top Issue Authors
- bramstroker (35)
- michalk-k (21)
- Mariusthvdb (16)
- RubenKelevra (16)
- dagobert (10)
- erkr (10)
- bcjmk (6)
- KlaraJa (4)
- Largelos (4)
- Stephan-4711 (4)
- github-actions[bot] (3)
- Gloomyeye (3)
- puetsch (3)
- wigster (3)
- TheSerapher (3)
Top Pull Request Authors
- bramstroker (639)
- renovate[bot] (494)
- github-actions[bot] (142)
- pre-commit-ci[bot] (105)
- RubenKelevra (61)
- dagobert (60)
- michalk-k (23)
- dewbot6 (16)
- stuartp44 (15)
- barndawgie (11)
- Mariusthvdb (11)
- Dr-Seltsam (11)
- CloCkWeRX (11)
- dxmnkd316 (11)
- Morpheus361 (10)
Top Issue Labels
- bug (225)
- enhancement (105)
- Stale (54)
- group (32)
- config-flow (29)
- model-library (25)
- question (15)
- autodiscovery (13)
- measure-tool (9)
- energy-sensor (8)
- lut strategy (7)
- fixed strategy (5)
- powerprofile (4)
- translations (3)
- multi_switch strategy (3)
- documentation (3)
- utility-meter (3)
- linear strategy (2)
- wled strategy (2)
- subprofile (2)
- daily-fixed (2)
- ha-deprecation (1)
- profile-website (1)
- composite strategy (1)
- dependencies (1)
- workflows (1)
Top Pull Request Labels
- dependencies (492)
- powerprofile (484)
- bug (338)
- enhancement (253)
- lightmodel (146)
- measure-tool (81)
- documentation (58)
- Stale (15)
- config-flow (9)
- translations (7)
- model-library (6)
- utility-meter (6)
- release (5)
- autodiscovery (4)
- multi_switch strategy (4)
- group (3)
- daily-fixed (2)
- light-model (2)
- github-action (2)
- generic-model-id (2)
- skip-changelog (2)
- playbook (2)
- subprofile (2)
- linear strategy (1)
Package metadata
- Total packages: 1
- Total downloads: unknown
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 410
proxy.golang.org: github.com/bramstroker/homeassistant-powercalc
- Homepage:
- Documentation: https://pkg.go.dev/github.com/bramstroker/homeassistant-powercalc#section-documentation
- Licenses: mit
- Latest release: v1.20.0 (published 13 days ago)
- Last Synced: 2025-12-30T15:10:50.743Z (10 days ago)
- Versions: 410
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 5.401%
- Average: 5.583%
- Dependent repos count: 5.764%
Dependencies
- actions/checkout v2 composite
- hacs/action main composite
- home-assistant/actions/hassfest master composite
- actions/checkout v2 composite
- docker/build-push-action v2 composite
- docker/login-action v1 composite
- docker/metadata-action v3 composite
- docker/setup-buildx-action v1 composite
- docker/setup-qemu-action v1 composite
- home-assistant/actions/helpers/version master composite
- actions/checkout v2 composite
- release-drafter/release-drafter v5 composite
- actions/checkout v2 composite
- home-assistant/actions/helpers/version master composite
- svenstaro/upload-release-action v1-release composite
- actions/checkout v2 composite
- actions/setup-python v1 composite
- coverallsapp/github-action master composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- bramstroker/json-schema-validator master composite
- python 3.10-slim-buster build
- @hapi/hoek 6.2.4
- @hapi/hoek 8.5.1
- @hapi/joi 14.5.0
- @hapi/marker 1.0.0
- @hapi/topo 3.1.6
- chalk 5.0.1
- commander 3.0.2
- csval 1.1.1
- enjoi 6.0.2
- isemail 3.2.0
- node-gzip 1.1.2
- papaparse 5.3.1
- picomatch 2.3.0
- punycode 2.1.1
- readdirp 3.6.0
- chalk ^5.0.1
- csval ^1.1.1
- node-gzip ^1.1.2
- readdirp ^3.6.0
- actions/cache v2 composite
- actions/cache v3 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- chartboost/ruff-action v1 composite
- snok/install-poetry v1 composite
- actions/stale v8 composite
- homeassistant *
- python ^3.11
- aiofiles ==25.1.0
- gitpython ==3.1.45
- pytablewriter ==1.2.1
- 177 dependencies
- actions/labeler v6 composite
- colour-science ==0.4.6
- contourpy >=1.0
- cycler >=0.11
- fonttools >=4.38
- imageio >=2.25
- kiwisolver >=1.4
- matplotlib >=3.6
- numpy *
- packaging >=22.0
- pandas >=2.2
- pillow >=11.0
- plotly >=6.0.0
- pyparsing >=3.0
- python-dateutil >=2.8
- pytz ==2025.2
- scipy >=1.12
- seaborn >=0.13.2
- six >=1.16
- typing-extensions >=4.5
- ./.github/workflows/uv-composite-action * composite
- EndBug/add-and-commit v9 composite
- actions/checkout v6 composite
- ./.github/workflows/uv-composite-action * composite
- actions/checkout v6 composite
- actions/github-script v8 composite
- actions/upload-artifact v5 composite
- EndBug/add-and-commit v9 composite
- actions/checkout v6 composite
- actions/setup-python v6 composite
- jakejarvis/cloudflare-purge-action master composite
- actions/cache v4 composite
- actions/setup-python v6 composite
- cfgv 3.4.0
- colour-science 0.4.6
- contourpy 1.3.2
- cycler 0.12.1
- distlib 0.4.0
- filelock 3.19.1
- fonttools 4.59.0
- identify 2.6.14
- imageio 2.37.0
- kiwisolver 1.4.8
- matplotlib 3.10.3
- mypy 1.18.2
- mypy-extensions 1.1.0
- narwhals 1.48.0
- nodeenv 1.9.1
- numpy 2.3.1
- packaging 25.0
- pandas 2.3.1
- pathspec 0.12.1
- pillow 11.3.0
- platformdirs 4.4.0
- plotly 6.2.0
- powercalc-visualize 0.1.0
- pre-commit 4.3.0
- pyparsing 3.2.3
- python-dateutil 2.9.0.post0
- pytz 2025.2
- pyyaml 6.0.2
- ruff 0.12.12
- scipy 1.16.0
- seaborn 0.13.2
- six 1.17.0
- typing-extensions 4.14.1
- tzdata 2025.2
- virtualenv 20.34.0
- bramgerritsen/powercalc-download-proxy latest
- prom/prometheus latest
- actions/checkout v6 composite
- crowdin/github-action v2 composite
- ./.github/workflows/uv-composite-action * composite
- actions/checkout v6 composite
- actions/checkout v6 composite
- actions/configure-pages v5 composite
- actions/deploy-pages v4 composite
- actions/setup-python v6 composite
- actions/upload-pages-artifact v4 composite
- actions/checkout v6 composite
- crowdin/github-action v2 composite
- pytablewriter ==1.2.1
- Pillow ==12.0.0
- numpy ==2.3.5
- opencv-python ==4.12.0.88
- packaging ==25.0
- pyparsing ==3.2.5
- pytesseract ==0.3.13
- node 20.10.0-alpine3.17 build
- aiohappyeyeballs 2.6.1
- aiohttp 3.12.14
- aiohttp-client-cache 0.13.0
- aiosignal 1.4.0
- annotated-types 0.7.0
- ansicon 1.89.0
- anyio 4.9.0
- appdirs 1.4.4
- asyncclick 8.1.8
- attrs 25.3.0
- blessed 1.21.0
- cattrs 25.1.1
- certifi 2025.7.14
- cffi 1.17.1
- chardet 5.2.0
- charset-normalizer 3.4.2
- colorama 0.4.6
- coverage 7.9.2
- cryptography 45.0.5
- editor 1.6.6
- frozenlist 1.7.0
- homeassistant-api 5.0.0
- idna 3.10
- iniconfig 2.1.0
- inquirer 3.4.0
- itsdangerous 2.2.0
- jinxed 1.3.0
- mashumaro 3.16
- measure 0.1.0
- multidict 6.6.3
- numpy 2.3.1
- opencv-python 4.11.0.86
- packaging 25.0
- phue 1.2
- pillow 11.3.0
- pluggy 1.6.0
- propcache 0.3.2
- pycparser 2.22
- pycryptodome 3.23.0
- pydantic 2.8.2
- pydantic-core 2.20.1
- pygments 2.19.2
- pytesseract 0.3.13
- pytest 8.4.1
- pytest-cov 6.2.1
- python-decouple 3.8
- python-kasa 0.10.2
- readchar 4.2.1
- requests 2.32.4
- requests-cache 0.9.8
- ruff 0.12.4
- runs 1.2.2
- simplejson 3.20.1
- sniffio 1.3.1
- tinytuya 1.17.2
- tuyapower 0.2.0
- typing-extensions 4.14.1
- tzdata 2025.2
- url-normalize 2.2.1
- urllib3 2.5.0
- wcwidth 0.2.13
- websockets 14.2
- xmod 1.8.1
- yarl 1.20.1
- actions/download-artifact v6 composite
- actions/github-script v8 composite
- devicons/public-upload-to-imgur v2 composite
- 178 dependencies
- @types/apicache ^1.6.6 development
- @types/cors ^2.8.17 development
- @types/express ^5.0.0 development
- @types/node ^22.0.0 development
- nodemon ^3.1.0 development
- ts-node ^10.9.2 development
- typescript ^5.4.3 development
- @octokit/rest ^22.0.0
- apicache ^1.6.3
- cors ^2.8.5
- dotenv ^17.0.0
- express ^5.0.0
- express-prom-bundle ^8.0.0
- pino ^10.0.0
- pino-pretty ^13.0.0
- prom-client ^15.1.1
Score: -Infinity
