How to avoid UNDEF for group state?

Hello,

I use openHab 2.4 on a Mac.

I defined a group for my homematic heating controller.
The group includes multiple items of different type which causes to my understanding the problem described below.

Group:String gDG_Bad_H	"DG Bad Heizung [%s]"	<heating>	(gDG_Bad, gHeating)
Number Heating_DG_Bad_GetTemp 				"DG Bad Ist-Temperatur [%.1f °C]"		<temperature>	(gHomematic, gDG_Bad_H, gTemperature)	{ channel = "homematic:HM-CC-RT-DN:ccu:LEQ0784598:4#ACTUAL_TEMPERATURE" }
Number Heating_DG_Bad_SetTemp 				"DG Bad Soll-Temperatur [%.1f °C]"		<temperature>	(gHomematic, gDG_Bad_H, gTempSet)		{ channel = "homematic:HM-CC-RT-DN:ccu:LEQ0784598:4#SET_TEMPERATURE" }
Number Heating_DG_Bad_Valve 				"DG Bad Ventil [%d %%]"					<heating>		(gHomematic, gDG_Bad_H)					{ channel = "homematic:HM-CC-RT-DN:ccu:LEQ0784598:4#VALVE_STATE" }
Number Heating_DG_Bad_Battery 				"DG Bad Batterie [%.1f V]"				<battery>		(gHomematic, gDG_Bad_H, gBattery)		{ channel = "homematic:HM-CC-RT-DN:ccu:LEQ0784598:4#BATTERY_STATE" }
Switch Heating_DG_Bad_BatteryLow			"DG Bad Batterie Status [MAP(hmBattery.map):%s]"			<battery>		(gHomematic, gDG_Bad_H, gBatteryState)		{ channel = "homematic:HM-CC-RT-DN:ccu:LEQ0784598:0#LOWBAT" }
String Heating_DG_Bad_Error	 				"DG Bad Fehler [%s]"					<smiley>		(gHomematic, gDG_Bad_H, gError)			{ channel = "homematic:HM-CC-RT-DN:ccu:LEQ0784598:4#FAULT_REPORTING" }
String Heating_DG_Bad_GetMode 				"DG Bad Mode [%s]"						<heating>		(gHomematic, gDG_Bad_H, gMode)			{ channel = "homematic:HM-CC-RT-DN:ccu:LEQ0784598:4#CONTROL_MODE" }
Switch Heating_DG_Bad_SetModeAuto 			"DG Bad Auto Mode"										(gHomematic, gDG_Bad_H)					{ channel = "homematic:HM-CC-RT-DN:ccu:LEQ0784598:4#AUTO_MODE" }
Number Heating_DG_Bad_SetModeManual 		"DG Bad Manuel Mode"									(gHomematic, gDG_Bad_H)					{ channel = "homematic:HM-CC-RT-DN:ccu:LEQ0784598:4#MANU_MODE" }
Number Heating_DG_Bad_SetModeBoost 			"DG Bad Boost Mode [%ds]"								(gHomematic, gDG_Bad_H)					{ channel = "homematic:HM-CC-RT-DN:ccu:LEQ0784598:4#BOOST_MODE" }
Number Heating_DG_Bad_Signal				"DG Bad Signalstärke [%d dB]"			<network>		(gHomematic, gDG_Bad_H, gSignal)		{ channel = "homematic:HM-CC-RT-DN:ccu:LEQ0784598:0#SIGNAL_STRENGTH"}

The group is defined as a String

Group:String gDG_Bad_H "DG Bad Heizung [%s]" <heating> (gDG_Bad, gHeating)

because I want to display the set and get temperature in this string.
Basically it should look like this
DG Bad Heizung 21,0°C / 22,9°C
where the first temperature is the requested temperature (set) and the second is the currently measured temperature (get).

The rule to do so is this one

// Create string for set/get heating temperatures
rule "DG_Bad set/get heating temperatures"
when
	Item Heating_DG_Bad_GetTemp changed or
	Item Heating_DG_Bad_SetTemp changed or
	System started
then
	var String tempStrSet = "-"
	var String tempStrGet = "-"
	
	if (Heating_DG_Bad_SetTemp.state !== null) { tempStrSet = Heating_DG_Bad_SetTemp.state.format("%.1f") }
	if (Heating_DG_Bad_GetTemp.state !== null) { tempStrGet = Heating_DG_Bad_GetTemp.state.format("%.1f") }
	
	gDG_Bad_H.postUpdate(tempStrSet + " °C / " + tempStrGet + " °C")
end

and it works almost.
Almost because it works when Heating_DG_Bad_GetTemp or Heating_DG_Bad_SetTemp changes but when another group member e.g. Heating_DG_Bad_Valve changes, then the displayed string changes to

DG Bad Heizung -

and in the event log file I get

2018-12-30 17:48:21.156 [GroupItemStateChangedEvent] - gDG_Bad_H changed from 21,0 °C / 22,9 °C to UNDEF through Heating_DG_Bad_Valve

So my question is how to avoid that other group members trigger a change of the string?

Any idea is appreciated.

I don’t think you can.
Just create a String item for that purpose instead

If I would only need the displayed string then I would have done as you propose but I want to be able to navigate into the group (basicUI) so that I can e.g. modify the set temperature.

If there is really no other possibility then I have to do as you propose but that would mean to create for every heating a dedicated frame in the sitemap (cumbersome).

Cumbursome but more flexible.
By using groups in the sitemap, you have no contrl over mappings, or the way the items are displayed and in which order. Build your sitemap item by item, with frames
Cumbersome, but only once.

See mine (700 odds lines…) and it’s not even up to date with new stuff:

sitemap default label="Home"
{
    Frame label="Home" {
        Selection item=House_Mode mappings=["NORMAL"="NORMAL", "AWAY"="AWAY", "PARTY"="PARTY", "HOLIDAY"="HOLIDAY"]
        Text item=GroundFloor {
            Text item=LivingRoom {
                Frame {
                    Switch item=LivingRoom_MediaPower
                    Slider item=TVLights
                    Text label="TV Lights" icon="switch" {
                        Slider item=LivingRoom_TVLightLeft_Level
                        Colorpicker item=LivingRoom_TVLightLeft_Colour
                        //Switch item=TVLightRight
                    }
                }
                Frame {
                    Switch item=LivingRoom_CeilingLight
                    Switch item=LivingRoom_WallLights
                    Switch item=LivingRoom_CabinetLight
                }
                Frame {
                    Switch item=LivingRoom_AquariumPump
                    Switch item=LivingRoom_WallSwitch
                }
                Frame {
                    Text label="Doors" icon="door" {
                        Text item=LivingRoom_Door {
                            Text item=LivingRoom_Door
                            Text item=LivingRoom_Door_Battery {
                                Chart item=LivingRoom_Door_Battery period=Y refresh=60000
                            }
                        }
                        Text item=Kitchen_Door {
                            Text item=Kitchen_Door
                            Text item=Kitchen_Door_Battery {
                                Chart item=Kitchen_Door_Battery period=Y refresh=60000
                            }
                        }
                    }
                    Text label="Windows" icon="contact" {
                        Text item=LivingRoom_WindowLeft {
                            Text item=LivingRoom_WindowLeft
                            Text item=LivingRoom_WindowLeft_Battery {
                                Chart item=LivingRoom_WindowLeft_Battery period=Y refresh=60000
                            }
                        }
                        Text item=LivingRoom_WindowRight {
                            Text item=LivingRoom_WindowRight
                            Text item=LivingRoom_WindowRight_Battery {
                                Chart item=LivingRoom_WindowRight_Battery period=Y refresh=60000
                            }
                        }
                        Text item=LivingRoom_WindowTopLeft {
                            Text item=LivingRoom_WindowTopLeft
                            Text item=LivingRoom_WindowTopLeft_Battery {
                                Chart item=LivingRoom_WindowTopLeft_Battery period=Y refresh=60000
                            }
                        }
                        Text item=LivingRoom_WindowTopRight {
                            Text item=LivingRoom_WindowTopRight
                            Text item=LivingRoom_WindowTopRight_Battery {
                                Chart item=LivingRoom_WindowTopRight_Battery period=Y refresh=60000
                            }
                        }
                    }
                }
                Frame {
                    Video url="http://openhabguest:Spirou%4001@192.168.0.30:8666/videostream.cgi" encoding="mjpeg"
                }
            }
            Text item=Kitchen {
                Frame {
                    Switch item=Kitchen_CeilingLight
                    Switch item=Kitchen_WallLights
                    Switch item=Kitchen_CabinetLights
                }
                Frame {
                    Text label="Doors" icon="door" {
                        Text item=Kitchen_Door {
                            Text item=Kitchen_Door
                            Text item=Kitchen_Door_Battery {
                                Chart item=Kitchen_Door_Battery period=Y refresh=60000
                            }
                        }
                        Text item=Conservatory_Door valuecolor=[CLOSED="green", OPEN="red"] labelcolor=[CLOSED="green", OPEN="red"] {
                            Text item=Conservatory_Door valuecolor=[CLOSED="green", OPEN="red"] labelcolor=[CLOSED="green", OPEN="red"]
                            Text item=Conservatory_Door_LastOpen
                            Text item=Conservatory_Door_LastClosed
                            Text item=Conservatory_Door_Battery {
                                Chart item=Conservatory_Door_Battery period=Y refresh=60000
                            }
                        }
                        Text item=Pantry_Door {
                            Text item=Pantry_Door
                            Text item=Pantry_Door_Battery {
                                Chart item=Pantry_Door_Battery period=Y refresh=60000
                            }
                        }
                    }
                    Text label="Windows" icon="contact" {
                        Text item=Kitchen_WindowLeft {
                            Text item=Kitchen_WindowLeft
                            Text item=Kitchen_WindowLeft_Battery {
                                Chart item=Kitchen_WindowLeft_Battery period=Y refresh=60000
                            }
                        }
                        Text item=Kitchen_WindowTop {
                            Text item=Kitchen_WindowTop
                            Text item=Kitchen_WindowTop_Battery {
                                Chart item=Kitchen_WindowTop_Battery period=Y refresh=60000
                            }
                        }
                    }
                }
            }
            Text item=Pantry {
                Frame {
                    Switch item=Pantry_Light
                }
                Frame {
                    Text item=Pantry_Door {
                        Text item=Pantry_Door
                        Text item=Pantry_Door_Battery {
                            Chart item=Pantry_Door_Battery period=Y refresh=60000
                        }
                    }
                }
            }
            Text item=Conservatory {
                Frame {
                    Text item=Fridge_Door
                    Text item=Fridge_Temperature
                    Text item=Freezer_Door
                    Text item=Freezer_Temperature
                }
                Frame {
                    Text label="Doors" icon="door" {
                        Text item=Conservatory_Door valuecolor=[CLOSED="green", OPEN="red"] labelcolor=[CLOSED="green", OPEN="red"] {
                            Text item=Conservatory_Door valuecolor=[CLOSED="green", OPEN="red"] labelcolor=[CLOSED="green", OPEN="red"]
                            Text item=Conservatory_Door_LastOpen
                            Text item=Conservatory_Door_LastClosed
                            Text item=Conservatory_Door_Battery {
                                Chart item=Conservatory_Door_Battery period=Y refresh=60000
                            }
                        }
                        Text item=Conservatory_GardenDoor valuecolor=[CLOSED="green", OPEN="red"] labelcolor=[CLOSED="green", OPEN="red"] {
                            Text item=Conservatory_GardenDoor valuecolor=[CLOSED="green", OPEN="red"] labelcolor=[CLOSED="green", OPEN="red"]
                            Text item=Conservatory_GardenDoor_LastOpen
                            Text item=Conservatory_GardenDoor_LastClosed
                            Text item=Conservatory_GardenDoor_Battery {
                                Chart item=Conservatory_GardenDoor_Battery period=Y refresh=60000
                            }
                        }
                    }
                    Text label="Windows" icon="contact" {
                        Text item=Conservatory_Window1 {
                            Text item=Conservatory_Window1
                            Text item=Conservatory_Window1_Battery {
                                Chart item=Conservatory_Window1_Battery period=Y refresh=60000
                            }
                        }
                        Text item=Conservatory_Window2 {
                            Text item=Conservatory_Window2
                            Text item=Conservatory_Window2_Battery {
                                Chart item=Conservatory_Window2_Battery period=Y refresh=60000
                            }
                        }
                        Text item=Conservatory_Window3 {
                            Text item=Conservatory_Window3
                            Text item=Conservatory_Window3_Battery {
                                Chart item=Conservatory_Window3_Battery period=Y refresh=60000
                            }
                        }
                    }
                }
            }
            Text item=Hallway {
                Frame {
                    Switch item=Hallway_CeilingLight
                }
                Frame {
                    Text label="Doors" icon="door" {
                        Text item=Hallway_Door valuecolor=[CLOSED="green", OPEN="red"] labelcolor=[CLOSED="green", OPEN="red"] {
                            Text item=Hallway_Door valuecolor=[CLOSED="green", OPEN="red"] labelcolor=[CLOSED="green", OPEN="red"]
                            Text item=Hallway_Door_LastOpen
                            Text item=Hallway_Door_LastClosed
                            Text item=Hallway_Door_Battery {
                                Chart item=Hallway_Door_Battery period=Y refresh=60000
                            }
                        }
                        Text item=House_FrontDoor valuecolor=[CLOSED="green", OPEN="red"] labelcolor=[CLOSED="green", OPEN="red"] {
                            Text item=House_FrontDoor valuecolor=[CLOSED="green", OPEN="red"] labelcolor=[CLOSED="green", OPEN="red"]
                            Text item=House_FrontDoor_LastOpen
                            Text item=House_FrontDoor_LastClosed
                            Text item=House_FrontDoor_Battery {
                                Chart item=House_FrontDoor_Battery period=Y refresh=60000
                            }
                        }
                    }
                    Text label="Windows" icon="contact" {
                        Text item=Hallway_Window {
                            Text item=Hallway_Window
                            Text item=Hallway_Window_Battery {
                                Chart item=Hallway_Window_Battery period=Y refresh=60000
                            }
                        }
                    }
                }
            }
        }
        Text item=FirstFloor {
            Text item=MasterBedroom {
                Frame {
                    Switch item=MasterBedroom_CeilingLight
                }
                Frame {
                    //Selection item=MasterBedroom_HotBlanket mappings=[0=OFF,1=LOW,2=MEDIUM,3=HIGH]
                    Switch item=MasterBedroom_HotBlanket
                }
                Frame {
                    Text item=MasterBedroom_ThermostatAmbientTemp {
                        Chart item=MasterBedroom_ThermostatAmbientTemp period=D refresh=15000
                        Chart item=MasterBedroom_ThermostatAmbientTemp period=W refresh=15000
                        Chart item=MasterBedroom_ThermostatAmbientTemp period=M refresh=15000
                        Chart item=MasterBedroom_ThermostatAmbientTemp period=Y refresh=15000
                    }
                    Text item=MasterBedroom_ThermostatHumidity
                    Text item=MasterBedroom_RadiatorValve
                    Setpoint item=MasterBedroom_ThermostatTarget minValue=5 maxValue=30 step=1
                }
                Frame {
                    Text item=MasterBedroom_WindowTop {
                        Text item=MasterBedroom_WindowTop
                        Text item=MasterBedroom_WindowTop_Battery {
                            Chart item=MasterBedroom_WindowTop_Battery period=Y refresh=60000
                        }
                    }
                    Text item=MasterBedroom_WindowBottom {
                        Text item=MasterBedroom_WindowBottom
                        Text item=MasterBedroom_WindowBottom_Battery {
                            Chart item=MasterBedroom_WindowBottom_Battery period=Y refresh=60000
                        }
                    }
                    Text item=MasterBedroom_Door {
                        Text item=MasterBedroom_Door
                        Text item=MasterBedroom_Door_Battery {
                            Chart item=MasterBedroom_Door_Battery period=Y refresh=60000
                        }
                    }
                }
                Frame {
                    Text item=MasterBedroom_ThermostatBattery {
                        Chart item=MasterBedroom_ThermostatBattery period=Y refresh=60000
                    }
                }
            }
            Text item=LargeBedroom {
                Frame {
                    Switch item=LargeBedroom_CeilingLight
                    Switch item=LargeBedroom_DresserLight
                }
                Frame {
                    Selection item=LargeBedroom_HotBlanket mappings=[0=OFF,1=LOW,2=MEDIUM,3=HIGH,4=MAX]
                }
                Frame {
                    Text item=LargeBedroom_ThermostatAmbientTemp {
                        Chart item=LargeBedroom_ThermostatAmbientTemp period=D refresh=15000
                        Chart item=LargeBedroom_ThermostatAmbientTemp period=W refresh=15000
                        Chart item=LargeBedroom_ThermostatAmbientTemp period=M refresh=15000
                        Chart item=LargeBedroom_ThermostatAmbientTemp period=Y refresh=15000
                    }
                    Text item=LargeBedroom_ThermostatHumidity
                    Text item=LargeBedroom_RadiatorValve
                    Setpoint item=LargeBedroom_ThermostatTarget minValue=5 maxValue=30 step=1
                }
                Frame {
                    Text item=LargeBedroom_WindowLeft {
                        Text item=LargeBedroom_WindowLeft
                        Text item=LargeBedroom_WindowLeft_Battery {
                            Chart item=LargeBedroom_WindowLeft_Battery period=Y refresh=60000
                        }
                    }
                    Text item=LargeBedroom_WindowRight {
                        Text item=LargeBedroom_WindowRight
                        Text item=LargeBedroom_WindowRight_Battery {
                            Chart item=LargeBedroom_WindowRight_Battery period=Y refresh=60000
                        }
                    }
                    Text item=LargeBedroom_Door {
                        Text item=LargeBedroom_Door
                        Text item=LargeBedroom_Door_Battery {
                            Chart item=LargeBedroom_Door_Battery period=Y refresh=60000
                        }
                    }
                }
                Frame {
                    Text item=LargeBedroom_ThermostatBattery {
                        Chart item=LargeBedroom_ThermostatBattery period=Y refresh=60000
                    }
                }
            }
            Text item=SmallBedroom {
                Frame {
                    Switch item=SmallBedroom_CeilingLight
                }
                Frame {
                    Text item=SmallBedroom_ThermostatAmbientTemp {
                        Chart item=SmallBedroom_ThermostatAmbientTemp period=D refresh=15000
                        Chart item=SmallBedroom_ThermostatAmbientTemp period=W refresh=15000
                        Chart item=SmallBedroom_ThermostatAmbientTemp period=M refresh=15000
                        Chart item=SmallBedroom_ThermostatAmbientTemp period=Y refresh=15000
                    }
                    Text item=SmallBedroom_ThermostatHumidity label="Humidity [%.1f %%]"
                    Text item=SmallBedroom_ThermostatHumidity label="Humidity x 100 [%.1f]"
                    Text item=SmallBedroom_RadiatorValve
                    Setpoint item=SmallBedroom_ThermostatTarget minValue=5 maxValue=30 step=1
                }
                Frame {
                    Text item=SmallBedroom_Window {
                        Text item=SmallBedroom_Window
                        Text item=SmallBedroom_Window_Battery {
                            Chart item=SmallBedroom_Window_Battery period=Y refresh=60000
                        }
                    }
                    Text item=SmallBedroom_Door {
                        Text item=SmallBedroom_Door
                        Text item=SmallBedroom_Door_Battery {
                            Chart item=SmallBedroom_Door_Battery period=Y refresh=60000
                        }
                    }
                }
                Frame {
                    Text item=SmallBedroom_ThermostatBattery {
                        Chart item=SmallBedroom_ThermostatBattery period=Y refresh=60000
                    }
                }
            }
            Text item=Landing {
                Frame {
                    Switch item=Landing_CeilingLight
                }
            }
            Text item=Bathroom {
                Frame {
                    Switch item=Bathroom_Light
                }
                Frame {
                    Text item=Bathroom_ThermostatAmbientTemp {
                        Chart item=Bathroom_ThermostatAmbientTemp period=D refresh=15000
                        Chart item=Bathroom_ThermostatAmbientTemp period=W refresh=15000
                        Chart item=Bathroom_ThermostatAmbientTemp period=M refresh=15000
                        Chart item=Bathroom_ThermostatAmbientTemp period=Y refresh=15000
                    }
                    Text item=Bathroom_ThermostatHumidity
                    Text item=Bathroom_RadiatorValve
                    Setpoint item=Bathroom_ThermostatTarget minValue=5 maxValue=30 step=1
                }
                Frame {
                    Text item=Bathroom_Window {
                        Text item=Bathroom_Window
                        Text item=Bathroom_Window_Battery {
                            Chart item=Bathroom_Window_Battery period=Y refresh=60000
                        }
                    }
                    Text item=Bathroom_Door {
                        Text item=Bathroom_Door
                        Text item=Bathroom_Door_Battery {
                            Chart item=Bathroom_Door_Battery period=Y refresh=60000
                        }
                    }
                }
                Frame {
                    Text item=Bathroom_ThermostatBattery {
                        Chart item=Bathroom_ThermostatBattery period=Y refresh=60000
                    }
                }
            }
            Text item=Toilet {
                Frame {
                    Switch item=Toilet_Light
                }
                Frame {
                    Text item=Toilet_Window {
                        Text item=Toilet_Window
                        Text item=Toilet_Window_Battery {
                            Chart item=Toilet_Window_Battery period=Y refresh=60000
                        }
                    }
                    Text item=Toilet_Door {
                        Text item=Toilet_Door
                        Text item=Toilet_Door_Battery {
                            Chart item=Toilet_Door_Battery period=Y refresh=60000
                        }
                    }
                }
            }
        }
    }
    Frame label="Heating" {
        Text item=Heating_Mode
        Text label="Nest" icon="nest" {
            Text item=House_NestHVACMode
            Text item=House_NestAmbientTemperature
            Text item=House_NestHumidity
            Text item=House_NestHeatingONOFF
            Setpoint item=House_NestTargetTemperature minValue=5 maxValue=30 step=0.5
        }
        Text item=GroundFloor {
            Text item=LivingRoom {
                Text item=LivingRoom_RadiatorValve
            }
        }
        Text item=FirstFloor {
            Text item=MasterBedroom {
                Frame {
                    Text item=MasterBedroom_ThermostatAmbientTemp
                    Text item=MasterBedroom_ThermostatHumidity
                    Text item=MasterBedroom_RadiatorValve
                    Setpoint item=MasterBedroom_ThermostatTarget minValue=5 maxValue=30 step=1
                }
                Frame {
                    Text item=MasterBedroom_WindowTop {
                        Text item=MasterBedroom_WindowTop
                        Text item=MasterBedroom_WindowTop_Battery {
                            Chart item=MasterBedroom_WindowTop_Battery period=Y refresh=60000
                        }
                    }
                    Text item=MasterBedroom_WindowBottom {
                        Text item=MasterBedroom_WindowBottom
                        Text item=MasterBedroom_WindowBottom_Battery {
                            Chart item=MasterBedroom_WindowBottom_Battery period=Y refresh=60000
                        }
                    }
                }
                Frame {
                    Text item=MasterBedroom_ThermostatBattery {
                        Chart item=MasterBedroom_Thermostat_Battery period=Y refresh=60000
                    }
                }
            }
            Text item=LargeBedroom {
                Frame {
                    Text item=LargeBedroom_ThermostatAmbientTemp
                    Text item=LargeBedroom_ThermostatHumidity
                    Text item=LargeBedroom_RadiatorValve
                    Setpoint item=LargeBedroom_ThermostatTarget minValue=5 maxValue=30 step=1
                }
                Frame {
                    Text item=LargeBedroom_WindowLeft {
                        Text item=LargeBedroom_WindowLeft
                        Text item=LargeBedroom_WindowLeft_Battery {
                            Chart item=LargeBedroom_WindowLeft_Battery period=Y refresh=60000
                        }
                    }
                    Text item=LargeBedroom_WindowRight {
                        Text item=LargeBedroom_WindowRight
                        Text item=LargeBedroom_WindowRight_Battery {
                            Chart item=LargeBedroom_WindowRight_Battery period=Y refresh=60000
                        }
                    }
                }
                Frame {
                    Text item=LargeBedroom_ThermostatBattery {
                        Chart item=LargeBedroom_ThermostatBattery period=Y refresh=60000
                    }
                }
            }
            Text item=SmallBedroom {
                Frame {
                    Text item=SmallBedroom_ThermostatAmbientTemp
                    Text item=SmallBedroom_ThermostatHumidity
                    Text item=SmallBedroom_RadiatorValve
                    Setpoint item=SmallBedroom_ThermostatTarget minValue=5 maxValue=30 step=1
                }
                Frame {
                    Text item=SmallBedroom_Window {
                        Text item=SmallBedroom_Window
                        Text item=SmallBedroom_Window_Battery {
                            Chart item=SmallBedroom_Window_Battery period=Y refresh=60000
                        }
                    }
                }
                Frame {
                    Text item=SmallBedroom_ThermostatBattery {
                        Chart item=SmallBedroom_ThermostatBattery period=Y refresh=60000
                    }
                }
            }
            Text item=Bathroom {
                Frame {
                    Text item=Bathroom_ThermostatAmbientTemp
                    Text item=Bathroom_ThermostatHumidity
                    Text item=Bathroom_RadiatorValve
                    Setpoint item=Bathroom_ThermostatTarget minValue=5 maxValue=30 step=1
                }
                Frame {
                    Text item=Bathroom_Window {
                        Text item=Bathroom_Window
                        Text item=Bathroom_Window_Battery {
                            Chart item=Bathroom_Window_Battery period=Y refresh=60000
                        }
                    }
                }
                Frame {
                    Text item=Bathroom_ThermostatBattery {
                        Chart item=Bathroom_ThermostatBattery period=Y refresh=60000
                    }
                }
            }
            Text item=Toilet {
                Frame {
                    Text item=Toilet_ThermostatAmbientTemp
                    //Text item=Bathroom_ThermostatHumidity
                    //Text item=Bathroom_RadiatorValve
                    //Setpoint item=Bathroom_ThermostatTarget minValue=5 maxValue=30 step=1
                }
                Frame {
                    Text item=Toilet_Window {
                        Text item=Toilet_Window
                        Text item=Toilet_Window_Battery {
                            Chart item=Toilet_Window_Battery period=Y refresh=60000
                        }
                    }
                }
                //Frame {
                //    Text item=Bathroom_ThermostatBattery {
                //        Chart item=Bathroom_ThermostatBattery period=Y refresh=60000
                //    }
                //}
            }
        }
    }
    Frame label="Weather" {
        Text item=OutsideTemperature
        Text item=AuriolTemp
        Text item=OutsideHumidity
        Text item=WindSpeedMph label="Windspeed m/s [%.1f m/s]"
        Text item=WindDirection
        Text item=WindDirection2
        Text item=SunElevation
        //Image item=WeatherIcon
    }
    Frame label="Presence" {
        Text item=Presence_Vincent
        Text item=Presence_Sadaf
    }
    Frame {
        Text item=PrayerTimes label="Prayer Times" icon="islam" {
            Text item=PrayerTime_Fajr
            Text item=PrayerTime_Zuhr
            Text item=PrayerTime_Asr
            Text item=PrayerTime_Maghrib
            Text item=PrayerTime_Isha
            //Text item=PrayerTime_MaghribLightsON
            //Text item=PrayerTime_MaghribLightsOFF
            Setpoint item=PrayerTime_MinutesBeforeMaghrib minValue=1 maxValue=60 step=1
            Setpoint item=PrayerTime_MinutesAfterMaghrib minValue=1 maxValue=60 step=1
            Switch item=PrayerTime_PlayEarlyAdhan
            Setpoint item=PrayerTime_EarlyAdhanTime minValue=2 maxValue=7 step=1 visibility=[PrayerTime_PlayEarlyAdhan!=OFF]
        }
        Text item=EntryDoors valuecolor=[CLOSED="green", OPEN="red"] labelcolor=[CLOSED="green", OPEN="red"] {
            Frame {
                Text item=House_FrontDoor valuecolor=[CLOSED="green", OPEN="red"] labelcolor=[CLOSED="green", OPEN="red"]
                Text item=House_FrontDoor_LastOpen icon="clock"
                Text item=House_FrontDoor_LastClosed icon="clock"
            }
            Frame {
                Text item=Hallway_Door valuecolor=[CLOSED="green", OPEN="red"] labelcolor=[CLOSED="green", OPEN="red"]
                Text item=Hallway_Door_LastOpen icon="clock"
                Text item=Hallway_Door_LastClosed icon="clock"
            }
            Frame {
                Text item=Conservatory_Door valuecolor=[CLOSED="green", OPEN="red"] labelcolor=[CLOSED="green", OPEN="red"]
                Text item=Conservatory_Door_LastOpen icon="clock"
                Text item=Conservatory_Door_LastClosed icon="clock"
            }
            Frame {
                Text item=Conservatory_GardenDoor valuecolor=[CLOSED="green", OPEN="red"] labelcolor=[CLOSED="green", OPEN="red"]
                Text item=Conservatory_GardenDoor_LastOpen icon="clock"
                Text item=Conservatory_GardenDoor_LastClosed icon="clock"
            }
        }
        Text item=Doors {
            Text item=House_FrontDoor valuecolor=[CLOSED="green", OPEN="red"] labelcolor=[CLOSED="green", OPEN="red"] {
                Text item=House_FrontDoor valuecolor=[CLOSED="green", OPEN="red"] labelcolor=[CLOSED="green", OPEN="red"]
                Text item=House_FrontDoor_LastOpen
                Text item=House_FrontDoor_LastClosed
                Text item=House_FrontDoor_Battery
            }
            Text item=Hallway_Door  valuecolor=[CLOSED="green", OPEN="red"] labelcolor=[CLOSED="green", OPEN="red"] {
                Text item=Hallway_Door valuecolor=[CLOSED="green", OPEN="red"] labelcolor=[CLOSED="green", OPEN="red"]
                Text item=Hallway_Door_LastOpen
                Text item=Hallway_Door_LastClosed
                Text item=Hallway_Door_Battery
            }
            Text item=LivingRoom_Door {
                Text item=LivingRoom_Door
                Text item=LivingRoom_Door_Battery
            }
            Text item=Kitchen_Door {
                Text item=Kitchen_Door
                Text item=Kitchen_Door_Battery
            }
            Text item=Conservatory_Door valuecolor=[CLOSED="green", OPEN="red"] labelcolor=[CLOSED="green", OPEN="red"] {
                Text item=Conservatory_Door valuecolor=[CLOSED="green", OPEN="red"] labelcolor=[CLOSED="green", OPEN="red"]
                Text item=Conservatory_Door_LastOpen
                Text item=Conservatory_Door_LastClosed
                Text item=Conservatory_Door_Battery
            }
            Text item=Conservatory_GardenDoor valuecolor=[CLOSED="green", OPEN="red"] labelcolor=[CLOSED="green", OPEN="red"] {
                Text item=Conservatory_GardenDoor valuecolor=[CLOSED="green", OPEN="red"] labelcolor=[CLOSED="green", OPEN="red"]
                Text item=Conservatory_GardenDoor_LastOpen
                Text item=Conservatory_GardenDoor_LastClosed
                Text item=Conservatory_GardenDoor_Battery
            }
            Text item=Garden_Gate {
                Text item=Garden_Gate
                Text item=Garden_Gate_Battery
            }
            Text item=Bathroom_Door {
                Text item=Bathroom_Door
                Text item=Bathroom_Door_Battery
            }
            Text item=Toilet_Door {
                Text item=Toilet_Door
                Text item=Toilet_Door_Battery
            }
            Text item=MasterBedroom_Door {
                Text item=MasterBedroom_Door
                Text item=MasterBedroom_Door_Battery
            }
            Text item=LargeBedroom_Door {
                Text item=LargeBedroom_Door
                Text item=LargeBedroom_Door_Battery
            }
            Text item=SmallBedroom_Door {
                Text item=SmallBedroom_Door
                Text item=SmallBedroom_Door_Battery
            }
            Text item=Loft_Hatch {
                Text item=Loft_Hatch
                Text item=Loft_Hatch_Battery
            }
        }
        Text item=Windows {
            Frame {
                Text item=LivingRoom_WindowLeft {
                    Text item=LivingRoom_WindowLeft
                    Text item=LivingRoom_WindowLeft_Battery
                }
                Text item=LivingRoom_WindowRight {
                    Text item=LivingRoom_WindowRight
                    Text item=LivingRoom_WindowRight_Battery
                }
                Text item=LivingRoom_WindowTopLeft {
                    Text item=LivingRoom_WindowTopLeft
                    Text item=LivingRoom_WindowTopLeft_Battery
                }
                Text item=LivingRoom_WindowTopRight {
                    Text item=LivingRoom_WindowTopRight
                    Text item=LivingRoom_WindowTopRight_Battery
                }
            }
            Frame {
                Text item=Kitchen_WindowLeft {
                    Text item=Kitchen_WindowLeft
                    Text item=Kitchen_WindowLeft_Battery
                }
                Text item=Kitchen_WindowTop {
                    Text item=Kitchen_WindowTop
                    Text item=Kitchen_WindowTop_Battery
                }
            }
            Frame {
                Text item=Conservatory_Window1 {
                    Text item=Conservatory_Window1
                    Text item=Conservatory_Window1_Battery
                }
                Text item=Conservatory_Window2 {
                    Text item=Conservatory_Window2
                    Text item=Conservatory_Window2_Battery
                }
                Text item=Conservatory_Window3 {
                    Text item=Conservatory_Window3
                    Text item=Conservatory_Window3_Battery
                }
            }
            Frame {
                Text item=Bathroom_Window {
                    Text item=Bathroom_Window
                    Text item=Bathroom_Window_Battery
                }
                Text item=Toilet_Window {
                    Text item=Toilet_Window
                    Text item=Toilet_Window_Battery
                }
            }
            Frame {
                Text item=MasterBedroom_WindowTop {
                    Text item=MasterBedroom_WindowTop
                    Text item=MasterBedroom_WindowTop_Battery
                }
                Text item=MasterBedroom_WindowBottom {
                    Text item=MasterBedroom_WindowBottom
                    Text item=MasterBedroom_WindowBottom_Battery
                }
                Text item=LargeBedroom_WindowLeft {
                    Text item=LargeBedroom_WindowLeft
                    Text item=LargeBedroom_WindowLeft_Battery
                }
                Text item=LargeBedroom_WindowRight {
                    Text item=LargeBedroom_WindowRight
                    Text item=LargeBedroom_WindowRight_Battery
                }
                Text item=SmallBedroom_Window {
                    Text item=SmallBedroom_Window
                    Text item=SmallBedroom_Window_Battery
                }
            }
        }
    }
    Frame {
       Slider item=LivingRoom_Blind label="Living Room Blinds [%s %%]"
       Switch item=LivingRoom_Blind
    }
    Frame {
        Text item=gPiHole label="Pi-Hole" icon=pihole {
            Text item=PiHole_DomainsBeingBlocked
            Text item=PiHole_DnsQueriesToday
            Text item=PiHole_AdsBlockedToday
            Text item=PiHole_AdsPercentageToday
            Text item=PiHole_UniqueDomains
            Text item=PiHole_QueriesForwarded
            Text item=PiHole_QueriesCached
            Text item=PiHole_ClientsEverSeen
            Text item=PiHole_UniqueClients
            Text item=PiHole_Status
        }
    }
    Frame {
        Video url="http://openhabguest:Spirou%4001@192.168.0.30:8666/videostream.cgi" encoding="mjpeg"
    }
}