ELV MAX! protocol description

Forum about the home automation suites by ELV etc

Moderator: jrkalf

Post Reply
MarnixT
Starting Member
Starting Member
Posts: 42
Joined: Thu Nov 22, 2012 1:45 am

Re: ELV MAX! protocol description

Post by MarnixT »

would it make sense to write a script to change the valve position of the radiator 1% each 30 minutes or so. It should then update the temperature?
matthijskooijman
Member
Member
Posts: 62
Joined: Tue Oct 18, 2011 10:07 am

Re: ELV MAX! protocol description

Post by matthijskooijman »

I considered that, but I do not think there is any way to update the valve position directly. AFAIU you can only change the set temperature, which causes the thermostat to update the valve position appropriately. Since there is some kind of controller system (probably some kind of PID controller) that controls the valve position, it might not be wise to change the set temperature regularly, since I think that, even if you change it back right away, the internal state is probably influenced. Also, forcing the thermostat to do a valve position change every 30 minutes might be bad for battery life as well.

I'm thinking that the ELV Max! system is useful if you want to set temperatures and let the thermostats determine the valve positions from that, but if you want more control, the system is perhaps not so useful (not sure if there are useful alternatives, though).

For getting the actual temperatures in my house, I'm planning to buy a few wall thermostats and only use them in the two or three most important rooms for measurements. As an additional advantage, their temperature sensors are not attached to the radiator, which should make them more reliable anyway.
pfwolbers
Starting Member
Starting Member
Posts: 7
Joined: Wed Nov 16, 2011 3:10 pm

Re: ELV MAX! protocol description

Post by pfwolbers »

matthijskooijman wrote:It looks like the current temperature is listed in the L-response. However, as stated before, it is usually outdated for the radiator thermostats, since they only send it over when their valve position changes. For the Wall thermostats, the value is accurate, since those send updates every couple of minutes. Additionally, it seems that for radiator thermostats connected to a wall thermostat, the radiator thermostat doesn't send out its own measured value, but just forwards whatever the wall thermostat has sent them (but again, only when changing valve position).

For wall thermostats, the lower 8 bits of the actual temperature are sent as the last byte (position C) in the L-response (one extra byte compared to the radiator thermostats). There should be a 9th MSB (for temperatures >25.5°), but I'm not sure where that one is yet. For radiator thermostats, these bytes are in position A, the middle date/time byte. This suggests that when a radiator thermostat is in temporary/vacation mode, the actual temperature is not present (this is the case with the RF packets as well).

For reference, below is the L-response sent out by my cube shortly after I sniffed the below two RF packets. Note that the third device in the L-response has 00 00 00 as its last bytes (so no actual temperature there), presumably because the cube hasn't been powered on for long and the thermostat hasn't sent over its status yet.

Code: Select all

$ echo DAKY5QkSGAQmAAAAvQsBMbQJEhgcJADUAAsEyN0JEhgnJgAAAA== | base64 -d | hd
00000000  0c 02 98 e5 09 12 18 04  26 00 00 00 bd 0b 01 31  |........&......1|
00000010  b4 09 12 18 1c 24 00 d4  00 0b 04 c8 dd 09 12 18  |.....$..........|
00000020  27 26 00 00 00                                    |'&...|
00000025

Sequence num:   AC
Flags:          04
Packet type:    42 (WallThermostatState)
Packet from:    0298E5
Packet to:      04C8DD
Group id:       00
SeReceived 15 bytes
F3 4D 19 D8 EF 1D D6 20 22 A7 D2 1F CD A1 5F       .M..... "....._

Dewhitened:
0C AC 04 42 02 98 E5 04 C8 DD 00 26 BD 36 08       ...B.......&.6.

Sequence num:   AC
Flags:          04
Packet type:    42 (WallThermostatState)
Packet from:    0298E5
Packet to:      04C8DD
Group id:       00
Set temp:       19.0
Actual temp:    18.9
t temp:       19.0
Actual temp:    18.9


Dewhitened:
0F 00 04 60 01 31 B4 00 00 00 00 18 1C 24 00 D4    ...`.1.......$..
DF 19                                              ..

Sequence num:   00
Flags:          04
Packet type:    60 (ThermostatState)
Packet from:    0131B4
Packet to:      000000
Group id:       00
Mode:           auto
Adjust to DST:  0
Locked:         0
Battery Low:    0
Valve position: 28%
Set temp:       18.0
Actual temp:    21.2


This lists a wall thermostat (length 0c) and two radiator thermostats (length 0b)

I think temperatures above 25,5 degrees are marked in the byte before "D4". It is well above 25,5 degrees at mine thermostat has an 1 in the first byte.
Massi
Member
Member
Posts: 51
Joined: Tue Nov 05, 2013 4:01 pm

Re: ELV MAX! protocol description

Post by Massi »

Hi all,
i'm having some problems fetching the "until date" info from the L response.
Day, month and time data are correct, but i obtain a year 2007 instead of 2014 and i cannot figure out why..
For example, these are my L response data for wall thermostat

Code: Select all

0c 07 dd 61 09 12 1a 04 28 17 8e 2c c1
and radiator thermostat (+)

Code: Select all

0b 07 74 41 09 12 1a 2a 28 17 8e 2c 
AFAIK, 17 and 8e are the 2 bytes regarding date until
2c is the byte regarding time until.
So:

17 -> 00010111
8e -> 10001110
Time -> 22 (that's right)
Day -> 23 (that's right)
Month -> 1 (that's right)
Year -> 7 (that's just 7 year wrong :))

What am i missing?
I just used the date/time conversion info in the first post..
matthijskooijman
Member
Member
Posts: 62
Joined: Tue Oct 18, 2011 10:07 am

Re: ELV MAX! protocol description

Post by matthijskooijman »

Looking at my own code, the year is the lower 6 bytes of the second byte, so 0x8e & 0x3f == 0xe == 14

Looking at the original post in this thread, it says:
Year : (value & 0Fh)+2000d
So I think that means: 0x178e & 0x0F == 0xE. So value is _both_ bytes (in big endian ;-p), not just the first one.
Massi
Member
Member
Posts: 51
Joined: Tue Nov 05, 2013 4:01 pm

Re: ELV MAX! protocol description

Post by Massi »

lol i just lost the unused bit so i was reading from 9 to 15 and not from 10 to 16 :)
thank you so much!
I didn't know your code, i'll take a look :)
I'm quite over with reading data from the cube, now i have to think to SENDING commands :)
MarnixT
Starting Member
Starting Member
Posts: 42
Joined: Thu Nov 22, 2012 1:45 am

Re: ELV MAX! protocol description

Post by MarnixT »

thanks to Robert Hekkers code I got some responses from my cube. It seems the cube confirms the s: command with S:. Sorry if I missed it, but doesn't seem to be mentioned in this thread. What does it mean?

Code: Select all

> s:AARAAAAABjVGBGEAAAA= (temp=16,5)
< S:07,0,31
also got

Code: Select all

S:01,0,31
last time I tried
pbrand
Member
Member
Posts: 100
Joined: Wed Oct 01, 2008 10:17 pm
Location: Netherlands
Contact:

Re: ELV MAX! protocol description

Post by pbrand »

Digit wrote:

Code: Select all

00: 56 02 01 01 0A 48 6F 62 62 79 6B 61 6D 65 72 00 | V....Hobbykamer.
10: 35 08 01 01 00 35 08 49 45 51 30 31 30 39 31 32 | 5....5.IEQ010912
20: 35 0C 54 68 65 72 6D 6F 73 74 61 74 20 31 01 01 | 5.Thermostat 1..
Hi Robert,

Can you tell me how you create output like the above so a combination of hex and ASII? Do you use a tool for this? I want to create similar output but can't seem to find a tool which handles this.
matthijskooijman
Member
Member
Posts: 62
Joined: Tue Oct 18, 2011 10:07 am

Re: ELV MAX! protocol description

Post by matthijskooijman »

pbrand, on Linux the "hd" (hexdump) tool can generate this output from a raw binary file. I think the "xxd" command also supports it. Also, it's the same format used by many (graphical) hexeditors on different platforms, perhaps you can find one for your platform?
pbrand
Member
Member
Posts: 100
Joined: Wed Oct 01, 2008 10:17 pm
Location: Netherlands
Contact:

Re: ELV MAX! protocol description

Post by pbrand »

Thanks Matthijs.

I already tried every hex editor for windows I could find. They all support displaying such output. But neither of them supports outputting it to a text file.

I´ll have a look at xxd to see if I figure it out. Or perhaps try hd on a linux system (although not quite my cup of tea).

Update: Found a windows command tool called hexdump which seems to do the trick quite nicely :)
User avatar
Rene
Global Moderator
Global Moderator
Posts: 1689
Joined: Wed Oct 08, 2008 3:54 pm
Location: Netherlands

Re: ELV MAX! protocol description

Post by Rene »

This is the typical output of Wireshark, a network sniffer.
Rene.
Massi
Member
Member
Posts: 51
Joined: Tue Nov 05, 2013 4:01 pm

Re: ELV MAX! protocol description

Post by Massi »

i found out that in C response of the cube are present also configuration data of the eco switch.
Btw, i'm lost in trying to send commands to the cube. Haven't found any doc, can you help me?
thanks
Digit
Global Moderator
Global Moderator
Posts: 3388
Joined: Sat Mar 25, 2006 10:23 am
Location: Netherlands
Contact:

Re: ELV MAX! protocol description

Post by Digit »

That's the output of a self-made routine which can 'hex dump' an array of bytes.
ceemjay
Starting Member
Starting Member
Posts: 8
Joined: Tue Jan 01, 2013 4:43 pm

Re: ELV MAX! protocol description

Post by ceemjay »

I looked at this topic a year ago but then discovered MAX!Buddy and have been using that for a year now. However there are few English posts on the forum and most of my posts are unanswered.

I am still looking for a way to extract temperatures from the valves - perhaps I could do it with a Buddy script but haven't had the time to investigate that with the language difficulties.

Has anyone found a way - or are there other tools - that will allow me to get temperature regularly and accurately?

I am using a Belkin WeMo switch to act as a 7 day programmer with web page to switch on and off on demand. I would like to add the code to switch on and off based on room temperatures.

If anyone is interest in the WeMo I have setup a forum http://wemo.forumatic.com specifically for that device (though maybe it should go on this forum!!)

thanks -- sorry for being a bit off-topic

ceemjay
blb
Member
Member
Posts: 145
Joined: Fri Nov 19, 2010 2:01 pm

Re: ELV MAX! protocol description

Post by blb »

It's not a protocol description but you can find some additional informaton in my homeseer script, if give the latest know "IST" temp. By changing SET temp or change auto / manuel you can "force" the thermosat to provide the "IST" temp more regular. I have found some info about that of the fhem implementation, but not looked into the details yet.
Bernard
Post Reply

Return to “Homematic, FS20, FHT, ESA and ELV”