QVisu
Qt-based visualization for smart homes
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Heating Element

The heating element controls the set temperature, displays the actual temperature, and in addition can show any number of status values (limited only be screen space)

Syntax

    <element type="heating" position="x,y" width="...">
        <icon&gt...</icon>
        <text>...</text>
        <color>...</text>
        <item action="temp-value">...</item>
        <item action="temp-setpoint" step="...">...</item>
        <item action="value" label="..." unit="..." precision="...">...</item>
        <item action="switch" icon="...">...</item>
        <item action="status" icon="...">...</item>
    </element>

Elements in bold are mandatory.

element/tag comment
width Can be chosen arbitrarily, minimum width is 2. Height is fixed at 2.
text Title text
color Background color. Default value is cyan.
icon Icon displayed next to the text.

Item Syntax

Actual Temperature

<item action="temp-value">item name</item>

The name of the item to be displayed. Digits after the decimal point are fixed at 1 (i.e. format is 21.5 °C). The unit °C is fixed.

Temperature Setpoint

<item action="temp-setpoint" step="...">item name</item>

The name of the item which defines the temperature setpoint. step defines the step size by which the value increases/decreases with + and -.

Value items

All items except actual temperature and temperature setpoint are displayed in one row at the bottom of the element.

<item action="value" label="..." unit="..." precision="...">item name</item>

tag comment
label Text before the displayed value
unit Text after the displayed value
precision Number of digits after the decimal point

To display relative humidity, use <item action="value" label="rH" unit="%" precision="0">itemname</item>

Switch and status items

<item action="..." icon="...">item name</item>

tag comment
action switch to actively switch the item, status to only display it.
color Color in off state, default is white
active-color Color in on state, default is orange
icon Icon name. If you specify two icons (separated by comma), they will be used for off and on.
color-mode SVG recoloring mode, see Switch icons

Known bugs

  • The whole element looks rather ugly. Any idea for better formatting is welcome.

The plot element displays any number of historical data rows on up to two axes.

It is currently the most complex element, therefore prone to have the most bugs. Any feedback is welcome.

  • Rendering time is quite long, which might have to do with Qt’s SVG routines and the sometimes immense amount of data. A subsampling algorithm is on my to-do list
  • The widget does not allow to zoom in or request actual numeric values as smartvisu does

Syntax

    <element type="plot" position="x,y" width="..." height="..." common-zero="..." xgrid="...">
        <text>...</text>
        <icon>...</icon>
        <color>...</color>
        <background-color>...</background-color>
        <time-min>...</time-min>
        <axis1 ymin="..." ymax="..." grid="...">
            <item action="..." color="..." name="...">item name</item>
            <item action="..." color="..." name="...">item name</item>
            ...
        </axis1>
        <axis2 ymin="..." ymax="...">
            <item action="..." color="..." name="...">item name</item>
            <item action="..." color="..." name="...">item name</item>
            ...
        </axis2>
    </element>

Elements in bold are mandatory.

element/tag comment
width, height Can be chosen arbitrarily.
common-zero Only relevant if two axes are used. If set to "1" or "true", both x axes (y=0) are forced to be on one line.
xgrid Show a background grid at the time intervals
text Title text
icon Icon displayed next to the text.
color Background color of the element. Default value is cyan.
background-color Background color of the actual plot area. Defaults to color
time-min Earliest time to be shown, the value is directly passed to the backend. End time is always the current time.
axis1 Parent element for all items to be displayed on the left axis
axis2 Parent element for all items to be displayed on the right axis
ymin, ymax Maximum and minimum values on the axis. If left out, the element will calculate them automatically
grid When set to "1" or "true", displays a horizontal grid for the axis values

Item Syntax

<item action="..." color="..." name="..." >item name</item>

element/tag comment
action The action is passed on to the backend as the "series" parameter. Only "avg" has been tested so far.
color The color to be used for drawing the item. Each axis is colored based on the color of the first item on the axis.
name If given, the name is displayed next to the graph. The placement algorithm is not good, improvements welcome