ELV MAX! protocol description
Moderator: jrkalf
Re: ELV MAX! protocol description
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?
-
- Member
- Posts: 62
- Joined: Tue Oct 18, 2011 10:07 am
Re: ELV MAX! protocol description
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.
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.
Re: ELV MAX! protocol description
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.This lists a wall thermostat (length 0c) and two radiator thermostats (length 0b)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
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.
Re: ELV MAX! protocol description
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
and radiator thermostat (+)
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..
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
Code: Select all
0b 07 74 41 09 12 1a 2a 28 17 8e 2c
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..
-
- Member
- Posts: 62
- Joined: Tue Oct 18, 2011 10:07 am
Re: ELV MAX! protocol description
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:
Looking at the original post in this thread, it says:
So I think that means: 0x178e & 0x0F == 0xE. So value is _both_ bytes (in big endian ;-p), not just the first one.Year : (value & 0Fh)+2000d
Re: ELV MAX! protocol description
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

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

Re: ELV MAX! protocol description
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?
also got
last time I tried
Code: Select all
> s:AARAAAAABjVGBGEAAAA= (temp=16,5)
< S:07,0,31
Code: Select all
S:01,0,31
Re: ELV MAX! protocol description
Hi Robert,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..
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.
Peter.
http://www.adreamerslair.nl
http://www.adreamerslair.nl
-
- Member
- Posts: 62
- Joined: Tue Oct 18, 2011 10:07 am
Re: ELV MAX! protocol description
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?
Re: ELV MAX! protocol description
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
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

Peter.
http://www.adreamerslair.nl
http://www.adreamerslair.nl
Re: ELV MAX! protocol description
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
Btw, i'm lost in trying to send commands to the cube. Haven't found any doc, can you help me?
thanks
Re: ELV MAX! protocol description
That's the output of a self-made routine which can 'hex dump' an array of bytes.
Re: ELV MAX! protocol description
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
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
Re: ELV MAX! protocol description
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