Sensor for Vallox DigitSE RS485 ventilation system with integration into FHEM.
-
BTW finding an appropriate housing for your sensors is not very easy. Housings should be nice and fit into their environment. Therefore I put my gateway in a sporty metal adidas housing:
Later if found a sticker at the bottom of the box: "medium impact sports bra"!
Oups!@Heinz said:
sporty metal adidas housing:
I'd be worried about shorting against the walls of the can, and shielding my RF signals... But if it works and you like it... well there you go!
-
there is an external antenna for the radio...
-
@Heinz
Ha!looked like a cable to me at first glance!!
-
BTW finding an appropriate housing for your sensors is not very easy. Housings should be nice and fit into their environment. Therefore I put my gateway in a sporty metal adidas housing:
Later if found a sticker at the bottom of the box: "medium impact sports bra"!
Oups! -
The old book trick... very nice!
-
After some months of testing a little update:
I received some e-mails questioning the so called "heat recovery cell bypass" mode. There is a damper inside the device that can
is switched automatically by the vallox-controller to bypass the heat recovery cell (HRC) to avoid heating up the house during the
summer months. Well, when you open the device on a hot summer day you will probably see the damper in an obvious wrong position:
the air does not bypass the HRC! Huh! whats wrong here?Explanation:
The device tries to cool down the incoming air by leading it through the HRC which is still colder than the temperature outside. If the temperature outside is colder than the air inside the house the damper is switched to the expected position. There are two things to you have to do to make all that work correctly:- turn off heating mode (the LED of the left most button on your control device must be off)
- the HRC bypass temperature must be set to a value below the outside temperature (e.g. 14 degrees)
To illustrate that effect I logged the temperatures in FHEM:

Sorry for the german labels.
The first plot shows the damper position: blue background: HRC bypass is active.
The second plot shows the temperature outside the house (blue) and the temperature inside the house (red)As soon as the temperature outside is greater than the temperature inside the HRC bypass is deactivated to cool the incoming air by leading the air through the "colder" HRC.
The fourth diagram shows the temperature of the air that is entering the rooms (purple) and the temperature outside the house (blue).
You can see that the fresh air entering the rooms is lower than the temperature outside: the cooling effect works (even if it is only few degrees)To all guys thinking about how to control the damper on their own logic from a raspi or arduino. This is not neccessary as the vallox logic works very well.
-
Some people asked if the library is able to control other parameters than the fan speed. The answer is yes. The following screenshot shows my sliders and buttons in FHEM:

Sorry for the german labels again:
The first group shows the power state (ON/OFF), the heating-state (winter season=ON, summer season=OFF) and the HRC damper position (inactive=OFF). See last post.The second group shows some alerts (none at the moment)
the third group shows a button to switch between summer and winter season. The sliders control some temperature thresholds and other parameters.If you want to have a look at the bus data yourself you can download my sniffer tool which is a .Net port of the serial library described above under valloxserial.net
-
After some months of testing a little update:
I received some e-mails questioning the so called "heat recovery cell bypass" mode. There is a damper inside the device that can
is switched automatically by the vallox-controller to bypass the heat recovery cell (HRC) to avoid heating up the house during the
summer months. Well, when you open the device on a hot summer day you will probably see the damper in an obvious wrong position:
the air does not bypass the HRC! Huh! whats wrong here?Explanation:
The device tries to cool down the incoming air by leading it through the HRC which is still colder than the temperature outside. If the temperature outside is colder than the air inside the house the damper is switched to the expected position. There are two things to you have to do to make all that work correctly:- turn off heating mode (the LED of the left most button on your control device must be off)
- the HRC bypass temperature must be set to a value below the outside temperature (e.g. 14 degrees)
To illustrate that effect I logged the temperatures in FHEM:

Sorry for the german labels.
The first plot shows the damper position: blue background: HRC bypass is active.
The second plot shows the temperature outside the house (blue) and the temperature inside the house (red)As soon as the temperature outside is greater than the temperature inside the HRC bypass is deactivated to cool the incoming air by leading the air through the "colder" HRC.
The fourth diagram shows the temperature of the air that is entering the rooms (purple) and the temperature outside the house (blue).
You can see that the fresh air entering the rooms is lower than the temperature outside: the cooling effect works (even if it is only few degrees)To all guys thinking about how to control the damper on their own logic from a raspi or arduino. This is not neccessary as the vallox logic works very well.
-
@m26872
I modified the dark style. If you need the files I will upload em with a description how to integrate those. -
@m26872
I simply copied the dark style of FHEM and named it dark2:copy the following files to your FHEM subfolder www/pgm2
dark2style.css
dark2svg_defs.svg
dark2svg_style.cssIn your FHEM.cfg select this style for your WEB Frontend e.g.:
define WEB FHEMWEB 8083 global
attr WEB stylesheetPrefix dark2That's it.
If you want to have other plot colours edit the files starting with dark2svg... I think it is self explaining.
-
For those who want to have the FHEM files here they are:
_MYSENSOR_Vallox.cfg
simply place the file in FHEM's subfolder FHEM and include it your fhem.cfg:include ./FHEM/_MYSENSOR_Vallox.cfgAnd here are the plot files which have to be placed in the subfolder www\gplot
SVG_FileLog_Vallox_6.gplot
SVG_FileLog_Vallox_5.gplot
SVG_FileLog_Vallox_4.gplot
SVG_FileLog_Vallox_3.gplot
SVG_FileLog_Vallox_2.gplot
SVG_FileLog_Vallox_1.gplotYou will likely have to adapt the room and group names, and of course the german names, sorry for that.
-
For those who want to have the FHEM files here they are:
_MYSENSOR_Vallox.cfg
simply place the file in FHEM's subfolder FHEM and include it your fhem.cfg:include ./FHEM/_MYSENSOR_Vallox.cfgAnd here are the plot files which have to be placed in the subfolder www\gplot
SVG_FileLog_Vallox_6.gplot
SVG_FileLog_Vallox_5.gplot
SVG_FileLog_Vallox_4.gplot
SVG_FileLog_Vallox_3.gplot
SVG_FileLog_Vallox_2.gplot
SVG_FileLog_Vallox_1.gplotYou will likely have to adapt the room and group names, and of course the german names, sorry for that.
-
You can use this rs485 to usb adapter to control the vallox device, no problem there. But do you intend to use your windows pc as controller then? Or do you want to use the stick directly with fhem? this would require some software which takes the serial telegrams and imports the values into fhem... or any other homeautomation controller.
-
No, the Windows PC was only for testing and verifying that the RS485 Connection workes well.
My preferred solution would be this stick at the Raspberry Pi which is running the FHEM. Therefor I'd need a module to read the stream and interpret it in the FHEM format. Problem: I've never written a module. It would be possible somehow.. in some month. ;)
The alternate solution would be your mysensor system. Especially because its running and tested. Problem: The Hardware. I have no experience in arduino and absolutly no idea how to build such a board. Thats why I thought I could plug the stick to an arduino and make it magicly work. ;)
EDIT: Ok. It is easier than I thought to write this module. I'm working on it and the main functions should be finished this week. I'll publish it, if it is ready for testing.
-
No, the Windows PC was only for testing and verifying that the RS485 Connection workes well.
My preferred solution would be this stick at the Raspberry Pi which is running the FHEM. Therefor I'd need a module to read the stream and interpret it in the FHEM format. Problem: I've never written a module. It would be possible somehow.. in some month. ;)
The alternate solution would be your mysensor system. Especially because its running and tested. Problem: The Hardware. I have no experience in arduino and absolutly no idea how to build such a board. Thats why I thought I could plug the stick to an arduino and make it magicly work. ;)
EDIT: Ok. It is easier than I thought to write this module. I'm working on it and the main functions should be finished this week. I'll publish it, if it is ready for testing.
Ah ok I see. Probably you can get some help in the fhem forum. I also thought about doing this using a raspi... you could use the library to write a standalone exe which reads the serial stuff from usb and sets the values in fhem using the webinterface.
-
Hi,
here is my output:Opening port Port open Starting repeater (RNNRA-, 2.0.0) TSM:INIT TSM:RADIO:OK TSP:ASSIGNID:OK (ID=100) TSM:FPAR TSP:MSG:SEND 100-100-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc: TSP:MSG:READ 1-1-100 s=255,c=3,t=8,pt=1,l=1,sg=0:1 TSP:MSG:FPAR RES (ID=1, dist=1) TSP:MSG:PAR OK (ID=1, dist=2) TSP:MSG:READ 0-0-100 s=255,c=3,t=8,pt=1,l=1,sg=0:0 TSP:MSG:FPAR RES (ID=0, dist=0) TSP:MSG:PAR OK (ID=0, dist=1) TSP:MSG:READ 104-104-100 s=255,c=3,t=8,pt=1,l=1,sg=0:1 TSP:MSG:FPAR RES (ID=104, dist=1) TSP:MSG:READ 1-1-100 s=255,c=3,t=8,pt=1,l=1,sg=0:1 TSP:MSG:FPAR RES (ID=1, dist=1) TSM:FPAR:OK TSM:ID TSM:CHKID:OK (ID=100) TSM:UPL TSP:PING:SEND (dest=0) TSP:MSG:SEND 100-100-0-0 s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=ok:1 TSP:MSG:READ 0-0-100 s=255,c=3,t=25,pt=1,l=1,sg=0:1 TSP:MSG:PONG RECV (hops=1) TSP:CHKUPL:OK TSM:UPL:OK TSM:READY TSP:MSG:SEND 100-100-0-0 s=255,c=3,t=15,pt=6,l=2,sg=0,ft=0,st=ok:0100 !TSP:MSG:SEND 100-100-0-0 s=255,c=0,t=18,pt=0,l=5,sg=0,ft=0,st=fail:2.0.0 TSP:MSG:SEND 100-100-0-0 s=255,c=3,t=6,pt=1,l=1,sg=0,ft=1,st=ok:0 TSP:MSG:READ 0-0-100 s=255,c=3,t=6,pt=0,l=1,sg=0:M TSP:MSG:SEND 100-100-0-0 s=255,c=3,t=11,pt=0,l=15,sg=0,ft=0,st=ok:Vallox Digit SE TSP:MSG:SEND 100-100-0-0 s=255,c=3,t=12,pt=0,l=3,sg=0,ft=0,st=ok:2.5 TSP:MSG:SEND 100-100-0-0 s=0,c=0,t=4,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=1,c=0,t=6,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=2,c=0,t=6,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=3,c=0,t=6,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=4,c=0,t=6,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=5,c=0,t=23,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=6,c=0,t=23,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=7,c=0,t=23,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=8,c=0,t=3,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=9,c=0,t=3,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=10,c=0,t=3,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=11,c=0,t=3,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=12,c=0,t=23,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=13,c=0,t=23,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=14,c=0,t=23,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=15,c=0,t=23,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=24,c=0,t=4,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=25,c=0,t=4,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=26,c=0,t=4,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=27,c=0,t=4,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=28,c=0,t=4,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=29,c=0,t=4,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=30,c=0,t=4,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=31,c=0,t=4,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=32,c=0,t=4,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=33,c=0,t=23,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=34,c=0,t=23,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=35,c=0,t=23,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=36,c=0,t=23,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=37,c=0,t=23,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=38,c=0,t=23,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=39,c=0,t=23,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=40,c=0,t=4,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=41,c=0,t=23,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=42,c=0,t=23,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=43,c=0,t=23,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=44,c=0,t=23,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=45,c=0,t=23,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=46,c=0,t=23,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=47,c=0,t=23,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=48,c=0,t=23,pt=0,l=0,sg=0,ft=0,st=ok: TSP:MSG:SEND 100-100-0-0 s=49,c=0,t=23,pt=0,l=0,sg=0,ft=0,st=ok: Started cyclic update timer. Request registration... TSP:MSG:SEND 100-100-0-0 s=255,c=3,t=26,pt=1,l=1,sg=0,ft=0,st=ok:2 TSP:MSG:READ 0-0-100 s=255,c=3,t=27,pt=1,l=1,sg=0:1 Node registration=1 Init complete, id=100, parent=0, distance=1, registration=1 Dropped 0 Received telegram from 21->11 command=0 arg=A3 Received telegram from 11->21 command=A3 arg=29 Property 200 changed 41 Power state 1 TSP:MSG:SEND 100-100-0-0 s=8,c=1,t=2,pt=2,l=2,sg=0,ft=0,st=ok:1 CO2 adjust state 0 TSP:MSG:SEND 100-100-0-0 s=9,c=1,t=2,pt=2,l=2,sg=0,ft=0,st=ok:0 Humidity adjust state 0 TSP:MSG:SEND 100-100-0-0 s=10,c=1,t=2,pt=2,l=2,sg=0,ft=0,st=ok:0 Heating state 1 TSP:MSG:SEND 100-100-0-0 s=11,c=1,t=2,pt=2,l=2,sg=0,ft=0,st=ok:1 Filter guard indicator 0 TSP:MSG:SEND 100-100-0-0 s=12,c=1,t=24,pt=2,l=2,sg=0,ft=0,st=ok:0 Heating indicator 1 TSP:MSG:SEND 100-100-0-0 s=13,c=1,t=24,pt=2,l=2,sg=0,ft=0,st=ok:1 Fault indicator 0 TSP:MSG:SEND 100-100-0-0 s=14,c=1,t=24,pt=2,l=2,sg=0,ft=0,st=ok:0 Serivce reminder indicator 0 TSP:MSG:SEND 100-100-0-0 s=15,c=1,t=24,pt=2,l=2,sg=0,ft=0,st=ok:0 Received telegram from 21->11 command=0 arg=29 Received telegram from 11->21 command=29 arg=1 Received telegram from 21->11 command=0 arg=35 Received telegram from 11->21 command=35 arg=9D Temp incomming 19 TSP:MSG:SEND 100-100-0-0 s=4,c=1,t=0,pt=2,l=2,sg=0,ft=0,st=ok:19 Received telegram from 21->11 command=0 arg=71 Received telegram from 11->21 command=71 arg=0 Received telegram from 21->11 command=0 arg=A3 Received telegram from 11->21 command=A3 arg=29This is the output of the mysensors 2.0 version which can be downloaded from
https://github.com/windkh/mysensors/tree/master/ValloxSensorI wonder why your node has id=0.
-
Hi, my output ist now:
0 MCO:BGN:INIT REPEATER,CP=RNNRA--,VER=2.1.1
3 TSM:INIT
4 TSF:WUR:MS=0
12 TSM:INIT:TSP OK
13 TSF:SID:OK,ID=42
15 TSM:FPAR
52 TSF:MSG:SEND,42-42-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
2059 !TSM:FPAR:NO REPLY
2061 TSM:FPAR
2098 TSF:MSG:SEND,42-42-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
4105 !TSM:FPAR:NO REPLY
4107 TSM:FPAR
4143 TSF:MSG:SEND,42-42-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
6151 !TSM:FPAR:NO REPLY
6153 TSM:FPAR
6189 TSF:MSG:SEND,42-42-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
8197 !TSM:FPAR:FAIL
8198 TSM:FAIL:CNT=1
8200 TSM:FAIL:PDT
18203 TSM:FAIL:RE-INIT
18205 TSM:INIT
18212 TSM:INIT:TSP OK
18214 TSF:SID:OK,ID=42
18216 TSM:FPAR
18253 TSF:MSG:SEND,42-42-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
20261 !TSM:FPAR:NO REPLY
20263 TSM:FPAR
20300 TSF:MSG:SEND,42-42-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
22307 !TSM:FPAR:NO REPLY
22309 TSM:FPAR
22346 TSF:MSG:SEND,42-42-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
24353 !TSM:FPAR:NO REPLY
24355 TSM:FPAR
24392 TSF:MSG:SEND,42-42-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:I get no reply from the Vallox.
Is your original Vallox controller online



