diff --git a/bundles/org.openhab.core.io.rest.sitemap/src/main/java/org/eclipse/smarthome/io/rest/sitemap/internal/PageChangeListener.java b/bundles/org.openhab.core.io.rest.sitemap/src/main/java/org/eclipse/smarthome/io/rest/sitemap/internal/PageChangeListener.java index fbe225a3b6e..d4f235f0541 100644 --- a/bundles/org.openhab.core.io.rest.sitemap/src/main/java/org/eclipse/smarthome/io/rest/sitemap/internal/PageChangeListener.java +++ b/bundles/org.openhab.core.io.rest.sitemap/src/main/java/org/eclipse/smarthome/io/rest/sitemap/internal/PageChangeListener.java @@ -216,7 +216,8 @@ private Set constructSitemapEvents(Item item, State state, List constructSitemapEvents(Item item, State state, List itemFilter = (i -> i.getType().equals(CoreItemFactory.LOCATION)); - event.item = EnrichedItemDTOMapper.map(item, drillDown, itemFilter, null, null); + event.item = EnrichedItemDTOMapper.map(itemToBeSent, drillDown, itemFilter, null, null); // event.state is an adjustment of the item state to the widget type. - event.state = itemUIRegistry.convertState(w, item, state).toFullString(); + final State stateToBeSent = itemBelongsToWidget ? state : itemToBeSent.getState(); + event.state = itemUIRegistry.convertState(w, itemToBeSent, stateToBeSent).toFullString(); // In case this state is identical to the item state, its value is set to null. if (event.state != null && event.state.equals(event.item.state)) { event.state = null; @@ -251,6 +255,18 @@ private Set constructSitemapEvents(Item item, State state, List