E3DC Binding (beta)

Thanks for the Help, the binding ist running now.
Is there a way to manually stop discharging the battery? I didn´t see a channel that refers to “entladesperre” like in the e3dc web portal.

Can the plugin be installed in parallel to the E3DC modbus plugin? I’ve installed both and both are shown as active in karaf console but I can not create a thing based on this pluging.
Thanks a lot for your work, great that it is going on.

I´m on OpenHAB 4.0.4.
Installed the binding via WebUI, latest JAR/KAR in addons folder. No success. Here´s the output of org.openhab.binding.e3dc-4.1.0-SNAPSHOT.jar

Any idea?

grafik

Kar-version produces

2023-11-24 15:20:47.522 [WARN ] [internal.service.FeaturesServiceImpl] - Can't load features repository mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/4.1.0-SNAPSHOT/xml/features
java.lang.RuntimeException: Error resolving artifact org.openhab.core.features.karaf:org.openhab.core.features.karaf.openhab-core:xml:features:4.1.0-SNAPSHOT: [Could not find artifact org.openhab.core.features.karaf:org.openhab.core.features.karaf.openhab-core:xml:features:4.1.0-SNAPSHOT in openhab (https://openhab.jfrog.io/openhab/libs-release/)] : mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/4.1.0-SNAPSHOT/xml/features

After cleaning cache/tmp, the thing appears, but looks like this:

Also took this version org.openhab.binding.e3dc-4.1.0-SNAPSHOT.jar

Result

2023-11-24 15:05:22.940 [WARN ] [re.xml.osgi.XmlDocumentBundleTracker] - The XML document '/OH-INF/thing/channel-types.xml' in module 'org.openhab.binding.e3dc' could not be parsed: 
---- Debugging information ----
cause-exception     : com.thoughtworks.xstream.io.StreamException
cause-message       : 
class               : java.util.ArrayList
required-type       : java.util.ArrayList
converter-type      : com.thoughtworks.xstream.converters.collections.CollectionConverter
path                : /thing-descriptions
line number         : 221
class[1]            : org.openhab.core.thing.xml.internal.ThingDescriptionList
required-type[1]    : org.openhab.core.thing.xml.internal.ThingDescriptionList
converter-type[1]   : org.openhab.core.thing.xml.internal.ThingDescriptionConverter
version             : 1.4.20
-------------------------------
com.thoughtworks.xstream.converters.ConversionException: 
---- Debugging information ----
cause-exception     : com.thoughtworks.xstream.io.StreamException
cause-message       : 
class               : java.util.ArrayList
required-type       : java.util.ArrayList
converter-type      : com.thoughtworks.xstream.converters.collections.CollectionConverter
path                : /thing-descriptions
line number         : 221
class[1]            : org.openhab.core.thing.xml.internal.ThingDescriptionList
required-type[1]    : org.openhab.core.thing.xml.internal.ThingDescriptionList
converter-type[1]   : org.openhab.core.thing.xml.internal.ThingDescriptionConverter
version             : 1.4.20
-------------------------------
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:81) ~[?:?]
	at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[?:?]
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:68) ~[?:?]
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:52) ~[?:?]
	at org.openhab.core.thing.xml.internal.ThingDescriptionConverter.unmarshal(ThingDescriptionConverter.java:56) ~[?:?]
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:74) ~[?:?]
	at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[?:?]
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:68) ~[?:?]
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:52) ~[?:?]
	at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:136) ~[?:?]
	at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32) ~[?:?]
	at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1464) ~[?:?]
	at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1441) ~[?:?]
	at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1389) ~[?:?]
	at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1341) ~[?:?]
	at org.openhab.core.config.core.xml.util.XmlDocumentReader.readFromXML(XmlDocumentReader.java:105) ~[?:?]
	at org.openhab.core.config.core.xml.osgi.XmlDocumentBundleTracker.parseDocuments(XmlDocumentBundleTracker.java:396) ~[?:?]
	at org.openhab.core.config.core.xml.osgi.XmlDocumentBundleTracker.processBundle(XmlDocumentBundleTracker.java:382) ~[?:?]
	at org.openhab.core.config.core.xml.osgi.XmlDocumentBundleTracker$2.run(XmlDocumentBundleTracker.java:347) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]
	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:833) ~[?:?]
Caused by: com.thoughtworks.xstream.io.StreamException: 
	at com.thoughtworks.xstream.io.xml.StaxReader.pullNextEvent(StaxReader.java:74) ~[?:?]
	at com.thoughtworks.xstream.io.xml.AbstractPullReader.readRealEvent(AbstractPullReader.java:148) ~[?:?]
	at com.thoughtworks.xstream.io.xml.AbstractPullReader.readEvent(AbstractPullReader.java:135) ~[?:?]
	at com.thoughtworks.xstream.io.xml.AbstractPullReader.hasMoreChildren(AbstractPullReader.java:87) ~[?:?]
	at com.thoughtworks.xstream.io.ReaderWrapper.hasMoreChildren(ReaderWrapper.java:32) ~[?:?]
	at com.thoughtworks.xstream.io.ReaderWrapper.hasMoreChildren(ReaderWrapper.java:32) ~[?:?]
	at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:90) ~[?:?]
	at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:86) ~[?:?]
	at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:81) ~[?:?]
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:74) ~[?:?]
	... 24 more
Caused by: com.ctc.wstx.exc.WstxIOException: /openhab/userdata/cache/org.eclipse.osgi/305/1/bundleFile
	at com.ctc.wstx.sr.StreamScanner.constructFromIOE(StreamScanner.java:653) ~[?:?]
	at com.ctc.wstx.sr.StreamScanner.loadMoreFromCurrent(StreamScanner.java:1073) ~[?:?]
	at com.ctc.wstx.sr.StreamScanner.loadMoreFromCurrent(StreamScanner.java:1080) ~[?:?]
	at com.ctc.wstx.sr.StreamScanner.getNextCharFromCurrent(StreamScanner.java:819) ~[?:?]
	at com.ctc.wstx.sr.BasicStreamReader.handleNsAttrs(BasicStreamReader.java:3120) ~[?:?]
	at com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:3048) ~[?:?]
	at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2926) ~[?:?]
	at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1122) ~[?:?]
	at com.thoughtworks.xstream.io.xml.StaxReader.pullNextEvent(StaxReader.java:58) ~[?:?]
	at com.thoughtworks.xstream.io.xml.AbstractPullReader.readRealEvent(AbstractPullReader.java:148) ~[?:?]
	at com.thoughtworks.xstream.io.xml.AbstractPullReader.readEvent(AbstractPullReader.java:135) ~[?:?]
	at com.thoughtworks.xstream.io.xml.AbstractPullReader.hasMoreChildren(AbstractPullReader.java:87) ~[?:?]
	at com.thoughtworks.xstream.io.ReaderWrapper.hasMoreChildren(ReaderWrapper.java:32) ~[?:?]
	at com.thoughtworks.xstream.io.ReaderWrapper.hasMoreChildren(ReaderWrapper.java:32) ~[?:?]
	at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:90) ~[?:?]
	at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:86) ~[?:?]
	at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:81) ~[?:?]
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:74) ~[?:?]
	... 24 more
Caused by: java.io.IOException: /openhab/userdata/cache/org.eclipse.osgi/305/1/bundleFile
	at org.eclipse.osgi.storage.bundlefile.CloseableBundleFile$BundleEntryInputStream.enrichExceptionWithBaseFile(CloseableBundleFile.java:570) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.storage.bundlefile.CloseableBundleFile$BundleEntryInputStream.read(CloseableBundleFile.java:534) ~[org.eclipse.osgi-3.18.0.jar:?]
	at com.ctc.wstx.io.BaseReader.readBytes(BaseReader.java:155) ~[?:?]
	at com.ctc.wstx.io.UTF8Reader.loadMore(UTF8Reader.java:369) ~[?:?]
	at com.ctc.wstx.io.UTF8Reader.read(UTF8Reader.java:116) ~[?:?]
	at com.ctc.wstx.io.ReaderSource.readInto(ReaderSource.java:88) ~[?:?]
	at com.ctc.wstx.io.BranchingReaderSource.readInto(BranchingReaderSource.java:57) ~[?:?]
	at com.ctc.wstx.sr.StreamScanner.loadMoreFromCurrent(StreamScanner.java:1070) ~[?:?]
	at com.ctc.wstx.sr.StreamScanner.loadMoreFromCurrent(StreamScanner.java:1080) ~[?:?]
	at com.ctc.wstx.sr.StreamScanner.getNextCharFromCurrent(StreamScanner.java:819) ~[?:?]
	at com.ctc.wstx.sr.BasicStreamReader.handleNsAttrs(BasicStreamReader.java:3120) ~[?:?]
	at com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:3048) ~[?:?]
	at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2926) ~[?:?]
	at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1122) ~[?:?]
	at com.thoughtworks.xstream.io.xml.StaxReader.pullNextEvent(StaxReader.java:58) ~[?:?]
	at com.thoughtworks.xstream.io.xml.AbstractPullReader.readRealEvent(AbstractPullReader.java:148) ~[?:?]
	at com.thoughtworks.xstream.io.xml.AbstractPullReader.readEvent(AbstractPullReader.java:135) ~[?:?]
	at com.thoughtworks.xstream.io.xml.AbstractPullReader.hasMoreChildren(AbstractPullReader.java:87) ~[?:?]
	at com.thoughtworks.xstream.io.ReaderWrapper.hasMoreChildren(ReaderWrapper.java:32) ~[?:?]
	at com.thoughtworks.xstream.io.ReaderWrapper.hasMoreChildren(ReaderWrapper.java:32) ~[?:?]
	at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:90) ~[?:?]
	at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:86) ~[?:?]
	at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:81) ~[?:?]
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:74) ~[?:?]
	... 24 more
Caused by: java.io.IOException: Stream closed
	at java.util.zip.InflaterInputStream.ensureOpen(InflaterInputStream.java:67) ~[?:?]
	at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:142) ~[?:?]
	at java.io.FilterInputStream.read(FilterInputStream.java:132) ~[?:?]
	at org.eclipse.osgi.storage.bundlefile.CloseableBundleFile$BundleEntryInputStream.read(CloseableBundleFile.java:532) ~[org.eclipse.osgi-3.18.0.jar:?]
	at com.ctc.wstx.io.BaseReader.readBytes(BaseReader.java:155) ~[?:?]
	at com.ctc.wstx.io.UTF8Reader.loadMore(UTF8Reader.java:369) ~[?:?]
	at com.ctc.wstx.io.UTF8Reader.read(UTF8Reader.java:116) ~[?:?]
	at com.ctc.wstx.io.ReaderSource.readInto(ReaderSource.java:88) ~[?:?]
	at com.ctc.wstx.io.BranchingReaderSource.readInto(BranchingReaderSource.java:57) ~[?:?]
	at com.ctc.wstx.sr.StreamScanner.loadMoreFromCurrent(StreamScanner.java:1070) ~[?:?]
	at com.ctc.wstx.sr.StreamScanner.loadMoreFromCurrent(StreamScanner.java:1080) ~[?:?]
	at com.ctc.wstx.sr.StreamScanner.getNextCharFromCurrent(StreamScanner.java:819) ~[?:?]
	at com.ctc.wstx.sr.BasicStreamReader.handleNsAttrs(BasicStreamReader.java:3120) ~[?:?]
	at com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:3048) ~[?:?]
	at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2926) ~[?:?]
	at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1122) ~[?:?]
	at com.thoughtworks.xstream.io.xml.StaxReader.pullNextEvent(StaxReader.java:58) ~[?:?]
	at com.thoughtworks.xstream.io.xml.AbstractPullReader.readRealEvent(AbstractPullReader.java:148) ~[?:?]
	at com.thoughtworks.xstream.io.xml.AbstractPullReader.readEvent(AbstractPullReader.java:135) ~[?:?]
	at com.thoughtworks.xstream.io.xml.AbstractPullReader.hasMoreChildren(AbstractPullReader.java:87) ~[?:?]
	at com.thoughtworks.xstream.io.ReaderWrapper.hasMoreChildren(ReaderWrapper.java:32) ~[?:?]
	at com.thoughtworks.xstream.io.ReaderWrapper.hasMoreChildren(ReaderWrapper.java:32) ~[?:?]
	at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:90) ~[?:?]
	at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:86) ~[?:?]
	at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:81) ~[?:?]
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:74) ~[?:?]
	... 24 more

I fail using this binding on oh 4.1.1:

  • copied .kar as of Aug 29th to addons folder, found binding in Main UI in Thing creator, started config. Connection cannot be established (“No data received for authentication request”, log below), although other rscp tools work well with same credentials

  • After using the .kar file, Addon Store reports “E3DC Binding” in Distribution section installed. This binding doesn’t exist elsewise.

  • alternatively chose (beta) plugin from Community Marketplace, same issues: no connection established and now both a Marketplace and again e3dc binding (non-beta) appears “installed” in Distribution bindings in parallel. After uninstall of Marketplace binding (beta), also instance in Distribution section is removed.

  • Using the .jar doesn’t present a binding in Things creation

  • After a restart of openhab, created e3dc Thing shows up with empty screen. Need to remove .kar and re-add again to addons folder, or uninstall/install from Marketplace.

Log for not established connection:

2024-02-04 02:57:39.164 [WARN ] [.binding.e3dc.internal.E3DCConnector] - read version 1
2024-02-04 02:57:39.166 [WARN ] [.binding.e3dc.internal.E3DCConnector] - dIn.available 0 - retry: false
2024-02-04 02:57:39.179 [WARN ] [.binding.e3dc.internal.E3DCConnector] - Received 32 bytes, append to buffer... 
2024-02-04 02:57:39.181 [WARN ] [.binding.e3dc.internal.E3DCConnector] - Received 32 bytes of data
2024-02-04 02:57:39.182 [WARN ] [.binding.e3dc.internal.E3DCConnector] - Finished reading 32 bytes.
2024-02-04 02:57:39.184 [WARN ] [.binding.e3dc.internal.E3DCConnector] - Decrypted frame data.

I switched over to rscp2mqtt, works like a charm.
It´s a deamon, which speaks RSCP with E3/DC and on the other hand you can read/write messages via MQTT.
It has integrated functionality for limiting discharging (use it for surplus charging my wallbox and other consumers), reporting, etc. Stable running for months now.