Skip to main content

Turning smartplugs on/off depending on current electricity consumption

Project description

smartplug-energy-controller

A microservice to turn a smartplug on/off depending on current electricity consumption. The intention of this service is to use all energy you produced, e.g with a balcony power plant, by e.g. loading a portable battery. This can be achieved by plug in your battery into a smartplug. The smartplug is turned on/off dynamically, depending on your current electricity consumption.

The service provides the post method add_watt_consumption with the value to be provided as a raw data string.

Installation

The python package can be installed from PyPi (https://pypi.org/project/smartplug-energy-controller/)

  1. Navigate to the folder where the virtual environment shall be created (e.g. your home dir):
cd ~
  1. Create virtual environment (this will create a new folder smart_meter_py_env):
python3 -m venv smart_meter_py_env
  1. Activate the virtual environment
source smart_meter_py_env/bin/activate
  1. Upgrade pip and setuptools
python3 -m pip install --upgrade pip setuptools
  1. Install smartplug-energy-controller
pip install smartplug-energy-controller
  1. Provide environment variables (e.g. in your ~/.profile).
CONFIG_PATH=full/path/to/config.yml

Configuration

Everything is configured in the respective .yml file. See https://github.com/die-bauerei/smartplug-energy-controller/blob/main/tests/data/config.example.yml

Autostart after reboot and on failure

Create a systemd service by opening the file /etc/systemd/system/smartplug_energy_controller.service and copy paste the following contents. Replace User/Group/ExecStart accordingly.

[Unit]
Description=smartplug_energy_controller
Documentation=https://github.com/die-bauerei/smartplug-energy-controller
After=network-online.target

[Service]
Type=simple
User=ubuntu
Group=ubuntu
UMask=002
Restart=on-failure
RestartSec=5s
Environment="CONFIG_PATH=full/path/to/config.yml"
ExecStart=/usr/bin/bash -lc "source /home/ubuntu/smart_meter_py_env/bin/activate && uvicorn --host 0.0.0.0 --port 8000 smartplug_energy_controller.app:app > /dev/null"

[Install]
WantedBy=multi-user.target

Now execute the following commands to enable autostart:

sudo systemctl --system daemon-reload
sudo systemctl enable smartplug_energy_controller.service

It is now possible to start, stop, restart and check the status of smartplug-energy-controller with:

sudo systemctl start smartplug_energy_controller.service
sudo systemctl stop smartplug_energy_controller.service
sudo systemctl restart smartplug_energy_controller.service
sudo systemctl status smartplug_energy_controller.service

Usage in conjunction with openHAB

To use this service you need to get the consumption values from your smart-meter. There are of course lots of different ways to achieve this. A possible setup could include:

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

smartplug_energy_controller-0.0.9.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file smartplug_energy_controller-0.0.9.tar.gz.

File metadata

File hashes

Hashes for smartplug_energy_controller-0.0.9.tar.gz
Algorithm Hash digest
SHA256 12735dece5ab678706405968f2a2085cc4dafe3984967974e71c2c0ad48fdb56
MD5 d467ad794ec7b23ad3ebce83951e56a6
BLAKE2b-256 9603465b5da08b95e748fe3df463e8a57ca9301648ff942699d5a13b458a5ad2

See more details on using hashes here.

Provenance

File details

Details for the file smartplug_energy_controller-0.0.9-py3-none-any.whl.

File metadata

File hashes

Hashes for smartplug_energy_controller-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 6ff9a87e99bdc6a136bdc20fd470ae2c88d7f0a1e7a85ebacf71634ebd314841
MD5 38fc2ab971623d9bb1d9ab4512ebb6a1
BLAKE2b-256 3a78dc4543ffeb99824d026e943fccebd54f596f1d5ac0232cfd810a0099a819

See more details on using hashes here.

Provenance

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