<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Configuration</title><link>https://sourceforge.net/p/linknx/wiki/Configuration/</link><description>Recent changes to Configuration</description><atom:link href="https://sourceforge.net/p/linknx/wiki/Configuration/feed" rel="self"/><language>en</language><lastBuildDate>Fri, 20 Jun 2014 06:26:43 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/linknx/wiki/Configuration/feed" rel="self" type="application/rss+xml"/><item><title>Configuration modified by Damago</title><link>https://sourceforge.net/p/linknx/wiki/Configuration/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v8
+++ v9
@@ -73,6 +73,8 @@

 ## Objects definition section

+This is the main part of the linknx configuration. All KNX objects that linknx interacts with (in the rules) and which can be accessed by the web visualisation [KnxWeb] are defined here. 
+
 Here is an example of objects definition section: 

     &amp;lt;objects&amp;gt;
@@ -92,11 +94,16 @@

 ## Rules section

-A rule is composed of: 
+Rules section is a place where building automatisation is created. You can define what happens when state of some KNX objects has changed, define actions to be performed during specific time periods etc. It consists of a rules each defining some specific condition and action to be performed when the condition had been met. 
+
+A simplest rule is composed of: 

   * one condition 
-  * an (optional) action list to be executed when the condition is evaluated as true 
-  * and another optional action list to be executed when the condition is evaluated as false 
+  * an action list to be executed when the condition is evaluated as true 
+
+however more complicated scenarios can be created as described in [Rules_section] 
+
+A sample rule: 

             &amp;lt;rule id="xxxx"&amp;gt;
                 &amp;lt;condition type="...."&amp;gt;
@@ -111,89 +118,4 @@
                 &amp;lt;/actionlist&amp;gt;
             &amp;lt;/rule&amp;gt;

-The following condition's types are available (see [Condition's_Syntax] section): 
-
-  * object: true if the object has the specified value (
-        
-                &amp;lt;rule id="cur_time_date"&amp;gt;
-        
-    
-               &amp;lt;condition type="timer" trigger="true"&amp;gt;
-                   &amp;lt;every&amp;gt;3600&amp;lt;/every&amp;gt;
-               &amp;lt;/condition&amp;gt;
-               &amp;lt;actionlist&amp;gt;
-                   &amp;lt;action type="set-value" id="cur_time" value="now" /&amp;gt;
-                   &amp;lt;action type="set-value" id="cur_date" value="now" /&amp;gt;
-               &amp;lt;/actionlist&amp;gt;
-    
-
-&amp;lt;/rule&amp;gt;
-
-This rule will trigger and evaluate to true every 3600 seconds. The configured actions will then send current time/date on the KNX bus. 
-
-Now we can have a look at a more complex timer condition: 
-    
-            &amp;lt;rule id="heating_morning"&amp;gt;
-                &amp;lt;condition type="and"&amp;gt;
-                    &amp;lt;condition type="object" id="heating_auto" value="on" /&amp;gt;
-                    &amp;lt;condition type="or"&amp;gt;
-                        &amp;lt;condition type="timer" trigger="true"&amp;gt;
-                            &amp;lt;at hour="6" min="30" exception="no" wdays="12345" /&amp;gt;
-                            &amp;lt;until hour="8" min="0" /&amp;gt;
-                        &amp;lt;/condition&amp;gt;
-                        &amp;lt;condition type="timer" trigger="true"&amp;gt;
-                            &amp;lt;at hour="8" min="0" wdays="67" /&amp;gt;
-                            &amp;lt;until hour="12" min="0" /&amp;gt;
-                        &amp;lt;/condition&amp;gt;
-                        &amp;lt;condition type="timer" trigger="true"&amp;gt;
-                            &amp;lt;at hour="8" min="0" exception="yes" /&amp;gt;
-                            &amp;lt;until hour="12" min="0" /&amp;gt;
-                        &amp;lt;/condition&amp;gt;
-                    &amp;lt;/condition&amp;gt;
-                &amp;lt;/condition&amp;gt;
-                &amp;lt;actionlist&amp;gt;
-                    &amp;lt;action type="set-value" id="heating_kitchen" value="comfort" /&amp;gt;
-                    &amp;lt;action type="set-value" id="heating_living" value="standby" /&amp;gt;
-                    &amp;lt;action type="set-value" id="heating_bathroom" value="on" /&amp;gt;
-                    &amp;lt;action type="set-value" id="heating_bedroom1" value="comfort" /&amp;gt;
-                    &amp;lt;action type="set-value" id="heating_bedroom2" value="comfort" /&amp;gt;
-                &amp;lt;/actionlist&amp;gt;
-                &amp;lt;actionlist type="on-false"&amp;gt;
-                    &amp;lt;action type="set-value" id="heating_kitchen" value="frost" /&amp;gt;
-                    &amp;lt;action type="set-value" id="heating_living" value="frost" /&amp;gt;
-                    &amp;lt;action type="set-value" id="heating_bathroom" value="off" /&amp;gt;
-                    &amp;lt;action type="set-value" id="heating_bedroom1" value="frost" /&amp;gt;
-                    &amp;lt;action type="set-value" id="heating_bedroom2" value="frost" /&amp;gt;
-                &amp;lt;/actionlist&amp;gt;
-            &amp;lt;/rule&amp;gt;
-
-This rule will only execute its action lists at specific times, but if heating_auto object is "on".  
-First action list will be executed: 
-
-  * At 6:30 am every week day that is not flagged as an exception day in "services" section 
-  * At 8:00 am every weekend day or day flagged as an exception day 
-
-Second action list will be executed: 
-
-  * At 8:00 am every week day that is not flagged as an exception day in "services" section 
-  * At 12:00 am every weekend day or day flagged as an exception day 
-
-Note that the object condition on "heating_auto" has no trigger flag. This means that if "heating_auto" is turned on at 7:00 am a week day, the action list will not be executed at that time because the rule is not evaluated on change of "heating_auto"'s value. 
-
-Last example, this time with a "dim-up" action: 
-    
-            &amp;lt;rule id="wakeup_alarm"&amp;gt;
-                &amp;lt;condition type="and"&amp;gt;
-                    &amp;lt;condition type="object" id="absence" value="off" /&amp;gt;
-                    &amp;lt;condition type="object" id="wakeup_active" value="on" /&amp;gt;
-                    &amp;lt;condition type="timer" trigger="true"&amp;gt;
-                        &amp;lt;at hour="6" min="30" exception="no" wdays="12345" /&amp;gt;
-                    &amp;lt;/condition&amp;gt;
-                &amp;lt;/condition&amp;gt;
-                &amp;lt;actionlist&amp;gt;
-                    &amp;lt;action type="dim-up" id="dim_value_bedroom2"
-                        start="0" stop="240" duration="1800" /&amp;gt;
-                &amp;lt;/actionlist&amp;gt;
-            &amp;lt;/rule&amp;gt;
-
-This rule will start dimming the bedroom light progressively from 0 to 94% (=240/255) during half an hour (=1800 sec). It will only execute at 6:30 am every week day that is not flagged as an exception day, if it is activated (`wakeup_active on`) and if we are at home (`absence off`). 
+The detailed syntax, and a full list of condition and action types is available on the [Rules_section] page. 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Damago</dc:creator><pubDate>Fri, 20 Jun 2014 06:26:43 -0000</pubDate><guid>https://sourceforge.nete67735ea4ce0dafd33bb4851a67d6643d3d9dab4</guid></item><item><title>Configuration modified by Damago</title><link>https://sourceforge.net/p/linknx/wiki/Configuration/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v7
+++ v8
@@ -18,6 +18,8 @@
 [TOC]

 ## Services section
+
+Services section is responsible for defining the majority of linkx options (like exception days, type of persistence files, ip and port where XML interface is presented to the outside world), and for configuring all connections to external services uded by the server: like connection to backend KNX bus, i/o ports used, sms gateway etc. 

 Here is an example of services section 

@@ -54,77 +56,20 @@
             &amp;lt;/ioports&amp;gt;
         &amp;lt;/services&amp;gt;

-The **smsgateway** element configures sms service allowing to send text messages to mobile phones. Currently, only the [Clickatell](http://www.clickatell.com/) [HTTP API](http://www.clickatell.com/solutions/developers/api_http.php) is implemented and requires [libcurl](http://curl.haxx.se/) to work.  
-The **emailserver** element configures email service via an external SMTP server. The "host" parameter must contain server name AND port number. This feature requires [libesmtp](http://www.stafford.uklinux.net/libesmtp/) to work.  
-SMTP authentication (optional) can be configured by adding login="xxxx" and pass="yyy" in config of emailserver.  
-The **xmlserver** element configures the interface to access linknx using the XML based protocol. Type can be "inet" or "unix". For "inet", the port parameter is the TCP port the server will listen on (default = 1028). For "unix", the port parameter must contain the unix socket path (default /tmp/xmlserver.sock)  
-The **knxconnection** element configures the connection to EIBD. The url parameter can be "local:/path/to/unix/socket" if EIBD uses unix sockets or "ip:ip-address:port" if EIBD uses internet sockets (port is optional; default = 6720)  
-The **exceptiondays** element contains a list of days requiring special behavior. The timer conditions in the rules section can be configured to ignore exceptiondays or to evaluate as true or false in case of exceptiondays. Missing day, month or year parameter in a date element is considered as wildcard.  
-The **ioports** element contains a list of IO ports. See [IO_Ports] for more details.  
-The **location** element defines physical location of KNX installation (latitude and longitude in degrees, values have to be negative for south and westerh hemisphere respectively). This is needed for calculation of **sunrise**, **sunset** and **noon** time specification for conditions etc.  
-The **persistence** element defines where linknx stores it's persistent status information and/or logs. persistence type "**file**" stores values on the filesystem. The **path** attribute tells where to store persistent status and the **logpath** attribute tells where to store object's history logs. By default, **path** equals /var/lib/linknx/persist and **logpath** equals to **path**.  
-Under this directory, a file with the object id as name will be created for each persistent object (object with attribute init="persist"). This file contains the object's current value.  
-Under the logpath directory, a file with the object id as name and extension ".log" will be created for each logged object (object with attribute log="true"). This file contains the history of the object in format "yyyy-mm-dd hh:mm:ss &amp;gt; value".  
-
-    
-    &amp;lt;persistence type="file" path="/var/lib/linknx/persist/" logpath="/var/lib/linknx/logs/" /&amp;gt;
-
-Since release 0.0.1.23, persistence type "**mysql**" is also supported (experimental).  
-Details in [Mysql_persistence] page 
+Detailed definition of the services and their syntax is explained on [Services_section] page. 

 ## Logging section

-Linknx support 2 different logging back-ends: 
+Logging section is responsible for controlling the creation and format of log files. Linknx support 2 different logging back-ends: 

   * Internal logger 
   * log4cpp external library 

-The choice between these 2 possibilities is made at compilation time. By default, the configure script will auto-detect the presence of the log4cpp library and use it if available. You can force log4cpp by passing --with-log4cpp option to configure script or disable it with option --without-log4cpp. 
-
-With Internal logger, the following parameters are available: 
-    
-    &amp;lt;logging format="simple" level="WARN"/&amp;gt;
-
-If parameter format is omitted or its value is different from "simple", the timestamp will be added in front of each log line.  
-The parameter level determine the minimum level of logging. The valid values are "DEBUG", "INFO", "NOTICE", "WARN" and "ERROR". The default value is "INFO". The level "DEBUG" is disabled in normal builds when using the internal logger.  
-The log messages for level ERROR or WARN go to stderr, all other messages go to stdout. 
-
-With log4cpp logger, the logging configuration looks like this: 
-    
-     &amp;lt;logging output="/var/log/linknx.log" format="%d{%Y%m%d %H:%M:%S,%l} %5p %c %x: %m%n" level="INFO"/&amp;gt;
-    
-
-The allowed parameters are: 
-
-  * output: the log file to write. Default=stdout 
-  * format: the logging format value can be "simple", "basic" or a pattern like in the example above. 
-  * level: the minimum level of logging. The valid values are "DEBUG", "INFO", "NOTICE", "WARN" and "ERROR". Default=INFO 
-  * maxfilesize: maximum size of a log file (in kb). When the size is reached, the logs are rotated 
-  * maxfileindex: maximum index of log files kept. Default=10 
-
-The format pattern syntax allows the following fields: 
-
-  * **%%%%** \- a single percent sign 
-  * **%c** \- the category 
-  * **%d** \- the date &amp;gt; Date format: The date format character may be followed by a date format specifier enclosed between braces. For example, %d{%H:%M:%S,%l} or %d{%d %m %Y %H:%M:%S,%l}. If no date format specifier is given then the following format is used: "Wed Jan 02 02:03:55 1980". The date format specifier admits the same syntax as the ANSI C function strftime, with 1 addition. The addition is the specifier %l for milliseconds, padded with zeros to make 3 digits. 
-  * **%m** \- the message 
-  * **%n** \- the platform specific line separator 
-  * **%p** \- the priority 
-  * **%r** \- milliseconds since this layout was created. 
-  * **%R** \- seconds since Jan 1, 1970 
-  * **%u** \- clock ticks since process start 
-  * **%x** \- the [NDC](http://log4cpp.sourceforge.net/api/classlog4cpp_1_1NDC.html) || 
-
-format="simple" corresponds to "%p - %m%n" and format="basic" to "%R %p %c %x: %m%n".  
-The default value (if format is not specified or empty) is "%d [%5p] %c: %m%n"  
-More details about pattern layout can be found in [log4j documentation](http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.html) but some of them are not supported by log4cpp 
-
-If parameter "config" is used, the value of that parameter is used as the name of the file containing log4cpp configuration. All other parameters are ignored. A sample configuration file that logs all warning and errors to a file and everything to the console can be found in linknx/conf/logging.conf (See [log4cpp configuration](http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PropertyConfigurator.html#doConfigure%28java.lang.String,%20org.apache.log4j.spi.LoggerRepository) for more details): 
+Example logging section is here: 

     &amp;lt;logging config="/var/lib/linknx/logging.conf"/&amp;gt;

-  
-
+Detailed syntax is explained in [Logging_section] page. 

 ## Objects definition section

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Damago</dc:creator><pubDate>Fri, 20 Jun 2014 06:26:43 -0000</pubDate><guid>https://sourceforge.net8f8452f93baa6dfb8923863275688383b51453bc</guid></item><item><title>Configuration modified by jef2000</title><link>https://sourceforge.net/p/linknx/wiki/Configuration/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v6
+++ v7
@@ -67,7 +67,7 @@
 Under the logpath directory, a file with the object id as name and extension ".log" will be created for each logged object (object with attribute log="true"). This file contains the history of the object in format "yyyy-mm-dd hh:mm:ss &amp;gt; value".

-    &amp;lt;persistence type="file" path="/var/lib/linknx/persist/" path="/var/lib/linknx/logs/" /&amp;gt;
+    &amp;lt;persistence type="file" path="/var/lib/linknx/persist/" logpath="/var/lib/linknx/logs/" /&amp;gt;

 Since release 0.0.1.23, persistence type "**mysql**" is also supported (experimental).  
 Details in [Mysql_persistence] page 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jef2000</dc:creator><pubDate>Fri, 20 Jun 2014 06:26:43 -0000</pubDate><guid>https://sourceforge.net79a59e75dd6eb09974e1dff8d78bd6cfb39f3bb5</guid></item><item><title>Configuration modified by jef2000</title><link>https://sourceforge.net/p/linknx/wiki/Configuration/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v5
+++ v6
@@ -66,6 +66,8 @@
 Under this directory, a file with the object id as name will be created for each persistent object (object with attribute init="persist"). This file contains the object's current value.  
 Under the logpath directory, a file with the object id as name and extension ".log" will be created for each logged object (object with attribute log="true"). This file contains the history of the object in format "yyyy-mm-dd hh:mm:ss &amp;gt; value".

+    
+    &amp;lt;persistence type="file" path="/var/lib/linknx/persist/" path="/var/lib/linknx/logs/" /&amp;gt;

 Since release 0.0.1.23, persistence type "**mysql**" is also supported (experimental).  
 Details in [Mysql_persistence] page 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jef2000</dc:creator><pubDate>Fri, 20 Jun 2014 06:26:43 -0000</pubDate><guid>https://sourceforge.net5d81d8cc7371375486d95cad72cb9496c2c25ab2</guid></item><item><title>Configuration modified by jef2000</title><link>https://sourceforge.net/p/linknx/wiki/Configuration/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v4
+++ v5
@@ -61,9 +61,11 @@
 The **knxconnection** element configures the connection to EIBD. The url parameter can be "local:/path/to/unix/socket" if EIBD uses unix sockets or "ip:ip-address:port" if EIBD uses internet sockets (port is optional; default = 6720)  
 The **exceptiondays** element contains a list of days requiring special behavior. The timer conditions in the rules section can be configured to ignore exceptiondays or to evaluate as true or false in case of exceptiondays. Missing day, month or year parameter in a date element is considered as wildcard.  
 The **ioports** element contains a list of IO ports. See [IO_Ports] for more details.  
-The **location** element defines physical location of KNX installation (latitude and longitude in degrees, values have to be negative for south and westerh hemisphere respectively). This is needed for calculation of **sunrise**, **sunset** and **noon** time specification for conditions etc. The **persistence** element defines where linknx stores it's persistent status information and/or logs. persistence type "**file**" stores values on the filesystem. The **path** attribute tells where to store persistent status and the **logpath** attribute tells where to store object's history logs. By default, **path** equals /var/lib/linknx/persist and **logpath** equals to **path**.  
+The **location** element defines physical location of KNX installation (latitude and longitude in degrees, values have to be negative for south and westerh hemisphere respectively). This is needed for calculation of **sunrise**, **sunset** and **noon** time specification for conditions etc.  
+The **persistence** element defines where linknx stores it's persistent status information and/or logs. persistence type "**file**" stores values on the filesystem. The **path** attribute tells where to store persistent status and the **logpath** attribute tells where to store object's history logs. By default, **path** equals /var/lib/linknx/persist and **logpath** equals to **path**.  
 Under this directory, a file with the object id as name will be created for each persistent object (object with attribute init="persist"). This file contains the object's current value.  
-Under the logpath directory, a file with the object id as name and extension ".log" will be created for each logged object (object with attribute log="true"). This file contains the history of the object in format "yyyy-mm-dd hh:mm:ss &amp;gt; value". 
+Under the logpath directory, a file with the object id as name and extension ".log" will be created for each logged object (object with attribute log="true"). This file contains the history of the object in format "yyyy-mm-dd hh:mm:ss &amp;gt; value".  
+

 Since release 0.0.1.23, persistence type "**mysql**" is also supported (experimental).  
 Details in [Mysql_persistence] page 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jef2000</dc:creator><pubDate>Fri, 20 Jun 2014 06:26:42 -0000</pubDate><guid>https://sourceforge.netc81abc8af8616f7804ee16150777a17b2956a47a</guid></item><item><title>Configuration modified by jef2000</title><link>https://sourceforge.net/p/linknx/wiki/Configuration/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -13,7 +13,7 @@
         &amp;lt;logging .... /&amp;gt;
     &amp;lt;/config&amp;gt;

-The three sections can be in any order, some of them can be missing, but if a section appears more than once, only the first occurence of that section will be processed. 
+The four sections can be in any order, some of them can be missing, but if a section appears more than once, only the first occurence of that section will be processed. 

 [TOC]

@@ -164,38 +164,21 @@

 The following condition's types are available (see [Condition's_Syntax] section): 

-  * object: true if the object has the specified value 
-  * timer: true if the timer occured 
-  * and: true if all sub-conditions are true 
-  * or: true if one of the sub-conditions is true 
-  * not: true if the sub-condition is false 
-  * ioport-rx: true if the expected message is received on the io-port. (See [IO_Ports]) 
-  * script: true if the return value of script is true. (See [Lua_Scripting]) 
-
-The rule will be evaluated only when one of its "trigger" conditions changes value. 
-
-The following action types are available (see [Action's_syntax] section): 
-
-  * set-value&amp;nbsp;: Set an object to the specified value 
-  * cycle-on-off&amp;nbsp;: Switch an object ON and OFF a specified number of times (delays on and off are also specified). The object is left in the off state after execution of this action. 
-  * send-sms&amp;nbsp;: Send an SMS with specified text to the specified mobile phone number 
-  * send-email&amp;nbsp;: Send an email with specified content to a specified receiver 
-  * dim-up&amp;nbsp;: Send increasing or decreasing values to a scaling object during a predefined time period 
-  * shell-cmd&amp;nbsp;: Execute the specified shell command 
-  * ioport-tx&amp;nbsp;: Send the given message to an io-port. (See [IO_Ports]) 
-  * script&amp;nbsp;: Execute the LUA script. (See [Lua_Scripting]) 
-
-First sample rule: 
-    
-            &amp;lt;rule id="cur_time_date"&amp;gt;
-                &amp;lt;condition type="timer" trigger="true"&amp;gt;
-                    &amp;lt;every&amp;gt;3600&amp;lt;/every&amp;gt;
-                &amp;lt;/condition&amp;gt;
-                &amp;lt;actionlist&amp;gt;
-                    &amp;lt;action type="set-value" id="cur_time" value="now" /&amp;gt;
-                    &amp;lt;action type="set-value" id="cur_date" value="now" /&amp;gt;
-                &amp;lt;/actionlist&amp;gt;
-            &amp;lt;/rule&amp;gt;
+  * object: true if the object has the specified value (
+        
+                &amp;lt;rule id="cur_time_date"&amp;gt;
+        
+    
+               &amp;lt;condition type="timer" trigger="true"&amp;gt;
+                   &amp;lt;every&amp;gt;3600&amp;lt;/every&amp;gt;
+               &amp;lt;/condition&amp;gt;
+               &amp;lt;actionlist&amp;gt;
+                   &amp;lt;action type="set-value" id="cur_time" value="now" /&amp;gt;
+                   &amp;lt;action type="set-value" id="cur_date" value="now" /&amp;gt;
+               &amp;lt;/actionlist&amp;gt;
+    
+
+&amp;lt;/rule&amp;gt;

 This rule will trigger and evaluate to true every 3600 seconds. The configured actions will then send current time/date on the KNX bus. 

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jef2000</dc:creator><pubDate>Fri, 20 Jun 2014 06:26:42 -0000</pubDate><guid>https://sourceforge.netedc167793bce94be784bea9f333f7b22e7dc214b</guid></item><item><title>Configuration modified by Damago</title><link>https://sourceforge.net/p/linknx/wiki/Configuration/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -17,7 +17,9 @@

 [TOC]

-### Let's first have a look at **services**:
+## Services section
+
+Here is an example of services section 

         &amp;lt;services&amp;gt;
             &amp;lt;smsgateway type="clickatell" user="xyz" pass="xxx" api_id="123456" /&amp;gt;
@@ -46,6 +48,7 @@
                 &amp;lt;date day="13" month="5" year="2010" /&amp;gt;
                 &amp;lt;date day="24" month="5" year="2010" /&amp;gt;
             &amp;lt;/exceptiondays&amp;gt;
+            &amp;lt;location lon="21.01" lat="52.15"/&amp;gt;
             &amp;lt;ioports&amp;gt;
                 &amp;lt;ioport host="192.168.0.18" port="21000" rxport="21001" id="irtrans"/&amp;gt;
             &amp;lt;/ioports&amp;gt;
@@ -57,16 +60,15 @@
 The **xmlserver** element configures the interface to access linknx using the XML based protocol. Type can be "inet" or "unix". For "inet", the port parameter is the TCP port the server will listen on (default = 1028). For "unix", the port parameter must contain the unix socket path (default /tmp/xmlserver.sock)  
 The **knxconnection** element configures the connection to EIBD. The url parameter can be "local:/path/to/unix/socket" if EIBD uses unix sockets or "ip:ip-address:port" if EIBD uses internet sockets (port is optional; default = 6720)  
 The **exceptiondays** element contains a list of days requiring special behavior. The timer conditions in the rules section can be configured to ignore exceptiondays or to evaluate as true or false in case of exceptiondays. Missing day, month or year parameter in a date element is considered as wildcard.  
-The **ioports** element contains a list of IO ports. See [IO_Ports] for more details. 
-
-The **persistence** element defines where linknx stores it's persistent status information and/or logs. persistence type "**file**" stores values on the filesystem. The **path** attribute tells where to store persistent status and the **logpath** attribute tells where to store object's history logs. By default, **path** equals /var/lib/linknx/persist and **logpath** equals to **path**.  
+The **ioports** element contains a list of IO ports. See [IO_Ports] for more details.  
+The **location** element defines physical location of KNX installation (latitude and longitude in degrees, values have to be negative for south and westerh hemisphere respectively). This is needed for calculation of **sunrise**, **sunset** and **noon** time specification for conditions etc. The **persistence** element defines where linknx stores it's persistent status information and/or logs. persistence type "**file**" stores values on the filesystem. The **path** attribute tells where to store persistent status and the **logpath** attribute tells where to store object's history logs. By default, **path** equals /var/lib/linknx/persist and **logpath** equals to **path**.  
 Under this directory, a file with the object id as name will be created for each persistent object (object with attribute init="persist"). This file contains the object's current value.  
 Under the logpath directory, a file with the object id as name and extension ".log" will be created for each logged object (object with attribute log="true"). This file contains the history of the object in format "yyyy-mm-dd hh:mm:ss &amp;gt; value". 

 Since release 0.0.1.23, persistence type "**mysql**" is also supported (experimental).  
 Details in [Mysql_persistence] page 

-### The logging configuration is described here:
+## Logging section

 Linknx support 2 different logging back-ends: 

@@ -120,20 +122,26 @@

-  
-
-
-  
-
-
-### Now have a look at the **object** controller configuration:
+## Objects definition section
+
+Here is an example of objects definition section: 
+    
+    &amp;lt;objects&amp;gt;
+          &amp;lt;object type="16.000" id="text_salon" gad="9/1/153" flags="cwtu"&amp;gt;Text on LCD in salon&amp;lt;/object&amp;gt;
+          &amp;lt;/object&amp;gt;
+          &amp;lt;object id="hall_lamps_central" gad="3/2/1" init="request"&amp;gt;Hall central lamp&amp;lt;/object&amp;gt;
+          &amp;lt;object id="hall_lamps_LED" gad="3/2/2" init="request"&amp;gt;Hall LED floor lights&amp;lt;/object&amp;gt;
+          &amp;lt;object id="gate_open" gad="0/1/0" init="request"&amp;gt;&amp;lt;listener gad="4/1/0"/&amp;gt;gate open close&amp;lt;/object&amp;gt;
+          &amp;lt;object id="gate_status" gad="4/1/0" init="request"&amp;gt;gate state status&amp;lt;/object&amp;gt;
+          &amp;lt;object id="salon_scene1" gad="3/2/2" init="persist"&amp;gt;Salon teleconference start scene&amp;lt;/object&amp;gt;
+    &amp;lt;/objects&amp;gt;

 Since version 0.0.1.25, the object definition uses Datapoint Types defined in KNX standard instead of EIS datatypes.  
 The current syntax is described in [Object_Definition_Syntax] section.  
 The deprecated syntax (before 0.0.1.25) is still supported but will be converted to the new one when loaded by the application.  
 The old syntax is described in [Object_Definition_Syntax_before_0.0.1.25] section. 

-### Now we enter the 3rd section dedicated to **rules**:
+## Rules section

 A rule is composed of: 

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Damago</dc:creator><pubDate>Fri, 20 Jun 2014 06:26:42 -0000</pubDate><guid>https://sourceforge.netca8982970101a423b421cb0a7c3f7567d40a76f8</guid></item><item><title>Configuration modified by Damago</title><link>https://sourceforge.net/p/linknx/wiki/Configuration/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -85,7 +85,8 @@

 With log4cpp logger, the logging configuration looks like this: 

-    &amp;lt;logging output="/tmp/linknx.log" format="%d %5p &amp;gt; %c %x - %m%n" level="DEBUG"/&amp;gt;
+     &amp;lt;logging output="/var/log/linknx.log" format="%d{%Y%m%d %H:%M:%S,%l} %5p %c %x: %m%n" level="INFO"/&amp;gt;
+    

 The allowed parameters are: 

@@ -153,7 +154,7 @@
                 &amp;lt;/actionlist&amp;gt;
             &amp;lt;/rule&amp;gt;

-The following [condition types](Condition's_Syntax) are available: 
+The following condition's types are available (see [Condition's_Syntax] section): 

   * object: true if the object has the specified value 
   * timer: true if the timer occured 
@@ -165,10 +166,10 @@

 The rule will be evaluated only when one of its "trigger" conditions changes value. 

-The following [action types](Action's_syntax) are available: 
+The following action types are available (see [Action's_syntax] section): 

   * set-value&amp;nbsp;: Set an object to the specified value 
-  * cycle-on-off&amp;nbsp;: Switch an object ON and OFF a specified number of times (delays on and off are also specified) 
+  * cycle-on-off&amp;nbsp;: Switch an object ON and OFF a specified number of times (delays on and off are also specified). The object is left in the off state after execution of this action. 
   * send-sms&amp;nbsp;: Send an SMS with specified text to the specified mobile phone number 
   * send-email&amp;nbsp;: Send an email with specified content to a specified receiver 
   * dim-up&amp;nbsp;: Send increasing or decreasing values to a scaling object during a predefined time period 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Damago</dc:creator><pubDate>Fri, 20 Jun 2014 06:26:42 -0000</pubDate><guid>https://sourceforge.netaf3f922b9d96f66eb9f1b0069cfb24edcc07fcb2</guid></item><item><title>Configuration modified by jef2000</title><link>https://sourceforge.net/p/linknx/wiki/Configuration/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Looking at the XML configuration file (example &lt;a class="" href="http://linknx.cvs.sourceforge.net/linknx/linknx/linknx/conf/linknx.xml?view=markup"&gt;here&lt;/a&gt;), we can see 4 main sections: services, logging, objects and rules. Services contains all the system wide parameters like ip-address/port of EIBD, sms or email server parameters. Logging contains the logging configuration. Objects contains the description of all group objects. Rules contains a list of rules with a condition and list of actions that are executed based on this condition. &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;objects&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;....&lt;/span&gt;
    &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;objects&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;rules&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;....&lt;/span&gt;
    &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rules&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;services&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;....&lt;/span&gt;
    &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;services&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;logging&lt;/span&gt; &lt;span class="p"&gt;....&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The three sections can be in any order, some of them can be missing, but if a section appears more than once, only the first occurence of that section will be processed. &lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#lets-first-have-a-look-at-services"&gt;Let's first have a look at services:&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#the-logging-configuration-is-described-here"&gt;The logging configuration is described here:&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#now-have-a-look-at-the-object-controller-configuration"&gt;Now have a look at the object controller configuration:&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#now-we-enter-the-3rd-section-dedicated-to-rules"&gt;Now we enter the 3rd section dedicated to rules:&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h3 id="lets-first-have-a-look-at-services"&gt;Let's first have a look at &lt;strong&gt;services&lt;/strong&gt;:&lt;/h3&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;    &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;services&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;smsgateway&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;clickatell&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;xyz&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;pass&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;xxx&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;api_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;123456&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;emailserver&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;smtp&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;host&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;smtp.myprovider.com:25&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;from&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;linknx@mydomain.com&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;xmlserver&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;inet&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1028&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;knxconnection&lt;/span&gt; &lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;ip:192.168.0.10&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;persistence&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;file&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;/var/lib/linknx/persist&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;exceptiondays&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt; &lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;month&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt; &lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;month&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;5&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt; &lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;21&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;month&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;7&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt; &lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;15&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;month&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;8&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt; &lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;month&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;11&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt; &lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;11&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;month&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;11&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt; &lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;25&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;month&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;12&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt; &lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;9&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;month&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;4&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;year&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;2007&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt; &lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;17&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;month&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;5&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;year&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;2007&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt; &lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;28&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;month&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;5&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;year&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;2007&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt; &lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;24&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;month&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;year&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;2008&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt; &lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;month&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;5&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;year&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;2008&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt; &lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;12&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;month&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;5&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;year&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;2008&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt; &lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;13&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;month&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;4&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;year&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;2009&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt; &lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;21&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;month&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;5&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;year&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;2009&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt; &lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;month&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;6&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;year&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;2009&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt; &lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;5&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;month&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;4&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;year&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;2010&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt; &lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;13&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;month&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;5&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;year&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;2010&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt; &lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;24&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;month&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;5&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;year&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;2010&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;exceptiondays&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;ioports&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;ioport&lt;/span&gt; &lt;span class="n"&gt;host&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;192.168.0.18&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;21000&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;rxport&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;21001&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;irtrans&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ioports&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;services&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The &lt;strong&gt;smsgateway&lt;/strong&gt; element configures sms service allowing to send text messages to mobile phones. Currently, only the &lt;a class="" href="http://www.clickatell.com/" rel="nofollow"&gt;Clickatell&lt;/a&gt; &lt;a class="" href="http://www.clickatell.com/solutions/developers/api_http.php" rel="nofollow"&gt;HTTP API&lt;/a&gt; is implemented and requires &lt;a class="" href="http://curl.haxx.se/" rel="nofollow"&gt;libcurl&lt;/a&gt; to work.&lt;br /&gt;
The &lt;strong&gt;emailserver&lt;/strong&gt; element configures email service via an external SMTP server. The "host" parameter must contain server name AND port number. This feature requires &lt;a class="" href="http://www.stafford.uklinux.net/libesmtp/" rel="nofollow"&gt;libesmtp&lt;/a&gt; to work.&lt;br /&gt;
SMTP authentication (optional) can be configured by adding login="xxxx" and pass="yyy" in config of emailserver.&lt;br /&gt;
The &lt;strong&gt;xmlserver&lt;/strong&gt; element configures the interface to access linknx using the XML based protocol. Type can be "inet" or "unix". For "inet", the port parameter is the TCP port the server will listen on (default = 1028). For "unix", the port parameter must contain the unix socket path (default /tmp/xmlserver.sock)&lt;br /&gt;
The &lt;strong&gt;knxconnection&lt;/strong&gt; element configures the connection to EIBD. The url parameter can be "local:/path/to/unix/socket" if EIBD uses unix sockets or "ip:ip-address:port" if EIBD uses internet sockets (port is optional; default = 6720)&lt;br /&gt;
The &lt;strong&gt;exceptiondays&lt;/strong&gt; element contains a list of days requiring special behavior. The timer conditions in the rules section can be configured to ignore exceptiondays or to evaluate as true or false in case of exceptiondays. Missing day, month or year parameter in a date element is considered as wildcard.&lt;br /&gt;
The &lt;strong&gt;ioports&lt;/strong&gt; element contains a list of IO ports. See &lt;span&gt;[IO_Ports]&lt;/span&gt; for more details. &lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;persistence&lt;/strong&gt; element defines where linknx stores it's persistent status information and/or logs. persistence type "&lt;strong&gt;file&lt;/strong&gt;" stores values on the filesystem. The &lt;strong&gt;path&lt;/strong&gt; attribute tells where to store persistent status and the &lt;strong&gt;logpath&lt;/strong&gt; attribute tells where to store object's history logs. By default, &lt;strong&gt;path&lt;/strong&gt; equals /var/lib/linknx/persist and &lt;strong&gt;logpath&lt;/strong&gt; equals to &lt;strong&gt;path&lt;/strong&gt;.&lt;br /&gt;
Under this directory, a file with the object id as name will be created for each persistent object (object with attribute init="persist"). This file contains the object's current value.&lt;br /&gt;
Under the logpath directory, a file with the object id as name and extension ".log" will be created for each logged object (object with attribute log="true"). This file contains the history of the object in format "yyyy-mm-dd hh:mm:ss &amp;gt; value". &lt;/p&gt;
&lt;p&gt;Since release 0.0.1.23, persistence type "&lt;strong&gt;mysql&lt;/strong&gt;" is also supported (experimental).&lt;br /&gt;
Details in &lt;a class="alink" href="/p/linknx/wiki/Mysql_persistence/"&gt;[Mysql_persistence]&lt;/a&gt; page &lt;/p&gt;
&lt;h3 id="the-logging-configuration-is-described-here"&gt;The logging configuration is described here:&lt;/h3&gt;
&lt;p&gt;Linknx support 2 different logging back-ends: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Internal logger &lt;/li&gt;
&lt;li&gt;log4cpp external library &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The choice between these 2 possibilities is made at compilation time. By default, the configure script will auto-detect the presence of the log4cpp library and use it if available. You can force log4cpp by passing --with-log4cpp option to configure script or disable it with option --without-log4cpp. &lt;/p&gt;
&lt;p&gt;With Internal logger, the following parameters are available: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;logging&lt;/span&gt; &lt;span class="n"&gt;format&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;simple&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;level&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;WARN&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;If parameter format is omitted or its value is different from "simple", the timestamp will be added in front of each log line.&lt;br /&gt;
The parameter level determine the minimum level of logging. The valid values are "DEBUG", "INFO", "NOTICE", "WARN" and "ERROR". The default value is "INFO". The level "DEBUG" is disabled in normal builds when using the internal logger.&lt;br /&gt;
The log messages for level ERROR or WARN go to stderr, all other messages go to stdout. &lt;/p&gt;
&lt;p&gt;With log4cpp logger, the logging configuration looks like this: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;logging&lt;/span&gt; &lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;/tmp/linknx.log&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;format&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;%d %5p &amp;amp;gt; %c %x - %m%n&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;level&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;DEBUG&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The allowed parameters are: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;output: the log file to write. Default=stdout &lt;/li&gt;
&lt;li&gt;format: the logging format value can be "simple", "basic" or a pattern like in the example above. &lt;/li&gt;
&lt;li&gt;level: the minimum level of logging. The valid values are "DEBUG", "INFO", "NOTICE", "WARN" and "ERROR". Default=INFO &lt;/li&gt;
&lt;li&gt;maxfilesize: maximum size of a log file (in kb). When the size is reached, the logs are rotated &lt;/li&gt;
&lt;li&gt;maxfileindex: maximum index of log files kept. Default=10 &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The format pattern syntax allows the following fields: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;%%%%&lt;/strong&gt; - a single percent sign &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;%c&lt;/strong&gt; - the category &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;%d&lt;/strong&gt; - the date &amp;gt; Date format: The date format character may be followed by a date format specifier enclosed between braces. For example, %d{%H:%M:%S,%l} or %d{%d %m %Y %H:%M:%S,%l}. If no date format specifier is given then the following format is used: "Wed Jan 02 02:03:55 1980". The date format specifier admits the same syntax as the ANSI C function strftime, with 1 addition. The addition is the specifier %l for milliseconds, padded with zeros to make 3 digits. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;%m&lt;/strong&gt; - the message &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;%n&lt;/strong&gt; - the platform specific line separator &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;%p&lt;/strong&gt; - the priority &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;%r&lt;/strong&gt; - milliseconds since this layout was created. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;%R&lt;/strong&gt; - seconds since Jan 1, 1970 &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;%u&lt;/strong&gt; - clock ticks since process start &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;%x&lt;/strong&gt; - the &lt;a class="" href="http://log4cpp.sourceforge.net/api/classlog4cpp_1_1NDC.html"&gt;NDC&lt;/a&gt; || &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;format="simple" corresponds to "%p - %m%n" and format="basic" to "%R %p %c %x: %m%n".&lt;br /&gt;
The default value (if format is not specified or empty) is "%d &lt;span&gt;[%5p]&lt;/span&gt; %c: %m%n"&lt;br /&gt;
More details about pattern layout can be found in &lt;a class="" href="http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.html" rel="nofollow"&gt;log4j documentation&lt;/a&gt; but some of them are not supported by log4cpp &lt;/p&gt;
&lt;p&gt;If parameter "config" is used, the value of that parameter is used as the name of the file containing log4cpp configuration. All other parameters are ignored. A sample configuration file that logs all warning and errors to a file and everything to the console can be found in linknx/conf/logging.conf (See &lt;a class="" href="http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PropertyConfigurator.html#doConfigure%28java.lang.String,%20org.apache.log4j.spi.LoggerRepository" rel="nofollow"&gt;log4cpp configuration&lt;/a&gt; for more details): &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;logging&lt;/span&gt; &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;/var/lib/linknx/logging.conf&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id="now-have-a-look-at-the-object-controller-configuration"&gt;Now have a look at the &lt;strong&gt;object&lt;/strong&gt; controller configuration:&lt;/h3&gt;
&lt;p&gt;Since version 0.0.1.25, the object definition uses Datapoint Types defined in KNX standard instead of EIS datatypes.&lt;br /&gt;
The current syntax is described in &lt;a class="alink" href="/p/linknx/wiki/Object_Definition_Syntax/"&gt;[Object_Definition_Syntax]&lt;/a&gt; section.&lt;br /&gt;
The deprecated syntax (before 0.0.1.25) is still supported but will be converted to the new one when loaded by the application.&lt;br /&gt;
The old syntax is described in &lt;a class="alink" href="/p/linknx/wiki/Object_Definition_Syntax_before_0.0.1.25/"&gt;[Object_Definition_Syntax_before_0.0.1.25]&lt;/a&gt; section. &lt;/p&gt;
&lt;h3 id="now-we-enter-the-3rd-section-dedicated-to-rules"&gt;Now we enter the 3rd section dedicated to &lt;strong&gt;rules&lt;/strong&gt;:&lt;/h3&gt;
&lt;p&gt;A rule is composed of: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;one condition &lt;/li&gt;
&lt;li&gt;an (optional) action list to be executed when the condition is evaluated as true &lt;/li&gt;
&lt;li&gt;
&lt;p&gt;and another optional action list to be executed when the condition is evaluated as false &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;    &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;rule&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;xxxx&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;condition&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;....&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="p"&gt;.....&lt;/span&gt;
        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;condition&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;actionlist&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="p"&gt;.....&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="p"&gt;.....&lt;/span&gt;
        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;actionlist&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;actionlist&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;on-false&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="p"&gt;.....&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;actionlist&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rule&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following &lt;a class="" href="../Condition's_Syntax"&gt;condition types&lt;/a&gt; are available: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;object: true if the object has the specified value &lt;/li&gt;
&lt;li&gt;timer: true if the timer occured &lt;/li&gt;
&lt;li&gt;and: true if all sub-conditions are true &lt;/li&gt;
&lt;li&gt;or: true if one of the sub-conditions is true &lt;/li&gt;
&lt;li&gt;not: true if the sub-condition is false &lt;/li&gt;
&lt;li&gt;ioport-rx: true if the expected message is received on the io-port. (See &lt;span&gt;[IO_Ports]&lt;/span&gt;) &lt;/li&gt;
&lt;li&gt;script: true if the return value of script is true. (See &lt;span&gt;[Lua_Scripting]&lt;/span&gt;) &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The rule will be evaluated only when one of its "trigger" conditions changes value. &lt;/p&gt;
&lt;p&gt;The following &lt;a class="" href="../Action's_syntax"&gt;action types&lt;/a&gt; are available: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;set-value&amp;nbsp;: Set an object to the specified value &lt;/li&gt;
&lt;li&gt;cycle-on-off&amp;nbsp;: Switch an object ON and OFF a specified number of times (delays on and off are also specified) &lt;/li&gt;
&lt;li&gt;send-sms&amp;nbsp;: Send an SMS with specified text to the specified mobile phone number &lt;/li&gt;
&lt;li&gt;send-email&amp;nbsp;: Send an email with specified content to a specified receiver &lt;/li&gt;
&lt;li&gt;dim-up&amp;nbsp;: Send increasing or decreasing values to a scaling object during a predefined time period &lt;/li&gt;
&lt;li&gt;shell-cmd&amp;nbsp;: Execute the specified shell command &lt;/li&gt;
&lt;li&gt;ioport-tx&amp;nbsp;: Send the given message to an io-port. (See &lt;span&gt;[IO_Ports]&lt;/span&gt;) &lt;/li&gt;
&lt;li&gt;script&amp;nbsp;: Execute the LUA script. (See &lt;span&gt;[Lua_Scripting]&lt;/span&gt;) &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;First sample rule: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;rule&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;cur_time_date&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;condition&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;timer&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;trigger&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;every&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="mi"&gt;3600&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;every&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;condition&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;actionlist&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;set-value&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;cur_time&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;now&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;set-value&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;cur_date&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;now&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;actionlist&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rule&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;This rule will trigger and evaluate to true every 3600 seconds. The configured actions will then send current time/date on the KNX bus. &lt;/p&gt;
&lt;p&gt;Now we can have a look at a more complex timer condition: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;rule&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;heating_morning&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;condition&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;and&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;condition&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;object&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;heating_auto&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;on&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;condition&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;or&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;condition&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;timer&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;trigger&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="n"&gt;hour&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;6&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;min&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;30&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;exception&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;no&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;wdays&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;12345&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;until&lt;/span&gt; &lt;span class="n"&gt;hour&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;8&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;min&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;0&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;condition&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;condition&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;timer&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;trigger&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="n"&gt;hour&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;8&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;min&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;0&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;wdays&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;67&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;until&lt;/span&gt; &lt;span class="n"&gt;hour&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;12&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;min&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;0&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;condition&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;condition&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;timer&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;trigger&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="n"&gt;hour&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;8&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;min&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;0&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;exception&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;yes&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;until&lt;/span&gt; &lt;span class="n"&gt;hour&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;12&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;min&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;0&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;condition&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;condition&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;condition&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;actionlist&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;set-value&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;heating_kitchen&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;comfort&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;set-value&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;heating_living&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;standby&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;set-value&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;heating_bathroom&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;on&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;set-value&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;heating_bedroom1&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;comfort&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;set-value&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;heating_bedroom2&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;comfort&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;actionlist&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;actionlist&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;on-false&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;set-value&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;heating_kitchen&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;frost&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;set-value&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;heating_living&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;frost&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;set-value&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;heating_bathroom&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;off&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;set-value&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;heating_bedroom1&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;frost&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;set-value&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;heating_bedroom2&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;frost&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;actionlist&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rule&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;This rule will only execute its action lists at specific times, but if heating_auto object is "on".&lt;br /&gt;
First action list will be executed: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;At 6:30 am every week day that is not flagged as an exception day in "services" section &lt;/li&gt;
&lt;li&gt;At 8:00 am every weekend day or day flagged as an exception day &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Second action list will be executed: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;At 8:00 am every week day that is not flagged as an exception day in "services" section &lt;/li&gt;
&lt;li&gt;At 12:00 am every weekend day or day flagged as an exception day &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note that the object condition on "heating_auto" has no trigger flag. This means that if "heating_auto" is turned on at 7:00 am a week day, the action list will not be executed at that time because the rule is not evaluated on change of "heating_auto"'s value. &lt;/p&gt;
&lt;p&gt;Last example, this time with a "dim-up" action: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;rule&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;wakeup_alarm&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;condition&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;and&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;condition&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;object&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;absence&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;off&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;condition&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;object&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;wakeup_active&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;on&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;condition&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;timer&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;trigger&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="n"&gt;hour&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;6&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;min&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;30&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;exception&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;no&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;wdays&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;12345&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;condition&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;condition&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;actionlist&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;dim-up&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;dim_value_bedroom2&amp;quot;&lt;/span&gt;
                    &lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;0&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;stop&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;240&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;duration&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1800&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;actionlist&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rule&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;This rule will start dimming the bedroom light progressively from 0 to 94% (=240/255) during half an hour (=1800 sec). It will only execute at 6:30 am every week day that is not flagged as an exception day, if it is activated (&lt;code&gt;wakeup_active on&lt;/code&gt;) and if we are at home (&lt;code&gt;absence off&lt;/code&gt;). &lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jef2000</dc:creator><pubDate>Fri, 20 Jun 2014 06:26:41 -0000</pubDate><guid>https://sourceforge.net5b2847e1d415f363656ae3760d1881b62ffaf026</guid></item></channel></rss>