HomeVisionXL Object Tracking Plugin

The Object Tracking plugin allows the user to select a number of objects to track. The state changes over time of the selected objects will be displayed in one or more graphs as shown below.

You can click on a line in the graph to get more details about the value of the tracked entity at that point.

As the rain graph on the bottom of that image shows, a single graph can show multiple traces. This way a number of similar entities can be combined in a single graph, making it very easy to compare the values at any point in time. For example, you could show the temperature of several rooms in the house in a single graph.

With multiple traces of similar entities there is of course the chance that the traces overlap every now and then. To make it easier to see a specific trace, you can click on the associated label. This will bring the selected trace to the front.

Clicking the right mouse button in the display area will bring up a context menu allowing you to: Configure the current graph, Add a new graph, Delete the current graph, or set the Interval, which changes the horizontal scale of the graph. Selecting the Configure or Add function will bring up a dialog that lets you specify the expressions to be displayed in the graph, and the vertical scale of the graph.


In the "Expressions" area one or more expressions can be defined. Each expression has an associated label and color. The list on the left shows the labels of currently defined expressions. The right side shows the details of the selected expression. The buttons at the bottom allow you to Delete, Insert or Add an expression.

An expression is a formula that will calculate the value of the desired proterty based on the values of HomeVision objects. An object is represented in the expression by a $-sign, followed by single letter for the object type, and the object number. The following objects types are supported:

  • x: X-10 module
  • f: Flags
  • v: Variables
  • l: Custom lights
  • i: Input ports
  • o: Output ports
  • a: Analog input ports
  • t: Digital temperature sensors
So the expression for Rain/24h shown in the example above is simply the value of Variable 93. Expressions can of course be more complicated than that. For example: The Rain/1h value is contained in Variable 92 in units of 0.25 mm. To be able to show it in the same graph, the value has to be converted to the same units of measure as the Rain/24h. So the Rain/1h expression should be "$v92/4.0". In this case 4.0 must be used instead of 4 to force floating point calculation.

The Format field may be used to configure how the value is displayed when you click on a graph for details. You can use this field to limit or force the number of decimals on a floating point number. It also allows you to specify the unit of the value. Examples:

    %.2f - display the value with 2 decimals
    %.3g - display the value with 3 significant digits
    %dmm - display the value as a decimal number representing millimeters

The Data Range box is used to specify the minimum and maximum values for the expressions to be shown in the graph. The scale value can be used to stretch or shrink the vertical axis of the graph. In the example the Rain/1h has a resolution of 0.25 mm. So by specifying a 400% scale, every 0.25 mm is exactly one pixel on the screen.

To allow the plugin to keep track of the object state changes, automatic reporting for the object type has to be switched on. You can configure the automatic reporting settings in the Comm. tab of the Controller Settings screen under the Configure menu.

Instead of reporting every change, you can also insert the appropriate object reporting command at strategic places throughout your schedule. This second option is usually preferable for variables and sometimes also for flags. These objects change frequently which would result in a lot of reports, possibly flooding the serial connection. However most of those changes are for internal operations only and do not need to be reported.

Example:

   Var #29 (HVAC Mode) = 2
   Controller command: Report status of all variables

Also, due to their nature, analog inputs values will frequently change. It is probably better to switch off automatic reporting for this object type and setup a periodic event that triggers the report every minute.

Last modified: 26 March 2008, 20:56 CET