Use power metrics from
- Solar inverter
- EV charger
- Smart power meter
to
- Control EV Charging for optimal power usage
- Monitor live and historical power usage
- Get alerts e.g. high usage
Currently, this project only supports inverters and EV chargers from SMA and a Smart power meter with a P1 port. To control EV charging, only Tesla is currently supported. However, this project is set up so that new device are easily pluggable. Get in touch if you're interested in adding more device implementations.
The most important reason to start this project was the introduction of the "capacity tariff" in Flanders (Belgium), which changed the way electricity consumption was charged. Part of the tariff is now based on how much electricity is used at the same time.
EV charging is obviously a major electrity consumer, but luckily it is also relatively easy to control, which is where this project comes in.
Make sure to configure these settings in .env:
#SMA EVCHARGING_CHARGER_IP=... EVCHARGING_CHARGER_USERNAME=... EVCHARGING_CHARGER_PASSWORD=... EVCHARGING_INVERTER_IP=... EVCHARGING_INVERTER_PASSWORD=... #TESLA EVCHARGING_TESLA_VEHICLE_VIN=... EVCHARGING_TESLA_KEY_NAME=... EVCHARGING_TESLA_TOKEN_NAME=... EVCHARGING_TESLA_CACHE_FILE=... EVCHARGING_TESLA_COMMAND_SDK=... #SLACK EVCHARGING_SLACK_URL=... EVCHARGING_SLACK_CHANNEL=... #HOMEWIZARD EVCHARGING_HWEP1_IP=.... METRICSLOGGER_DATA=...path/to/data... SMA
Find the local IP addresses of your inverter and charger and the username and passwords of their admin web interfaces.
Tesla
This tool communicates with a Tesla vehicle via BLE using the tesla-control SDK from this repository. Using BLE requires you to run this tool on a bluetooth-capable device in range of the vehicle.
Follow these instructions to install the tesla-control tool locally.
Then follow the instructions to configure the Tesla SDK. This involves generating a key pair on the bluetooth device you will be running this tool from, and allowing access to it inside your vehicle (by tapping your keycard when requested).
Make sure to run some commands to make sure everything works as expected. e.g.
./tesla-control -ble -debug wake ./tesla-control -ble -debug honkIf your car honks, it works!
Then make sure to configure the path of the command SDK in .env as EVCHARGING_TESLA_COMMAND_SDK, together with the other env variables the Tesla SDK requires: EVCHARGING_TESLA_VEHICLE_VIN, EVCHARGING_TESLA_KEY_NAME and EVCHARGING_TESLA_TOKEN_NAME.
HomeWizard
Check this page on how to find the local IP address.
Slack
This is optional. When configured, this slack webhook will be used to send useful notifications.
Build and run:
./mvnw quarkus:runOr package and run with Java:
./mvnw package java -jar target/quarkus-app/quarkus-run.jarOnce running, you can visit:
- Live dashboard: http://localhost:8080
- Historical data: http://localhost:8080/details.html
- Config: http://localhost:8080/config
