[SOLVED] Disable sitemap frames checks in VSCode extension/LSP

I use a sitemap with frames and grouped text items. e.g.:

    Frame label="Home" {
  ...
        Text item=Weather_Condition label="Weather [%s]" icon="sun_clouds" {
            Text item=Astro_Sun_RiseNext
  ...

The VSCode extension (or the LSP actually), is always flagging that as an error: sitemap should contain either only frames or none at all


Is there a way to disable this check, either in the LSP or the VSC extension?

The message is mistakable, of course you are allowed to use frame Widgets and other Widgets, but not in the same level.

sitemap demo label="root" {
    Frame label="root, 1. Frame" {
        Text label="root, 1.Frame, 1. Item, no link"
        Text label="root, 1.Frame, 2. Item, link" {
            Frame label="1. sub page, 1.Frame" {
                Text label="1. sub page, 1. Frame, 1. Item, no link"
                Text label="1. sub page, 1. Frame, 2. Item, link" {
                    Switch item=myNumber mappings=[1="1",2="two",3="3",4="four"]
                }
            }
        }
    }
    Frame label="root, 2. Frame" {
        Text label="root, 2.Frame, 1. Item, no link"
        Text label="root, 2.Frame, 2. Item, link" {
            Frame label="2. sub page, 1.Frame" {
                Text label="2. sub page, 1. Frame, 1. Item, no link"
                Text label="2. sub page, 1. Frame, 2. Item, link" {
                       Selection item=myNumber mappings=[1="1",2="two",3="3",4="four"]
             }
            }
        }
    }
}

This sitemap is absolutely ok and results in no error message.

This is allowed:

sitemap demo label="root" {
    Frame label="root, 1. Frame" {
        Text label="root, 1.Frame, 1. Item, no link"
    }
}

This is not allowed:

sitemap demo label="root" {
    Frame label="root, 1. Frame" {
        Text label="root, 1.Frame, 1. Item, no link"
    }
    Text label="root, 1.Frame, 1. Item, no link"
}
2 Likes

Besides Udos answer:

No there is currently no way for disabling single checks in LSP.

I know the sitemap works fine. :blush:
I just wanted to get rid of that error in VSCode.

Looks like I have to live with it for now, until I have everything ported to HABpanel.

Thanks.

But it’s not fine. You get an error message. Other people don’t.

With “This sitemap” I meant my example code, not yours, as I don’t know your sitemap.

1 Like

Obviously, I was not very clear. It is a LSP linting error shown in VS Code, not OH I was referring to :smile:.

The rules DSL parser doesn’t like a Text {} block inside a Frame {} block, but the sitemap works just fine.
To clarify, this simple example gives the error (and it seems to be introduced early `17 as mentioned here):

sitemap default label="My Test" {
    Frame label="Test" {
        Text item=Test_Item label="Test valuer [%s]" {
            Text item=Test_Item1
            Text item=Test_Item2
            Text item=Test_Item3
        }
    }
}

I cannot get rid of these Text {} blocks inside a Frame {} because that would ruin my layout with sub-pages. That’s why I wanted to suppress them in the LSP linting.

That is very strange, because I don’t get errors for this valid construction, I too use Text Widgets in Frames and Text widgets in Text.
Your link refers to a non valid sitemap, though. there is Frame Widget and no Frame Widget in the same level, which is not allowed.

1 Like

I would love to see the complete Sitemap for further investigation too.

If the sitemap is valid and the error is still shown we have to report an issue for the openHAB core implementation.
But I am not reporting it without checking the whole sitemap file first.

Same here. The last posted example is happy in my VSCode.

This (correctly) does produce the reported error message -

sitemap default label="My Test" {
    Frame label="Test" {
        Text item=Test_Item label="Test valuer [%s]" {
            Text item=Test_Item1
        }
    }
    Text item=Blah
}

Out of interest, I have the following structure in my live sitemap without issue.

sitemap default label="SC Cross"
{
    Frame label="General information" {
        Text item=vnm_Intruder valuecolor=[4="red"]
        Text item=gDoorsOut valuecolor=[OPEN="red"] {
            Frame label="Unit 1" {
                Text item=ct_U1RollerW valuecolor=[OPEN="red"]
            }
            ...

Each, uhh, “screen” must be made of just frames at the top level, or no frames. Clicking gDoorsOut gives a new “screen” with frames at the top level.

It turns out that the linting error in the sample sitemap is caused by caching. I created the sample sitemap by copying part of my actual sitemap to a test file and removed/changed some things to make it as simple an example as possible. Probably because I saved the file in between, it started linting and the parsing error in VSC didn’t go away anymore, even though I removed extra Text items.
So, no new issue to report on that part! Although I would love to see a little less aggressive chaching. :wink:

But, back to my original question: I do have a sitemap which violates the structure rules, but works just fine and suits my needs. So, the real question remains: is there a way to disable certain checks in LSP?

It may be that the sitemmap is rendered although there are structure violations, but there is really no reason to stay on the faulty version.

Would it work well in all of the UI’s that use sitemaps. Some may deal more kindly with errors than others.

Why not fix it?

I have answered that above.
Vscode extension can’t handle this case currently.

Also I doubt that openHAB core LSP implementation can do that currently.
But I didn’t check that so far.

I know, I was just reiterating my original question. I can live with the linting error, it was just a small nuisance when editing stuff in VS Code… :smile:

Like I said, that would mean an undesired change in the layout because I use Text {} blocks frequently to have a compact layout that can open sub-pages with detailed information related to the item on the main page.

Thanks all for chiming in.

Anyway, my question is answered: Looks like I cannot suppress the linting error.

So do I and Udo, and we don’t have errors. So far, you haven’t shown a failing sitemap, so there isn’t much more we can say. Don’t be too disappointed if your sitemap fails to work in some later release or suchlike.

Thinking about it, it has been noted many times that some sitemap validation errors result in inadequate self-refreshing. I doubt this issue will do that? but ought to point it out just in case.

I won’t be, as I am planning to move to HABpanel. :innocent:
Refresh works fine, BTW.

For completeness, this is the sitemap with the validation issue. It has Text {} blocks and Text items inside Frames and or Text {} blocks.

sitemap default label="At Home" {
    Frame label="Home" {
        Switch item=Day_Mode label="Day Phase []" icon="sun_clouds" mappings=[MORNING="Morning"] visibility=[Day_Mode=="MORNING"]
        Switch item=Day_Mode label="Day Phase []" icon="sun_clouds" mappings=[DAY="Day"] visibility=[Day_Mode=="DAY"]
        Switch item=Day_Mode label="Day Phase []" icon="sun_clouds" mappings=[EVENING="Evening"] visibility=[Day_Mode=="EVENING"]
        Switch item=Day_Mode label="Day Phase []" icon="sun_clouds" mappings=[NIGHT="Night"] visibility=[Day_Mode=="NIGHT"]

        Text item=Weather_Condition label="Weather [%s]" icon="sun_clouds" {
            Text item=Astro_Sun_RiseNext
            Text item=Astro_Sun_SetNext
            Text item=Astro_Sun_Azimuth    visibility=[Astro_Sun_Elevation > 0]
            Text item=Astro_Sun_Elevation  visibility=[Astro_Sun_Elevation > 0]
            Text item=Astro_Moon_Phase     visibility=[Astro_Sun_Elevation <= 0]
            Text item=Astro_Moon_Distance  visibility=[Astro_Sun_Elevation <= 0]
            Text item=Astro_Moon_FullNext
            Text item=Astro_Moon_NewNext

            Text item=Temp_Avg_Livingroom valuecolor=[>22="red",>20="green",>19="orange",<19="blue"]
            Text item=NHC_CO2_Livingroom label="CO2 level livingroom [%.0f ppm]" valuecolor=[>1900="red",>1400="orange",<1400="green"]
            Text item=NHC_Humidity_Livingroom valuecolor=[>60="orange",>40="green",<=40="red"]
            Text item=Alarm_Humidity_SmokeGarage
            Text item=Alarm_Humidity_SmokeCorridor
            Text item=Weather_TempAverage_Outdoor label="Outdoor temperature [%.0f °C]"

            Text item=Motion_Temperature_Toilet     label="Toilet temperature [%.1f °C]"
            Text item=Alarm_Temp_SmokeGarage    label="Garage temperature [%.1f °C]"
            Text item=Alarm_Temp_SmokeCorridor   label="Corridor temperature [%.1f °C]"
            Text item=Alarm_Temp_SirenKitchen    label="Kitchen temperature [%.1f °C]"

            Text item=AC_Temp_Bedroom label="Bedroom [%.1f °C]" valuecolor=[>23="red",>18="orange",<=18="green"]
            Text item=AC_Temp_Study label="Study [%.1f °C]" valuecolor=[>23="red",>18="orange",<=18="green"]
            Text item=AC_Temp_Laundry label="Stephan's room [%.1f °C]" valuecolor=[>23="red",>20="orange",>10="green",<=10="blue"]
            Text item=AC_Temp_Guestroom label="Menno's room [%.1f °C]" valuecolor=[>23="red",>19="orange",>10="green",<=10="blue"]
        }
        Text item=Temp_Avg_Livingroom           valuecolor=[>22="red",>20="green",>19="orange",<19="blue"]
        Text item=Weather_TempAverage_Outdoor   label="Outdoor temperature [%.0f °C]"
        Text item=Astro_Sun_RiseNext
        Text item=Astro_Sun_SetNext
    }

    Frame label="Lighting" {
        Switch item=Light_Scene_Livingroom  label="Livingroom"  icon="sofa"     mappings=[OFF="OFF", EVENING="EVENING", MOVIE="FILM", READ="READ"]
        Switch item=Light_Scene_Dining      label="Dining"      icon="cinema"   mappings=[OFF="OFF", EVENING="EVENING", READ="READ", BRIGHT="BRIGHT"]
        Switch item=Light_Scene_Kitchen     label="Kitchen"     icon="kitchen"  mappings=[OFF="OFF", EVENING="EVENING", WORK="WERK", BRIGHT="BRIGHT"]
        Switch item=Light_Scene_Hall        label="Hallway"     icon="corridor" mappings=[OFF="OFF", EVENING="EVENING", READ="READ", BRIGHT="BRIGHT"]
        Switch item=Light_Scene_HallCeiling label="HallCeiling" icon="none"     mappings=[OFF="OFF", EVENING="EVENING", READ="READ", BRIGHT="BRIGHT"]
        Switch item=Light_Scene_Bedroom     label="Bedroom"     icon="bedroom"  mappings=[OFF="OFF", EVENING="EVENING", READ="READ", COSY="COSY"]
        Switch item=Light_Scene_Bathroom    label="Bathroom"    icon="bath"     mappings=[OFF="OFF", EVENING="EVENING", READ="READ", BRIGHT="BRIGHT"]
        Switch item=Light_Scene_Lodge       label="Lodge"       icon="house"    mappings=[OFF="OFF", EVENING="EVENING", READ="READ", BRIGHT="BRIGHT"]
        Switch item=Light_Scene_Outside     label="Garden"      icon="garden"   mappings=[OFF="OFF", EVENING="EVENING", BRIGHT="BRIGHT", WORK="WORK"]

        Text item=gLight {
            Text item=gLight_Brightness_Livingroom {
                // Livingroom Lighting
                Switch item=Light_Dim_Chair         
                Slider item=Light_Dim_Chair         
                Slider item=Light_ColorTemp_Chair  
                Slider item=Light_Dim_Corner  
                Slider item=Light_ColorTemp_Corner   
                Slider item=Light_Dim_SideTable
                Slider item=Light_ColorTemp_SideTable
                Slider item=Light_Dim_Backdoor
                Slider item=Light_ColorTemp_Backdoor 
                Slider item=Light_Dim_Couch  
                Slider item=Light_ColorTemp_Couch    
            }
            Text item=gLight_Brightness_Kitchen {
                // Kitchen lighting
                Switch item=Light_Dim_KitchenLeft
                Slider item=Light_Dim_KitchenLeft
                Slider item=Light_ColorTemp_KitchenLeft
                Switch item=Light_Dim_KitchenRight
                Slider item=Light_Dim_KitchenRight
                Slider item=Light_ColorTemp_KitchenRight
            }
            Text item=gLight_Brightness_Dining {
            // Dining table lighing
                Switch item=Light_Dim_Dining1
                Slider item=Light_Dim_Dining1
                Slider item=Light_ColorTemp_Dining1
                Colorpicker item=Light_Color_Dining1
                Switch item=Light_Dim_Dining2
                Slider item=Light_Dim_Dining2
                Slider item=Light_ColorTemp_Dining2
                Colorpicker item=Light_Color_Dining2
                Switch item=Light_Dim_Dining3
                Slider item=Light_Dim_Dining3
                Slider item=Light_ColorTemp_Dining3
                Colorpicker item=Light_Color_Dining3
            }
            Text item=gLight_Brightness_Hall {
                // Hallway lighting
                Switch item=Light_Dim_HallDoor
                Slider item=Light_Dim_HallDoor
                Slider item=Light_ColorTemp_HallDoor 
                Switch item=Light_Dim_HallWall
                Slider item=Light_Dim_HallWall
                Slider item=Light_ColorTemp_HallWall
                Switch item=Light_Dim_HallCeiling
                Slider item=Light_Dim_HallCeiling
                Slider item=Light_ColorTemp_HallCeiling
            }
            Text item=gLight_Brightness_Toilet {
                // Toilet ceiling light
                Switch item=Light_Dim_ToiletCeiling
                Slider item=Light_Dim_ToiletCeiling
                Slider item=Light_ColorTemp_ToiletCeiling
            }
            Text item=gLight_Brightness_Bedroom {
                // Master bedroom lighting
                Switch item=Light_Dim_BedroomLeft
                Slider item=Light_Dim_BedroomLeft
                Slider item=Light_ColorTemp_BedroomLeft
                Switch item=Light_Dim_BedroomRight
                Slider item=Light_Dim_BedroomRight
                Slider item=Light_ColorTemp_BedroomRight
            }
            Text item=gLight_Brightness_Guestroom {
                // Guestroom group switch
                Switch item=gLight_OnOff_Guestroom
                Slider item=Light_Dim_GuestroomCeiling1
                Slider item=Light_ColorTemp_GuestroomCeiling1
                Slider item=Light_Dim_GuestroomCeiling2
                Slider item=Light_ColorTemp_GuestroomCeiling2
            }
            Text item=gLight_Brightness_Laundry {
                // Laundry room lighting
                Switch item=Light_Dim_LaundryCeiling
                Slider item=Light_Dim_LaundryCeiling
                Slider item=Light_ColorTemp_LaundryCeiling
            }
            Text item=gLight_Brightness_Bathroom {
                // Bathroom lighting
                Switch item=Light_Dim_BathroomCeiling
                Slider item=Light_Dim_BathroomCeiling
                Slider item=Light_ColorTemp_BathroomCeiling
            }
            Text item=gLight_Brightness_Outside {
                // Outside lighting group switch
                Switch item=Light_Dim_OutsideLeftBack
                Slider item=Light_Dim_OutsideLeftBack
                Switch item=Light_Dim_OutsideLeft  
                Slider item=Light_Dim_OutsideLeft  
                Switch item=Light_Dim_OutsideRight
                Slider item=Light_Dim_OutsideRight
                Switch item=Light_Dim_OutsideFront
                Slider item=Light_Dim_OutsideFront
                Switch item=Light_Dim_OutsideTerrace
                Slider item=Light_Dim_OutsideTerrace
                Switch item=Light_Dim_OutsideShed
                Slider item=Light_Dim_OutsideShed
            }
            Text item=gLight_OnOff_Lodge
            {
                // Lodge lighting group switch
                Switch item=Light_Dim_LodgeWall1
                Slider item=Light_Dim_LodgeWall1
                Switch item=Light_Dim_LodgeWall2
                Slider item=Light_Dim_LodgeWall2
            }
        }

        Text item=gLighting_Scene {
            Text item=Light_Scene_Livingroom {
                Slider  item=Livingroom_Brightness_EVENING
                Text    item=Livingroom_Brightness_EVENING label="Brightness [%d]"
                Slider  item=Livingroom_ColorTemp_EVENING
                Text    item=Livingroom_ColorTemp_EVENING label="ColorTemp [%d]"
                Slider  item=Livingroom_Brightness_MOVIE
                Text    item=Livingroom_Brightness_MOVIE label="Brightness [%d]"
                Slider  item=Livingroom_ColorTemp_MOVIE
                Text    item=Livingroom_ColorTemp_MOVIE label="ColorTemp [%d]"
                Slider  item=Livingroom_Brightness_READ
                Text    item=Livingroom_Brightness_READ label="Brightness [%d]"
                Slider  item=Livingroom_ColorTemp_READ
                Text    item=Livingroom_ColorTemp_READ label="ColorTemp [%d]"
            }
            Text item=Light_Scene_Kitchen {
                Slider  item=Kitchen_Brightness_EVENING
                Text    item=Kitchen_Brightness_EVENING label="Brightness [%d]"
                Slider  item=Kitchen_ColorTemp_EVENING
                Text    item=Kitchen_ColorTemp_EVENING label="ColorTemp [%d]"
                Slider  item=Kitchen_Brightness_WORK
                Text    item=Kitchen_Brightness_WORK label="Brightness [%d]"
                Slider  item=Kitchen_ColorTemp_WORK
                Text    item=Kitchen_ColorTemp_WORK label="ColorTemp [%d]"
                Slider  item=Kitchen_Brightness_BRIGHT
                Text    item=Kitchen_Brightness_BRIGHT label="Brightness [%d]"
                Slider  item=Kitchen_ColorTemp_BRIGHT
                Text    item=Kitchen_ColorTemp_BRIGHT label="ColorTemp [%d]"
            }
            Text item=Light_Scene_Dining {
                Slider  item=Dining_Brightness_EVENING
                Text    item=Dining_Brightness_EVENING label="Brightness [%d]"
                Slider  item=Dining_ColorTemp_EVENING
                Text    item=Dining_ColorTemp_EVENING label="ColorTemp [%d]"
                Slider  item=Dining_Brightness_READ
                Text    item=Dining_Brightness_READ label="Brightness [%d]"
                Slider  item=Dining_ColorTemp_READ
                Text    item=Dining_ColorTemp_READ label="ColorTemp [%d]"
                Slider  item=Dining_Brightness_BRIGHT
                Text    item=Dining_Brightness_BRIGHT label="Brightness [%d]"
                Slider  item=Dining_ColorTemp_BRIGHT
                Text    item=Dining_ColorTemp_BRIGHT label="ColorTemp [%d]"
            }
            Text item=Light_Scene_Hall {
                Slider  item=Hall_Brightness_EVENING
                Text    item=Hall_Brightness_EVENING label="Brightness [%d]"
                Slider  item=Hall_ColorTemp_EVENING
                Text    item=Hall_ColorTemp_EVENING label="ColorTemp [%d]"
                Slider  item=Hall_Brightness_READ
                Text    item=Hall_Brightness_READ label="Brightness [%d]"
                Slider  item=Hall_ColorTemp_READ
                Text    item=Hall_ColorTemp_READ label="ColorTemp [%d]"
                Slider  item=Hall_Brightness_BRIGHT
                Text    item=Hall_Brightness_BRIGHT label="Brightness [%d]"
                Slider  item=Hall_ColorTemp_BRIGHT
                Text    item=Hall_ColorTemp_BRIGHT label="ColorTemp [%d]"
            }
            Text item=Light_Scene_HallCeiling {
                Slider  item=HallCeiling_Brightness_EVENING
                Text    item=HallCeiling_Brightness_EVENING label="Brightness [%d]"
                Slider  item=HallCeiling_ColorTemp_EVENING
                Text    item=HallCeiling_ColorTemp_EVENING label="ColorTemp [%d]"
                Slider  item=HallCeiling_Brightness_READ
                Text    item=HallCeiling_Brightness_READ label="Brightness [%d]"
                Slider  item=HallCeiling_ColorTemp_READ
                Text    item=HallCeiling_ColorTemp_READ label="ColorTemp [%d]"
                Slider  item=HallCeiling_Brightness_BRIGHT
                Text    item=HallCeiling_Brightness_BRIGHT label="Brightness [%d]"
                Slider  item=HallCeiling_ColorTemp_BRIGHT
                Text    item=HallCeiling_ColorTemp_BRIGHT label="ColorTemp [%d]"
            }
            Text item=Light_Scene_Bedroom {
                Slider  item=Bedroom_Brightness_EVENING
                Text    item=Bedroom_Brightness_EVENING label="Brightness [%d]"
                Slider  item=Bedroom_ColorTemp_EVENING
                Text    item=Bedroom_ColorTemp_EVENING label="ColorTemp [%d]"
                Slider  item=Bedroom_Brightness_READ
                Text    item=Bedroom_Brightness_READ label="Brightness [%d]"
                Slider  item=Bedroom_ColorTemp_READ
                Text    item=Bedroom_ColorTemp_READ label="ColorTemp [%d]"
                Slider  item=Bedroom_Brightness_COSY
                Text    item=Bedroom_Brightness_COSY label="Brightness [%d]"
                Slider  item=Bedroom_ColorTemp_COSY
                Text    item=Bedroom_ColorTemp_COSY label="ColorTemp [%d]"
            }
            Text item=Light_Scene_Bathroom {
                Slider  item=Bathroom_Brightness_EVENING
                Text    item=Bathroom_Brightness_EVENING label="Brightness [%d]"
                Slider  item=Bathroom_ColorTemp_EVENING
                Text    item=Bathroom_ColorTemp_EVENING label="ColorTemp [%d]"
                Slider  item=Bathroom_Brightness_READ
                Text    item=Bathroom_Brightness_READ label="Brightness [%d]"
                Slider  item=Bathroom_ColorTemp_READ
                Text    item=Bathroom_ColorTemp_READ label="ColorTemp [%d]"
                Slider  item=Bathroom_Brightness_BRIGHT
                Text    item=Bathroom_Brightness_BRIGHT label="Brightness [%d]"
                Slider  item=Bathroom_ColorTemp_BRIGHT
                Text    item=Bathroom_ColorTemp_BRIGHT label="ColorTemp [%d]"
            }
            Text item=Light_Scene_Laundry
            {
                Slider  item=Laundry_Brightness_EVENING
                Text    item=Laundry_Brightness_EVENING label="Brightness [%d]"
                Slider  item=Laundry_ColorTemp_EVENING
                Text    item=Laundry_ColorTemp_EVENING label="ColorTemp [%d]"
                Slider  item=Laundry_Brightness_READ
                Text    item=Laundry_Brightness_READ label="Brightness [%d]"
                Slider  item=Laundry_ColorTemp_READ
                Text    item=Laundry_ColorTemp_READ label="ColorTemp [%d]"
                Slider  item=Laundry_Brightness_BRIGHT
                Text    item=Laundry_Brightness_BRIGHT label="Brightness [%d]"
                Slider  item=Laundry_ColorTemp_BRIGHT
                Text    item=Laundry_ColorTemp_BRIGHT label="ColorTemp [%d]"
            }
            Text item=Light_Scene_Guestroom {
                Slider  item=Guestroom_Brightness_EVENING
                Text    item=Guestroom_Brightness_EVENING label="Brightness [%d]"
                Slider  item=Guestroom_ColorTemp_EVENING
                Text    item=Guestroom_ColorTemp_EVENING label="ColorTemp [%d]"
                Slider  item=Guestroom_Brightness_READ
                Text    item=Guestroom_Brightness_READ label="Brightness [%d]"
                Slider  item=Guestroom_ColorTemp_READ
                Text    item=Guestroom_ColorTemp_READ label="ColorTemp [%d]"
                Slider  item=Guestroom_Brightness_BRIGHT
                Text    item=Guestroom_Brightness_BRIGHT label="Brightness [%d]"
                Slider  item=Guestroom_ColorTemp_BRIGHT
                Text    item=Guestroom_ColorTemp_BRIGHT label="ColorTemp [%d]"
            }
            Text item=gOutside {
                Slider  item=Outside_Brightness_EVENING
                Text    item=Outside_Brightness_EVENING label="Brightness [%d]"
                Slider  item=Outside_Brightness_WORK
                Text    item=Outside_Brightness_WORK label="Brightness [%d]"
                Slider  item=Outside_Brightness_BRIGHT
                Text    item=Outside_Brightness_BRIGHT label="Brightness [%d]"
                Slider  item=Lodge_Brightness_EVENING
                Text    item=Lodge_Brightness_EVENING label="Brightness [%d]"
                Slider  item=Lodge_Brightness_READ
                Text    item=Lodge_Brightness_READ label="Brightness [%d]"
                Slider  item=Lodge_Brightness_BRIGHT
                Text    item=Lodge_Brightness_BRIGHT label="Brightness [%d]"
            }
        }
    }

    Frame label="Alarm" {
        Switch item=Alarm_Status label="Alarm []" icon="alarm" mappings=[DISARMED="Off", ARMED_HOME="Arm Home", ARMED_AWAY="Away"]
        Text item=Alarm_LastChange
        Group item=gDoors valuecolor=[>3="red",>1="orange",<2="green"]
        Switch item=Presence_Ron label="Ron is []" mappings=[ON="Home"] visibility=[Presence_Ron==ON]
        Switch item=Presence_Ron label="Ron is []" mappings=[OFF="Away"] visibility=[Presence_Ron==OFF]
        Switch item=Presence_xxxx label="xxxx is []" icon="woman_1" mappings=[ON="Home"] visibility=[Presence_xxxx==ON]
        Switch item=Presence_xxxx label="xxxx is []" icon="woman_1" mappings=[OFF="Away"] visibility=[Presence_xxxx==OFF]
        Switch item=Presence_xxxx label="xxxx is[]" mappings=[ON="Home"] visibility=[Presence_xxxx==ON]
        Switch item=Presence_xxxxlabel="xxxx is[]" mappings=[OFF="Away"] visibility=[Presence_Stephan==OFF]
        Switch item=Presence_xxxx label="xxxx is []" mappings=[ON="Home"] visibility=[Presence_xxxx==ON]
        Switch item=Presence_xxxx label="xxxx is []" mappings=[OFF="Away"] visibility=[Presence_xxxx==OFF]
    }

    Frame label="Energy" {
        Text item=Power_Delta_All_Current {
            Text item=Power_Delta_All_Current
            Text item=Power_Delta_L1_Current
            Text item=Power_Delta_L2_Current
            Text item=Power_Delta_L3_Current
        }

        Text item=Solar_Prod_Current {
            Text item=Solar_Prod_Day_Summary label="Today's Solar production [%s]"
            Text item=Solar_Prod_Month_Summary label="This month's Solar production [%s]"
            Text item=Solar_Prod_Year_Summary label="This year's Solar production [%s]"
            Text item=Solar_Prod_LastYear_Summary label="Last Year's Solar production [%s]"
        }

        Text item=Power_Delta_Day_Summary  {
            Text item=Power_Use_Day_Summary
            Text item=Power_Ret_Day_Summary
            Text item=Power_Use_Total icon="pressure"
            Text item=Power_Ret_Total icon="pressure"
        }

        Text item=Gas_Use_Hour_Summary label="Last Hour's Gas use [%s]" {
            Text item=Gas_Use_Hour_Summary label="Last Hour's Gas use [%s]"
            Text item=Gas_Use_Day_Summary label="Today's Gas use [%s]"
            Text item=Gas_Use_Month_Summary label="This Month's Gas use [%s]"
            Text item=Gas_Use_Year_Summary label="This Year's Gas use [%s]"
            Text item=Gas_Use_Total label="Gas Meter [%s]" icon="pressure"
        }
    }

    Frame label="Heating" {
        Switch item=CV_Burner_Active mappings=[ON="On"] visibility=[CV_Burner_Active==ON]
        Switch item=CV_Burner_Active mappings=[OFF="Off"] visibility=[CV_Burner_Active==OFF]
        Text item=CV_SetPoint_Livingroom {
            Setpoint item=CV_SetPoint_Livingroom minValue=18 maxValue=23 step=0.5 
            Text item=Temp_Avg_Livingroom
            Switch item=CV_Heater_Active mappings=[ON="On", OFF="Off"]
            Switch item=CV_HotWater_Active mappings=[ON="On", OFF="Off"]
            Text item=CV_Pressure
        }
        Text item=Temp_Avg_Livingroom
        Switch item=CV_HotWater_Active mappings=[ON="On", OFF="Off"]
    }

    Frame label="TV Wake on LAN" {
        Switch item=LGTV_Power_Livingroom
        Switch item=LGTV_WoL_Livingroom
        Switch item=LGTV_Mute_Livingroom
        Text item=LGTV_Volume_Livingroom icon="none"
        Switch item=LGTV_VolDummy_Livingroom icon="soundvolume" label="Volume" mappings=[1="â–˛", 0="â–Ľ"]
        Text item=LGTV_ChannelNo_Livingroom icon="none"
        Switch item=LGTV_ChannelDummy_Livingroom icon="screen" label="Channel" mappings=[1="â–˛", 0="â–Ľ"]
        Text item=LGTV_Channel_Livingroom icon="none"
        Default item=LGTV_Player_Livingroom
        Text item=LGTV_Application_Livingroom icon="none"
        Selection item=LGTV_Application_Livingroom icon="none" mappings=[
            "amazon"="Amazon Prime",
            "netflix"="Netflix",
            "npo"="NPO",
            "rtl"="RTL XL",
            "spotify-beehive"="Spotify",
            "youtube.leanback.v4"="YouTube",
            "com.davidxo.uhdf"="UHD Fireplace",
            "com.xstars.app.fireplace2"="Fireplace Relax",
            "com.webos.app.livetv"="Live TV",
            "com.webos.app.livemenu"="Tv-gids",
            "com.webos.app.igallery"="Galerij",
            "com.webos.app.photovideo"="Foto en video",
            "com.webos.app.recordings"="Opnamen",
            "com.webos.app.music"="Muziek",
            "com.webos.app.hdmi1"="HDMI1",
            "com.webos.app.hdmi2"="HDMI2",
            "com.webos.app.scheduler"="Planner",
            "com.webos.app.miracast"="Screen Share",
            "com.webos.app.multiview"="Multi-view",
            "de.2kit.castbrowserlg"="TV Cast",
            "com.webos.app.screensaver"="Screen Saver",
            "com.webos.app.tvsimpleviewer"="Viewer",
            "com.webos.app.voice"="Zoeken",
            "com.webos.app.browser"="Webbrowser",
            "com.webos.app.cheeringtv"="Cheering Mode",
            "com.webos.app.discovery"="LG Content Store",
            "com.webos.app.notificationcenter"="Meldingen",
            "com.webos.app.remotesetting"="Instellingen afstandsbediening",
            "com.webos.app.googleassistant"="Google Assistant",
            "com.webos.app.softwareupdate"="Software Update",
            "com.palm.app.settings"="Instellingen"]
    }

    Frame label="Media"
    {
        Switch item=LR_Denon_Power label="Power"
        Slider item=LR_Denon_Volume label="Volume" visibility=[LR_Denon_Power==ON]
        Switch item=LR_Denon_Mute label="Mute [%s]" visibility=[LR_Denon_Power==ON]
        Selection item=LR_Denon_Input icon="none" label="Source" visibility=[LR_Denon_Power==ON]
    }

    Frame label="Kodi Livingroom"
    {
        Switch    item=LR_Kodi_mute
        Slider    item=LR_Kodi_volume icon="none"
        Selection item=LR_Kodi_control mappings=[PLAY='Play', PAUSE='Pause', NEXT='Next', PREVIOUS='Prev', FASTFORWARD='FF', REWIND='REW']
        Default   item=LR_Kodi_control
        Switch    item=LR_Kodi_stop
        Text      item=LR_Kodi_title
        Text      item=LR_Kodi_showtitle
        Text      item=LR_Kodi_album
        Text      item=LR_Kodi_artist
        Selection item=LR_Kodi_input mappings=[Up='Up', Down='Down', Left='Left', Right='Right', Select='Select', Back='Back', Home='Home', ContextMenu='Menu', Info='Info']
        Selection item=LR_Kodi_systemcommand
        Text      item=LR_Kodi_mediatype
        Text      item=LR_Kodi_genrelist
        Image     item=LR_Kodi_thumbnail
        Image     item=LR_Kodi_fanart
        Text      item=LR_Kodi_currenttime
        Text      item=LR_Kodi_ctp
        Text      item=LR_Kodi_duration
    }

    Frame label="Airco" {
        Text item=AC_Temp_Bedroom label="AC Bedroom" icon="snow"
        {
            Switch item=AC_Power_Bedroom
            Setpoint item=AC_SetTemp_Bedroom minValue=18 maxValue=23 step=1
            Switch item=AC_Mode_Bedroom label=" " mappings=["AUTO"="Auto", "COLD"="Cold", "HEAT"="Heat"]
            Switch item=AC_FanSpeed_Bedroom label=" " mappings=["AUTO"="Auto", "SILENCE"="Silent", "LEVEL_2"="1", "LEVEL_3"="2", "LEVEL_5"="3"]
            Text item=AC_FanDirection_Bedroom label=" "
            Switch item=AC_Vacation_Bedroom
        }
        Text item=AC_Temp_Study label="AC Study" icon="snow" {
            Switch item=AC_Power_Study
            Setpoint item=AC_SetTemp_Study minValue=18 maxValue=23 step=1
            Switch item=AC_Mode_Study label="" mappings=["AUTO"="Auto", "COLD"="Cold", "HEAT"="Heat"]
            Switch item=AC_FanSpeed_Study label="" mappings=["AUTO"="Auto", "SILENCE"="Silent", "LEVEL_2"="1", "LEVEL_3"="2", "LEVEL_5"="3"]
            Text item=AC_FanDirection_Study label=""
        }
        Text item=AC_Temp_Laundry label="AC Stephan" icon="snow" {
            Switch item=AC_Power_Laundry 
            Setpoint item=AC_SetTemp_Laundry minValue=18 maxValue=23 step=1
            Switch item=AC_Mode_Laundry label="" mappings=["AUTO"="Auto", "COLD"="Cold", "HEAT"="Heat"]
            Switch item=AC_FanSpeed_Laundry label="" mappings=["AUTO"="Auto", "SILENCE"="Silent", "LEVEL_2"="1", "LEVEL_3"="2", "LEVEL_5"="3"]
            Text item=AC_FanDirection_Laundry label=""
        }
        Text item=AC_Temp_Guestroom label="AC Menno" icon="snow" {
            Switch item=AC_Power_Guestroom
            Setpoint item=AC_SetTemp_Guestroom minValue=18 maxValue=23 step=1
            Switch item=AC_Mode_Guestroom label="" mappings=["AUTO"="Auto", "COLD"="Cold", "HEAT"="Heat"]
            Switch item=AC_FanSpeed_Guestroom label="" mappings=["AUTO"="Auto", "SILENCE"="Silent", "LEVEL_2"="1", "LEVEL_3"="2", "LEVEL_5"="3"]
            Text item=AC_FanDirection_Guestroom label=""
        }
    }

    Frame label="Volvo V90" {
        Group   item=gVoC_Door_Status label="Car doors [%s]" icon="car" valuecolor=[>3="red",>1="orange",<2="green"]
        Switch  item=gVoC_Window_Status
        Switch  item=VoC_Car_Locked label="Car is []" icon="car" mappings=[ON="Locked", OFF="Open"]
        Text    item=VoC_Fuel_Level
        Text    item=VoC_Fuel_Amount
        Text    item=VoC_Consumption_Average
        Text    item=VoC_Distance_Left
        Switch  item=VoC_Fuel_Alert
        Text    item=VoC_Washer_Level
        Text    item=VoC_Location icon="movecontrol" {
            Mapview item=VoC_Location height=10 icon="none" label="Huidige locatie Volvo V90 (idien niet ingebruik)"
            Text    item=VoC_Location_LUD
            Switch  item=VoC_Calculated_Location
        }
        Switch  item=VoC_Heading
        Text    item=VoC_Odometer icon="none"
        Text    item=VoC_TripMeter_1 icon="none"
        Text    item=VoC_TripMeter_2 icon="none"
        Switch  item=VoC_Engine_Started
        Switch  item=VoC_Heater
        Text    item=VoC_Service_Warning
    }
}

The fault lies in your “Alarm” frame.
This line -

Switch item=Presence_xxxxlabel="xxxx is[]" mappings=[OFF="Away"] visibility=[Presence_Stephan==OFF]

is simply missing a space.
I guess the invalid Item designation breaks the frame integrity.

1 Like

That error was introduced by me when redacting the line after copy/paste to the forum… :sunglasses:

Oh good, a waste of my time. Still, your Item names remain very secret.

On a more serious note, your redacted sitemap failed with the error message that you see, with your edit mistake in place, and validated fine with it corrected.
It’s a massive hint that your sitemap is fixable and how to fix it.