Figure out clocking relay

Hi all,

in our home we have a decalcification machine (“Judo Zewa”), connected to KNX via 2 potential-free relays and corresponding binary inputs.

Depending on the relation of being closed/opened (“clocking”) of such a relay, I as a human being can look up in a table to find an interpretation of the error/warning messages. Sometimes both are combined to express a message.

But how to figure out via openhab?

Items look like this:
Contact S_Judo_Zewa_Relais1 “Relais 1 [MAP(]” {knx=“10/0/1”}
Contact S_Judo_Zewa_Relais2 “Relais 2 [MAP(]” {knx=“10/0/2”}

On page 15 there are two tables of LED “red” and LED “green”. These are representatives of the relays.

Relay 1 clocks 3 times means XXXX
Relay 1 is closed and relay 2 is clocking 2 times means YYYY

Is it possible to get to known, based on clocking, the combination between both relays in order to further make decisions in openhab?


if you mean you want to determine what “tick” means, then you have to do this via a rule. First, know how many ticks per duration does what. I do this for my water heater (honeywell controller). Per 3 seconds, different # of blinks mean something. So what I do is count the number of blinks per that 3 second duration. Is this what you are looking for?

Similar, yes.

Basic principle here is 1xhigh=1 sec, 1xlow=1 sec, 4 sec. break between clocking.

Here a two examples

I already thought about a final state machine, but this task is not only event-driven, I think.
Do you have an idea?

I see. So the only constant state here is the break, and the duration for highs and lows but the entire transmission could take any # of seconds.

Here’s what you can do. You can attempt to look for that 4-sec break. THat’s only indicator you are on a fresh state since the your code could basically start listening at the middle of the message. Also, you have to ensure from the specs/docs that every message must NOT end with a low, since the 4-sec break will account for that too.

Can you give/provide the table? Does your table account for lows also, or just highs? For example, in Morse code, both shorts and longs have different meanings. But if your table only account for total # of highs, and not a combination of high-low sequence, then this is just a matter of counting it per the 4-sec break cycle.

For the Honeywell water heater I monitor. It’s just the total # of highs so it was easy.

Give me the table and I’ll cook something for you

Here are all the states that can occur, I put them in the table below.
From an abstract perspective I can follow your thinking, but it’s too long ago for me to write a piece of code in openhab.
Hope, you can give me some skeleton to proceed with :slight_smile:


For my washing machine, following hint was helpful, but this seems to be the easier option to argue with mA-values, because timing seems to be quite challenging.

I’ll try to come up with something. Based on your table and other info from this thread, the worst case scenario for entire message duration would be 15 seconds (from 12). For “clocking,” longest duration would be 5 highs and 4 lows + the 5 sec break = 14 seconds. Red and Green clocks are independent? Or does it wait for each other to “finish?”

As far as I understand, it’s 4 sec. break, so max. 13 secs.Both clocks are identical. Saym if both are clocking, the LEDs=relays are on and off at the same point of time.

Your table above says “5 sec. break” though. Either way, I’ll post the code and let you change the config/values

The 5 secs are only for state #9 to my understanding.

BTW - I found the English manual:

Did you find the time to give some advice to solve this subject?

Can anybody help?


Anybody an idea with this issue?