Hello. I know this is an old thread but I have a Chargepoint HomeFlex Level 2 and I would like to add it to Home Assistant to log charging stats. How do I locate this integration and set it up?
I know it’s long after, but you can create a helper that does the math and exposes the value
Mathy math:
- capacity = what is the battery capacity of your vehicle in kWh
- chargelimit = what is the charge limit of your vehicle in percent
- chargestate = current state of charge in percent
- chargerate = the rate of charge in kW
then you just math it to figure out how many kWh are left to add, and then divide that by the chargerate
Since updating to version 2025.7.4 of home assistant my system can no longer login to the chargeport site via the integration. The integration could have stopped working before the HA update, but I didn’t notice it until after I did the HA update. Once I noticed it didn’t login I first just tried to enter the credentials again. After that failed, I removed the device and re-installed the integration via HAC to see if this help, but no go. Anyone have any thoughts on how to get the authentication working again? I posted the same note on the integration Github but figured I’d post here incase someone already figured out how to deal with this. Below are the log record from the homeassistant.log file:
2025-07-30 07:52:11.132 INFO (MainThread) [custom_components.chargepoint.config_flow] Attempting to authenticate with chargepoint
2025-07-30 07:52:12.057 ERROR (SyncWorker_1) [chargepoint] Failed to get account information! status_code=403 err=<title>chargepoint.com</title><style>#cmsg{animation: A 1.5s;}[@Keyframes](https://github.com/Keyframes) A{0%{opacity:0;}99%{opacity:0;}100%{opacity:1;}}</style>
Please enable JS and disable any ad blocker
<script data-cfasync="false">var dd={'rt':'c','cid':'AHrlqAAAAAMAPXwjej1WosEAR_TvpA==','hsh':'C2675704EFE363D0C7EFE7F17F5FCD','t':'fe','r':'b','qp':'','s':40137,'e':'1929e9b21c6c2cc259ded4e0a25c8a9a324f81156ed309ea44927b6dd86d09b9','host':'geo.captcha-delivery.com','cookie':'wpYg<del>HN3CQkG3wVmmBWZDwi</del>sS7sw1L3k~bv_RoPWo4OlQG9H85hMyJEkHTJ81fIuBI5TEDPy8IqZbNwFG1w071uUD3SjZcO7gtvR953V2h68VDcEOPFrUuO4q4Lz2NN'}</script><script data-cfasync="false" src="https://ct.captcha-delivery.com/c.js"></script>
2025-07-30 07:52:12.059 ERROR (MainThread) [aiohttp.server] Error handling request from 192.168.11.3
Traceback (most recent call last):
File "/config/custom_components/chargepoint/config_flow.py", line 87, in _login
client = await self.hass.async_add_executor_job(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ChargePoint, username, password
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/local/lib/python3.13/site-packages/python_chargepoint/client.py", line 94, in **init**
self.login(username, password)
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/python_chargepoint/client.py", line 151, in login
raise ChargePointLoginError(login, "Failed to authenticate to ChargePoint!")
python_chargepoint.exceptions.ChargePointLoginError: Failed to authenticate to ChargePoint!
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.13/site-packages/requests/models.py", line 976, in json
return complexjson.loads(self.text, **kwargs)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/simplejson/**init**.py", line 514, in loads
return _default_decoder.decode(s)
~~~~~~~~~~~~~~~~~~~~~~~^^^
File "/usr/local/lib/python3.13/site-packages/simplejson/decoder.py", line 386, in decode
obj, end = self.raw_decode(s)
~~~~~~~~~~~~~~~^^^
File "/usr/local/lib/python3.13/site-packages/simplejson/decoder.py", line 416, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.13/site-packages/aiohttp/web_protocol.py", line 510, in _handle_request
resp = await request_handler(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/aiohttp/web_app.py", line 569, in _handle
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/aiohttp/web_middlewares.py", line 117, in impl
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 92, in security_filter_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 83, in forwarded_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 26, in request_context_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 86, in ban_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 242, in auth_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/headers.py", line 41, in headers_middleware
response = await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/http.py", line 73, in handle
result = await handler(request, **request.match_info)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/decorators.py", line 83, in with_admin
return await func(self, request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 227, in post
return await super().post(request, flow_id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 74, in wrapper
return await method(view, request, data, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 121, in post
result = await self._flow_mgr.async_configure(flow_id, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 336, in async_configure
result = await self._async_configure(flow_id, user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 383, in _async_configure
result = await self._async_handle_step(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
flow, cur_step["step_id"], user_input
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 487, in _async_handle_step
result: _FlowResultT = await getattr(flow, method)(user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/chargepoint/config_flow.py", line 126, in async_step_user
session_token, error = await self._login(username, password)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/chargepoint/config_flow.py", line 92, in _login
error_id = exc.response.json().get("errorId")
~~~~~~~~~~~~~~~~~^^
File "/usr/local/lib/python3.13/site-packages/requests/models.py", line 980, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Have the same issue as above with a fresh install of Home Assistant. Wondering if others are seeing it now with existing Integrations to after the upgrade.
I’m on 2025.7.4 and it is still working for me.
I wish I understood more about what I’ve been reading. Can you please tell me if your python wrapper is reading from the Cloud or is reading directly from the charger?
I’m just looking for a charger that will store data locally instead of on the cloud. thanks!