Evcc Binding [4.0.0;6.0.0)

logo

This binding integrates evcc, an extensible Electric Vehicle Charge Controller and home energy management system.

The binding is compatible to evcc version 0.123.1 or newer and was tested with version 0.205.0.

Please not that in evcc 0.207.0 there is a breaking change in the API, users need to intsall this binding instead of the old one!

TODO

  • Add repeating plans
  • Add Things for aux end ext (I need some real JSON elements for this)
  • Mark obsolete Things in UI

Changelog

Version 0.8 - Release Candidate

  • fix last findings
  • minor code improvements
  • for openHAB 4.3.7 Java 21 is not required anymore

Version 0.7

  • fix review findings
  • overall code improvements

Version 0.6

  • fixing polling interval fixed to 30s
  • add a few more channels
  • fix review findings

Version 0.5

  • fixing minor bugs

Version 0.4

  • added missing channels for loadpoint thing
  • improve how new channels will be reported
  • fix first review findings

Version 0.3

  • extend the log function for unimplemented datapoints
    • now there will be generated a file
  • generated default translations
  • update thing descriptions
  • slightly enhance the logic of parsing state the response

Version 0.2

  • add functionality to log unimplemented datapoints
  • make the binding ready for next evcc version (breaking API change)
  • updated Thing descriptions
  • updated config
  • fix SAT findings

Version 0.1

  • initial release

Resources

evcc-binding-4.3.7

You will find the jar file for openHAB-5.x.x here: Release

Source Code

1 Like

evcc binding is official part of oh addons, have you considered creating a PR ?
4.3.6 is being discussed to get released today.

Yeah, PR is already created.
But I doubt it will make it in the release today.

get me the number, please

[evcc] Rework the binding, add missing datapoints and make it future ready by marcelGoerentz · Pull Request #18946 · openhab/openhab-addons

18946

yeah just found it.
What I don’t fully get is: is this required for the binding to keep working with newer evcc versions?
lsiepel (reviewer) says it is not, not qualifying it for a backport to 4.3

It is necessary for the upcoming evcc version.
Their API response is going to change.

You should be commenting that in the PR then.
Will it be a breaking change for OH, too, or can someone with a working OH/evcc binding config just upgrade?

PS: can you please give a pointer to the API change announcement

You should be commenting that in the PR then.

I’ve put it into the PR, but maybe it is not obvious enough:

Will it be a breaking change for OH, too, or can someone with a working OH/evcc binding config just upgrade?

Just upgrade won’t work. I’ve implemented a bridge thats needed to be set up, maybe someone can write or help me to write an upgrade description since all the relevant data is already in the old binding.

I’ve just read the docu and it seems like it is not possible to give update instructions to change the thing-type :frowning:
So this will be a breaking change for openHAB, too.

Okay, then it is in line with OH proceedings to not backport it.
Breaking changes should only be introduced with major OH releases (5, that is), that’s @lsiepel’s point in the review.

Okay, then it is in line with OH proceedings to not backport it.
Breaking changes should only be introduced with major OH releases (5, that is), that’s @lsiepel’s point in the review.

That’s the reason why he told me to add it in the addon marketplace.
So whoever is updating evcc to 0.206.0 and leave openHAB at 4.3.x needs to download this evcc binding from the market place to integrate evcc to his openHAB instance!

Hi, I tried this version for EVCC 0.207 and it mostly works. I can’t get the “site” thing to work, it gives an error:

2025-08-05 00:50:43.205 [ERROR] [nal.common.AbstractInvocationHandler] - An error occurred while calling method 'ThingHandler.initialize()' on 'org.openhab.binding.evcc.internal.handler.EvccSiteHandler@13d4a2': JsonNull

So it stays in HANDLER_INITIALIZING_ERROR.

I also don’t get a Grid thing (with the overview of the power distribution from the release binding), I do get PV, Battery, Loadpoint and Statistics things to work.

It looks to me that this version is not working correctly working, is this known ?

[OH 4.3.6, evcc binding jar from July 31, 2025 1:58 PM, Huawei EMMA, KEBA P30 X with S10]

I am running OH4.3.6 with linked Binding 4.3.7 without problems.

Sorry for my late reply. But the binding is working perfectly fine with 0.207.1 on my site right now.

Did you run a former version of it?

Maybe you need to update / refresh / reinstall the binding.

Hi both, thanks for the replies. It works for me too when it comes to the server, PV, loadpoint, battery and statistics things. What doesn’t work apparently for me is the site thing, that one stays in error, as I wrote above. This works for you ?

The 2nd issue is that the the EVCC is connected via Modbus to the Huawei EMMA control unit and on the web interface of EVCC I do see the Grid measurements, how much power is imported/exported and use in the house. This was present in the old ECVV 4.3.0 binding from what I see. With the new version this information is gone. Could it be that the EMMA is not identified as a Grid meter with the new version of the binding and therefore there is no object created ?

Many thanks in advance for your help and support in this. Best

Hmm, did you try to reinitialize the Thing?

The site Thing provides the info contained in the root JSON object, so if the other Things are working this one should work too.

Hi, yes, I tried, also deleting the site Thing and rediscovery. The error is always JsonNull as I wrote. I am on the very July 31, 2025 11:58 AM which was the first I installed. My installation of the ECVV is new, so I am building it up right now. Is there anything I could do to debug this and provide you with meaningful information ?

Hi, I am still totally in the dark what is going on. I tried installing Temurin JDK (Java 21) to see if this improves the situation, and reinstalled the binding. Same. The site Thing gives a error:

"

2025-08-10 14:32:39.710 [ERROR] [core.thing.internal.ThingManagerImpl] - Exception occurred while initializing handler of thing ‘evcc:site:71a0ddfadb:site’: JsonNull

java.lang.UnsupportedOperationException: JsonNull

at com.google.gson.JsonElement.getAsString(JsonElement.java:187) \~\[bundleFile:?\]

at org.openhab.binding.evcc.internal.handler.EvccSiteHandler.lambda$0(EvccSiteHandler.java:87) \~\[?:?\]

at java.util.Optional.ifPresent(Optional.java:178) \~\[?:?\]

at org.openhab.binding.evcc.internal.handler.EvccSiteHandler.initialize(EvccSiteHandler.java:77) \~\[?:?\]

at jdk.internal.reflect.GeneratedMethodAccessor98.invoke(Unknown Source) \~\[?:?\]

at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) \~\[?:?\]

at java.lang.reflect.Method.invoke(Method.java:569) \~\[?:?\]

at org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:147) \[bundleFile:?\]

at org.openhab.core.internal.common.Invocation.call(Invocation.java:52) \[bundleFile:?\]

at java.util.concurrent.FutureTask.run(FutureTask.java:264) \[?:?\]

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) \[?:?\]

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) \[?:?\]

at java.lang.Thread.run(Thread.java:840) \[?:?\]

The Grid Thing is not created. I am not sure if both are linked, I started reading the code of the Site Thing, but I need some help in debugging this, many thanks in advance. It seems this needs to work to get Grid measurements.