Vaillant Ebus - tapping into data

Sponsored Links
Sorry what do you mean "using software on the Arduino to convert the voltage levels" as far as I can see the resistors are dropping the voltage and the Arduino is just processing the signals or have I misunderstood?

The bit of code in the posted link is reading the arduino’s analogue input, testing whether it’s above or below a threshold, and setting the digital output as appropriate. Then repeating in a loop.

The resistors scale the bus voltage to suit the arduino’s analogue input range.

Horrible.
 
Last edited:
Hence the removal of the need to observe polarity in some boiler / heating systems ? ?.



Loss of communication could create a hazard if the system is not designed / programmed to fail safe in the event of an un-expected loss of communication.

Hardly, the boiler is designed to work safely without any further input, without even the ebus at all.
 
The thing you originally posted, and linked again by picasso, using software on the Arduino to covert the voltage levels, is ghastly; please don’t use that.

You have obviously misunderstood. The voltage levels as input are decided by the potential divider formed by the 47K and 10K dividing the input by around 1/5th 22v/5 = 4.4v as the input to the Arduino providing one of the digital states. The software provides the timing and conversion to one and zeros, which can then be read by another system via the USB.

The entire thing will work without any ground, just a virtual ground as a reference, unless the ebus has a ground - which I suspect not.
 
Sponsored Links
Hardly, the boiler is designed to work safely without any further input, without even the ebus at all.

I was talking about E-Bus in general and not specifically about it's application in domestic boilers.

If an appliance has received an ON command and then communication is lost the appliance will not receive the OFF command and could run indefinately. If this happens a well thought out system would send ON commands ate regular intervals and the appliance would time out if the ON commands ceased arriving at the appliance

just a virtual ground as a reference,

The "reference" is the negative pole of the E-Bus pair.

There are 5 states on the E-Bus pair determined by the voltage between the two wires of the bus,

Less than 9 = bus de-powered
between 9 and 12 = logical 0
between 12 and 15 = invalid **
beween 15 and 24 = logical 1
greater than 24 = fault

** the duration of the invalid state can be used to determine the "quality" of the bus system.
 
The "reference" is the negative pole of the E-Bus pair.

There are 5 states on the E-Bus pair determined by the voltage between the two wires of the bus,

Less than 9 = bus de-powered
between 9 and 12 = logical 0
between 12 and 15 = invalid **
beween 15 and 24 = logical 1
greater than 24 = fault

** the duration of the invalid state can be used to determine the "quality" of the bus system.

Thanks for quoting the actual levels. I have used similar signalling systems before - open collector outputs and charge storing to power devices powered by the bus.
 
When you do pull the data from the boiler and controls, what do you intend to do with it re your system? Without knowledge of the logic of the boiler sequences, and an in-depth knowledge of heating systems re weather compensation, to implement changes with just the data would be foolish! All the SAFE tweaking can be done from the 470 and the Boiler.
 
You have obviously misunderstood.

No, honestly I haven’t misunderstood. I am a DIY plumber but a professional electronic engineer.

The voltage levels as input are decided by the potential divider formed by the 47K and 10K dividing the input by around 1/5th 22v/5 = 4.4v as the input to the Arduino providing one of the digital states.

The potential divider is required because the high voltages on the bus would fry the chip.
Then, note the “highvalue” and “lowvalue” calculations in the code. The analogue to digital converter seems to have 10-bit resolution, so they determine values between 0 and 1023 that correspond to the high and low thresholds of 12V and 15V.

The software provides the timing and conversion to one and zeros, which can then be read by another system via the USB.

No, the arduino code (as posted) does nothing useful to the timing; it just sits in a loop reading the analogue input (note “analogRead(in)”) as fast as it can and outputing corresponding digital levels (“digitalWrite”). Which is an awful idea; I don’t know how quickly that loop runs but it will just add jitter to the output.

It is the USB-to-serial board there that is handling the timing, i.e. finding the start bits etc. and converting to bytes.

Edit; the ebus wiki site has some MUCH better circuits.
 

DIYnot Local

Staff member

If you need to find a tradesperson to get your job done, please try our local search below, or if you are doing it yourself you can find suppliers local to you.

Select the supplier or trade you require, enter your location to begin your search.


Are you a trade or supplier? You can create your listing free at DIYnot Local

 
Sponsored Links
Back
Top