I have a setup with 7 room controllers
Each controller has its own 'thermostat' function where it controls its own room temp.
Now I wanted to create a general function much like the old thermostats that, each day at 6am, the heating starts working.
I created a time object for this purpose like specified in the wiki here. If i read the value via knxweb2 objects tab it appears to work:
cur_date 2013-9-24 Current Date 1/1/201 11.001: date (EIS4)
cur_time 12:14:58 Current Time 1/1/200 10.001: time (EIS3)
I randomly copied that from somewhere and I already encountered the first issue in ETS4.
I cannot seem to enter a middle adress. All my lights for example are in the 1 main and 1/3 (office light) translates to 1/0/3 in linknx.
In ETS I can only define 1/200 and 1/201, not 1/1/200 and 1/1/201.
When monitoring my bus i noticed that each minute (the time update interval), two values are set on the bus, namely 1/456 and 1/457.
Provided that i solve this, or redefine the objects to 1/0/200 and 1/0/201. How do I now read these objects in ets/room controller and knxweb2.
For the room controller, it has an inputvalue called:
130 D.Input Time 3Byte
Do I now just create a group address in ETS at 1/1/201 and link this to this Input and it should work?
Secondly, I wanted to display the 'time on bus' in my knxweb2 page and created 2 subpage text parameters for the time and date objects and bound the text properties to those sub page parameters but they both give null.
Am I missing something with this?
Ultimately I would like to have my roomcontrollers switch to day mode at 6am based on the linknx timer but I'm currently not sure if I'll ever get it to work
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Jesus, I was typing an entire response but for some reason sf.net code blocks mess up xml.
Anyways
I fixed most of it
I created 3 values in the 3 main and created corresponsing group addresses in ETS4. I still don't know how to use the middle values other than 0 but at least this works
* Getting it to work in KnxWeb2
I was not aware that, in order to have feedback objects vlaues displayed you need to use $ parameters in the text parameter of the text widget (and in some cases a regex for the proper part of the value in the pattern part)
getting it updated on the bus
I used a rule like this http://pastie.org/8353775
It updates the time each minute. Beacuse I use a feedback object, my subpage updates nicely
Just one complaint. it does not prepad with 0 so you get
19:9 instead of 19:09
now, to display the time on these, you need to do a few things in ets.
1. edit the parameters and go to display. Choose your amount of display informate. I chose 2 for current temp and time
2. Edit your submenus (display 1, 2, ...) for the paramter you want
3. go to the group objects and search for a time input. Mine was 130.
4. Link this yo your cur_time group adress 3/0/200 in my case
5. download to device and voila, your time updates
Make the roomcontroller switch over to wanted mode
For this you can a byte operation. Knx rules specifye that there has to exist something like a "Force object operating mode" value. Here are those values
00 -> frost/heat protection
01 -> comfort
02 -> standby
03 -> night
04 -> frost/heat protection
I created an object for this
switch_over_byte 3 Switch Over Byte 3/0/202 6.xxx: 8bit signed integer (EIS14)
I'm not sure about the type but it was the closes I cound find and it worked
create a corresponding group adress in ETS4.
Go to your controller again in ETS and look for a group object that is name in the style of "operating mode forced object"
Remeber that using this will override everything (including open windows)
Link this to your object
When setting this via linknx/knxweb2/ets, it switched over to the right mode
Now i created a rule for this but it didn't work http://pastie.org/8353798
Can anyone tell my why?
i hope this was helpful for someone someday because while all these things are really neat, the learning curve on this is pretty steep
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I just executed the event via knxweb2 and it set the value
Why didn't it execute this morning at 6:15?
Do I need to specify that hour object somewhere?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Please check the log file, if the rule was executed. I would guess it was executed, but the value was not sent. This happens if 1) the value is the same as it was before and 2) the objects is not set as stateles (which means it sends every "set" not just state change. In such case you need to change it in KnxWeb2 design page or in linknx.xml definition (the object should have something like flag="crwtus".
My best guess is that you set it to 1 manually before and thus it was not sent again when the rule was executed.
Secondly I believe you need to change settings of your ETS - it allows for "simle" addressing (just two levels adress) and "full" (with middle adress) and "free". I don't know if this can be done in existing project, but when you are creating one, it asks for this.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have this in my linknx.xml but i see no logfile there
logging output="/var/log/linknx.log" maxfilesize="20000" maxfileindex="100" format="%d{%Y%m%d %H:%M:%S,%l} %5p %c %x: %m%n" level="INFO"
Last edit: Bart Demol 2013-09-25
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Under which user are you starting linknx? Can he write into /var/log? If you create the log file and chown it to the linknx user, does something appear up there? Perhaps you can try to start it by "linknx --daemon=/var/log/linknx.log --config=/etc/linknx.xml --write=/etc/linknx.xml" (provisionally as root)?
Nevertheless - if you set the object to 0 and the action executes - does it sets it to 1?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The problem was indeed that the value wasn't forced.
I'm now running linknx under a knx specific user that has admin rights and the scripts execute as they should
thanks
Last edit: Bart Demol 2013-10-23
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have a setup with 7 room controllers
Each controller has its own 'thermostat' function where it controls its own room temp.
Now I wanted to create a general function much like the old thermostats that, each day at 6am, the heating starts working.
I created a time object for this purpose like specified in the wiki here. If i read the value via knxweb2 objects tab it appears to work:
cur_date 2013-9-24 Current Date 1/1/201 11.001: date (EIS4)
cur_time 12:14:58 Current Time 1/1/200 10.001: time (EIS3)
I randomly copied that from somewhere and I already encountered the first issue in ETS4.
I cannot seem to enter a middle adress. All my lights for example are in the 1 main and 1/3 (office light) translates to 1/0/3 in linknx.
In ETS I can only define 1/200 and 1/201, not 1/1/200 and 1/1/201.
When monitoring my bus i noticed that each minute (the time update interval), two values are set on the bus, namely 1/456 and 1/457.
Provided that i solve this, or redefine the objects to 1/0/200 and 1/0/201. How do I now read these objects in ets/room controller and knxweb2.
For the room controller, it has an inputvalue called:
130 D.Input Time 3Byte
Do I now just create a group address in ETS at 1/1/201 and link this to this Input and it should work?
Secondly, I wanted to display the 'time on bus' in my knxweb2 page and created 2 subpage text parameters for the time and date objects and bound the text properties to those sub page parameters but they both give null.
Am I missing something with this?
Ultimately I would like to have my roomcontrollers switch to day mode at 6am based on the linknx timer but I'm currently not sure if I'll ever get it to work
Jesus, I was typing an entire response but for some reason sf.net code blocks mess up xml.
Anyways
I fixed most of it
I created 3 values in the 3 main and created corresponsing group addresses in ETS4. I still don't know how to use the middle values other than 0 but at least this works
* Getting it to work in KnxWeb2
I was not aware that, in order to have feedback objects vlaues displayed you need to use $ parameters in the text parameter of the text widget (and in some cases a regex for the proper part of the value in the pattern part)
getting it updated on the bus
I used a rule like this http://pastie.org/8353775
It updates the time each minute. Beacuse I use a feedback object, my subpage updates nicely
Just one complaint. it does not prepad with 0 so you get
19:9 instead of 19:09
displaying it on my roomcontroller
I have these puppies: Jung Compact Room Controller (adding name for other poor bastards that don't speak german and have 50% of the info in ETS4 in german). http://downloads.jung.de/public/en/pdf/productdocumentation/en_4093krtsd_td.pdf
now, to display the time on these, you need to do a few things in ets.
1. edit the parameters and go to display. Choose your amount of display informate. I chose 2 for current temp and time
2. Edit your submenus (display 1, 2, ...) for the paramter you want
3. go to the group objects and search for a time input. Mine was 130.
4. Link this yo your cur_time group adress 3/0/200 in my case
5. download to device and voila, your time updates
For this you can a byte operation. Knx rules specifye that there has to exist something like a "Force object operating mode" value. Here are those values
00 -> frost/heat protection
01 -> comfort
02 -> standby
03 -> night
04 -> frost/heat protection
I created an object for this
switch_over_byte 3 Switch Over Byte 3/0/202 6.xxx: 8bit signed integer (EIS14)
I'm not sure about the type but it was the closes I cound find and it worked
create a corresponding group adress in ETS4.
Go to your controller again in ETS and look for a group object that is name in the style of "operating mode forced object"
Remeber that using this will override everything (including open windows)
Link this to your object
When setting this via linknx/knxweb2/ets, it switched over to the right mode
Now i created a rule for this but it didn't work
http://pastie.org/8353798
Can anyone tell my why?
i hope this was helpful for someone someday because while all these things are really neat, the learning curve on this is pretty steep
I just executed the event via knxweb2 and it set the value
Why didn't it execute this morning at 6:15?
Do I need to specify that hour object somewhere?
Please check the log file, if the rule was executed. I would guess it was executed, but the value was not sent. This happens if 1) the value is the same as it was before and 2) the objects is not set as stateles (which means it sends every "set" not just state change. In such case you need to change it in KnxWeb2 design page or in linknx.xml definition (the object should have something like flag="crwtus".
My best guess is that you set it to 1 manually before and thus it was not sent again when the rule was executed.
Secondly I believe you need to change settings of your ETS - it allows for "simle" addressing (just two levels adress) and "full" (with middle adress) and "free". I don't know if this can be done in existing project, but when you are creating one, it asks for this.
I have this in my linknx.xml but i see no logfile there
logging output="/var/log/linknx.log" maxfilesize="20000" maxfileindex="100" format="%d{%Y%m%d %H:%M:%S,%l} %5p %c %x: %m%n" level="INFO"
Last edit: Bart Demol 2013-09-25
Under which user are you starting linknx? Can he write into /var/log? If you create the log file and chown it to the linknx user, does something appear up there? Perhaps you can try to start it by "linknx --daemon=/var/log/linknx.log --config=/etc/linknx.xml --write=/etc/linknx.xml" (provisionally as root)?
Nevertheless - if you set the object to 0 and the action executes - does it sets it to 1?
The problem was indeed that the value wasn't forced.
I'm now running linknx under a knx specific user that has admin rights and the scripts execute as they should
thanks
Last edit: Bart Demol 2013-10-23