An unofficial Python library for controlling your Vattenfall InCharge charging stations 🔌
Because manually walking to your EV charger is so 2024 🚗💨
Welcome to this unofficial, half-baked but working (on my machine) Python package for controlling your Vattenfall InCharge charging stations. In essence, this is a Python wrapper around the Vattenfall InCharge web application.
It is born out of the frustration of not being able to control my charging station via Home Assistant, so I set out to develop a Python package with which you at least have some control over your station.
Right now, it has these features:
- Automatic-Login: Automates the login process in a not so neat but working way
- Remote Start: Start charging your EV without leaving your computer
- Remote Stop: Stop charging your EV without leaving your computer either
- Remote Unlock: Automatically unlock your EV charging cable
- Set light intensity: Useless but hey why not
- Reset: Reset your charging station
pip install py-inchargeOr from source:
git clone https://github.com/Swopper050/py-incharge.git
cd py-incharge
pip install -e .import logging
from py_incharge import InChargesend_remote_start
# Optional, to see the logging and what's going on
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s - %(levelname)s - %(message)s",
datefmt="%Y-%m-%d %H:%M:%S",
)
client = InCharge(email="your@email.com", password="your_password")
client.login() # Required for other calls to work
# Charge your car like it's 2025
client.start_transaction(station_name="EVB-12345678", rfid="123456abcdef")
# Other commands
client.unlock_connector(station_name="EVB-12345678")
client.stop_transaction(station_name="EVB-12345678", transaction_id=1)
client.set_light_intensity(station_name="EVB-12345678", "90")
client.trigger_status_notification(station_name="EVB-12345678")
client.reset(mode="Soft") # Careful with this one
# Logout to finish the session
client.logout()In order to work with this library you need 4 things:
- Your email. I really hope you know this one.
- Your password. Same.
These are your credentials you use to login at the Vattenvall InCharge portal:
-
The name of your charging station, something like
EVB-P1234567. After logging in to the portal you can find that here:
-
The RFID of your charging card. The RFID is something like
12345AB12345C67(not the same as your card number, which is something like for exampleNL-NUO-A01234567-A). You can your RFID here:
With these 4 variables (email, password, station name and RFID), you can use the package!
-
Login: Mimics the login flow to obtain a 'bearer token', used to authenticate further requests.
-
Send Commands: Now you can send commands like
start_transaction(...)orunlock_connector(...). For every call roughly the following steps are executed:- A new ticket ID is requested.
- Via a websocket connection this ticket is validated.
- The command with specific parameters (
station_name,connector_id,transaction_id, etc.) is send to the websocket. - The reponse status is validated.
-
Profit: Your car starts (or stops, or something else) charging! 🎉
- Chrome Required: This package uses Chrome for authentication
- Credentials: Keep your credentials safe and never commit them to version control
- Rate Limits: Don't spam the API (be nice to the servers), especially take time between commands!
- Testing: Always test in a safe environment first
Found a bug? Want to add a feature? PRs are welcome! Just make sure to:
- Write clean, documented code
- Follow the existing code style
- Add tests (not really, but when you're at it, feel free to test my code too ;) )
- Update this README if needed
MIT License - feel free to use this for your own EV charging projects
Disclaimer: This is an unofficial tool and is not affiliated with Vattenfall. Use at your own risk and always follow local regulations regarding EV charging.

