You both are the best!!!
It works - filtered by timed out heartbeat:
Unfiltered (full) list:
That’s the working code:
- component: oh-repeater
config:
for: i
sourceType: itemsInGroup
groupItem: =props.mainItem
fetchMetadata: semantics,widgetOrder,uiSemantics
filter: '( loop.i.state < dayjs().add(-1,"hour").format() ) ? true : vars.detailsOn '
slots:
default:
- component: oh-list-item
config:
icon: =props.icon
iconColor: '=items[loop.i.name].state === "ON" || items[loop.i.name].state > 0 ? "green" : "gray"'
footer: =loop.i.metadata.uiSemantics.config.preposition + loop.i.metadata.uiSemantics.config.location
title: =loop.i.metadata.uiSemantics.config.equipment
item: =loop.i.name
badge: =dayjs(loop.i.state).fromNow()
badgeColor: '=dayjs(loop.i.state).fromNow().includes("Sek") ? "green" : dayjs(loop.i.state).fromNow().includes("Minu") ? "green" : dayjs(loop.i.state).fromNow().includes("Stun") ? "orange" : "red"'
Many thanks mates!
EDIT: Any idea for some sleeker code for:
badgeColor: '=dayjs(loop.i.state).fromNow().includes("Sek") ? "green" : dayjs(loop.i.state).fromNow().includes("Minu") ? "green" : dayjs(loop.i.state).fromNow().includes("Stun") ? "orange" : "red"'`
EDIT2:
Slightly better (but not that much ;-):
badgeColor: '=dayjs(loop.i.state).isAfter(dayjs().add(-1,"hour")) ? "green" : dayjs(loop.i.state).isAfter(dayjs().add(-1,"day")) ? "orange" : "red"'