OH3 Issue: UI creates invalid sitemap

Dear all,

I have problems with the sitemap creation in OH3.
It happens to me now the third time that after several hours of work the sitemap in OH3 is suddenly incorrect and I can not understand at all why this is so.

Sitemap looks like:

Here the complete sitemap

 sitemap page_fc66f5e1a6 label="Wohnung" {
            Frame icon="corridor" label="Flur" item=gFlur {
                Slider icon="light" label="Deckenleuchte" item=FlurDeckenleuchte_Helligkeit step=25
                Group icon="google_assistant" label="Google Assistant" item=gAssistant
            }
            Frame icon="kitchen" label="Küche" item=gKueche {
                Slider icon="light" label="Deckenlicht" item=FlurDeckenleuchte_Helligkeit step=25
                Text icon="heating" label="Heizung" item=HmIPBWTHKUECHE {
                    Default icon="temperature" label="Aktuelle Temperatur" item=HmIPBWTHKUECHE_ActualTemperature
                    Setpoint icon="temperature" label="Soll-Temperatur" item=HmIPBWTHKUECHE_SetPointTemperature step=0.5
                    Default icon="humidity" label="Luftfeuchtigkeit" item=HmIPBWTHKUECHE_Humidity
                    Switch icon="boostmode" label="Boost Modus" item=HmIPBWTHKUECHE_BoostMode
                    Selection icon="mode" label="Heizmodus" item=HmIPBWTHKUECHE_ControlMode mappings=[0="Auto",1="Manuell"]
                    Text icon="heatstat" label="Status [%s]" item=HmIPBWTHKUECHE_8_STATE
                }
            }
            Frame icon="bath" label="Bad" item=gBad {
                Slider icon="light" label="Deckenlicht" item=BadDeckenleuchte_Helligkeit
                Selection icon="light" label="Farbtemperatur" item=BadDeckenleuchte_Farbtemperatur mappings=[0="Konzentration",50="Alltag",100="Warm"]
                Slider icon="light" label="Spiegel" item=BadSpiegel_Helligkeit
                Text icon="heating" label="Heizung" item=HmIPBWTHBAD {
                    Default icon="temperature" label="Aktuelle Temperatur" item=HmIPBWTHBAD_ActualTemperature
                    Setpoint icon="temperature" label="Soll-Temperatur" item=HmIPBWTHBAD_SetPointTemperature step=0.5
                    Default icon="humidity" label="Luftfeuchtigkeit" item=HmIPBWTHBAD_Humidity
                    Switch icon="boostmode" label="Boost Modus" item=HmIPBWTHBAD_BoostMode
                    Selection icon="mode" label="Heizmodus" item=HmIPBWTHBAD_ControlMode mappings=[0="Auto",1="Manuell"]
                    Text icon="heatstat" label="Status [%s]" item=HmIPBWTHBAD_8_STATE
                }
            }
            Frame icon="desk" label="Arbeitszimmer" item=gArbeitszimmer {
                Text icon="heating" label="Heizung" item=HmIPBWTHAZ {
                    Default icon="heating" label="Aktuelle Temperatur" item=HmIPBWTHAZ_ActualTemperature
                    Setpoint icon="temperature" label="Soll-Temperatur" item=HmIPBWTHAZ_SetPointTemperature step=0.5
                    Default icon="humidity" label="Luftfeuchtigkeit" item=HmIPBWTHAZ_Humidity
                    Switch icon="boostmode" label="Boost Modus" item=HmIPBWTHAZ_BoostMode
                    Selection icon="mode" label="Heizmodus" item=HmIPBWTHAZ_ControlMode mappings=[0="Auto",1="Manuell"]
                    Text icon="heatstat" label="Status [%s]" item=HmIPBWTHAZ_8_STATE
                }
            }
            Frame icon="sofa" label="Wohnzimmer" item=gWohnzimmer {
                Text icon="heating" label="Heizung" item=HmIPBWTHWZ {
                    Default icon="temperature" label="Aktuelle Temperatur" item=HmIPBWTHWZ_ActualTemperature
                    Setpoint icon="temperature" label="Soll-Temperatur" item=HmIPBWTHWZ_SetPointTemperature step=0.5
                    Default icon="humidity" label="Luftfeuchtigkeit" item=HmIPBWTHSZ_Humidity
                    Switch icon="boostmode" label="Boost Modus" item=HmIPBWTHWZ_BoostMode
                    Selection icon="mode" label="Heizmodus" item=HmIPBWTHWZ_ControlMode mappings=[0="Auto",1="Manuell"]
                    Text icon="heatstat" label="Status [%s]" item=HmIPBWTHSZ_8_STATE
                }
                Slider icon="light" label="Stehlampe" item=Stehlampe_Helligkeit
                Selection icon="light" label="Farbtemperatur" item=Stehlampe_Farbtemperatur mappings=[0="Konzentration",50="Alltag",100="Warm"]
                Switch icon="light" label="TV Bank" item=TVBank_Farbe
                Colorpicker icon="colorlight" label="TV Bank Farbe" item=TVBank_Farbe
                Switch icon="light" label="Lichtsäule 1" item=Lichtsaule1_Schalter
                Switch icon="light" label="Lichtsäule 2" item=Lichtsaule2_Schalter
                Slider icon="light" label="Tisch" item=DeckenleuchteTisch_Helligkeit step=25
                Selection icon="light" label="Farbtemperatur" item=DeckenleuchteTisch_Farbtemperatur mappings=[0="Konzentration",50="Alltag",100="Warm"]
            }
            Frame icon="bedroom_orange" label="Schlafzimmer" item=gSchlafzimmer {
                Text icon="heating" label="Heizung" item=HmIPBWTHSZ {
                    Default icon="temperature" label="Aktuelle Temperatur" item=HmIPBWTHSZ_ActualTemperature
                    Setpoint icon="temperature" label="Soll-Temperatur" item=HmIPBWTHSZ_SetPointTemperature step=0.5
                    Default icon="humidity" label="Luftfeuchtigkeit" item=HmIPBWTHSZ_Humidity
                    Switch icon="boostmode" label="Boost Modus" item=HmIPBWTHSZ_BoostMode
                    Selection icon="mode" label="Heizmodus" item=HmIPBWTHSZ_ControlMode mappings=[0="Auto",1="Manuell"]
                    Text icon="heatstat" label="Status [%s]" item=HmIPBWTHSZ_8_STATE
                }
                Slider icon="light" label="Deckenlicht" item=SchlafzimmerDeckeneuchte_Helligkeit
                Selection icon="light" label="Farbtemperatur" item=SchlafzimmerDeckeneuchte_Farbtemperatur mappings=[0="Konzentration",50="Alltag",100="Warm"]
                Slider icon="light" label="Board" item=SchlafzimmerBoard_Helligkeit
                Selection icon="light" label="Farbtemperatur" item=SchlafzimmerBoard_Farbtemperatur mappings=[0="Konzentration",50="Alltag",100="Warm"]
            }
            Frame label="Allgemeine Kontrollen" {
                Group icon="scenes" label="Szenen" item=gScenes
                Group icon="cleaningrobot" label="Saugroboter" item=XiaomiMiRobot
            }
            Frame icon="cellar" label="Keller" item=gKeller {
                Text icon="washingmachine" label="Waschen" item=Waschen {
                    Switch icon="switch" label="Waschen" item=WaschenSchalter
                    Default label="Verbrauch" item=Waschen_Current
                    Default label="Leistung" item=Waschen_Power
                    Default label="Verbrauch 30 Tage" item=Waschen_EnergyUsage
                    Default icon="wifilogo" label="Signal" item=Waschen_Signal
                }
            }
            Frame label="Outdoor" item=gOutdoor {
                Group icon="weather" label="Wetter" item=gWetter
            }
            Frame label="Status" {
                Group icon="network" label="Netzwerk" item=gNetzwerk
                Group icon="openhab" label="openHAB" item=gSysteminfo
            }
}

Unfortunately, this sitemap definition leads to errors in the log:

2:38:16.517 [ERROR] [components.UIComponentSitemapProvider] - Cannot build sitemap page_fc66f5e1a6

java.lang.ClassCastException: class java.lang.String cannot be cast to class java.math.BigDecimal (java.lang.String and java.math.BigDecimal are in module java.base of loader 'bootstrap')

at org.openhab.core.model.sitemap.sitemap.impl.SliderImpl.eSet(SliderImpl.java:329) ~[bundleFile:?]

at org.openhab.core.ui.internal.components.UIComponentSitemapProvider.setWidgetPropertyFromComponentConfig(UIComponentSitemapProvider.java:286) ~[bundleFile:?]

at org.openhab.core.ui.internal.components.UIComponentSitemapProvider.buildWidget(UIComponentSitemapProvider.java:213) ~[bundleFile:?]

at org.openhab.core.ui.internal.components.UIComponentSitemapProvider.buildWidget(UIComponentSitemapProvider.java:262) ~[bundleFile:?]

at org.openhab.core.ui.internal.components.UIComponentSitemapProvider.buildSitemap(UIComponentSitemapProvider.java:146) ~[bundleFile:?]

at org.openhab.core.ui.internal.components.UIComponentSitemapProvider.getSitemapNames(UIComponentSitemapProvider.java:105) [bundleFile:?]

at org.openhab.core.io.rest.sitemap.internal.SitemapResource.getSitemapBeans(SitemapResource.java:414) [bundleFile:?]

at org.openhab.core.io.rest.sitemap.internal.SitemapResource.getSitemaps(SitemapResource.java:229) [bundleFile:?]

at jdk.internal.reflect.GeneratedMethodAccessor236.invoke(Unknown Source) ~[?:?]

at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]

at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]

at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:179) [bundleFile:1.0.9]

at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96) [bundleFile:1.0.9]

at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:201) [bundleFile:1.0.9]

at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:104) [bundleFile:1.0.9]

at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59) [bundleFile:1.0.9]

at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:96) [bundleFile:1.0.9]

at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) [bundleFile:1.0.9]

at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) [bundleFile:1.0.9]

at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:267) [bundleFile:1.0.9]

at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234) [bundleFile:1.0.9]

at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208) [bundleFile:1.0.9]

at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160) [bundleFile:1.0.9]

at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:216) [bundleFile:1.0.9]

at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:301) [bundleFile:1.0.9]

at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:225) [bundleFile:1.0.9]

at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) [bundleFile:3.1.0]

at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:276) [bundleFile:1.0.9]

at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:852) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:544) [bundleFile:9.4.20.v20190813]

at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) [bundleFile:?]

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1581) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1307) [bundleFile:9.4.20.v20190813]

at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:293) [bundleFile:?]

at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:482) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1549) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1204) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [bundleFile:9.4.20.v20190813]

at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) [bundleFile:?]

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.Server.handle(Server.java:494) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:374) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:268) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:426) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:320) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:158) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:367) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918) [bundleFile:9.4.20.v20190813]

at java.lang.Thread.run(Thread.java:834) [?:?]

This sitemap was created 100% through the GUI, I did not edit anything manually.

Even more incomprehensible: The GUI itself claims that the sitemap is OK:

2021-01-03 13.55.27 192.168.100.10 b187fd75c20e

What I understand even less: If I copy exactly this sitemap 1:1 into a text file and copy it to

/etc/openhab/sitemaps/wohnung2.sitemap

this sitemap works without errors.

And: this sitemap worked fine via the GUI for several hours during creation, until I added the last two elements. These were:

Switch icon="light" label="Lichtsäule 1" item=Lichtsaule1_Schalter
Switch icon="light" label="Lichtsäule 2" item=Lichtsaule2_Schalter

But even if I remove them again, the sitemap does not work anymore.
When this happened to me once, I started completely from scratch. But now I don’t like anymore…

Maybe someone has an idea what happens here?

Thanks,
Christoph

There is a problem with Big Decimals.
Looke Here too: OH 3: Basic UI Charts not working - Setup, Configuration and Use / Items & Sitemaps - openHAB Community

I don’t know if there is an issue in github already opend.