eBus Native Binding - First alpha release

898 views
Skip to first unread message

Christian S.

unread,
Sep 16, 2014, 5:20:58 AM9/16/14
to ope...@googlegroups.com
Hello,

I started a new binding to support Heating Units with eBus protocol. Currently a Wolf Heating Unit is well supported.
Here is the project on github: https://github.com/csowada/openhab-bindings

Maybe someone is interested in such a binding.

Thanks
Christian

Thomas E.-E.

unread,
Sep 16, 2014, 7:30:47 AM9/16/14
to ope...@googlegroups.com
Hi Christian,

thanks for letting us know!

It would be great if you could create in issue (tag enhancement) for this. This issue could be used to report your progress as well.

Thanks, Thomas E.-E.

carzt...@gmail.com

unread,
Oct 4, 2014, 4:18:09 AM10/4/14
to ope...@googlegroups.com

Christian S.

unread,
Oct 4, 2014, 7:21:21 AM10/4/14
to ope...@googlegroups.com, carzt...@gmail.com
I think this adapter should work, it's only an adapter from ebus to serial to usb.

jaraf...@gmail.com

unread,
Nov 3, 2014, 3:07:56 AM11/3/14
to ope...@googlegroups.com
I'm really interested. 
I want to control my Vaillant Heating Unit.

Christian S.

unread,
Nov 3, 2014, 3:25:14 AM11/3/14
to ope...@googlegroups.com, jaraf...@gmail.com
Hello Jaraf,

you can download the latest alpha version from github and start your tests. But currently the documentation is only available in german language.
Also I've not get enough feedback for Vaillant devices. So the list of supported commands is still empty. But this is no reason to stop research, try it
and send me your discovered ebus command if you want.
Currently the is no need to enhance the application, instead we need support to collect all possible commands of heating units and manufactures.

Harpinder Sanghera

unread,
May 15, 2015, 11:44:34 AM5/15/15
to ope...@googlegroups.com
Hi Christian,

I have a Vaillant boiler and Heating Controls. I also have the ebus to usb adapter from eService connected to a Raspberry Pi to the ebus. I have this successfully listening to broadcasts using the fantastic ebusd software by john30 on Github (thanks to John for his help if he's reading).

I also have the vrDialog software which is a diagnostics software by Vaillant, which is quite old now. But it comes with a database .mdb file which contains commands for all Vaillant devices that support it. John has also done a lot of great work in creating configuration files in .csv format to read some of the commands.

I would really like to help you develop your Vaillant support as it's a very common vendor in the UK and could potentially help many people, especially me 😀.

The Vaillant and other ebus controls, while not as easy to use and as nice looking are much better than the Nest and Hive and other circuit stats from an efficiency point of view since the ebus devices can talk to each other properly and the boiler can adjust the gas burned and heat generated according to water and room temps, unlike the Nest and Hive and other controls that just turn the circuit off and on which just makes the boiler heat up water to its max flow temp setting!

So having a user friendly interface like openhab to talk dieectly to the ebus and compete with these nice stats from Nest and Hive and others would be great.

Please let me know how I can help. I have openhab running with the demo but i just can't seem to get this binding set up. I have added it to my addons directory. But like you said the instructions are in German. I could help you write them up in English if you want

Christian Sowada

unread,
May 16, 2015, 3:37:29 PM5/16/15
to ope...@googlegroups.com
Hi Harpinder,

thank you for your offer to help. I'm currently busy because we will go on holiday tomorrow. But it would be great if you could try to translate the german instruction and also check the wiki page. I update the wiki page bacause the of the wrong logging id's.

I also add a image that shows how to convert ebusd file to json files. Maybe it is useful for your research.

I will help you when I'm back from holiday or maybe directly from the beach ;-)



--
You received this message because you are subscribed to a topic in the Google Groups "openhab" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/openhab/NHZsRRSpeUg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to openhab+u...@googlegroups.com.
To post to this group, send email to ope...@googlegroups.com.
Visit this group at http://groups.google.com/group/openhab.
To view this discussion on the web visit https://groups.google.com/d/msgid/openhab/0034321a-2c11-4366-b277-b7d09cc78fb2%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Mit freundlichen Grüßen

Christian Sowada
08-05-2015 09-30-55.png

nikoraes

unread,
May 27, 2015, 3:37:55 PM5/27/15
to ope...@googlegroups.com
I started a config file for Vaillant bai and a VRC470 thermostat based on the ebusd configuration files. It's a work in progress, as I've only included those most interesting to me. Some are also the same as in the bai00 config, but I've tried to use the same names as in ebusd.

Everything seems to work with the following item definitions:
Number TempBuitenCV "Temperatuur buiten [%.1f °C]" (Weer,Temperatuur,CV,CVChart,TempBuitenChart) { ebus="id:outsidetemp, class:vrc470, cmd:outsidetemp, dst:15, refresh:60" }
Number TempBufferBoven "Temperatuur buffer boven [%.1f °C]" (CV,ZonneboilerChart) { ebus="id:storagetemp, class:bai, cmd:storagetemp, dst:08, refresh:60" }
Number SetTempCVVertrek "Setpunt ketel vertrek [%.1f °C]" (CV,CVChart) { ebus="id:flowtempdesired, class:bai, cmd:flowtempdesired, dst:08, refresh:60" }
Number TempCVVertrek "Temperatuur ketel vertrek [%.1f °C]" (CV,CVChart) { ebus="id:flowtemp, class:bai, cmd:flowtemp, dst:08, refresh:60" }
Number TempCVRetour "Temperatuur ketel retour [%.1f °C]" (CV,CVChart) { ebus="id:returntemp, class:bai, cmd:returntemp, dst:08, refresh:60" }
Number TempCVRuimte "Temperatuur woonkamer [%.1f °C]" (Temperatuur,CV) { ebus="id:roomtemp, class:vrc470, cmd:roomtemp, dst:15, refresh:60" }
Number CVBelasting "Belasting ketel [%.1f kW]" (CV) { ebus="id:partloadhckw, class:bai, cmd:partloadhckw, dst:08, refresh:60" }
Number CVHC1OpMode "Bedrijfsmodus" (CV) { ebus="id:hc1opmode, class:vrc470, cmd:hc1opmode, dst:15, refresh:60" }
Number SetTempCVDag "Dag [%.1f °C]" (CV) { ebus="id:hc1daytemp, class:vrc470, cmd:hc1daytemp, dst:15, refresh:60" }
Number SetTempCVNacht "Nacht [%.1f °C]" (CV) { ebus="id:hc1nighttemp, class:vrc470, cmd:hc1nighttemp, dst:15, refresh:60" }
Number SetTempWarmWater "Warm water [%.1f °C]" (CV) { ebus="id:hwctempdesired, class:vrc470, cmd:hwctempdesired, dst:15, refresh:60" }
Although the destination is provided in the ebus-config, it does seem necessary to provide this in the item definition as well.

I'm now trying to figure out how to write something (especially the operating mode and setpoints would be interesting). This requires a similar command but with 0E instead of 0D. I could define these writing parameters separately in the config file but how can I define separate item definitions for reading and writing for the same item? It would be great if the binding would support a different definition per direction. Or is there another option?

Thank you,
Niko

Op zaterdag 16 mei 2015 21:37:29 UTC+2 schreef Christian S.:
ebus-config.json

Harpinder Sanghera

unread,
May 27, 2015, 4:20:39 PM5/27/15
to ope...@googlegroups.com

Nice. But how do you configure OpenHab to display it. I have only recently compiled openhab and couldn't get this to work.

Christian S.

unread,
May 28, 2015, 4:53:31 AM5/28/15
to ope...@googlegroups.com
Hello Guys,

I'm back from holiday but still busy this week. I started a new Topic (https://groups.google.com/d/topic/openhab/AHMQSrHXUvY/discussion) to separate the discussion from the announcement. It would be great if you could add your answers to this new topic.

I also work on the communication layer to fix smaller issues and to improve send timings, this is maybe important for network attached eBUS adapters.

@Harpinder - Do you try to load the attached json configuration with your openhab installation? In that case use the parameter "ebus:parserUrl" and "ebus:parsers=.....,custom" in openhab.cfg. See https://github.com/openhab/openhab/wiki/eBUS-Binding#binding-configuration-in-openhabcfg

Harpinder Sanghera

unread,
Jun 5, 2015, 8:23:21 PM6/5/15
to ope...@googlegroups.com
Hi Christian,

Ok so I have a clean install of openhab, I used Nikoraes's items file and the ebus-config.json file. I created a sitemap with simple text elements. I can see items in the site now.

Was wondering if someone could send me their site map for ebus to make it look nicer. I have csv files for my bai00 and VRT350 units so I can start adding more items, I assume I need to add these to the json file as well.

Regards,
Harpinder

Harpinder Sanghera

unread,
Jun 6, 2015, 2:49:39 PM6/6/15
to ope...@googlegroups.com
Hi,

So I tried to add more items and also added more commands to the ebus-config.json, in particular the VRT350 and other bai commands from the Vaillant MDB, however I couldn't get it to work. It keeps saying "check your item configuration"

Also I get these errors quite often:

2015-06-06 18:45:01.524 [WARN ] [.b.e.i.c.AbstractEBusConnector] - Slave CRC wrong, resend!
2015-06-06 18:45:01.529 [WARN ] [.b.e.i.c.AbstractEBusConnector] - eBus collision detected!
2015-06-06 18:45:02.063 [WARN ] [.ebus.internal.utils.EBusUtils] - EBus telegram sender-crc invalid, skip data! Data: FF 00 00 00 A9 01 E6 AA
2015-06-06 20:12:04.168 [WARN ] [.e.i.parser.EBusTelegramParser] - eBus buffer pos error! Can happen ...
2015-06-06 20:12:04.171 [WARN ] [.e.i.parser.EBusTelegramParser] - eBus buffer pos error! Can happen ...
2015-06-06 20:12:04.174 [WARN ] [.e.i.parser.EBusTelegramParser] - eBus buffer pos error! Can happen ...
2015-06-06 20:12:04.178 [WARN ] [.e.i.parser.EBusTelegramParser] - eBus buffer pos error! Can happen ...
2015-06-06 20:12:04.181 [WARN ] [.e.i.parser.EBusTelegramParser] - eBus buffer pos error! Can happen ...
2015-06-06 20:12:04.186 [WARN ] [.e.i.parser.EBusTelegramParser] - eBus buffer pos error! Can happen ...
2015-06-06 20:12:04.191 [WARN ] [.e.i.parser.EBusTelegramParser] - eBus buffer pos error! Can happen ...
2015-06-06 20:12:04.195 [WARN ] [.e.i.parser.EBusTelegramParser] - eBus buffer pos error! Can happen ...
2015-06-06 20:12:04.199 [WARN ] [.e.i.parser.EBusTelegramParser] - eBus buffer pos error! Can happen ...
2015-06-06 20:12:04.204 [WARN ] [.e.i.parser.EBusTelegramParser] - eBus buffer pos error! Can happen ...
Exception in thread "pool-4-thread-112" java.lang.IndexOutOfBoundsException: 17
        at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:139)
        at org.openhab.binding.ebus.internal.parser.EBusTelegramParser.getValue(EBusTelegramParser.java:114)
        at org.openhab.binding.ebus.internal.parser.EBusTelegramParser.parse(EBusTelegramParser.java:345)
        at org.openhab.binding.ebus.internal.EBusBinding.onTelegramReceived(EBusBinding.java:302)
        at org.openhab.binding.ebus.internal.connection.AbstractEBusConnector$1.run(AbstractEBusConnector.java:321)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:744)

I'm using the 1.8.0 SNAPSHOT nightly build.

The commands from Nikoraes's ebus-config.json and the items for bai work fine, I can read those commands, and they match my csv file which I also use with ebusd. So the commands are correct that I'm using. Any idea why they don't work?


EDIT: I saw your post in the topic Enhance eBUS binding for Vaillant device regarding a new update you're making to improve support for the Vaillant devices. I guess I just have to wait for the new update for these issues? 

Thanks

Christian S.

unread,
Jun 9, 2015, 2:58:54 AM6/9/15
to ope...@googlegroups.com
Hi,

yes I work on an version with a better sending routine. Currently I optimized the raw send timings. The first version was often to slow to anser after the sync byte.
I also fixed the "Exception in thread "pool-4-thread-112" java.lang.IndexOutOfBoundsException: 17" error, caused by telegrams without payload.

But your eBUS telegram looks wrong, could you send me your complete items configuration, your openhab.cfg and your json configuration file. I will check that. You can send it directly to me if you have private information in your configurations.

And important for me, what kind of ebus adapter you use? A serial adapter or a netwotrk adapter? I got more trouble with network adapter because of the network delay.

Harpinder Sanghera

unread,
Jun 10, 2015, 1:03:57 AM6/10/15
to ope...@googlegroups.com
Hi Christian,

Please see the files you requested attached. I have made some changes and can see some more values. But the log file still shows issues and some values still don't update.

Log file: 

2015-06-10 04:56:46.225 [WARN ] [.ebus.internal.utils.EBusUtils] - EBus telegram sender-crc inval                                   id, skip data! Data: 10 08 B5 04 01 00 00 C0 0A 00 00 00 00 FF FF FF FF 00 80 46 00 AA
2015-06-10 04:56:46.407 [WARN ] [.b.e.i.c.AbstractEBusConnector] - eBus collision detected!
2015-06-10 04:56:46.496 [WARN ] [.ebus.internal.utils.EBusUtils] - EBus telegram sender-crc inval                                   id, skip data! Data: 08 B5 11 01 02 8A 00 05 03 3C 96 50 82 7E 00 AA
2015-06-10 04:56:47.132 [WARN ] [.b.e.i.c.AbstractEBusConnector] - Slave CRC wrong, resend!
2015-06-10 04:56:47.140 [WARN ] [.b.e.i.c.AbstractEBusConnector] - eBus collision detected!
2015-06-10 04:56:47.674 [WARN ] [.ebus.internal.utils.EBusUtils] - EBus telegram sender-crc inval                                   id, skip data! Data: 64 B4 00 00 02 00 F6 AA
2015-06-10 04:56:48.295 [WARN ] [.ebus.internal.utils.EBusUtils] - EBus telegram sender-crc inval                                   id, skip data! Data: 10 08 B5 10 09 00 00 00 00 FF 00 FF 00 05 00 01 01 9A 00 54 AA
2015-06-10 04:56:49.491 [INFO ] [runtime.busevents             ] - CVBelasting state updated to 3                                   7
2015-06-10 04:56:49.657 [WARN ] [.b.e.i.c.AbstractEBusConnector] - Slave CRC wrong, resend!
2015-06-10 04:56:49.713 [WARN ] [.b.e.i.c.AbstractEBusConnector] - Received wrong telegram: FF 00                                    00 00 7C 00 43 00 C0 F6
2015-06-10 04:56:49.723 [WARN ] [.b.e.i.c.AbstractEBusConnector] - Resend failed, remove data fro                                   m sending queue ...
2015-06-10 04:56:50.475 [WARN ] [.b.e.i.c.AbstractEBusConnector] - Slave CRC wrong, resend!
2015-06-10 04:56:50.489 [WARN ] [.b.e.i.c.AbstractEBusConnector] - eBus collision detected!
2015-06-10 04:56:50.554 [WARN ] [.ebus.internal.utils.EBusUtils] - EBus telegram sender-crc inval                                   id, skip data! Data: 04 75 FF 00 00 FD AA
^C2015-06-10 04:56:51.475 [WARN ] [.b.e.i.c.AbstractEBusConnector] - Slave CRC wrong, resend!
2015-06-10 04:56:51.482 [WARN ] [.b.e.i.c.AbstractEBusConnector] - eBus collision detected!
2015-06-10 04:56:52.024 [WARN ] [.ebus.internal.utils.EBusUtils] - EBus telegram sender-crc inval                                   id, skip data! Data: FF 03 00 7F 6A 00 FE AA
2015-06-10 04:56:52.373 [INFO ] [penhab.io.rest.RESTApplication] - Stopped REST API
2015-06-10 04:56:52.470 [WARN ] [.ebus.internal.utils.EBusUtils] - EBus telegram answer-crc inval                                   id, skip data!
2015-06-10 04:56:53.525 [INFO ] [runtime.busevents             ] - NightTemp state updated to 0
2015-06-10 04:56:54.528 [WARN ] [.b.e.i.c.AbstractEBusConnector] - Slave CRC wrong, resend!
2015-06-10 04:56:54.595 [WARN ] [.b.e.i.c.AbstractEBusConnector] - Received wrong telegram: FF 00                                    B0 00 00 00 00 00 00 E0
2015-06-10 04:56:54.600 [WARN ] [.b.e.i.c.AbstractEBusConnector] - Resend failed, remove data fro                                   m sending queue ...
2015-06-10 04:56:55.531 [WARN ] [.b.e.i.c.AbstractEBusConnector] - Slave CRC wrong, resend!
2015-06-10 04:56:55.562 [WARN ] [.b.e.i.c.AbstractEBusConnector] - eBus collision detected!
2015-06-10 04:56:56.114 [WARN ] [.ebus.internal.utils.EBusUtils] - EBus telegram sender-crc invalid, skip data! Data: FF 05 A9 00 56 FD 00 C3 AA
2015-06-10 04:56:56.302 [INFO ] [runtime.busevents             ] - DiverterPosition state updated to 0
2015-06-10 04:56:56.616 [INFO ] [.o.u.w.i.servlet.WebAppServlet] - Stopped Classic UI


Also I am using the ebus USB coupler from http://www.eservice-online.de/.

The eBus binding section in my openhab.cfg shows these values:

ebus:serialPort=/dev/ttyUSB0

ebus:parserUrl=platform:/base/../configurations/ebus-config.json

ebus:parsers=custom


Regards,
Harpinder
ebus.items
ebus.sitemap
ebus-config.json

Christian S.

unread,
Jun 10, 2015, 2:40:51 AM6/10/15
to ope...@googlegroups.com
Hello Harpinder,

thank you for your configurations files. So I understood right, that you can write to the bus to poll some values from your heating unit? Or can you only read existing telegrams from bus?
I will send you an early beta with the faster send routine this evening. Is it possible to increase your logging? You have to modify your logback.xml file (https://github.com/openhab/openhab/wiki/eBUS-Binding#logging)

In your log (to short) I can't see what caused the warnings, maybe this are normal errors from your heating unit.
And you should decrease the polling timing or the amount of items until we find a stable solution. Or it can jam your sending queue.

But I'm happy that you help me to improve the binding.

Harpinder Sanghera

unread,
Jun 10, 2015, 1:22:14 PM6/10/15
to ope...@googlegroups.com
Hi Christian,

I can get some values from my heating unit, yes. I'm not sure now to read for broadcasts/existing telegrams from the bus however.

Also I tried to enable logging. I am using the v1.8.0 OpenHab Snapshot, but the logging entry doesn't exist in configurations\logback.xml. Should I use the 1.7.0 version?

Also, would you be able to send me the early beta for the new ebus binding?

Regards,
Harpinder

Christian S.

unread,
Jun 10, 2015, 3:07:06 PM6/10/15
to ope...@googlegroups.com
Hello Harpinder,

you have to add the logger entries manually.

Here, add this after <logger name="org.openhab" level="INFO"/> ...

    <logger name="org.openhab.binding.ebus" level="TRACE" />
    <logger name="org.openhab.binding.ebus.internal.parser.Analyses" level="TRACE" />
    <logger name="org.openhab.binding.ebus.internal.parser.Analyses" level="TRACE" />
    <logger name="org.openhab.binding.ebus.internal.utils.EBusUtils" level="TRACE" />

And here is the optimized version, it works at my system since days.
Sorry for the short answer, I'm busy today.
org.openhab.binding.ebus_1.7.0.201505312158.jar

Christian S.

unread,
Jun 10, 2015, 4:31:31 PM6/10/15
to ope...@googlegroups.com
So,

and here a quickly tested new proof-of-concept version.
org.openhab.binding.ebus_1.7.0.201506102219.jar

Harpinder Sanghera

unread,
Jun 11, 2015, 10:35:49 AM6/11/15
to ope...@googlegroups.com
Hi Christian,

Thanks I will test this out. Also can I use my csv files from the ebusd project instead of the json files? Or how can I convert my csv files into json?

From my csv files I don't know how to write this line in the json file:

"values": {
"performance_burner-kw": {"type": "uchar", "pos": 12, "label": "Heizungteillast in kW", "min": 1, "max": 100}
}


The csv files I am using are from here:


Mine are the 350.csv and bai.csv

Regards,
Harpinder

Christian S.

unread,
Jun 11, 2015, 10:59:50 AM6/11/15
to ope...@googlegroups.com
Hi Harpinder,

this binding is not able to read the csv files. I personally not like the csv format and the json format is more flexible.
Maybe someone writes a converter tool, I also thought about it ...



Am Donnerstag, 11. Juni 2015 16:35:49 UTC+2 schrieb Harpinder Sanghera:
Hi Christian,

Thanks I will test this out. Also can I use my csv files from the ebusd project instead of the json files?

Regards,
Harpinder

Harpinder Sanghera

unread,
Jun 11, 2015, 11:13:43 AM6/11/15
to ope...@googlegroups.com
Hi Christian,

I understand, I do like the json format aswell and its nicely laid out and easy to read.

I want to write out all the commands for my vaillant devices. I have all the commands available and they work on my devices with ebusd, so I want to write them out in the json files so that I can test using openhab and your binding.

Could you help me with the "values:" section? How do I write out that section using my csv's. They don't have any information for pos. And some of the formats like yesno and UCH, MCH, UIN, SIN, power, curve, mcmode, etc. I don't understand how to write that in the json format, or how the commands have more than one value, for example on my CSV's I have one value called RoomTemp, but in the values in the json file it has roomtemp and roomtemp_s.

Christian S.

unread,
Jun 15, 2015, 2:53:31 AM6/15/15
to ope...@googlegroups.com
Hello Harpinder,

your log files are looking good. Ever request has successfully sended to the bus at the first try. The rest of the errors are normal.

So now I can switch over to the "setters" development.

If you willing will help you are welcome to join the thread https://groups.google.com/d/topic/openhab/AHMQSrHXUvY/discussion
...
Reply all
Reply to author
Forward
0 new messages