E3DC Binding (beta)

Ich habe das Problem das ich zwar mit meinem E3DC verbunden bin bzw. das Binding auch offensichtlich die Verbindung aufgebaut hat, aber bei allen Channels die ich bis jetzt ausprobiert habe, immer der Wert NULL mir angezeigt wird. Ich weiß leider als absoluter openHab Anfänger nicht was ich falsch mache.

Mein openHAB läuft auf Unraid in einem Docker. Ich benutze die openHab Version 3.4.0.M4

Ich verstehe auch nicht warum es zum Thema E3DC auf dem openHAB noch kein Tutorial bei Youtube gibt.

I have the problem that although I am connected to my E3DC or the binding has obviously established the connection, the value NULL is always displayed for all channels that I have tried so far. Unfortunately, as an absolute openHab beginner, I don’t know what I’m doing wrong.

My openHAB runs on unraid in a docker. I am using openHab version 3.4.0.M4

I also don’t understand why there is no tutorial on Youtube on the subject of E3DC on the openHAB.

Ich kann mich hier nur anschließen. openHAB läuft auf einem Pi4 mit Vers. 3.4.1. Das S10Pro und die Wallbox sind online (Wallbox erst online, nachdem ich in der Modbus TCP Slave - Bridge “Discovery enabled” aktiviert hatte. “RTU” habe ich deaktiviert gelassen, da ich die Bedeutung nicht weiß.) Leider bleiben alle Chanels bei dem Wert “NULL”. Im Hauskraftwek-Menue ist Modbus natürlich freigeschaltet (Typ E3DC). - Warum kommen keine Werte? - Short in English: Same problem as descreibed by Maverick-DE! What is going wrong or is there a workarouned?

Problem gelöst! Ich melde mich nochmal zu meinem Post von heute. Mein openHAB erhält jetzt Werte vom Hauskraftwerk. Ich habe zunächst alles gelöscht (Wallbox, Hauskraftwerk-Bridge und Modbus-TCP-Bridge. Dazu alle angelegten Channel und Items). Deinstallation von Modbus-Binding und dem E3DC(Beta)-Binding.
Neustart. Jetzt NUR das Modbus-TCP-Binding installiert. Das (wohl überholte) E3DC(Beta)-Binding aus dem Marketplace darf NICHT installiert werden. - Unter Things das blaue + anklicken, Modbus-Binding anklicken: E3DC anklicken. Dies als Bridge konfigurieren und mit der Modbus-TCP-Bridge verbinden. Auch die E3DC-Wallbox konnte angeklickt werden (Dort als Bridge das Hauskraftwerk anwählen). Danach bei den Items die Channel erstellen. Es dauerte ein weing. Dann sendete das Hauskraftwerk und die Wallbox Daten. - Ich bin zufrieden!

You are using old style Modbus binding.
The “new” RSCP Binding does have an issue. The communication with E3DC is broken.

I compiled and debugged it under OH 3.4.2 and got it to work. But I cannot verify the root cause. I added a missing “break” and it was working after. But I double checked by removing the “break” and it still works!? :crazy_face:

@DeJe63 would you mind pointing me to the code line for the break?

Sure I can. :smiley:
After I could not recreate the issue I was not sure to do a PR in your branch. I’m pretty new to OpenHab development… :wink:

Anyway, it is in E3DCRequests.java at line 583. I think the break is missing between set 4 and set 5. Otherwise you have a fallthrough which isn’t wanted I think.

btw. Pretty funny I just found a missing break in goecharger binding too last WE. This is allready merged to OH master. :smiley:

Some news here?
Last post 02/2022 … is it stable meanwhile?
When it will leave beta?

is anyone still working on this binding?

Early v4 test version

https://github.com/RealMalWare/openhab-addons/releases/download/e3dc_2023_08_25/org.openhab.binding.e3dc-4.1.0-SNAPSHOT.jar

https://github.com/RealMalWare/openhab-addons/releases/download/e3dc_2023_08_25/org.openhab.binding.e3dc-4.1.0-SNAPSHOT.kar

old
https://github.com/RealMalWare/openhab-addons/releases/download/e3dc_2022_02_16/org.openhab.binding.e3dc-3.2.0.jar
https://github.com/RealMalWare/openhab-addons/releases/download/e3dc_2022_02_16/org.openhab.binding.e3dc-3.2.0.kar

I cannot install it. Getting the following error in my log

unresolved requirement: import-package: javax.measure; version="[2.2.0,3.0.0)

Found a solution here and built it (https://github.com/bjoernbrings/openhab-addons/releases/download/4.0.0-RMW/org.openhab.binding.e3dc-4.1.0-SNAPSHOT.jar Release 4.0.0 · bjoernbrings/openhab-addons · GitHub)

Hi,
Is the binding compatible with OH4.0?
I copied the jar file to the addons folder but I don‘t see the binding when I try to add things.

Yes it is. Are the access rights in a way that OH has access?

Hi Björn,
thanks for your answer. I installed the binding via bundle:install in the Karaf console and “activated” it. Afterwards i fixed the permissions via “sudo openhabian-config”. But i don’t see the Binding in the “add things” dialog in the Openhab Gui.
If i clear the cache with “sudo openhab-cli clean-cache” the binding is deleted, and isn’t show in the bundle:list.
Do you have any hints what i do wrong?

Hmm, I do it by copying the file in the addon directory and then it should be working right away (if the file permissions work)

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.