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 |
Metadata
Release files for estimenergy 2.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| estimenergy-2.1.2.tar.gz | 18.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| estimenergy-2.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 47.0 kB
Release files / estimenergy-2.1.2.tar.gz
| Download URL | estimenergy-2.1.2.tar.gz |
|---|---|
| Size | 18.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fc59ddcfa53753b8fa116c24794ff3606ac4a74318c86db7480cb4f06fa9235a
|
|
BLAKE2b-256 checksum How to use checksums |
2cb48170aab04e9d5176a64de57e925384d7f088ef70dc9f31d9a3e34d181b75
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.11
|
Release files / estimenergy-2.1.2-py3-none-any.whl
| Download URL | estimenergy-2.1.2-py3-none-any.whl |
|---|---|
| Size | 28.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0df662bab15ceb96e92c71eaa75f2f639892cb3f9970c672dc5b91e9de17eefb
|
|
BLAKE2b-256 checksum How to use checksums |
acd3a5990ea3b45afe0a86cd0736ce67955c38592e753fd7ff2aa0c8112d96fe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.11
|