Sitemap - Errors - Wie beheben?

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Absinthe
Beiträge: 88
Registriert: 16. Jan 2022 13:30
Answers: 1

Sitemap - Errors - Wie beheben?

Beitrag von Absinthe »

Hallo zusammen,

ich habe seit geraumer Zeit im Sitemap Editor in der GUI einige Fehler drin. Sitemap funktioniert super, konnte auch bis zur Version 4.x.x trotz der Fehler speichern... Seit Version 5.0.0 kann ich leider keine Änderungen mehr an der Sitemap vornehmen...
Validation errors
Sitemap definition has validation errors:
Frame widget Einzelne Lichter, frame not allowed in frame
Widget Einzelne Lichter, only frames or no frames at all allowed in linkable widget
Frame widget Wasseralarm, frame not allowed in frame
Frame widget Luftfeuchtigkeit, frame not allowed in frame
Widget Luftfeuchtigkeit, only frames or no frames at all allowed in linkable widget
Frame widget Wasseralarm, frame not allowed in frame
Frame widget Windfang / Flur, frame not allowed in frame
Frame widget WC, frame not allowed in frame
Frame widget Wohnzimmer, frame not allowed in frame
Frame widget Küche, frame not allowed in frame
Frame widget Flur, frame not allowed in frame
Frame widget Badezimmer, frame not allowed in frame
Frame widget Schlafzimmer, frame not allowed in frame
Frame widget Büro, frame not allowed in frame
Frame widget Kinderzimmer Süd, frame not allowed in frame
Frame widget Kinderzimmer West, frame not allowed in frame
Frame widget Waschküche, frame not allowed in frame
Frame widget Wohnzimmer, frame not allowed in frame
Frame widget Badezimmer, frame not allowed in frame
Frame widget Flur, frame not allowed in frame
Frame widget Waschküche, frame not allowed in frame
Frame widget Wetterbericht, frame not allowed in frame
Frame widget Sensoren am Haus, frame not allowed in frame
Frame widget Aktivieren der Automatik, frame not allowed in frame
Frame widget Rollo ab, wenn..., frame not allowed in frame
Frame widget Rollo hoch, wenn..., frame not allowed in frame
Frame widget Aktivieren der Automatik, frame not allowed in frame
Frame widget Rollo ab, wenn..., frame not allowed in frame
Frame widget Rollo hoch, wenn..., frame not allowed in frame
Frame widget Aktivieren der Automatik, frame not allowed in frame
Frame widget Rollo ab, wenn..., frame not allowed in frame
Frame widget Rollo hoch, wenn..., frame not allowed in frame
Chart widget Stromverbrauch, invalid period configured: undefined
Switch widget Licht Haus Alle, syntax error in mappings: OFF=Alle Lichter aus
Switch widget ExpirationTimer, syntax error in mappings: ON=Expiration-Itmes OFF
Selection widget Alarmanlage, syntax error in mappings: 1=An & Automatik
Selection widget Alarmanlage, syntax error in mappings: 2=An & immer Benachrichtigen
Im Code-Editor steht auch noch drin:
Error: Syntax error at line 519 col 101:

517 }
518 }
519 }
^
Unexpected identifier token: "Lichter". Instead, I was expecting to see one of the following:

A NL token based on:
__ → __ ● %NL
_ → ● __
Mapping → Command _ %equals _ Label ● _ %equals _ WidgetIconAttrValue
Mappings → ● Mapping
WidgetMappingsAttrValue → %lbracket _ ● Mappings _ %rbracket
WidgetAttr → WidgetMappingsAttrName ● WidgetMappingsAttrValue
WidgetAttrs → WidgetAttrs _ ● WidgetAttr
Widget$ebnf$1 → Widget$ebnf$1 ● WidgetAttrs
Widget → %nlwidget _ ● Widget$ebnf$1
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Sitemap → %sitemap _ SitemapName __ SitemapLabel __ %lbrace _ ● Widgets _ %rbrace
Main → _ ● Sitemap _
A WS token based on:
__ → __ ● %WS
_ → ● __
Mapping → Command _ %equals _ Label ● _ %equals _ WidgetIconAttrValue
Mappings → ● Mapping
WidgetMappingsAttrValue → %lbracket _ ● Mappings _ %rbracket
WidgetAttr → WidgetMappingsAttrName ● WidgetMappingsAttrValue
WidgetAttrs → WidgetAttrs _ ● WidgetAttr
Widget$ebnf$1 → Widget$ebnf$1 ● WidgetAttrs
Widget → %nlwidget _ ● Widget$ebnf$1
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Sitemap → %sitemap _ SitemapName __ SitemapLabel __ %lbrace _ ● Widgets _ %rbrace
Main → _ ● Sitemap _
A SL_COMMENT token based on:
Comment → ● %SL_COMMENT
__ → __ ● Comment
_ → ● __
Mapping → Command _ %equals _ Label ● _ %equals _ WidgetIconAttrValue
Mappings → ● Mapping
WidgetMappingsAttrValue → %lbracket _ ● Mappings _ %rbracket
WidgetAttr → WidgetMappingsAttrName ● WidgetMappingsAttrValue
WidgetAttrs → WidgetAttrs _ ● WidgetAttr
Widget$ebnf$1 → Widget$ebnf$1 ● WidgetAttrs
Widget → %nlwidget _ ● Widget$ebnf$1
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Sitemap → %sitemap _ SitemapName __ SitemapLabel __ %lbrace _ ● Widgets _ %rbrace
Main → _ ● Sitemap _
A ML_COMMENT token based on:
Comment → ● %ML_COMMENT
__ → __ ● Comment
_ → ● __
Mapping → Command _ %equals _ Label ● _ %equals _ WidgetIconAttrValue
Mappings → ● Mapping
WidgetMappingsAttrValue → %lbracket _ ● Mappings _ %rbracket
WidgetAttr → WidgetMappingsAttrName ● WidgetMappingsAttrValue
WidgetAttrs → WidgetAttrs _ ● WidgetAttr
Widget$ebnf$1 → Widget$ebnf$1 ● WidgetAttrs
Widget → %nlwidget _ ● Widget$ebnf$1
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Sitemap → %sitemap _ SitemapName __ SitemapLabel __ %lbrace _ ● Widgets _ %rbrace
Main → _ ● Sitemap _
A rbracket token based on:
WidgetMappingsAttrValue → %lbracket _ Mappings _ ● %rbracket
WidgetAttr → WidgetMappingsAttrName ● WidgetMappingsAttrValue
WidgetAttrs → WidgetAttrs _ ● WidgetAttr
Widget$ebnf$1 → Widget$ebnf$1 ● WidgetAttrs
Widget → %nlwidget _ ● Widget$ebnf$1
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Sitemap → %sitemap _ SitemapName __ SitemapLabel __ %lbrace _ ● Widgets _ %rbrace
Main → _ ● Sitemap _
A comma token based on:
Mappings → Mappings _ ● %comma _ Mapping
WidgetMappingsAttrValue → %lbracket _ ● Mappings _ %rbracket
WidgetAttr → WidgetMappingsAttrName ● WidgetMappingsAttrValue
WidgetAttrs → WidgetAttrs _ ● WidgetAttr
Widget$ebnf$1 → Widget$ebnf$1 ● WidgetAttrs
Widget → %nlwidget _ ● Widget$ebnf$1
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Sitemap → %sitemap _ SitemapName __ SitemapLabel __ %lbrace _ ● Widgets _ %rbrace
Main → _ ● Sitemap _
A equals token based on:
Mapping → Command _ %equals _ Label _ ● %equals _ WidgetIconAttrValue
Mappings → ● Mapping
WidgetMappingsAttrValue → %lbracket _ ● Mappings _ %rbracket
WidgetAttr → WidgetMappingsAttrName ● WidgetMappingsAttrValue
WidgetAttrs → WidgetAttrs _ ● WidgetAttr
Widget$ebnf$1 → Widget$ebnf$1 ● WidgetAttrs
Widget → %nlwidget _ ● Widget$ebnf$1
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Sitemap → %sitemap _ SitemapName __ SitemapLabel __ %lbrace _ ● Widgets _ %rbrace
Main → _ ● Sitemap _
Jemand eine Idee, woher dies kommt oder wie ich das beheben kann?

Grüße
OpenHAB 4.3.5
in einem Docker-Container
auf einer Synology DS1515+

tim.l
Beiträge: 72
Registriert: 24. Jun 2022 08:16
Answers: 2
Wohnort: Bielefeld
Kontaktdaten:

Re: Sitemap - Errors - Wie beheben?

Beitrag von tim.l »

Ich hatte auch einige Probleme mit dem Spichern der Sitemaps in 5.0.0. Diese wurden für mich mit 5.0.1 korrigiert. Ggf. einmal updaten. Falls das reicht reicht, scheint wirklich die Struktur falsch zu sein (Frame in Frame).

Grüße,
Tim
Meine openHAB Erfahrungen bei mir im Blog: https://360friends.de/tag/openhab/ ;)

Absinthe
Beiträge: 88
Registriert: 16. Jan 2022 13:30
Answers: 1

Re: Sitemap - Errors - Wie beheben?

Beitrag von Absinthe »

Ich hab anscheinend wirklich ein Problem mit meiner Struktur... Frames in Frames. Aber ich verstehe nicht genau an welcher Stelle...

Aufgebaut ist dies bei mir i.d.R. so:
Bildschirmfoto 2025-08-30 um 08.09.10.png

Code: Alles auswählen

 Frame icon=groundfloor label="Erdgeschoss" {
        Text icon=groundfloor label="Erdgeschoss" {
            Text icon=corridor label="Windfang" {
                Frame icon=light label="Licht" {
                    Switch icon=light item=EGAktor34_EG_Windfang_Licht label="Licht"
                }
                Frame icon=frontdoor label=" Haustüre" {
                    Switch icon=frontdoor item=EGAktor56_EG_Haustuere label="Haustüre öffnen (10 Sek)"
                }
                Frame icon=frontdoor label="Klingel" {
                    Switch icon=lock item=EG_Windfang_Klingel_Sperre label="Klingel AUS"
                }
                Frame label="Temperatur" {
                    Text icon=temperature item=EG_Windfang_Temperatur label="Temperatur"
                }
                Frame icon=water label="Sensor" {
                    Text label="Wassersensor Ying"
                    Text icon=water item=Shelly_Flood_Wasseralarm_04 label="Wasseralarm [%s]"
                    Text icon=time item=Shelly_Flood_Last_Update_04 label="Last Update [%1$td.%1$tm.%1$ty - %1$tH:%1$tM]"
                    Text icon=temperature item=Shelly_Flood_Temperatur_04 label="Temperatur"
                    Text icon=light item=EG_Windfang_Bewegungsmelder_Helligkeit label="Helligkeitswert [%.0f Lux]"
                }
            }
Wie könnte ich nun die Fehlermeldung "Frame in der Frame" auflösen? Ich hab diese leider an mehreren Stellen...
Bildschirmfoto 2025-08-30 um 08.09.18.png
Jemand eine Idee?

Vielen Dank und Grüße
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
OpenHAB 4.3.5
in einem Docker-Container
auf einer Synology DS1515+

nw378
Beiträge: 322
Registriert: 22. Sep 2018 10:38
Answers: 5

Re: Sitemap - Errors - Wie beheben?

Beitrag von nw378 »

Ich hoffe, ich habe verstanden, wie (verschachtelt) Du die Sitemap darstellen willst.

So geht's (Formatierung zur besseren Übersicht der Klammern):

Code: Alles auswählen

sitemap test label="test" {
    Text icon=groundfloor label="Erdgeschoss" {
        Frame {  
            Text icon=corridor label="Windfang" {
                Frame {
                    Text icon=light label="Licht" {
                        Frame {
                            Switch icon=light item=EGAktor34_EG_Windfang_Licht label="Licht"
                        }
                    }
                    Text icon=frontdoor label=" Haustüre" {
                        Frame {
                            Switch icon=frontdoor item=EGAktor56_EG_Haustuere label="Haustüre öffnen (10 Sek)"
                        }
                    }    
                    Text icon=frontdoor label="Klingel" {
                        Frame {
                            Switch icon=lock item=EG_Windfang_Klingel_Sperre label="Klingel AUS"
                        }
                    }    
                    Text label="Temperatur" {
                        Frame {
                            Text icon=temperature item=EG_Windfang_Temperatur label="Temperatur"
                        }
                    }
                    Text icon=water label="Sensor" {
                        Frame {
                            Text label="Wassersensor Ying"
                            Text icon=water item=Shelly_Flood_Wasseralarm_04 label="Wasseralarm [%s]"
                            Text icon=time item=Shelly_Flood_Last_Update_04 label="Last Update [%1$td.%1$tm.%1$ty - %1$tH:%1$tM]"
                            Text icon=temperature item=Shelly_Flood_Temperatur_04 label="Temperatur"
                            Text icon=light item=EG_Windfang_Bewegungsmelder_Helligkeit label="Helligkeitswert [%.0f Lux]"
                        }
                    }
                }
            }
        }   
    }
}
Der Trick ist, das Text item zum "Pulldown Menü" der nächsten Ebene zu machen.
openHAB 5.0.1 @ RPi 5 / M.2 SSD - InfluxDB2 und Grafana @ Synology Docker - KNX, Viessmann vcontrol, u.v.m.

Benutzeravatar
udo1toni
Beiträge: 15345
Registriert: 11. Apr 2018 18:05
Answers: 247
Wohnort: Darmstadt

Re: Sitemap - Errors - Wie beheben?

Beitrag von udo1toni »

Ich habe das Posting mal editiert und aus dem quote ein code gemacht :)

Das Problem ist nicht innerhalb des Teilcodes zu suchen, Du müsstest schon die gesamte Sitemap zeigen, gerne als zip-Datei, falls sie sich hier ob der Größe nicht am Stück einfügen ließe...
openHAB5.0.1 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime) (Proxmox 9.0.6, LXC)

Absinthe
Beiträge: 88
Registriert: 16. Jan 2022 13:30
Answers: 1

Re: Sitemap - Errors - Wie beheben?

Beitrag von Absinthe »

@udo1toni - vielen Dank fürs editieren.

Gerne anbei der gesamte Code...

Code: Alles auswählen

sitemap Home_01 label="Home_01" {
    Frame icon=attic label="Dach" {
        Text icon=attic label="Dach" {
            Frame icon=lightbulb label="Licht" {
                Switch icon=lightbulb item=EGAktor34_DG_Licht label="Licht"
            }
        }
    }
    Frame icon=firstfloor label="Obergeschoss" {
        Text icon=firstfloor label="Obergeschoss" {
            Text icon=corridor label="Flur" {
                Frame icon=lightbulb label="Licht" {
                    Switch icon=lightbulb item=OG_Flur_Licht label="Licht Gesamt"
                    Switch icon=lightbulb item=OGDimmAktor12_OG_Flur_Licht label="Deckenlicht"
                    Default item=OGDimmAktor12_OG_Flur_Licht_Dimmer label="Dimmer Deckenlicht"
                    Switch icon=switch item=OG_Flur_Bewegungsmelder_Sperre label="Sperre Licht"
                    Switch icon=switch item=OG_Flur_Bewegungsmelder_Sperre_Auto_OFF label="Sperre Licht - Auto Off "
                    Text label="Automatisation" {
                        Switch icon=switch item=OG_Flur_Licht_Automatik_Immer_100 label="Immer 100 %"
                        Switch icon=switch item=OG_Flur_Licht_Automatik_Pinkellicht_100 label="Pinkellicht 100 %"
                        Switch icon=switch item=OG_Flur_Licht_Automatik_Pinkellicht_75 label="Pinkellicht 75%"
                        Switch icon=switch item=OG_Flur_Automatik_Sperre_Haengelampe label="Sperre Hängelampe Automatik"
                        Switch icon=switch item=OG_Flur_Licht_Haengelampe_Sperre label="Sperre Hängelampe"
                    }
                }
                Frame icon=temperature label="Temperatur" {
                    Text icon=temperature item=OG_Flur_Temperatur label="Temperatur"
                }
                Frame icon=rollershutter label="Rollladen" {
                    Switch icon=rollershutter item=OG_Treppenhaus_Rollo label="Treppenhaus [%d %%]"
                    Text label="Automatisation" {
                        Switch icon=switch item=OG_Treppenhaus_Automatik_Rollo_Uhrzeit label="Automatik Time"
                    }
                }
                Frame icon=switch label="Strom Kamera" {
                    Switch icon=switch item=TPLink_Tapo_Steckdose_01 label="Strom Kamera"
                }
                Frame label="Sensor" {
                    Text icon=light item=OG_Flur_Bewegungsmelder_Helligkeit label="Helligkeitswert [%.0f Lux]"
                    Switch icon=switch item=Alarm_OG_Bewegungsmelder label="Alarm Bewegung "
                }
            }
            Text icon=bath label="Badezimmer" {
                Frame icon=lightbulb label="Licht" {
                    Switch icon=light item=OG_Badezimmer_Licht_Gesamt label="Licht Gesamt"
                    Switch icon=light item=OGDimmAktor12_OG_Badezimmer_Licht label="Licht Decke"
                    Default icon=lightbulb item=OG_Badezimmer_Licht_Decke_Dimmer label="Licht Decke Dimmer"
                    Switch icon=shield item=OGAktor34_OG_Badezimmer_Licht_Spiegel label="Licht Spiegel"
                    Text label="Automatisation" {
                        Switch icon=switch item=OG_Badezimmer_Licht_Pinkellicht label="Pinkellicht "
                    }
                }
                Frame icon=receiver label="Radio" {
                    Switch icon=receiver item=Lautsprecher_Sonos_One_SL_Bad_Radiosender_Bob label="Radio Bob an"
                    Default icon=receiver item=Lautsprecher_Sonos_One_SL_Bad_Fernbedienung label="Remote"
                    Slider icon=soundvolume item=Lautsprecher_Sonos_One_SL_Bad_Lautstarke label="Lautstärke"
                }
                Frame icon=fan label="Lüfter" {
                    Switch icon=fan item=OGAktor34_OG_Badezimmer_Luefter label="Lüfter"
                    Switch icon=switch item=OG_Badezimmer_Automatik_Luefter_Timer label="Automatik "
                }
                Frame icon=rollershutter label="Rollladen" {
                    Switch icon=rollershutter item=OG_Bdazimmer_Rollo_Gesamt label="Rollladen [%d %%]"
                    Switch icon=rollershutter item=OGAktor12_OG_Badezimmer_West_Rollo_West label="Rollladen West [%d %%] "
                    Switch icon=rollershutter item=OGAktor34_OG_Badezimmer_Rollo_Nord label="Rollladen Nord [%d %%]"
                    Text label="Automatisation" {
                        Switch icon=sun item=OG_Badezimmer_Automatik_Rollo label="Automatik Astro"
                        Switch icon=time item=OG_Badezimmer_Automatik_Rollo_Uhrzeit label="Automatik Time"
                    }
                }
                Frame icon=temperature label="Tempteratur" {
                    Text icon=temperature item=OG_Bad_Temperatur label="Temperatur"
                    Text icon=temperature item=Shelly_Temperatur_01 label="Shelly Temperatur"
                }
            }
            Text icon=bedroom label="Schlafzimmer" {
                Frame icon=lightbulb label="Light" {
                    Switch icon=light item=OG_Schlafzimmer_Licht_Gesamt label="Licht Schlafzimmer & Ankleide"
                    Switch icon=light item=OGAktor34_OG_Schlafzimmer_Licht label="Licht Schlafzimmer"
                    Switch icon=light item=OGDimmAktor12_Switch label="Licht Ankleide"
                }
                Frame icon=rollershutter label="Rollladen" {
                    Switch icon=rollershutter item=OG_Schlafzimmer_Ankleide_Rollo label="Rollladen Gesamt [%d %%]"
                    Switch icon=rollershutter item=OGAktor34_OG_Ankleider_Rollo label="Ankleide [%d %%]"
                    Switch icon=rollershutter item=OGAktor34_OG_Schlafzimmer_Rollo_Nord label="Schlafzimmer Nord [%d %%]"
                    Switch icon=rollershutter item=OGAktor34_OG_Schlafzimmer_Rollo_Ost label="Schlafzimmer Ost [%d %%]"
                    Text label="Automatisation" {
                        Switch icon=switch item=OG_Schlafzimmer_Ankleider_Automatik_Rollo_Uhrzeit label="Automatik Time"
                    }
                }
                Frame icon=temperature label="Temperatur" {
                    Text icon=temperature item=OG_Ankleide_Temperatur label="Temperatur"
                }
            }
            Text icon=office label="Büro" {
                Frame icon=light label="Licht" {
                    Switch icon=light item=Licht label="Licht"
                }
                Frame icon=office label="Steckdose Schreibtisch" {
                    Switch item=Shelly_Switch_01_Steckdose_01 label="Steckdose 1"
                    Text item=Shelly_Switch_01_Steckdose_01_Verbrauch label="Verbrauch Steckdose 1"
                    Switch item=Shelly_Switch_01_Steckdose_02 label="Steckdose 2"
                    Text item=Shelly_Switch_01_Steckdose_02_Verbrauch label="Verbrauch Steckdose 2"
                    Text label="Automatisation" {
                        Switch icon=switch item=OG_Buero_Steckdose_PC_Auto_Aus label="Steckdose: Auto Aus"
                    }
                }
                Frame icon=rollershutter label="Rollladen" {
                    Switch icon=rollershutter item=OG_Buero_Rollo label="Gesamt [%d %%]"
                    Switch icon=rollershutter item=OGAktor12_OG_Buero_Rollo_Ost label="Ost [%d %%]"
                    Switch icon=rollershutter item=OGAktor12_OG_Buero_Rollo_Sued label="Süd [%d %%]"
                    Setpoint icon=rollershutter item=OGAktor12_OG_Buero_Rollo_Ost label="Rollo Test Ost" maxValue=100 step=10
                    Text label="Automatisation" {
                        Switch icon=switch item=OG_Buero_Automatik_Rollo_Uhrzeit label="Automatik Time"
                    }
                }
                Frame icon=temperature label="Temperatur" {
                    Text icon=temperature item=OG_Buero_Temperatur label="Temperatur"
                }
            }
            Text icon=bedroom_red label="Kinderzimmer Süd" {
                Frame icon=light label="Licht" {
                    Switch icon=light item=OG_Kinderzimmer_Sued_Einzellicht label="Licht Hängelampe"
                    Switch icon=light item=OGDimmAktor12_OG_Kinderzimmer_Sued_Licht label="Licht Decke"
                    Default icon=light item=OGDimmAktor12_OOG_Kinderzimmer_Sued_Licht_Dimmer label="Dimmer"
                    Switch icon=switch item=Shelly_Button_Schalter_Sperre_01 label="Sperre - Shelly Button"
                }
                Frame icon=rollershutter label="Rollladen" {
                    Switch icon=rollershutter item=OGAktor12_OG_Kinderzimmer_Sued_Rollo label="Süd [%d %%]"
                    Text label="Automatisation" {
                        Switch icon=switch item=OG_Kinderzimmer_Sued_Automatik_Rollo_Uhrzeit label="Automatik Time"
                    }
                }
                Frame icon=temperature label="Temperatur" {
                    Text icon=temperature item=OG_KinderzimmerSued_Temperatur label="Temperatur"
                }
            }
            Text icon=bedroom_orange label="Kinderzimmer West" {
                Frame icon=light label="Licht" {
                    Switch icon=light item=OGAktor12_Switch label="Deckenlicht"
                }
                Frame label="Rollladen" {
                    Switch icon=rollershutter item=OG_Kinderzimmer_West_Rollo_Gesamt label="Gesamt [%d %%]"
                    Switch icon=rollershutter item=OGAktor12_OG_Kinderzimmer_West_Rollo_Sued label="Süd [%d %%]"
                    Switch icon=rollershutter item=OGAktor12_OG_Kinderzimmer_West_Rollo_West label="West [%d %%]"
                    Text label="Automatisation" {
                        Switch icon=switch item=OG_Kinderzimmer_West_Automatik_Rollo_Uhrzeit label="Automatik Time"
                    }
                }
                Frame icon=temperature label="Temperatur" {
                    Text icon=temperature item=OG_KinderzimmerWest_Temperatur label="Temperatur"
                }
            }
        }
    }
    Frame icon=groundfloor label="Erdgeschoss" {
        Text icon=groundfloor label="Erdgeschoss" {
            Text icon=corridor label="Windfang" {
                Frame icon=light label="Licht" {
                    Switch icon=light item=EGAktor34_EG_Windfang_Licht label="Licht"
                }
                Frame icon=frontdoor label=" Haustüre" {
                    Switch icon=frontdoor item=EGAktor56_EG_Haustuere label="Haustüre öffnen (10 Sek)"
                }
                Frame icon=frontdoor label="Klingel" {
                    Switch icon=lock item=EG_Windfang_Klingel_Sperre label="Klingel AUS"
                }
                Frame label="Temperatur" {
                    Text icon=temperature item=EG_Windfang_Temperatur label="Temperatur"
                }
                Frame icon=water label="Sensor" {
                    Text label="Wassersensor Ying"
                    Text icon=water item=Shelly_Flood_Wasseralarm_04 label="Wasseralarm [%s]"
                    Text icon=time item=Shelly_Flood_Last_Update_04 label="Last Update [%1$td.%1$tm.%1$ty - %1$tH:%1$tM]"
                    Text icon=temperature item=Shelly_Flood_Temperatur_04 label="Temperatur"
                    Text icon=light item=EG_Windfang_Bewegungsmelder_Helligkeit label="Helligkeitswert [%.0f Lux]"
                }
            }
            Text icon=bath label="WC" {
                Frame icon=light label="Licht" {
                    Switch icon=light item=EGAktor34_EG_WC_Licht label="Licht"
                }
                Frame icon=fan label="Lüfter" {
                    Switch icon=fan item=EGAktor34_EG_WC_Luefter label="Lüfter"
                    Text label="Automatisation" {
                        Switch icon=switch item=EG_WC_Automatik_Luefter_Timer label="Automatik Lüfter"
                    }
                }
                Frame icon=rollershutter label="Rollladen" {
                    Switch icon=rollershutter item=EGAktor34_EG_WC_Rollo label="Nord [%d %%]"
                    Text label="Automatisation" {
                        Switch icon=switch item=EG_WC_Automatik_Rollo_Uhrzeit label="Automatik Time"
                        Switch icon=switch item=EG_WC_Automatik_Rollo_Astro label="Automatik Astro"
                    }
                }
                Frame label="Temperatur" {
                    Text icon=temperature item=EG_WC_Temperatur label="Temperatur"
                }
                Frame label="Sensor" {
                    Text item=EG_WC_Bewegungsmelder_Helligkeit label="Helligkeitswert [%.0f Lux]"
                }
            }
            Text icon=corridor label="Flur" {
                Frame icon=light label="Licht" {
                    Switch icon=light item=EGAktor34_EG_Flur_Licht label="Licht"
                }
                Frame label="Sensor" {
                    Text icon=light item=EG_Flur_Bewegungsmelder_Helligkeit label="Helligkeitswert [%.0f Lux]"
                }
            }
            Text icon=sofa label="Wohnzimmer" {
                Frame icon=light label="Licht" {
                    Switch icon=light item=EG_Wohnzimmer_Esszimmer_Licht label="Gesamt"
                    Switch icon=light item=EG_Wohnzimmer_Esszimmer_Licht_Indirekt label="Indirekt Wohn- & Esszimmer"
                    Frame label="Einzelne Lichter" {
                        Switch icon=light item=EGAktor12_EG_Wohnzimmer_Licht label="Deckenlicht Wohnzimmer"
                        Switch icon=light item=EGAktor12_EG_Esszimmer_Licht label="Deckenlicht Esszimmer"
                        Default icon=light item=EG_Wohnzimmer_Licht_Indirekt_Dimmen_Gesamt label="Wohn- & Esszimmer [%d %%]"
                        Switch icon=light item=EG_Wohnzimmer_Licht_Indirekt_West label="Indirekte Wohnzimmer"
                        Default icon=light item=EG_Wohnzimmer_Licht_Indirekt_Dimmen_West label="Wohnzimmer [%d %%]"
                        Switch icon=light item=EG_Wohnzimmer_Licht_Indirekt_Ost label="Indirekte Esszimmer"
                        Default icon=light item=EG_Wohnzimmer_Licht_Indirekt_Dimmen_Ost label="Esszimmer [%d %%]"
                        Switch icon=light item=EG_Wohnzimmer_Licht_Indirekt_Kamin label="Indirekt Kamin"
                    }
                }
                Frame icon=poweroutlet_eu label="Steckdose" {
                    Switch icon=poweroutlet_eu item=EGAktor12_EG_Wohnzimmer_Steckdose label="TV, Beamer & Audio"
                }
                Frame icon=rollershutter label="Rollladen" {
                    Switch icon=rollershutter item=EG_Wohnzimmer_Esszimmer_Rollo label="Wohn- & Esszimmer [%d %%]"
                    Switch icon=rollershutter item=EG_Wohnzimmer_Rollo label="Wohnzimmer [%d %%]"
                    Switch icon=rollershutter item=EG_Esszimmer_Rollo_Ost label="Esszimmer [%d %%]"
                    Switch icon=rollershutter item=EGAktor12_EG_Wohnzimmer_Rollo_Schiebetuer label="Wohnzimmer Schiebetüre [%d %%]"
                    Switch icon=rollershutter item=EGAktor12_EG_Wohnzimmer_Rollo_Sued_West label="Wohnzimmer Süd/West [%d %%]"
                    Switch icon=rollershutter item=EGAktor12_EG_Wohnzimmer_Rollo_West label="Wohnzimmer West [%d %%]"
                    Switch icon=rollershutter item=EGAktor12_EG_Esszimmer_Rollo_Schiebetuer label="Esszimmer Schiebetüre [%d %%]"
                    Switch icon=rollershutter item=EGAktor12_EG_Esszimmer_Rollo_Sued_Ost label="Esszimmer Süd/Ost [%d %%]"
                    Switch icon=rollershutter item=EGAktor12_EG_Esszimmer_Rollo_Ost label="Esszimmer Ost [%d %%]"
                    Text label="Automatisation" {
                        Switch icon=switch item=EG_Wohnzimmer_Automatik_Rollo_Uhrzeit label="Wohnzimmer Automatik Time"
                        Switch icon=switch item=EG_Esszimmer_Automatik_Rollo_Uhrzeit label="Esszimmer Automatik Time"
                        Switch icon=switch item=EG_Wohnzimmer_Automatik_Rollo_Astro label="Wohnzimmer Automatik Astro"
                        Switch icon=switch item=EG_Esszimmer_Automatik_Rollo_Astro label="Esszimmer Automatik Astro"
                    }
                }
                Frame icon=window label="Fensterkontakte" {
                    Text icon=window item=EG_Esszimmer_Rolladen_Ost_Sperre label="Fenster Ost [MAP(de.map):%s]"
                    Text icon=window item=EG_Esszimmer_Binaereingang_Schiebetuer label="Schiebetüre [MAP(de.map):%s]"
                }
                Frame icon=temperature label="Temperatur" {
                    Text icon=temperature item=EG_Wohnzimmer_Temperatur label="Temperatur"
                    Text icon=temperature item=Shelly_Temperatur_03 label="Shelly Temperatur"
                }
                Frame icon=humidity label="Luftfeuchtigkeit" {
                    Text icon=humidity item=Shelly_Humidity_03 label="Luftfeuchtigkeit"
                    Text icon=time item=Shelly_Humdity_Last_Update_03 label="Last Update  [%1$td.%1$tm.%1$ty - %1$tH:%1$tM]"
                }
            }
            Text icon=kitchen label="Küche" {
                Frame icon=light label="Light" {
                    Switch icon=light item=EG_Kueche_Licht_Decke_Thresen label="Licht"
                    Switch icon=light item=EGAktor34_EG_Kueche_Licht label="Deckenlicht"
                    Switch icon=light item=EGAktor34_EG_Kueche_Licht_Thresen label="Tresen"
                }
                Frame icon=receiver label="Radio" {
                    Switch icon=receiver item=Lautsprecher_Sonos_One_SL_Kuche_Radiosender_Bob label="Radio Bob an"
                    Default icon=receiver item=Group_Lautsprecher_Sonos_One_SL_Kueche_Wohnzimmer_Fernbedienung label="Remote"
                    Slider icon=soundvolume item=Group_Lautsprecher_Sonos_One_SL_Kueche_Wohnzimmer_Lautstarke label="Lautstärke"
                }
                Frame icon=rollershutter label="Rollo" {
                    Switch icon=rollershutter item=EG_Kueche_Rollo label="Gesamt [%d %%]"
                    Switch icon=rollershutter item=EGAktor34_EG_Kueche_Rollo_Ost label="Ost [%d %%]"
                    Switch icon=rollershutter item=EGAktor34_EG_Kueche_Rollo_Nord label="Nord [%d %%]"
                    Text label="Automatisation" {
                        Switch icon=switch item=EG_Kueche_Automatik_Rollo_Uhrzeit label="Automatik Time"
                        Switch icon=switch item=EG_Kueche_Automatik_Rollo_Astro label="Automatik Astro"
                    }
                }
                Frame label="Temperatur" {
                    Text icon=temperature item=EG_Kueche_Temperatur label="Temperatur"
                }
                Frame icon=water label="Sensor" {
                    Text icon=water label="Wassersensor Waschbecken"
                    Text icon=water item=Shelly_Flood_Wasseralarm_02 label="Wasseralarm [%s]"
                    Text icon=time item=Shelly_Flood_Last_Update_02 label="Last Update [%1$td.%1$tm.%1$ty - %1$tH:%1$tM]"
                    Text item=EG_Kueche_Bewegungsmelder_Helligkeit label="Helligkeitswert [%.0f Lux]"
                }
                Frame icon=water label="Wasserfilter Kühlschrank" {
                    Switch icon=switch item=EG_Kueche_Kuehlschrank_Wasserfilter_Reset label="Reset Tauschdatum"
                    Text icon=water item=EG_Kueche_Kuehlschrank_Wasserfilter_Tausch label="Letzter Wasserfiltertausch am: [%1$td.%1$tm.%1$tY %1$tH:%1$tM]"
                }
            }
            Text icon=cistern label="Speise" {
                Frame icon=light label="Licht" {
                    Switch icon=light item=EGAktor34_EG_Speise_Licht label="Licht"
                }
                Frame icon=temperature label="Temperatur" {
                    Text icon=temperature item=Shelly_Door_Temperatur_01 label="Temperatur"
                }
                Frame label="Sensor" {
                    Text icon=door item=Shelly_Door_Speisekammer_Status label="Türe [MAP(doorstatus.map):%s]"
                }
            }
        }
    }
    Frame icon=cellar label="Keller" {
        Text icon=cellar label="Keller" {
            Text icon=corridor label="Flur" {
                Frame icon=light label="Licht" {
                    Switch icon=light item=EGAktor56_KG_Flur_Licht label="Licht"
                }
                Frame icon=humidity label="Luftfeuchtigkeit" {
                    Text icon=humidity item=Shelly_Humidity_02 label="Luftfeuchtigkeit"
                    Text icon=time item=Shelly_Humidity_02_Last_Update label="Last Update [%1$td.%1$tm.%1$ty - %1$tH:%1$tM]"
                }
            }
            Text icon=washingmachine label="Waschküche" {
                Frame icon=light label="Licht" {
                    Switch icon=light item=EGAktor56_KG_Waschkueche_Licht label="Licht"
                }
                Frame icon=poweroutlet_eu label="Steckdose " {
                    Switch icon=switch item=KG_Waschkueche_Steckdose_Waschkueche label="Steckdose Waschmaschine"
                    Text icon=poweroutlet_eu item=KG_Waschkueche_Steckdose_Waschkueche_PowerUsage label="Aktueller Stromverbrauch"
                    Chart icon=chart item=KG_Waschkueche_Steckdose_Waschkueche_PowerUsage label="Verlauf Stromverbrauch" period=D
                }
                Frame icon=temperature label="Sensor" {
                    Frame icon=water label="Wasseralarm" {
                        Text icon=temperature item=Shelly_Flood_Temperatur_01 label="Temperatur [%.1f °C]"
                        Text icon=water item=Shelly_Flood_Wasseralarm_01 label="Wasseralarm [%s]"
                        Text icon=time item=Shelly_Flood_Last_Update_01 label="Last Update [%1$td.%1$tm.%1$ty - %1$tH:%1$tM]"
                        Frame icon=humidity label="Luftfeuchtigkeit" {
                            Text icon=humidity item=Shelly_Humidity_04 label="Luftfeuchtigkeit"
                            Text item=Shelly_Humdity_Last_Update_04 label="Last Update [%1$td.%1$tm.%1$ty - %1$tH:%1$tM]"
                        }
                    }
                }
            }
            Text icon=softener label="Technik" {
                Frame icon=light label="Licht" {
                    Switch icon=light item=EGAktor56_KG_Technik_Licht label="Licht"
                }
                Frame label="Sensor" {
                    Frame icon=water label="Wasseralarm" {
                        Text icon=temperature item=Shelly_Flood_Temperatur_03 label="Temperatur [%.1f °C]"
                        Text icon=water item=Shelly_Flood_Wasseralarm_03 label="Wasseralarm [%s]"
                        Text icon=time item=Shelly_Flood_Last_Update_03 label="Last Update [%1$td.%1$tm.%1$ty - %1$tH:%1$tM]"
                    }
                }
                Frame icon=water label="Wasserfilter" {
                    Switch icon=water item=KG_Technik_Wasserfilter_Reset label="Reset Spülungsdatum "
                    Text icon=calendar item=KG_Technik_Wasserfilter_letzte_Spuelung label="Letzte Spülung am: [%1$td.%1$tm.%1$tY %1$tH:%1$tM]"
                }
            }
            Text icon=cellar label="Hobbyraum" {
                Frame icon=light label="Licht" {
                    Switch item=KG_Hobbykeller_Licht label="Licht"
                    Switch icon=light item=EGAktor56_KG_Hobbykeller_Licht_West label="West"
                    Switch icon=light item=EGAktor56_KG_Hobbykeller_Licht_Ost label="Ost"
                }
            }
        }
    }
    Frame icon=garden label="Außenbereich" {
        Text icon=garden label="Außenbereich" {
            Frame label="Hoftor" {
                Switch icon=garagedoor item=AB_Hoftor_Auf_zu_HomeKit label="Hoftor Auf/Zu"
                Text item=AB_Hoftor_01_Status label="Status [MAP(doorstatus.map):%s]"
            }
            Frame label="Haustüre" {
                Switch icon=frontdoor item=EGAktor56_EG_Haustuere label="Haustüre öffnen (10 Sek)"
                Text icon=door label="Briefkasten" item=Shelly_Blu_Briefkasten_01_Zustand
            }
            Frame icon=garage label="Carport" {
                Switch icon=light item=EGAktor56_AB_Carport_Licht_5_Min label="Licht Carport f. 5 Minuten"
                Switch icon=light item=EGAktor56_AB_Carport_Licht_Dauer_AN label="Carport Licht "
                Switch icon=switch item=AB_Carport_Bewegungsmelder_Sperre label="Sperre Bewegungsmelder"
            }
            Frame icon=terrace label="Terrasse" {
                Switch icon=light item=EGAktor56_AB_Terrasse_Licht_Steckdosen label="Licht & Steckdose"
                Switch icon=poweroutlet_eu item=EGAktor34_AB_Terrasse_Steckdose_Sued label="Steckdose Haus z. Terrasse"
            }
            Frame icon=camera label="Kamera" {
                Image icon=camera item=Kamera_Carport_01_Snapshot
                Switch icon=switch item=Binding_Surviellance_Station_Home_Mode label="Home Mode"
            }
        }
    }
    Frame icon=line label="Information" {
        Text icon=line label="Informationen" {
            Frame icon=parents_1_1 label="Familienstatus" {
                Text icon=woman_3 item=Mobil_iPhone_Fabienne label="Fabienne [MAP(homestatus.map):%s]"
                Text icon=boy_1 item=Mobil_iPhone_Malte label="Malte [MAP(homestatus.map):%s]"
                Text icon=parents_2_3 item=Haus_Gastmodus label="Gast [MAP(homestatus.map):%s]"
                Text icon=girl_1 item=Mobil_iPhone_Verena label="Verena [MAP(homestatus.map):%s]"
            }
            Frame icon=time label="Systemzeit" {
                Text icon=time item=DatumundZeit label=" "
            }
            Frame icon=energy label="Strom" {
                Text item=Haus_Ernergiezaehler_Hausstrom label="Hausstrom Gesamtverbrauch"
                Text item=Haus_Ernergiezaehler_Hausstrom_Verbrauch label="Hausstrom Verbrauch"
                Text label="Verbrauch Hausstrom "
                Text icon=energy item=Haus_Ernergiezaehler_Hausstrom_Aktuelles_Jahr label="Hausstrom Verbrauch Jahr"
                Text icon=energy item=Haus_Ernergiezaehler_Hausstrom_Aktueller_Monat label="Hausstrom Verbrauch Monat"
                Text icon=energy item=Haus_Ernergiezaehler_Hausstrom_Aktueller_Tag label="Verbrauch Gestern"
                Chart item=Haus_Ernergiezaehler_Hausstrom label="Verlauf Hausstrom Monat" period=M service="rrd4j"
                Text item=Haus_Waermepumpe_Gesamtverbrauch label="Wärmepumpe Gesamtverbrauch"
                Text item=Haus_Waermepumpe_Verbauch label="Wärmepumpe Verbrauch"
                Text icon=energy item=Haus_Waermepumpe_Aktueller_Jahr label="Wärmepumpe Verbrauch Jahr"
                Text icon=energy item=Haus_Waermepumpe_Aktueller_Monat label="Wärmepumpe Verbrauch Monat"
                Text icon=energy item=Haus_Waermepumpe_Aktueller_Tag label="Wärmepumpe Verbrauch Tag"
                Chart item=Haus_Waermepumpe_Gesamtverbrauch label="Verlauf Wärmepumpe Monat" period=M service="rrd4j"
            }
            Frame icon=sun label="Sonnenaufgang & -untergang" {
                Text icon=sunrise item=Info_Sonnenaufgang_Uhrzeit_Start label="Beginn Sonnenaufgang "
                Text icon=sun item=Info_Sonnenaufgang_Uhrzeit_Ende label="Ende Sonnenaufgang"
                Text icon=sunset item=Info_Sonnenuntergang_Uhrzeit_Start label=" Beginn Sonnenuntergang"
                Text icon=moon item=Info_Sonnenuntergang_Uhrzeit_Ende label="Ende Sonnenuntergang"
                Text icon=moon item=Info_Sonnenuntergang_Buergerlich_Uhrzeit_Ende label="Ende bürgerlicher Sonnenuntergang"
                Text icon=moon item=Info_Sonnenuntergang_Nautische_Uhrzeit_Ende label="Ende nautischer Sonnenuntergang"
                Text icon=moon item=Info_Sonnenuntergang_Astronomisch_Uhrzeit_Ende label="Ende astronomischer Sonnenuntergang"
            }
            Frame icon=batterylevel label="Batteriestatus" {
                Text icon=batterylevel item=Shelly_Flood_Batterie_Status_01 label="Shelly Flood 01 "
                Text icon=batterylevel item=Shelly_Flood_Batterie_Status_02 label="Shelly Flood 02 "
                Text icon=batterylevel item=Shelly_Flood_Batterie_03 label="Shelly Flood 03"
                Text icon=batterylevel item=Shelly_Flood_Batterie_04 label="Shelly Flood 04"
                Text icon=batterylevel item=Shelly_Button_Batterie_Status_01 label="Shelly Button 01"
                Text icon=batterylevel item=Shelly_Blu_Door_Batterie_Status_01 label="Shelly BLU Door 01"
                Text icon=batterylevel item=Shelly_Door_Batterieladung_01 label="Shelly Door 01"
            }
            Frame icon=temperature label="Temperatur" {
                Chart icon=temperature item=Group_Temperatur label="Temperatur Verlauf" period=D refresh="600000"
                Text icon=temperature label="Temperatur Verläufe" {
                    Frame icon=groundfloor label="Erdgeschoss" {
                        Frame label="Windfang / Flur" {
                            Chart item=EG_Windfang_Temperatur label="Windfang / Flur" period=D refresh="600000"
                        }
                        Frame label="WC" {
                            Chart item=EG_WC_Temperatur label="WC" period=D refresh="600000"
                        }
                        Frame label="Wohnzimmer" {
                            Chart item=EGWohnzimmer_Temperatur label="Wohnzimmer" period=D refresh="600000"
                        }
                        Frame label="Küche" {
                            Chart item=EG_Kueche_Temperatur label="Küche" period=D refresh="600000"
                        }
                    }
                    Frame icon=firstfloor label="Obergeschoss" {
                        Frame label="Flur" {
                            Chart icon=temperature item=OG_Flur_Temperatur label="Flur" period=D refresh="600000"
                        }
                        Frame label="Badezimmer" {
                            Chart item=OG_Bad_Temperatur label="Badezimmer" period=D refresh="600000"
                        }
                        Frame label="Schlafzimmer" {
                            Chart item=OG_Ankleide_Temperatur label="Schlafzimmer / Ankleide" period=D refresh="600000"
                        }
                        Frame label="Büro" {
                            Chart item=OG_Buero_Temperatur label="Büro" period=D refresh="600000"
                        }
                        Frame label="Kinderzimmer Süd" {
                            Chart item=OG_KinderzimmerSued_Temperatur label="Kinderzimmer Süd" period=D refresh="600000"
                        }
                        Frame label="Kinderzimmer West" {
                            Chart item=OG_KinderzimmerWest_Temperatur label="Kinderzimmer West" period=D refresh="600000"
                        }
                    }
                    Frame icon=cellar label="Keller" {
                        Frame label="Waschküche" {
                            Chart item=Shelly_Temperatur_01 label="Waschküche" period=D refresh="600000"
                        }
                    }
                }
            }
            Frame icon=humidity label="Luftfeuchtigkeit" {
                Chart icon=humidity item=Group_Humidity label="Luftfeuchtigkeit" period=D refresh="600000"
                Text icon=humidity label="Luftfeuchtigkeit Verläufe" {
                    Frame icon=groundfloor label="Erdgeschoss" {
                        Frame label="Wohnzimmer" {
                            Chart item=Shelly_Humidity_03 label="Wohnzimmer" period=D refresh="600000"
                        }
                    }
                    Frame icon=firstfloor label="Obergeschoss" {
                        Frame label="Badezimmer" {
                            Chart item=Shelly_Humidity_01 label="Badezimmer" period=D refresh="600000"
                        }
                    }
                    Frame icon=cellar label="Keller" {
                        Frame label="Flur" {
                            Chart item=Shelly_Humidity_02 label="Flur" period=D refresh="600000"
                        }
                        Frame label="Waschküche" {
                            Chart item=Shelly_Humidity_04 label="Waschküche" period=D refresh="600000"
                        }
                    }
                }
            }
            Frame icon=sun_clouds label="Wetter Außen" {
                Frame label="Wetterbericht" {
                    Default icon=sun_clouds item=Wetter label="Wetter "
                    Default icon=temperature item=Wetter_Temperatur_Aktuell label="Aktuelle Temperatur"
                    Default icon=humidity item=Wetter_Luftfeuchtigkeit_Aktuell label="Aktuelle Luftfeuchtigkeit"
                    Default icon=pressure item=Wetter_Luftdruck_Aktuell label="Aktueller Luftdruck"
                }
                Frame label="Sensoren am Haus" {
                    Default icon=temperature item=AB_Carport_Temperatur label="Temperatur Carport [%.1f °C]"
                    Default icon=sun item=AB_Carport_Helligkeitswert label="Helligkeit  [%.0f Lux]"
                }
            }
            Frame label="Roboter" {
                Text icon=fan item=Roboter_Ying_Status label="Ying"
                Chart icon=energy item=TPLink_Tapo_Steckdose_02_PowerUsage label="Stromverbrauch" period=W
            }
        }
    }
    Frame icon=house label="Haus" {
        Text icon=house label="Haus" {
            Frame icon=Liga label="Licht" {
                Switch icon=light item=Haus_Licht_Gruppe label="Licht Haus Alle" mappings=[OFF="Alle Lichter aus"]
            }
            Frame label="System" {
                Text label="Sytem & Testing" {
                    Frame label="Systembefehle" {
                        Switch icon=switch item=System_all_ExpirationTimer_off label="ExpirationTimer" mappings=[ON="Expiration-Itmes OFF"]
                    }
                    Frame label="Testing" {
                        Switch icon=switch item=Test_Test_Switch_1 label="Test"
                        Switch item=EG_Windfang_Bewegungsmelder label="BWM Windfang"
                    }
                    Frame icon=soundvolume label="Test Sonos" {
                        Default icon=player item=Lautsprecher_Sonos_Roam_Sonos_Roam_Fernbedienung label="Fernbedienung"
                        Switch icon=player item=Lautsprecher_Sonos_One_SL_Kuche_Radiosender_Bob label="Radio BoB!"
                    }
                }
            }
            Frame label="Automatisation" {
                Text icon=error label="Automatisation" {
                    Frame icon=alarm item=Haus_Alarmanlage label="Alarmanlage" {
                        Selection icon=alarm item=Haus_Alarmanlage_Selektion label="Alarmanlage" mappings=[1="An & Automatik", 2="An & immer Benachrichtigen", 3="Aus"]
                    }
                    Frame label="Gast" {
                        Switch icon=parents_2_3 item=Haus_Gastmodus label="Gast anwesend "
                    }
                    Frame label="Licht" {
                        Selection icon=light item=Haus_Licht_Aus_Selektion label="Automatisches ausschalten bei Verlassen" mappings=[1=An, 3=Aus]
                    }
                    Frame icon=temperature label="Automatische Verschattung Ost" {
                        Frame label="Aktivieren der Automatik" {
                            Switch icon=switch item=Rollladenautomatik_east
                            Setpoint icon=rollershutter item=Rollladenautomatik_zielwert_east label="Wert [%d %%]" maxValue=100 minValue=0 step=5
                        }
                        Frame label="Rollo ab, wenn..." {
                            Setpoint icon=temperature item=Rollladenautomatik_temp_min_east maxValue=35 step=1
                            Text icon=temperature item=AB_Carport_Temperatur label="Temperatur Aussen [%.1f °C]"
                            Setpoint icon=sun_clouds item=Rollladenautomatik_wolken_max_east maxValue=100 step=10
                            Text icon=sun_clouds item=Wetter_Bewolkung_Cloudiness label="Bewölkung [%d %unit%]"
                            Setpoint icon=sun item=Rollladenautomatik_azimuth_start_east maxValue=360 step=1
                            Default icon=niveau item=Azimuth label="Azimuth"
                        }
                        Frame label="Rollo hoch, wenn..." {
                            Switch icon=switch item=Rollladenautomatik_oeffnen_east
                            Setpoint icon=sun item=Rollladenautomatik_elevation_ende_east maxValue=70 minValue=-20 step=1
                            Setpoint icon=sun item=Rollladenautomatik_Azimut_ende_east maxValue=360 step=5
                            Default item=Elevation label="Elevation"
                        }
                    }
                    Frame icon=temperature label="Automatische Verschattung SÜD" {
                        Frame label="Aktivieren der Automatik" {
                            Switch item=Rollladenautomatik_sued
                            Setpoint icon=rollershutter item=Rollladenautomatik_zielwert_sued label=" [%d %%]" maxValue=100 minValue=1 step=1
                        }
                        Frame label="Rollo ab, wenn..." {
                            Setpoint item=Rollladenautomatik_temp_min_sued maxValue=35 step=1
                            Text icon=temperature item=AB_Carport_Temperatur label="Temperatur Aussen [%.1f °C]"
                            Setpoint item=Rollladenautomatik_wolken_max_sued maxValue=100 step=10
                            Text icon=sun_clouds item=Wetter_Bewolkung_Cloudiness label="Bewölkung [%d %unit%]"
                            Setpoint item=Rollladenautomatik_azimuth_start_sued maxValue=360 step=1
                            Default icon=niveau item=Azimuth label="Azimuth"
                        }
                        Frame label="Rollo hoch, wenn..." {
                            Switch item=Rollladenautomatik_oeffnen_sued
                            Setpoint icon=sun item=Rollladenautomatik_elevation_ende_sued maxValue=70 minValue=-20 step=1
                            Setpoint icon=sun item=Rollladenautomatik_Azimut_ende_sued maxValue=360 step=5
                            Default item=Elevation label="Elevation"
                        }
                    }
                    Frame icon=temperature label="Automatische Verschattung West" {
                        Frame label="Aktivieren der Automatik" {
                            Switch icon=switch item=Rollladenautomatik_west
                            Setpoint icon=rollershutter item=Rollladenautomatik_zielwert_west maxValue=100 step=1
                        }
                        Frame label="Rollo ab, wenn..." {
                            Setpoint icon=temperature item=Rollladenautomatik_temp_min_west label="Temperatur größer [%d °C]" maxValue=35 step=1
                            Text icon=temperature item=AB_Carport_Temperatur label="Temperatur Aussen [%.1f °C]"
                            Setpoint icon=sun_clouds item=Rollladenautomatik_wolken_max_west maxValue=100 step=10
                            Text icon=sun_clouds item=Wetter_Bewolkung_Cloudiness label="Bewölkung [%d %unit%]"
                            Setpoint icon=sun item=Rollladenautomatik_azimuth_start_west maxValue=360 step=1
                            Default icon=niveau item=Azimuth label="Azimuth"
                        }
                        Frame label="Rollo hoch, wenn..." {
                            Switch icon=switch item=Rollladenautomatik_oeffnen_west
                            Setpoint icon=sun item=Rollladenautomatik_elevation_ende_west maxValue=70 minValue=-20 step=5
                            Setpoint icon=sun item=Rollladenautomatik_Azimut_ende_west maxValue=360 step=5
                            Default item=Elevation label="Elevation"
                        }
                    }
                }
            }
            Frame label="Benachrichtungen" {
                Text icon=text label="Benachrichtungen" {
                    Switch item=Rule_An_Aus_Klingel label="Klingel"
                    Switch icon=switch item=Rule_Alarmanlage_Statusmeldung label="Status Alarmanlage"
                    Switch icon=switch item=Rule_Gast_Statusmeldung label="Status Gast"
                }
            }
            Frame label="Putzen" {
                Text icon=text label="Putzen: Last Time" {
                    Frame label="Erdgeschoss" {
                        Text item=Putzen_EG_Staubsaugen label="EG Staubsaugen: [%1$td.%1$tm.%1$tY %1$tH:%1$tM]"
                        Switch icon=switch item=Putzen_EG_Staubsaugen_Reset label="EG Staubsaugen: DONE"
                        Text item=Putzen_EG_Wischen label="EG Wischen: [%1$td.%1$tm.%1$tY %1$tH:%1$tM]"
                        Switch icon=switch item=Putzen_EG_Wischen_Reset label="EG Wischen: DONE"
                        Text item=Putzen_EG_Staubwischen label="EG Staubwischen: [%1$td.%1$tm.%1$tY %1$tH:%1$tM]"
                        Switch icon=switch item=Putzen_EG_Staubwischen_Reset label="EG Staubwischen: DONE"
                        Text item=Putzen_EG_WC label="EG WC: [%1$td.%1$tm.%1$tY %1$tH:%1$tM]"
                        Switch icon=switch item=Putzen_EG_WC_Reset label="EG WC: DONE"
                        Text icon=calendar item=Putzen_EG_Kueche_Allgemein label="EG Küche: [%1$td.%1$tm.%1$tY %1$tH:%1$tM]"
                        Switch icon=switch item=Putzen_EG_Kueche_Allgemein_Reset label="EG Küche: DONE"
                        Text icon=calendar item=Putzen_EG_Kueche_Kaffee label="EG Kaffeemaschine: [%1$td.%1$tm.%1$tY %1$tH:%1$tM]"
                        Switch icon=switch item=Putzen_EG_Kueche_Kaffee_Reset label="EG Kaffeemaschine: DONE"
                        Text icon=calendar item=Putzen_EG_Kueche_Spuelmaschine label="EG Spülmaschine: [%1$td.%1$tm.%1$tY %1$tH:%1$tM]"
                        Switch icon=switch item=Putzen_EG_Kueche_Spuelmaschine_Reset label="EG Spülmaschine: DONE"
                    }
                    Frame label="Obergeschoss" {
                        Text item=Putzen_OG_Staubsaugen label="OG Staubsaugen: [%1$td.%1$tm.%1$tY %1$tH:%1$tM]"
                        Switch icon=switch item=Putzen_OG_Staubsaugen_Reset label="OG Staubsaugen: DONE"
                        Text item=Putzen_OG_Wischen label="OG Wischen: [%1$td.%1$tm.%1$tY %1$tH:%1$tM]"
                        Switch icon=switch item=Putzen_OG_Wischen_Reset label="OG Wischen: DONE"
                        Text item=Putzen_OG_Staubwischen label="OG Staubwischen: [%1$td.%1$tm.%1$tY %1$tH:%1$tM]"
                        Switch icon=switch item=Putzen_OG_Staubwischen_Reset label="OG Staubwischen: DONE"
                        Text item=Putzen_OG_Bad label="OG Bad: [%1$td.%1$tm.%1$tY %1$tH:%1$tM]"
                        Switch icon=switch item=Putzen_OG_Bad_Reset label="OG Bad: DONE"
                        Text item=Putzen_OG_Bettwaesche label="Bettwäsche: [%1$td.%1$tm.%1$tY %1$tH:%1$tM]"
                        Switch icon=switch item=Putzen_OG_Bettwaesche_Reset label="Bettwäsche: DONE"
                    }
                }
            }
        }
    }
}
Auch noch einmal die gesamten Fehlermeldungen:

Im Code:
Error: Syntax error at line 563 col 112:

561 }
562 }
563 }
^
Unexpected hyphen token: "-". Instead, I was expecting to see one of the following:

A WS token based on:
__ → ● %WS
_ → ● __
WidgetAttr → WidgetAttrName ● _ WidgetAttrValue
WidgetAttrs → WidgetAttrs _ ● WidgetAttr
Widget$ebnf$1 → Widget$ebnf$1 ● WidgetAttrs
Widget → %nlwidget _ ● Widget$ebnf$1
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Sitemap → %sitemap _ SitemapName __ SitemapLabel __ %lbrace _ ● Widgets _ %rbrace
Main → _ ● Sitemap _
A NL token based on:
__ → ● %NL
_ → ● __
WidgetAttr → WidgetAttrName ● _ WidgetAttrValue
WidgetAttrs → WidgetAttrs _ ● WidgetAttr
Widget$ebnf$1 → Widget$ebnf$1 ● WidgetAttrs
Widget → %nlwidget _ ● Widget$ebnf$1
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Sitemap → %sitemap _ SitemapName __ SitemapLabel __ %lbrace _ ● Widgets _ %rbrace
Main → _ ● Sitemap _
A number token based on:
WidgetAttrValue → ● %number
WidgetAttr → WidgetAttrName _ ● WidgetAttrValue
WidgetAttrs → WidgetAttrs _ ● WidgetAttr
Widget$ebnf$1 → Widget$ebnf$1 ● WidgetAttrs
Widget → %nlwidget _ ● Widget$ebnf$1
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Sitemap → %sitemap _ SitemapName __ SitemapLabel __ %lbrace _ ● Widgets _ %rbrace
Main → _ ● Sitemap _
A identifier token based on:
WidgetAttrValue → ● %identifier
WidgetAttr → WidgetAttrName _ ● WidgetAttrValue
WidgetAttrs → WidgetAttrs _ ● WidgetAttr
Widget$ebnf$1 → Widget$ebnf$1 ● WidgetAttrs
Widget → %nlwidget _ ● Widget$ebnf$1
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Sitemap → %sitemap _ SitemapName __ SitemapLabel __ %lbrace _ ● Widgets _ %rbrace
Main → _ ● Sitemap _
A string token based on:
WidgetAttrValue → ● %string
WidgetAttr → WidgetAttrName _ ● WidgetAttrValue
WidgetAttrs → WidgetAttrs _ ● WidgetAttr
Widget$ebnf$1 → Widget$ebnf$1 ● WidgetAttrs
Widget → %nlwidget _ ● Widget$ebnf$1
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Sitemap → %sitemap _ SitemapName __ SitemapLabel __ %lbrace _ ● Widgets _ %rbrace
Main → _ ● Sitemap _
A SL_COMMENT token based on:
Comment → ● %SL_COMMENT
__ → ● Comment
_ → ● __
WidgetAttr → WidgetAttrName ● _ WidgetAttrValue
WidgetAttrs → WidgetAttrs _ ● WidgetAttr
Widget$ebnf$1 → Widget$ebnf$1 ● WidgetAttrs
Widget → %nlwidget _ ● Widget$ebnf$1
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Sitemap → %sitemap _ SitemapName __ SitemapLabel __ %lbrace _ ● Widgets _ %rbrace
Main → _ ● Sitemap _
A ML_COMMENT token based on:
Comment → ● %ML_COMMENT
__ → ● Comment
_ → ● __
WidgetAttr → WidgetAttrName ● _ WidgetAttrValue
WidgetAttrs → WidgetAttrs _ ● WidgetAttr
Widget$ebnf$1 → Widget$ebnf$1 ● WidgetAttrs
Widget → %nlwidget _ ● Widget$ebnf$1
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → ● Widget
Widget → %lwidget _ Widget$ebnf$3 _ %lbrace _ ● Widgets _ %rbrace
Widgets → Widgets _ ● Widget
Sitemap → %sitemap _ SitemapName __ SitemapLabel __ %lbrace _ ● Widgets _ %rbrace
Main → _ ● Sitemap _
Fehlermeldung beim Speichern:
Validation errors
Sitemap definition has validation errors:
Frame widget Einzelne Lichter, frame not allowed in frame
Widget Einzelne Lichter, only frames or no frames at all allowed in linkable widget
Frame widget Wasseralarm, frame not allowed in frame
Frame widget Luftfeuchtigkeit, frame not allowed in frame
Widget Luftfeuchtigkeit, only frames or no frames at all allowed in linkable widget
Frame widget Wasseralarm, frame not allowed in frame
Frame widget Windfang / Flur, frame not allowed in frame
Frame widget WC, frame not allowed in frame
Frame widget Wohnzimmer, frame not allowed in frame
Frame widget Küche, frame not allowed in frame
Frame widget Flur, frame not allowed in frame
Frame widget Badezimmer, frame not allowed in frame
Frame widget Schlafzimmer, frame not allowed in frame
Frame widget Büro, frame not allowed in frame
Frame widget Kinderzimmer Süd, frame not allowed in frame
Frame widget Kinderzimmer West, frame not allowed in frame
Frame widget Waschküche, frame not allowed in frame
Frame widget Wohnzimmer, frame not allowed in frame
Frame widget Badezimmer, frame not allowed in frame
Frame widget Flur, frame not allowed in frame
Frame widget Waschküche, frame not allowed in frame
Frame widget Wetterbericht, frame not allowed in frame
Frame widget Sensoren am Haus, frame not allowed in frame
Frame widget Aktivieren der Automatik, frame not allowed in frame
Frame widget Rollo ab, wenn..., frame not allowed in frame
Frame widget Rollo hoch, wenn..., frame not allowed in frame
Frame widget Aktivieren der Automatik, frame not allowed in frame
Frame widget Rollo ab, wenn..., frame not allowed in frame
Frame widget Rollo hoch, wenn..., frame not allowed in frame
Frame widget Aktivieren der Automatik, frame not allowed in frame
Frame widget Rollo ab, wenn..., frame not allowed in frame
Frame widget Rollo hoch, wenn..., frame not allowed in frame
Viele Grüße und echt vielen Dank für die Unterstützung!
OpenHAB 4.3.5
in einem Docker-Container
auf einer Synology DS1515+

Benutzeravatar
udo1toni
Beiträge: 15345
Registriert: 11. Apr 2018 18:05
Answers: 247
Wohnort: Darmstadt

Re: Sitemap - Errors - Wie beheben?

Beitrag von udo1toni »

Jede Menge Frame-in-Frame Fehler:
Zeile 215, 327, 331, 343, 435... da sind so viele Fehler drin, dass es manuell schwer wird, die alle zu finden...

Ganz grundsätzlich:
  1. Auf einer Ebene (also unterhalb eines übergeordneten Widgets) dürfen entweder gar keine oder ausschließlich Frames gesetzt werden.
  2. Innerhalb eines Frames darf niemals ein Frame gesetzt werden.
  3. Befindet sich innerhalb eines Frames ein Widget welches gruppierende Funktion hat, so gilt für die Gruppe Punkt 1.
Beispiel:

Code: Alles auswählen

sitemap Home_01 label="Home_01" {
    Frame icon=attic label="Dach" {
        Text icon=attic label="Dach" {
            Frame icon=lightbulb label="Licht" {
                Switch icon=lightbulb item=EGAktor34_DG_Licht label="Licht"
            }
        }
    }
}
ist korrekt, weil sich auf der ersten Ebene ausschließlich Frames befinden und innerhalb des Frames kein Frame gesetzt ist. Das Text Widget innerhalb des Frames beinhaltet ausschließlich Frames, welche wieder ausschließlich Nicht-Frames beinhalten.
Beispiel (alle Untergruppen "zugeklappt" bzw. enfernt)

Code: Alles auswählen

            Text icon=bath label="Badezimmer" {
                Frame icon=lightbulb label="Licht" {
                }
                Frame icon=receiver label="Radio" {
                }
                Frame icon=fan label="Lüfter" {
                }
                Frame icon=rollershutter label="Rollladen" {
                }
                Frame icon=temperature label="Tempteratur" {
                }
            }
Unterhalb des Text Widgets gibt es ausschließlich Frames (und wenn man sie aufklappt befinden sich dort keine Frames)

Ungültig:

Code: Alles auswählen

            Text icon=sofa label="Wohnzimmer" {
                Frame icon=light label="Licht" {
                    Switch icon=light item=EG_Wohnzimmer_Esszimmer_Licht label="Gesamt"
                    Switch icon=light item=EG_Wohnzimmer_Esszimmer_Licht_Indirekt label="Indirekt Wohn- & Esszimmer"
                    Frame label="Einzelne Lichter" {
                    }
                }
Frame innerhalb eines Frames. Außerdem befinden sich Frame und Nicht-Frame innerhalb der selben Ebene (nach dem 2. Switch Widget)

Code: Alles auswählen

                Frame icon=temperature label="Sensor" {
                    Frame icon=water label="Wasseralarm" {
                        Text icon=temperature item=Shelly_Flood_Temperatur_01 label="Temperatur [%.1f °C]"
                        Text icon=water item=Shelly_Flood_Wasseralarm_01 label="Wasseralarm [%s]"
                        Text icon=time item=Shelly_Flood_Last_Update_01 label="Last Update [%1$td.%1$tm.%1$ty - %1$tH:%1$tM]"
                        Frame icon=humidity label="Luftfeuchtigkeit" {
                            Text icon=humidity item=Shelly_Humidity_04 label="Luftfeuchtigkeit"
                            Text item=Shelly_Humdity_Last_Update_04 label="Last Update [%1$td.%1$tm.%1$ty - %1$tH:%1$tM]"
                        }
                    }
                }
Hier sind es sogar drei Frame Ebenen unmittelbar ineinander (plus Vermischung Frame und Nicht-Frame)

Falls Du das über die UI erstellt hast, dann stimmte der Fokus nicht. Eigentlich sollte openHAB verhindern, dass Frames innerhalb eines Frames platziert werden.

Falls Du mit einem Texteditor gearbeitet hast, empfehle ich Dir VSCode mit dem openHAB Plugin. Korrekt eingerichtet nutzt es eine Live Überprüfung aller Textdateien durch Deine openHAB Instanz. Fehler werden sowohl in der Dateiliste (1) als auch innerhalb des Editors (2) angezeigt. Es gibt eine Übersichtsanzeige des Gesamtdokuments (3)
Beispiel_vscode.png
VSCode bietet die Möglichkeit, den Code hierarchisch zu falten, damit kannst Du alle untergeordneten Anteile eines jeden Widgets ausblenden. So kann man gut prüfen, ob auch wirklich ausschließlich Frames bzw. ausschließlich Nicht-Frames innerhalb eines Blocks sind.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openHAB5.0.1 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime) (Proxmox 9.0.6, LXC)

Antworten