Skip to content

[solarman] Adding some items to a sitemap require label with [%s] #21397

Description

@dilyanpalauzov

In openHAB 5.2.1 I create a Solarman binding, For the channel

      battery-battery-status:
        type: deye-hybrid-battery-battery-status
        config:
          uom: ""
          scale: 1
          rule: 5
          offset: 0
          registers: "[0x00BD]"
          readOnly: true

in MainUI I click “Add Link to Item…” → “Create new item”, accept all defaults → “Link”.

The newly created item shows under GET /settings/items/Solarman_Logger_Battery_Status value “Charge”.

When I obtain the item over GET /rest/items/Solarman_Logger_Battery_Status:

{"link":"https://192.168.0.10:8443/rest/items/Solarman_Logger_Battery_Status",
  "state":"Charge",
  "stateDescription":{"pattern":"%d","readOnly":true,"options":[]},
  "lastState":"NULL","lastStateUpdate":1786786749539,
  "lastStateChange":1786785463141,
  "metadata":{"semantics":{"value":"Point","editable":false}},
  "editable":true,
  "type":"String",
  "name":"Solarman_Logger_Battery_Status",
  "label":"Solarman Logger Battery Status","tags":["Point"],"groupNames":[]}

When I put the item in a sitemap,

Default item=Solarman_Logger_Battery_Status

openhab logs the text below.

I guess the problem is the "state":"Charge" with pattern:"%d" in the /rest output. The work around is to use in sitemaps label="Description [%s]. This work-around should not be necessary.

2026-08-15 12:38:17.821 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading DSL model 'gg.sitemap'
2026-08-15 12:38:18.072 [WARN ] [org.eclipse.jetty.server.HttpChannel] - /basicui/app              
java.lang.NullPointerException: Cannot invoke "Object.toString()" because "state" is null           
        at org.openhab.core.transform.util.ItemDisplayStateUtil.formatState(ItemDisplayStateUtil.java:146)
        at org.openhab.core.ui.internal.items.ItemUIRegistryImpl.getDisplayValue(ItemUIRegistryImpl.java:428)
        at org.openhab.core.ui.internal.items.ItemUIRegistryImpl.getLabel(ItemUIRegistryImpl.java:393)
        at org.openhab.ui.basic.internal.render.AbstractWidgetRenderer.preprocessSnippet(AbstractWidgetRenderer.
java:138)                                                                                                       
        at org.openhab.ui.basic.internal.render.AbstractWidgetRenderer.preprocessSnippet(AbstractWidgetRenderer.
java:117)                                                                                                       
        at org.openhab.ui.basic.internal.render.TextRenderer.renderWidget(TextRenderer.java:58)
        at org.openhab.ui.basic.internal.render.PageRenderer.renderWidget(PageRenderer.java:189)
        at org.openhab.ui.basic.internal.render.PageRenderer.processChildren(PageRenderer.java:156)           
        at org.openhab.ui.basic.internal.render.PageRenderer.processPage(PageRenderer.java:121)                 
        at org.openhab.ui.basic.internal.servlet.WebAppServlet.service(WebAppServlet.java:158)                  
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:584)                             
        at org.ops4j.pax.web.service.spi.servlet.OsgiInitializedServlet.service(OsgiInitializedServlet.java:102)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)                                       at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1656)
        at org.ops4j.pax.web.service.spi.servlet.OsgiFilterChain.doFilter(OsgiFilterChain.java:113)
        at org.ops4j.pax.web.service.jetty.internal.PaxWebServletHandler.doHandle(PaxWebServletHandler.java:334)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions