Skip to main content

Estimate Energy Consumption

Project description

PyPI hacs_badge

Publish Code Quality

EstimEnergy

EstimEnergy is tool for monitoring and estimating energy usage and cost. It consists of a FastAPI backend that collects data from a device, an Angular frontend for configuration and a HACS enabled custom integration for Home Assistant that exposes the data via a sensor entity.

Installation

Create the following directories:

/path/to/appdata/estimenergy/config
/path/to/appdata/estimenergy/postgresql
/path/to/appdata/estimenergy/influxdb
/path/to/appdata/estimenergy/prometheus

Create a configuration file named config.yml in the config directory.

db:
  url: "postgresql://estimenergy:<db-password>@estimenergy-postgresql:5432/estimenergy?sslmode=disable"

influxdb:
  url: http://estimenergy-influxdb:8086
  org: estimenergy
  token: <influx-token>
  bucket: estimenergy

Now you can deploy the application stack using the example docker-compose configuration. Add mounting paths according to where you created the corresponding directories.

Using InfluxDB and Prometheus is optional. If you don't want to use InfluxDB, you need to remove the configuration from the config.yml file.

Postgres is also optional and can be replaced with any other SQL database including SQLite. If you want to use SQLite, you need to change to database URL in the config file to sqlite:////config/estimenergy.db. Using an external database is recommended, since the Grafana dashboard needs to access the database directly.

# docker-compose

services:
  estimenergy:
    # ...
    volumes:
      - /path/to/appdata/estimenergy/config:/config

  estimenergy-postgresql:
    # ...
    volumes:
      - /path/to/appdata/estimenergy/postgresql:/var/lib/postgresql/data

  estimenergy-influxdb:
    # ...
    volumes:
      - /path/to/appdata/estimenergy/influxdb:/var/lib/influxdb2

  estimenergy-prometheus:
    # ...
    volumes:
      - /path/to/appdata/estimenergy/prometheus:/prometheus

Now you should have EstimEnergy running on port 12321, a prometheus collector running at port 9090, InfluxDB at port 8086 and PostgreSQL at port 5432.

Prometheus will scrape the metrics exposed by EstimEnergy every 15 seconds and keep the data for five years or until 1TB of space is used. This can be configured using the --storage.tsdb.retention.time and --storage.tsdb.retention.size command options in the docker-compose file.

You should now be able to access the web UI at port 12321. You will have to create one or more devices and configure them using your energy contract data.

Home Assistant Integration

Install the repository in HACS via the custom repository option. After restarting Home Assistant you can add and configure the integration in the integrations UI. You need to provide the hostname or IP of the EstimEnergy docker container and the port on which it is running on.

This will create sensor entities for each collector and each metric that is being collected. You can use the Total Energy and Total Cost entities as data sources for the Home Assistant Energy Dashboard.

Specification

config.yml

option type description
db dict Database configuration
db.url str Database URL
influxdb dict InfluxDB configuration
influxdb.url str InfluxDB URL
influxdb.org str InfluxDB organization
influxdb.token str InfluxDB token

device

option type description
name str User defined name for the collector
host str The hostname or IP of the collector
port int The port of the collector
password str The password of the collector configured in ESPHome
cost_per_kwh float Money spent per kilowatt hour used
base_cost_per_month float Usage independent cost per month
payment_per_month float Money prepaid per month
billing_month int Month in which the billing period begins
min_accuracy float Minimum accuracy required to avoid estimating the month or day

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

estimenergy-2.1.2.tar.gz (18.8 kB view details)

Uploaded Source

Built Distribution

estimenergy-2.1.2-py3-none-any.whl (28.2 kB view details)

Uploaded Python 3

File details

Details for the file estimenergy-2.1.2.tar.gz.

File metadata

  • Download URL: estimenergy-2.1.2.tar.gz
  • Upload date:
  • Size: 18.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for estimenergy-2.1.2.tar.gz
Algorithm Hash digest
SHA256 fc59ddcfa53753b8fa116c24794ff3606ac4a74318c86db7480cb4f06fa9235a
MD5 792947a5e3ba04cb3c5c70bae40b99d0
BLAKE2b-256 2cb48170aab04e9d5176a64de57e925384d7f088ef70dc9f31d9a3e34d181b75

See more details on using hashes here.

File details

Details for the file estimenergy-2.1.2-py3-none-any.whl.

File metadata

  • Download URL: estimenergy-2.1.2-py3-none-any.whl
  • Upload date:
  • Size: 28.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for estimenergy-2.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0df662bab15ceb96e92c71eaa75f2f639892cb3f9970c672dc5b91e9de17eefb
MD5 b4d3d3a114efc624b2272983cb08e5d7
BLAKE2b-256 acd3a5990ea3b45afe0a86cd0736ce67955c38592e753fd7ff2aa0c8112d96fe

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page