Skip to content

artursulkowski/slxchargingcontroller

Repository files navigation

Salix Charging Controller

SLX Charging Controller is Home Assistant integration and part of Salix Project

SLX Charging Controller controls EVSE (aka. charger) based on car battery state of charge (SOC). It decides when to start and stop charging to:

  • Immediatelly charge your car to avoid battery staying in low SOC
  • Stop charging before battery is fully charged to avoid accelerated degradation.
  • Switch between charging from grid and charging using excess solar production.

For its operation, SLX Charging Controller requires other Home Assistant integrations:

  • Car integration - to check car's battery SOC
  • EVSE integration - to control charging process

For supported integrations configuration process is simplified. However, manual integration using entities is also possible.

Supported car's integrations:

Car integration Brand Comment
kia_uvo Kia( UVO)
Hyundai (Bluelink)
Tested with:
Hyundai Kona
Manual Configuration N/A You can select required entities (e.g. SOC) using manual setup
Planned: BMW Connected Drive BMW (planned)

Supported EVSE integrations:

EVSE integration Brand Comment
OpenEVSE OpenEVSE Tested
Manual Configuration N/A You can select required entities (e.g. SOC) using manual setup

How it works

Exemplary scenario: You are connecting quite discharged car to the charger (e.g. SOC is 8%)

  1. SLXCharging controller - checks SOC
  2. Because SOC it is below SOC Limit Min (20%). Charging starts immediatelly with full power.
  3. Charging continues until SOC reaches 20%.
  4. Then charger is switched to PVCharge mode (charging from excess energy produced).
  5. SLX Charging Controller monitors battery SOC and if it exceeds SOC Limit Max (e.g. 80%), charger is switched to STOPPED mode (no charging active).

How you control it

Integration have few entities used to controll it's operation:

Status Entities

Entity: Charge Method

This entity allows you to control in which mode SLX Charging Controller is working. You can select ECO mode for charging using excess solar energy produced at house (EVSE must support it). You can also switch to FAST mode which will make sure your car is charged immediatelly to required SOC.

Charge Method
value
Description
ECO
default
Keeps SOC between SOC Limit Min and SOC Limit Max
Uses both normal charging (full power available) and PVCharge (charging with excess solar energy)
FAST Runs normal charging until car reaches SOC target
MANUAL Disables automation built in SLX charging Controller. You can then manually set charger mode using Charge mode entity

Enity: Charge mode

In typical scenario value of this entity is changed by SLX Charging Controller. It represents state of EVSE. When Charge Method is set to MANUAL you can directly control Charge mode.

Charge Mode values Description
STOPPED Charging is stopped
PVCHARGE EVSE is charging car using only excess energy produced by Solar
NORMAL CHARGE EVSE is charging car using it's default power setting
UNKNOWN EVSE state was not read or set by SLX Charging Controller (usually after restart)

SOC entities

You can easily modify values of expected SOC in different scenarios

SOC related entities Description
SOC Limit Min
default = 20%
Minimum SOC that system tries to keep
SOC Limit Max
default = 80%
Maximum SOC kept when charging in ECO mode
Can be overwritten by SOC target
SOC target
default = 20%
In Charge Method = FAST charging is run until SOC = SOC target is reached
In Charge Method = ECO you can temporarily increase maximum SOC
If SOC target > SOC Limit Max charging using excess solar will be continued until SOC target is reached

Output entities

Integration also defines few entities informing you about current status of charging:

Status Entities

Status entities Description
Battery Energy Estimation Estimated energy stored in battery
Battery SOC Estimation Estimated battery state of charge. This value is used in making decision about charging.
Request SOC Update Counter of how many times SLX Charging Controller request of SOC update.
Note: Requires fix for replacing % with just decimal number

How to install

  1. Login to Home Assistant console using SSH (You can use Terminal&SSH add-on to open console directly in browser)
  2. Go into customer_components directory
    [core-ssh /$] cd /config/custom_components/
    
  3. Copy repository
    git clone https://github.com/artursulkowski/slxchargingcontroller.git
    
  4. Add integration

How to configure

SLX Charging Controller automatically detects supported car and EVSE integrations.

Config Charger Config Car Config Car Details

Manual setup

SLX Charging controller can work directly on entities provided by EVSE and car intergrations. That allows you to connect with integrations which aren't supported yet.

EVSE Integration:

Input Unit of Measurement Device Class Description
EVSE Session Energy kWh, Wh any amount of energy added during charging session
EVSE any plug Status of charger's plug: On - pluged in, Off - unpluged

Car Integration:

Input Unit of Measurement Device Class Description
Car SOC % any Car's battery SOC
Car SOC Update time
(optional)
any timestamp Time in which Car SOC was read. In an ideal world we could use state.last_updated, but in case of Hyundai-Kia-Connect real update time is stored in separate entity

Known issues

Project is still at early stage of development. I am still discovering small issues at my own setup. I am registering them in issues

Want to contribute?

At the moment my goal is to increase number of supported integrations of both cars and EVSE. I will provide more details on cooperation soon. Follow the project to stay tuned.

Releases

No releases published

Packages

No packages published

Languages