Integrating UVR1611 into OpenHAB 2 using MQTT

The heating system wich I bought a couple years ago uses two universal controllers from an austrian company called Technische Alternative.

You can find details for the UVR1611 here: https://www.ta.co.at/en/freely-programmable/uvr1611/

There is a bootloader available which can be attached to the CAN bus of the system and to Ethernet. It is used to flash the universal controllers. It also offers the possibility to control the parameters of the heating system using an http interface and a TCP/IP API.

For years I used a C-Program written by Holger Römer (http://d-logg-linux.roemix.de) to extract the information of the UVR1611 and to record all data in a mysql database. I also wrote a small node.js based web interface which I use to manually start some functions of the heating system.

In this blog I will describe how to publish all these sensor data to MQTT and then to display the data using OpenHAB.

All we need to publish the sensor data to mqtt are the following two components

  • a Linux OS image on which we can install the executable dl-lesenx
  • the mosquitto-client executable

This is the result of the work:

The following bash script will read out the sensor data using dl-lesenx and will then publish the sensor data using the mosqitto-publish command:

#!/bin/sh
DIR="/home/openhab/UVR1611/bin"
IP="192.168.178.10"
PORT="40000"
MQTT_USER="XXXX"
MQTT_PASSWORD="XXXX"
MQTT_CAPATH="/etc/ssl/certs/"
MQTT_HOST="mqtt.XXXX.de"
MQTT_PORT="8883"
MQTT="/usr/bin/mosquitto_pub -h $MQTT_HOST -p $MQTT_PORT -u $MQTT_USER -P $MQTT_PASSWORD --capath $MQTT_CAPATH "

Controller=1

for Values in $($DIR/dl-aktuelle-datenx --rrd -i $IP:$PORT 2>/dev/null ); do
   if [ $Controller -eq 1 ]; then
      TSpeicher1=$(echo $Values | awk -F ":" '{print $2}')   
      TSpeicher2=$(echo $Values | awk -F ":" '{print $8}')   
      TSpeicher3=$(echo $Values | awk -F ":" '{print $9}')   
      TSpeicher6=$(echo $Values | awk -F ":" '{print $3}')   
      Solar_Waermemenge=$(echo $Values | awk -F ":" '{print $35 $36}')
      Solar_Leistung=$(echo $Values | awk -F ":" '{print $34}')
      Solar_PRI_RL=$(echo $Values | awk -F ":" '{print $5}') 
      Solar_PRI_VL=$(echo $Values | awk -F ":" '{print $7}') 
      Solar_PRI_Drehzahl=$(echo $Values | awk -F ":" '{print $27}') 
      Solar_PRI_Durchfluss=$(echo $Values | awk -F ":" '{print $16}') 
      Solar_SEK_VL=$(echo $Values | awk -F ":" '{print $6}') 
      Solar_SEK_Drehzahl=$(echo $Values | awk -F ":" '{print $18}') 
      Solar_Temp_Kollektor1=$(echo $Values | awk -F ":" '{print $1}') 
      Solar_Temp_Kollektor2=$(echo $Values | awk -F ":" '{print $12}') 
      Solar_Temp_Kollektor3=$(echo $Values | awk -F ":" '{print $13}') 
      Fernwaerme_RL=$(echo $Values | awk -F ":" '{print $10}') 
      Fernwaerme_VL=$(echo $Values | awk -F ":" '{print $14}') 
      Fernwaerme_Anforderung=$(echo $Values | awk -F ":" '{print $23}') 
   fi

   if [ $Controller -eq 2 ]; then
      TSpeicher4=$(echo $Values | awk -F ":" '{print $8}')   
      TSpeicher5=$(echo $Values | awk -F ":" '{print $9}')   
      TAussen=$(echo $Values | awk -F ":" '{print $12}') 
      TWohnzimmer=$(echo $Values | awk -F ":" '{print $15}') 
      TDachzimmer=$(echo $Values | awk -F ":" '{print $1}') 
      Pellet_Waermemenge=$(echo $Values | awk -F ":" '{print $35 $36}')
      Pellet_Leistung=$(echo $Values | awk -F ":" '{print $34}')
      Pellet_Anforderung=$(echo $Values | awk -F ":" '{print $23}') 
      Pellet_RL=$(echo $Values | awk -F ":" '{print $10}')   
      Pellet_VL=$(echo $Values | awk -F ":" '{print $11}') 
      Pellet_Durchfluss=$(echo $Values | awk -F ":" '{print $16}') 
      Solar_Mischer_OstWest=$(echo $Values | awk -F ":" '{print $6}') 
      Radiator_VL=$(echo $Values | awk -F ":" '{print $13}') 
      Radiator_Betrieb=$(echo $Values | awk -F ":" '{print $19}') 
      Fussboden_VL=$(echo $Values | awk -F ":" '{print $14}')  
      Fussboden_Betrieb=$(echo $Values | awk -F ":" '{print $26}') 
   fi

   Controller=2
done


$MQTT -t "UVR1611/Temperaturen/Aussen"     -m "$TAussen" 
$MQTT -t "UVR1611/Temperaturen/Wohnzimmer" -m "$TWohnzimmer"
$MQTT -t "UVR1611/Temperaturen/Dachzimmer" -m "$TDachzimmer"
# Solarkreislaeufe
$MQTT -t "UVR1611/Solar/Waermemenge"      -m "$Solar_Waermemenge"
$MQTT -t "UVR1611/Solar/Leistung"         -m "$Solar_Leistung"
$MQTT -t "UVR1611/Solar/PRI_Ruecklauf"    -m "$Solar_PRI_RL"
$MQTT -t "UVR1611/Solar/PRI_Vorlauf"      -m "$Solar_PRI_VL"
$MQTT -t "UVR1611/Solar/PRI_Drehzahl"     -m "$Solar_PRI_Drehzahl"
$MQTT -t "UVR1611/Solar/PRI_Durchfluss"   -m "$Solar_PRI_Durchfluss"
$MQTT -t "UVR1611/Solar/SEK_Vorlauf"      -m "$Solar_SEK_VL"
$MQTT -t "UVR1611/Solar/SEK_Drehzahl"     -m "$Solar_SEK_Drehzahl"
$MQTT -t "UVR1611/Solar/Temp_Kollektor1"  -m "$Solar_Temp_Kollektor1"
$MQTT -t "UVR1611/Solar/Temp_Kollektor2"  -m "$Solar_Temp_Kollektor2"
$MQTT -t "UVR1611/Solar/Temp_Kollektor3"  -m "$Solar_Temp_Kollektor3"
$MQTT -t "UVR1611/Solar/Mischer_OstWest"  -m "$Solar_Mischer_OstWest"
# Pelletkreislauf
$MQTT -t "UVR1611/Pellet/Waermemenge"     -m "$Pellet_Waermemenge"
$MQTT -t "UVR1611/Pellet/Leistung"        -m "$Pellet_Leistung"
$MQTT -t "UVR1611/Pellet/Anforderung"     -m "$Pellet_Anforderung"
$MQTT -t "UVR1611/Pellet/Ruecklauf"       -m "$Pellet_RL"
$MQTT -t "UVR1611/Pellet/Vorlauf"         -m "$Pellet_VL"
$MQTT -t "UVR1611/Pellet/Durchfluss"      -m "$Pellet_Durchfluss"
# Fernwärmekreislauf
$MQTT -t "UVR1611/Fernwaerme/Anforderung" -m "$Fernwaerme_Anforderung"
$MQTT -t "UVR1611/Fernwaerme/Ruecklauf"   -m "$Fernwaerme_RL"
$MQTT -t "UVR1611/Fernwaerme/Vorlauf"     -m "$Fernwaerme_VL"
# Schichtspeicher
$MQTT -t "UVR1611/Speicher/Temp1" -m "$TSpeicher1"
$MQTT -t "UVR1611/Speicher/Temp2" -m "$TSpeicher2"
$MQTT -t "UVR1611/Speicher/Temp3" -m "$TSpeicher3"
$MQTT -t "UVR1611/Speicher/Temp4" -m "$TSpeicher4"
$MQTT -t "UVR1611/Speicher/Temp5" -m "$TSpeicher5"
$MQTT -t "UVR1611/Speicher/Temp6" -m "$TSpeicher6"
# Fussbodenheizung und Radiator
$MQTT -t "UVR1611/Radiator/Vorlauf"  -m "$Radiator_VL"
$MQTT -t "UVR1611/Radiator/Betrieb"  -m "$Radiator_Betrieb"
$MQTT -t "UVR1611/Fussboden/Vorlauf" -m "$Fussboden_VL"
$MQTT -t "UVR1611/Fussboden/Betrieb" -m "$Fussboden_Betrieb"

Now that the sensor data are available via mqtt, we have to introduce items in OpenHAB which  subscribe to the individual topics.

The following items file will subscribe to the mqtt published data:

Number UVR_Tank_Period 
Number UVR1611_Speicher_Temp1 "Temperatur Speicher 1 [%.1f °C]" (UVR_Tank) {mqtt="<[mosquitto:UVR1611/Speicher/Temp1:state:default]"}
Number UVR1611_Speicher_Temp2 "Temperatur Speicher 2 [%.1f °C]" (UVR_Tank) {mqtt="<[mosquitto:UVR1611/Speicher/Temp2:state:default]"}
Number UVR1611_Speicher_Temp3 "Temperatur Speicher 3 [%.1f °C]" (UVR_Tank) {mqtt="<[mosquitto:UVR1611/Speicher/Temp3:state:default]"}
Number UVR1611_Speicher_Temp4 "Temperatur Speicher 4 [%.1f °C]" (UVR_Tank) {mqtt="<[mosquitto:UVR1611/Speicher/Temp4:state:default]"}
Number UVR1611_Speicher_Temp5 "Temperatur Speicher 5 [%.1f °C]" (UVR_Tank) {mqtt="<[mosquitto:UVR1611/Speicher/Temp5:state:default]"}
Number UVR1611_Speicher_Temp6 "Temperatur Speicher 6 [%.1f °C]" (UVR_Tank) {mqtt="<[mosquitto:UVR1611/Speicher/Temp6:state:default]"}
Number UVR1611_Solar_Temp_Kollektor3 "Ost1: Kollektor Garage [%.1f °C]"      (UVR_Solar) {mqtt="<[mosquitto:UVR1611/Solar/Temp_Kollektor3:state:default]"}
Number UVR1611_Solar_Temp_Kollektor1 "Ost2: Kollektor Dachzimmer [%.1f °C]"  (UVR_Solar) {mqtt="<[mosquitto:UVR1611/Solar/Temp_Kollektor1:state:default]"}
Number UVR1611_Solar_Temp_Kollektor2 "West: Kollektor Abstellraum [%.1f °C]" (UVR_Solar) {mqtt="<[mosquitto:UVR1611/Solar/Temp_Kollektor2:state:default]"}
Number UVR1611_Solar_Mischer_OstWest "Mischer (Ost<4;West>4) [%.1f]"         (UVR_Solar) {mqtt="<[mosquitto:UVR1611/Solar/Mischer_OstWest:state:default]"}
Number UVR1611_Solar_Waermemenge "Waermemenge [%.1f kWh]"      (UVR_Solar) {mqtt="<[mosquitto:UVR1611/Solar/Waermemenge:state:default]"}
Number UVR1611_Solar_Leistung "Leistung [%.1f kW]"             (UVR_Solar) {mqtt="<[mosquitto:UVR1611/Solar/Leistung:state:default]"}
Number UVR1611_Solar_PRI_Ruecklauf  "Rücklauf [%.1f °C]"       (UVR_Solar) {mqtt="<[mosquitto:UVR1611/Solar/PRI_Ruecklauf:state:default]"}
Number UVR1611_Solar_PRI_Vorlauf    "Vorlauf  [%.1f °C]"       (UVR_Solar) {mqtt="<[mosquitto:UVR1611/Solar/PRI_Vorlauf:state:default]"}
Number UVR1611_Solar_PRI_Drehzahl   "Drehzahl (max 30) [%.0f]" (UVR_Solar) {mqtt="<[mosquitto:UVR1611/Solar/PRI_Drehzahl:state:default]"}
Number UVR1611_Solar_PRI_Durchfluss "Durchfluss [%.1f l/h]"    (UVR_Solar) {mqtt="<[mosquitto:UVR1611/Solar/PRI_Durchfluss:state:default]"}
Number UVR1611_Solar_SEK_Vorlauf    "Vorlauf  [%.1f °C]"       (UVR_Solar) {mqtt="<[mosquitto:UVR1611/Solar/SEK_Vorlauf:state:default]"}
Number UVR1611_Solar_SEK_Drehzahl   "Drehzahl (max 30) [%.0f]" (UVR_Solar) {mqtt="<[mosquitto:UVR1611/Solar/SEK_Drehzahl:state:default]"}
Number UVR1611_Pellet_Waermemenge "Waermemenge [%.1f kWh]"     (UVR_Pellet) {mqtt="<[mosquitto:UVR1611/Pellet/Waermemenge:state:default]"}
Number UVR1611_Pellet_Leistung "Leistung [%.1f kW]"            (UVR_Pellet) {mqtt="<[mosquitto:UVR1611/Pellet/Leistung:state:default]"}
Number UVR1611_Pellet_Anforderung   "Anforderung  [%.0f]"      (UVR_Pellet) {mqtt="<[mosquitto:UVR1611/Pellet/Anforderung:state:default]"}
Number UVR1611_Pellet_Durchfluss    "Durchfluss [%.1f l/h]"    (UVR_Pellet) {mqtt="<[mosquitto:UVR1611/Pellet/Durchfluss:state:default]"}
Number UVR1611_Pellet_Ruecklauf     "Rücklauf [%.1f °C]"       (UVR_Pellet) {mqtt="<[mosquitto:UVR1611/Pellet/Ruecklauf:state:default]"}
Number UVR1611_Pellet_Vorlauf       "Vorlauf  [%.1f °C]"       (UVR_Pellet) {mqtt="<[mosquitto:UVR1611/Pellet/Vorlauf:state:default]"}
Number UVR1611_Fernwaerme_Anforderung "Anforderung  [%.0f]"    (UVR_Fernwaerme) {mqtt="<[mosquitto:UVR1611/Fernwaerme/Anforderung:state:default]"}
Number UVR1611_Fernwaerme_Ruecklauf "Rücklauf [%.1f °C]"       (UVR_Fernwaerme) {mqtt="<[mosquitto:UVR1611/Fernwaerme/Ruecklauf:state:default]"}
Number UVR1611_Fernwaerme_Vorlauf   "Vorlauf  [%.1f °C]"       (UVR_Fernwaerme) {mqtt="<[mosquitto:UVR1611/Fernwaerme/Vorlauf:state:default]"}
Number UVR1611_Fussboden_Vorlauf   "Vorlauf  [%.1f °C]"        (UVR_Fussboden) {mqtt="<[mosquitto:UVR1611/Fussboden/Vorlauf:state:default]"}
Number UVR1611_Fussboden_Betrieb   "Betrieb  [%s]"             (UVR_Fussboden) {mqtt="<[mosquitto:UVR1611/Fussboden/Betrieb:state:default]"}
Number UVR1611_Radiator_Vorlauf    "Vorlauf  [%.1f °C]"        (UVR_Radiator)  {mqtt="<[mosquitto:UVR1611/Radiator/Vorlauf:state:default]"}
Number UVR1611_Radiator_Betrieb    "Betrieb  [%s]"             (UVR_Radiator)  {mqtt="<[mosquitto:UVR1611/Radiator/Betrieb:state:default]"}

 

The following sitemap will define the GUI

Group label="Heizung" icon="fire-on" item=Heizung{
   Frame label="Aktive Komponenten"{          
      Text icon="fire-on"      item=UVR1611_Pellet_Leistung   label="Pelletleistung"    visibility=[UVR1611_Pellet_Anforderung>0] valuecolor=[>10="#ff0000",>6="#ffa500",>1="#ffaf00",<1="#0000ff"]
      Text icon="solarplant"   item=UVR1611_Solar_Leistung    label="Solarleistung"     visibility=[UVR1611_Solar_PRI_Drehzahl>0] valuecolor=[>10="#ff0000",>6="#ffa500",>1="#ffaf00",<1="#0000ff"]     
      Text icon="temperature"  item=UVR1611_Fussboden_Vorlauf label="Fussbodenheizung"  visibility=[UVR1611_Fussboden_Betrieb>0]  valuecolor=[>30="#ff0000",<30="#0000ff"]
      Text icon="temperature"  item=UVR1611_Radiator_Vorlauf  label="Radiatorkreislauf" visibility=[UVR1611_Radiator_Betrieb>0]   valuecolor=[>50="#ff0000",<50="#0000ff"]
   }

   Frame label="Heizungs-Parameter" {
      Group item=UVR_Tank label="Temperaturen im Tank" icon="temperature" {
         Frame label="Temperaturen im Schichtspeicher"{
            Text item=UVR1611_Speicher_Temp1 label="Sensor 1 (Oben)"  icon="temperature" valuecolor=[>65="#ff0000",>60="#ffa500",>40="#ffaf00",<40="#0000ff"]
            Text item=UVR1611_Speicher_Temp2 label="Sensor 2"         icon="temperature" valuecolor=[>65="#ff0000",>60="#ffa500",>40="#ffaf00",<40="#0000ff"]
            Text item=UVR1611_Speicher_Temp3 label="Sensor 3 (Mitte)" icon="temperature" valuecolor=[>65="#ff0000",>60="#ffa500",>40="#ffaf00",<40="#0000ff"]
            Text item=UVR1611_Speicher_Temp4 label="Sensor 4"         icon="temperature" valuecolor=[>65="#ff0000",>60="#ffa500",>40="#ffaf00",<40="#0000ff"]
            Text item=UVR1611_Speicher_Temp5 label="Sensor 5"         icon="temperature" valuecolor=[>65="#ff0000",>60="#ffa500",>40="#ffaf00",<40="#0000ff"]
            Text item=UVR1611_Speicher_Temp6 label="Sensor 6 (Unten)" icon="temperature" valuecolor=[>65="#ff0000",>60="#ffa500",>40="#ffaf00",<40="#0000ff"]
         }

         Frame label="Zeitlicher Verlauf der Speicher-Temperaturen"{
            Switch item=UVR_Tank_Period label="Chart Periode" mappings=[0="Stunde", 1="Tag", 2="Woche"] icon="line"
            Chart item=UVR_Tank     service="jdbc" period=D refresh=300 visibility=[UVR_Tank_Period==1]
            Chart item=UVR_Tank     service="jdbc" period=h refresh=300 visibility=[UVR_Tank_Period==0]
            Chart item=UVR_Tank     service="jdbc" period=W refresh=300 visibility=[UVR_Tank_Period==2, UVR_Tank_Period==NULL]
         }
     }

     Group item=UVR_Tank label="Solaranlage" icon="temperature" {
        Frame label="Solar Leistung" {
           Text      icon="solarplant"   item=UVR1611_Solar_Leistung    valuecolor=[>10="#ff0000",>6="#ffa500",>1="#ffaf00",<1="#0000ff"]
           Text      icon="line-incline" item=UVR1611_Solar_Waermemenge
        }
        Frame label="Kollektor Temperaturen" {
           Text      icon="temperature-cold" item=UVR1611_Solar_Temp_Kollektor3  valuecolor=[>80="#ff0000",>60="#ffa500",>40="#ffaf00",<40="#0000ff"] labelcolor=[UVR1611_Solar_Mischer_OstWest>4="#808080",UVR1611_Solar_Mischer_OstWest<4="#ff0000"]         
           Text      icon="temperature"      item=UVR1611_Solar_Temp_Kollektor1  valuecolor=[>80="#ff0000",>60="#ffa500",>40="#ffaf00",<40="#0000ff"] labelcolor=[UVR1611_Solar_Mischer_OstWest>4="#808080",UVR1611_Solar_Mischer_OstWest<4="#ff0000"] 
           Text      icon="temperature-hot"  item=UVR1611_Solar_Temp_Kollektor2  valuecolor=[>80="#ff0000",>60="#ffa500",>40="#ffaf00",<40="#0000ff"] labelcolor=[UVR1611_Solar_Mischer_OstWest>4="#0000ff",UVR1611_Solar_Mischer_OstWest<4="#808080"]          
           Text      icon="heating-100"      item=UVR1611_Solar_Mischer_OstWest  valuecolor=[>4="#0000ff",<4="#ff0000"]          
        }

        Frame label="Primärer Solarkreislauf" {
            Text      icon="temperature" item=UVR1611_Solar_PRI_Vorlauf    valuecolor=[>80="#ff0000",>60="#ffa500",>40="#ffaf00",<40="#0000ff"]              
            Text      icon="temperature" item=UVR1611_Solar_PRI_Ruecklauf  valuecolor=[>80="#ff0000",>60="#ffa500",>40="#ffaf00",<40="#0000ff"]              
            Text      icon="heating-100" item=UVR1611_Solar_PRI_Drehzahl   valuecolor=[>25="#ff0000",>15="#008000",<=15="#000080"]
            Text      icon="heating-20"  item=UVR1611_Solar_PRI_Durchfluss visibility=[UVR1611_Solar_PRI_Drehzahl==1,==2,==3,==4,==5,==6]
            Text      icon="heating-40"  item=UVR1611_Solar_PRI_Durchfluss visibility=[UVR1611_Solar_PRI_Drehzahl==7,==8,==9,==10,==11,==12]
            Text      icon="heating-60"  item=UVR1611_Solar_PRI_Durchfluss visibility=[UVR1611_Solar_PRI_Drehzahl==13,==14,==15,==16,==17,==18]
            Text      icon="heating-80"  item=UVR1611_Solar_PRI_Durchfluss visibility=[UVR1611_Solar_PRI_Drehzahl==19,==20,==21,==22,==23,==24]
            Text      icon="heating-100" item=UVR1611_Solar_PRI_Durchfluss visibility=[UVR1611_Solar_PRI_Drehzahl>=25]
            Text      icon="heating"     item=UVR1611_Solar_PRI_Durchfluss valuecolor=[>500="#ff0000",>300="#008000",<=200="#000080"]
        }
        Frame label="Sekundärer Solarkreislauf" {
            Text      icon="temperature" item=UVR1611_Solar_SEK_Vorlauf    valuecolor=[>80="#ff0000",>60="#ffa500",>40="#ffaf00",<40="#0000ff"]             
            Text      icon="heating-100" item=UVR1611_Solar_SEK_Drehzahl   valuecolor=[>25="#ff0000",>15="#008000",<=15="#000080"]
        }
        Frame label="Solar Charts"{
            Group item=UVR_Tank label="Solar Charts" icon="line-incline" {
                Frame label="Leistung" {
                   Chart item=UVR1611_Solar_Leistung     service="jdbc" period=1d refresh=300 
                }
                Frame label="Primärer Solarkreislauf" {
                   Chart item=UVR1611_Solar_PRI_Drehzahl    service="jdbc" period=1d refresh=300 
                   Chart item=UVR1611_Solar_Mischer_OstWest service="jdbc" period=1d refresh=300 
                   Chart item=UVR1611_Solar_PRI_Durchfluss  service="jdbc" period=1d refresh=300 
                   Chart item=UVR1611_Solar_PRI_Vorlauf     service="jdbc" period=1d refresh=300 
               }
           }
        }
    }

    Group item=UVR_Tank label="Pelletofen" icon="temperature" {
        Frame label="Pelletofen Leistung" {
            Text icon="fire-off"     item=UVR1611_Pellet_Leistung
            Text icon="line-incline" item=UVR1611_Pellet_Waermemenge
        }

        Frame label="Pelletofen Parameter" {
            Text icon="temperature"  item=UVR1611_Pellet_Anforderung 
            Text icon="heating-100"  item=UVR1611_Pellet_Durchfluss  
            Text icon="temperature"  item=UVR1611_Pellet_Vorlauf     
            Text icon="temperature"  item=UVR1611_Pellet_Ruecklauf  
        }

        Frame label="Chart Periode" {
           Switch item=Chart_Period label="Chart Periode" mappings=[0="h", 1="4h", 2="D", 3="W"] icon="line"
        } 

        Frame label="Pelletofen Chart" {
           Chart item=UVR1611_Pellet_Leistung   service="jdbc" period=h  refresh=3000000 visibility=[Chart_Period==0, Chart_Period==NULL]
           Chart item=UVR1611_Pellet_Leistung   service="jdbc" period=4h refresh=3000000 visibility=[Chart_Period==1]
           Chart item=UVR1611_Pellet_Leistung   service="jdbc" period=D  refresh=3000000 visibility=[Chart_Period==2]
           Chart item=UVR1611_Pellet_Leistung   service="jdbc" period=W  refresh=3000000 visibility=[Chart_Period==3]
           Chart item=UVR1611_Pellet_Durchfluss   service="jdbc" period=h  refresh=3000000 visibility=[Chart_Period==0, Chart_Period==NULL]
           Chart item=UVR1611_Pellet_Durchfluss   service="jdbc" period=4h refresh=3000000 visibility=[Chart_Period==1]
           Chart item=UVR1611_Pellet_Durchfluss   service="jdbc" period=D  refresh=3000000 visibility=[Chart_Period==2]
           Chart item=UVR1611_Pellet_Durchfluss   service="jdbc" period=W  refresh=3000000 visibility=[Chart_Period==3]
        }               
    }

    Group item=UVR_Tank label="Fernwärme"  icon="temperature" {
        Frame label="Geovol Parameter" {
            Text icon="temperature"  item=UVR1611_Fernwaerme_Anforderung  
            Text icon="temperature"  item=UVR1611_Fernwaerme_Ruecklauf   
            Text icon="temperature"  item=UVR1611_Fernwaerme_Vorlauf     
        }
    }
    Group item=UVR_Tank label="Heizkreisläufe"  icon="temperature" {
        Frame label="Fußbodenheizung" {
            Text icon="heating-100"  item=UVR1611_Fussboden_Betrieb  
            Text icon="temperature"  item=UVR1611_Fussboden_Vorlauf  valuecolor=[>30="#ff0000",<30="#0000ff"]
         }
        Frame label="Radiatoren" {
            Text icon="heating-100"  item=UVR1611_Radiator_Betrieb  
            Text icon="temperature"  item=UVR1611_Radiator_Vorlauf   valuecolor=[>50="#ff0000",<50="#0000ff"]  
         }
      }
   }
}

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.