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-consumption energy-monitor energy-monitoring hacktoberfest hacs home-assistant home-assistant-hacs homeassistant iot metering power smart-home sustainability virtual-sensors

Keywords from Contributors

hue-lights varta-storage varta climate hacs-integration sensor thermostat tuya weather lovelace

Last synced: about 20 hours ago
JSON representation

Repository metadata

Home Assistant Custom component to calculate estimated power consumption of lights and other appliances

README.md

Version
Downloads
Contributors
hacs_badge
hacs installs
Coverage Status

⚑ Turn any device into an energy monitor, no smart plug required

PowerCalc brings energy monitoring to devices that normally don’t support it.

  • Lights, fans, media devices, and more
  • No extra hardware needed
  • Works seamlessly inside Home Assistant

Instead of measuring power directly, PowerCalc accurately estimates consumption using smart models based on real measurements.


See it in action

Preview


Why use PowerCalc?

  • πŸ’° Save money - no need to buy smart plugs for every device
  • πŸ” Full visibility - track energy usage across your entire home
  • ⚑ Accurate estimates - based on real device measurements
  • πŸ”Œ Works out of the box - huge built-in profile library
  • 🧠 Advanced modeling - brightness, color, fan speed, and more

How it works

PowerCalc creates virtual power sensors in Home Assistant.

For example:

  • πŸ’‘ Lights β†’ power based on brightness, color, temperature
  • πŸŒ€ Fans β†’ power based on speed
  • πŸ“Ί Other devices β†’ configurable strategies or measured profiles

You get realistic energy data β€” without physically measuring every device.


Get started


🌍 Community & contributions

PowerCalc is powered by a growing community:

  • Contribute new device profiles
  • Share measurements
  • Improve accuracy for everyone

⭐ Support the project

If PowerCalc helped you:


πŸ™Œ Powered by

JetBrains logo.


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 6 days ago

Total Commits: 5,987
Total Committers: 338
Avg Commits per committer: 17.713
Development Distribution Score (DDS): 0.393

Commits in past year: 1,602
Committers in past year: 86
Avg Commits per committer in past year: 18.628
Development Distribution Score (DDS) in past year: 0.428

Name Email Commits
Bram b****n@e****l 3633
pre-commit-ci[bot] 6****] 373
renovate[bot] 2****] 351
GitHub Actions 4****] 340
CV d****t 90
@RubenKelevra c****d@g****m 74
Crowdin Bot s****t@c****m 48
Michal Bartak m****l@g****m 31
Jarod2801 J****1 26
Thorsten1982 T****N@g****m 25
Alexandre Bertrand a****d@i****o 25
Jort 6****l 20
Linus Nordin l****n@g****m 19
Stefan Gries 1****s 18
Daniel O'Connor d****r@g****m 18
Dr-Seltsam 4****m 18
Marius 3****b 16
dewbot6 d****s@c****t 15
CM000n s****e@g****m 14
nepozs 5****s 14
Brian Egge b****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
Jonas Dambacher j****r@b****e 10
Tim 7****l 9
and 308 more...

Committer domains:


Issue and Pull Request metadata

Last synced: 6 days ago

Total issues: 385
Total pull requests: 2,157
Average time to close issues: 14 days
Average time to close pull requests: 3 days
Total issue authors: 231
Total pull request authors: 188
Average comments per issue: 4.73
Average comments per pull request: 1.32
Merged pull request: 1,857
Bot issues: 7
Bot pull requests: 755

Past year issues: 54
Past year pull requests: 251
Past year average time to close issues: 9 days
Past year average time to close pull requests: 4 days
Past year issue authors: 42
Past year pull request authors: 37
Past year average comments per issue: 3.44
Past year average comments per pull request: 0.96
Past year merged pull request: 161
Past year bot issues: 0
Past year bot pull requests: 108

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/bramstroker/homeassistant-powercalc

Top Issue Authors

  • bramstroker (35)
  • michalk-k (21)
  • RubenKelevra (16)
  • Mariusthvdb (16)
  • dagobert (10)
  • erkr (10)
  • bcjmk (6)
  • Stephan-4711 (4)
  • Largelos (4)
  • KlaraJa (4)
  • puetsch (3)
  • TheSerapher (3)
  • AlexKusnezov (3)
  • Gloomyeye (3)
  • github-actions[bot] (3)

Top Pull Request Authors

  • bramstroker (642)
  • renovate[bot] (507)
  • github-actions[bot] (142)
  • pre-commit-ci[bot] (106)
  • RubenKelevra (61)
  • dagobert (60)
  • michalk-k (23)
  • dewbot6 (16)
  • stuartp44 (15)
  • brianegge (11)
  • CloCkWeRX (11)
  • Dr-Seltsam (11)
  • Mariusthvdb (11)
  • dxmnkd316 (11)
  • barndawgie (11)

Top Issue Labels

  • bug (233)
  • enhancement (108)
  • Stale (54)
  • group (32)
  • config-flow (31)
  • model-library (25)
  • question (15)
  • autodiscovery (13)
  • measure-tool (9)
  • energy-sensor (8)
  • lut strategy (8)
  • fixed strategy (5)
  • powerprofile (4)
  • documentation (3)
  • multi_switch strategy (3)
  • translations (3)
  • utility-meter (3)
  • linear strategy (2)
  • daily-fixed (2)
  • wled strategy (2)
  • subprofile (2)
  • dependencies (1)
  • profile-website (1)
  • ha-deprecation (1)
  • composite strategy (1)
  • workflows (1)

Top Pull Request Labels

  • powerprofile (516)
  • dependencies (505)
  • bug (340)
  • enhancement (256)
  • lightmodel (146)
  • measure-tool (87)
  • documentation (58)
  • Stale (16)
  • config-flow (9)
  • translations (7)
  • model-library (6)
  • utility-meter (6)
  • release (5)
  • multi_switch strategy (4)
  • autodiscovery (4)
  • group (3)
  • light-model (2)
  • daily-fixed (2)
  • github-action (2)
  • playbook (2)
  • skip-changelog (2)
  • generic-model-id (2)
  • subprofile (2)
  • linear strategy (1)

Package metadata

nixpkgs-unstable: home-assistant-custom-components.powercalc

Custom Home Assistant component for virtual power sensors

proxy.golang.org: github.com/bramstroker/homeassistant-powercalc


Dependencies

.github/workflows/hacs-validate.yml actions
  • actions/checkout v2 composite
  • hacs/action main composite
  • home-assistant/actions/hassfest master composite
.github/workflows/publish-measure-image.yml actions
  • 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
.github/workflows/release-drafter.yml actions
  • actions/checkout v2 composite
  • release-drafter/release-drafter v5 composite
.github/workflows/release.yml actions
  • actions/checkout v2 composite
  • home-assistant/actions/helpers/version master composite
  • svenstaro/upload-release-action v1-release composite
.github/workflows/test.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v1 composite
  • coverallsapp/github-action master composite
.github/workflows/validate-lut-files.yml actions
  • actions/checkout v2 composite
.github/workflows/validate-model-json.yml actions
  • actions/checkout v2 composite
  • bramstroker/json-schema-validator master composite
utils/measure/Dockerfile docker
  • python 3.10-slim-buster build
.github/scripts/lut_validator/package-lock.json npm
  • @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
.github/scripts/lut_validator/package.json npm
  • chalk ^5.0.1
  • csval ^1.1.1
  • node-gzip ^1.1.2
  • readdirp ^3.6.0
.github/workflows/lint.yml actions
  • 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
.github/workflows/stale.yml actions
  • actions/stale v8 composite
pyproject.toml pypi
  • homeassistant *
  • python ^3.11
utils/measure/pyproject.toml pypi
.github/scripts/profile_library/requirements.txt pypi
  • aiofiles ==25.1.0
  • gitpython ==3.1.45
  • pytablewriter ==1.2.1
uv.lock pypi
  • 177 dependencies
.github/workflows/labeler.yml actions
  • actions/labeler v6 composite
utils/visualize/pyproject.toml pypi
  • 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/generate-plots.yml actions
  • ./.github/workflows/uv-composite-action * composite
  • EndBug/add-and-commit v9 composite
  • actions/checkout v6 composite
.github/workflows/pr-comment-generate-plots.yml actions
  • ./.github/workflows/uv-composite-action * composite
  • actions/checkout v6 composite
  • actions/github-script v8 composite
  • actions/upload-artifact v5 composite
.github/workflows/update-profile-library.yml actions
  • EndBug/add-and-commit v9 composite
  • actions/checkout v6 composite
  • actions/setup-python v6 composite
  • jakejarvis/cloudflare-purge-action master composite
.github/workflows/uv-composite-action/action.yaml actions
  • actions/cache v4 composite
  • actions/setup-python v6 composite
utils/visualize/uv.lock pypi
  • 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
utils/library_downloader/docker-compose.yml docker
  • bramgerritsen/powercalc-download-proxy latest
  • prom/prometheus latest
.github/workflows/crowdin-upload.yml actions
  • actions/checkout v6 composite
  • crowdin/github-action v2 composite
.github/workflows/test-measure.yml actions
  • ./.github/workflows/uv-composite-action * composite
  • actions/checkout v6 composite
.github/workflows/docs.yml actions
  • 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
.github/workflows/crowdin-download.yml actions
  • actions/checkout v6 composite
  • crowdin/github-action v2 composite
utils/library/requirements.txt pypi
  • pytablewriter ==1.2.1
utils/measure/measure/ocr/requirements.txt pypi
  • 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
utils/library_downloader/Dockerfile docker
  • node 20.10.0-alpine3.17 build
utils/measure/uv.lock pypi
  • 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
.github/workflows/pr-comment-upload-and-comment.yml actions
  • actions/download-artifact v6 composite
  • actions/github-script v8 composite
  • devicons/public-upload-to-imgur v2 composite
utils/library_downloader/package-lock.json npm
  • 178 dependencies
utils/library_downloader/package.json npm
  • @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: 13.129577294422525