ELV MAX! protocol description

Forum about the home automation suites by ELV

Moderator: jrkalf

Re: ELV MAX! protocol description

Postby MarnixT » Sun May 05, 2013 11:02 am

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?
MarnixT
Starting Member
Starting Member
 
Posts: 42
Joined: November 2012

Re: ELV MAX! protocol description

Postby matthijskooijman » Sun May 05, 2013 2:27 pm

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.
matthijskooijman
Member
Member
 
Posts: 62
Joined: October 2011

Re: ELV MAX! protocol description

Postby pfwolbers » Tue Jul 09, 2013 6:57 pm

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.
pfwolbers
Starting Member
Starting Member
 
Posts: 7
Joined: November 2011

Re: ELV MAX! protocol description

Postby Massi » Thu Jan 23, 2014 9:49 pm

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..
Massi
Member
Member
 
Posts: 51
Joined: November 2013

Re: ELV MAX! protocol description

Postby matthijskooijman » Thu Jan 23, 2014 9:58 pm

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.
matthijskooijman
Member
Member
 
Posts: 62
Joined: October 2011

Re: ELV MAX! protocol description

Postby Massi » Thu Jan 23, 2014 10:41 pm

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 :)
Massi
Member
Member
 
Posts: 51
Joined: November 2013

Re: ELV MAX! protocol description

Postby MarnixT » Tue Jan 28, 2014 12:03 am

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
MarnixT
Starting Member
Starting Member
 
Posts: 42
Joined: November 2012

Re: ELV MAX! protocol description

Postby pbrand » Tue Jan 28, 2014 12:42 pm

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.
pbrand
Member
Member
 
Posts: 100
Joined: October 2008
Location: Netherlands

Re: ELV MAX! protocol description

Postby matthijskooijman » Tue Jan 28, 2014 1:37 pm

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?
matthijskooijman
Member
Member
 
Posts: 62
Joined: October 2011

Re: ELV MAX! protocol description

Postby pbrand » Tue Jan 28, 2014 1:47 pm

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 :)
pbrand
Member
Member
 
Posts: 100
Joined: October 2008
Location: Netherlands

Re: ELV MAX! protocol description

Postby Rene » Tue Jan 28, 2014 3:28 pm

This is the typical output of Wireshark, a network sniffer.
Rene.
User avatar
Rene
Global Moderator
Global Moderator
 
Posts: 1689
Joined: October 2008
Location: Netherlands

Re: ELV MAX! protocol description

Postby Massi » Tue Jan 28, 2014 4:04 pm

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
Massi
Member
Member
 
Posts: 51
Joined: November 2013

Re: ELV MAX! protocol description

Postby Digit » Tue Jan 28, 2014 10:36 pm

That's the output of a self-made routine which can 'hex dump' an array of bytes.
User avatar
Digit
Global Moderator
Global Moderator
 
Posts: 3388
Joined: March 2006
Location: Netherlands

Re: ELV MAX! protocol description

Postby ceemjay » Thu Jan 30, 2014 9:19 pm

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
ceemjay
Starting Member
Starting Member
 
Posts: 8
Joined: January 2013

Re: ELV MAX! protocol description

Postby blb » Thu Jan 30, 2014 11:18 pm

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
blb
Member
Member
 
Posts: 140
Joined: November 2010

PreviousNext

Return to FS20, FHT, ESA and ELV

Who is online

Users browsing this forum: No registered users and 1 guest