E3DC Modbus Binding - Test Request

I think this is exactly the same as with bluetooth binding.

I see, but it’s the same problem. E.g. the DaikinMadoka Thermostat is behind the bluetooth Binding. So looking through the Binding list I can find the Daikin Air Conditioning but not the corresponding Thermostat.

Please don’t get me wrong. I’m not addressing a technical issue. From technical point it’s totally right: You’ve a protocol and based on that several extension. I just doubt this is the view of a lesser technical experienced user.

Imagine the following:
I prepare a brilliant Rest API Binding which takes care of connections, timeouts, error handling, OAuth & Token handling. As a result all web based bindings shall be based on this and are just extensions.
Spinning this even further Binding Installtion refers to a bunch of protocols and the real devices are behind them.

For this particular case I would say you want to install E3DC Binding and the Modbus Binding is simply a dependency. With this each user can install devices without knowing the protocol behind it.

Again: Don’t understand me wrong. I don’t press for a solution right now. But in general I think it’s worth a discussion if the Protocol Extensions is the right way to proceed.

What do you think about this?


I must say that if these extensions are bundled in with generic Modbus binding, that surprises me too. Sounds like bloatware :wink:

Addressing that as it stands now is just a case of adding explanatory words to the doc pages.

Yeah I think the maintainers have opted to follow the same approach even though it might not make sense here.

Original discussion was with sunspec https://github.com/openhab/openhab-addons/pull/6331#discussion_r410307406

I actually do agree, I argue that most people have at most one type of modbus device, not more. It would be therefore reasonable to install them one by one. The ui would not be bloated of different type of modbus devices that you would not work with.

You could raise this up in the github issue I referred to, perhaps it can be adjusted for oh3

This does seem like the opportune time to properly consider this, and implement if needed. I’ll have a think about raising a more generic Github issue.


Yes, I think a more generic issue is the better way. The Issue @ssalonen raised is already solved in a Pull Request
@rossko57 Will you raise one? If not I’ll raise the github issue.


Pull request from @bern77 was closed actually (due to target wrong branch) so the immediate problem remains still.

I am not quite sure now the situation with openhab 2.x vs 3.0… Will there be new 2.x addon releases?

I think we might be on the last 2.5.x version already

1 Like

@goebelmeier @BOFH90

As you can see the installation is broken. Honestly I don’t know if there will be a fix release for 2.5.9. I can only offer to place the latest Release Candiadte into the openhab2-addons folder.

This was a first stab at a fix but my understanding out of this was also that 2.5.9 should be the last release in the 2.x version.
I understand that https://github.com/openhab/openhab-addons/pull/8575 does the same for the main branch now, so there the problem should be fixed.

I’m really not sure if there’s a way to offer the extensions other then providing download links to the JARs…

Did that, without any visible change. Afterwards i’ve added modbus-e3dc to /etc/openhab2/services/addons.cfg, but this didn’t worked well:
2020-09-28 09:34:03.813 [ERROR] [core.karaf.internal.FeatureInstaller] - Failed installing 'openhab-binding-modbus-e3dc'

Any suggestions?

I don’t think addons.cfg needs to be adapted. I just dropped my bundle in the addons folder - that’s it! So after copying the bundle into addons folder you’re still not able to see E3DC devices in PaperUI via Modbus Binding?

Correct, i’ve just dropped the jar bundle and even restarted openHAB without success.

[19:30:54] openhabian@openHABianPi:~$ ls -lah /usr/share/openhab2/addons/
total 92K
drwxrwxr-x+ 2 openhab openhab 4.0K Sep 28 09:21 .
drwxrwxr-x+ 4 openhab openhab 4.0K Sep 21 09:51 ..
-rw-rw-r--  1 openhab openhab  77K Sep 28 09:21 org.openhab.binding.modbus.e3dc-2.5.8-SNAPSHOT.jar
-rw-r--r--  1 openhab openhab   70 Sep 20 19:12 README

Hi Timo,

in my case it worked just like Bernd described.

However: I see in your directory list “ls” that your “jar” is 77K in size, whereas in my case it is 47K.
Are you sure you have downloaded a correct file?

-rw-r–r-- 1 openhabian openhabian 47K Oct 4 22:22 org.openhab.binding.modbus.e3dc-2.5.8-SNAPSHOT.jar

When you copy the jar file to addons folder, you should take a look in the log viewer - there openhab is telling what is going on during installation of the binding.

Good luck, Vjeko

1 Like

Thank you, that filesize stuff was the right hint. I’ve re-downloaded the file and now everything seems working.


Hi all,

I encoutered the same problem with my E3DC system, but with some strange behavior:
My E3DC is appearing in the Thing inbox as a FSInternetradio thing.

Any idea?



is this Thing automatically added into your Inbox? Seems that the Internet Radio Binding discovers the E3DC device as radio station. That’s weird!

The E3DC Binding doesn’t provide automatic discovery service. You have to setup it manually.

Hi Bernd,

yes, it is discovered automatically.
Including all the undocumented features: Power on/off, Volume, Current title…just kidding

Anyway, I tried manual setup, still struggling with this…


Please tell me where you’re struggeling. Maybe I can improve the setup description!

Hi Bernd

Thanks for the offer.
Maybe just a typo.

My things file:
Bridge modbus:tcp:device “E3DC Modbus TCP” [ host=“”, port=502, id=1 ] {
Bridge e3dc powerplant “E3DC PV-Batterie” @ “Haus” [ refresh=2500 ]

My items file:
String E3DC_ModbusId “E3DC Modbus ID” (e3dc) { channel=“modbus:e3dc:device:powerplant:info#modbus-id” }
String E3DC_ModbusFirmware “E3DC Modbus Firmware” (e3dc) { channel=“modbus:e3dc:device:powerplant:info#modbus-firmware” }
Number E3DC_SupportedRegisters “E3DC Unterstütze Register” (e3dc) { channel=“modbus:e3dc:device:powerplant:info#supported-registers” }
String E3DC_Manufacturer “E3DC Hersteller” (e3dc) { channel=“modbus:e3dc:device:powerplant:info#manufacturer-name” }
String E3DC_ModelName “E3DC Modell” (e3dc) { channel=“modbus:e3dc:device:powerplant:info#model-name” }
String E3DC_Firmware “E3DC Modbus Firmware ID” (e3dc) { channel=“modbus:e3dc:device:powerplant:info#firmware-release” }
String E3DC_SerialNumber “E3DC Modbus ID” (e3dc) { channel=“modbus:e3dc:device:powerplant:info#serial-number” }

Number E3DC_PVPower “E3DC PV-Leistung” (e3dc,persist) { channel=“modbus:e3dc:device:powerplant:power#pv-power-supply” }
Number E3DC_BatteryDischarge “E3DC Batterie Entladen” (e3dc,persist) { channel=“modbus:e3dc:device:powerplant:power#battery-power-supply” }
Number E3DC_BatteryCharge “E3DC Batterie Laden” (e3dc,persist) { channel=“modbus:e3dc:device:powerplant:power#battery-power-consumption” }
Number E3DC_Household “E3DC Hausverbrauch” (e3dc,persist) { channel=“modbus:e3dc:device:powerplant:power#household-power-consumption” }
Number E3DC_GridConsumption “E3DC Netzeinspeisung” (e3dc,persist) { channel=“modbus:e3dc:device:powerplant:power#grid-power-consumption” }
Number E3DC_GridSupply “E3DC Netzbezug” (e3dc,persist) { channel=“modbus:e3dc:device:powerplant:power#grid-power-supply” }
Number E3DC_AutarkyLevel “E3DC Autarkie [%]” (e3dc) { channel=“modbus:e3dc:device:powerplant:power#autarky” }
Number E3DC_SelfConsumptionLevel “E3DC Eigenverbrauch [%]” (e3dc) { channel=“modbus:e3dc:device:powerplant:power#self-consumption” }
Number E3DC_BatterySOC “E3DC Batterie Ladestand” (e3dc,persist) { channel=“modbus:e3dc:device:powerplant:power#battery-soc” }

Number E3DC_String1V “E3DC String 1 Volt” (e3dc) { channel=“modbus:e3dc:device:powerplant:strings#string1-dc-voltage” }
Number E3DC_String2V “E3DC String 2 Volt” (e3dc) { channel=“modbus:e3dc:device:powerplant:strings#string2-dc-voltage” }
Number E3DC_String1A “E3DC String 1 Ampere” (e3dc) { channel=“modbus:e3dc:device:powerplant:strings#string1-dc-current” }
Number E3DC_String2A “E3DC String 2 Ampere” (e3dc) { channel=“modbus:e3dc:device:powerplant:strings#string2-dc-current” }
Number E3DC_String1W “E3DC String 1 Watt” (e3dc,persist) { channel=“modbus:e3dc:device:powerplant:strings#string1-dc-output” }
Number E3DC_String2W “E3DC String 2 Watt” (e3dc,persist) { channel=“modbus:e3dc:device:powerplant:strings#string2-dc-output” }