Part of widget invisible

(I’ve already mentioned this issue in the dedicated topic for the semanticHomeMenu widget, but since it looks like all the parameters are correct, this might be a broader issue?

The two widgets I think are relevant are the “main” and the “security” widgets:
Main:

uid: semanticHomeMenu
tags:
  - marketplace:168092
  - improvements Nico_R and hmerk
  - openHAB 5.1
props:
  parameters:
    - default: orange
      description: ColorScheme for Widgets
      label: Color
      name: color
      required: true
      limitToOptions: true
      options:
        - label: Orange
          value: orange
        - label: Red
          value: red
        - label: Cyan
          value: cyan
    - description: Set color for Bottom NavBar
      label: Bottom-Navbar-Color
      name: bnavColor
      required: false
      type: TEXT
timestamp: Jan 21, 2026, 9:53:08 PM
component: f7-block
config:
  style:
    --my-bottom-navbar-background: '=!props.bnavColor ? "RGB(96, 96, 96)" : props.bnavColor'
    --my-hex-colorScheme: '=props.color =="red" ? "#FF0000" : props.color =="cyan" ?
      "#03FFFF" :"#FF9900"'
    --my-rgb-colorScheme: '=props.color =="red" ? "RGB(255,0,0)" : props.color
      =="cyan" ? "RGB(3,255,255)" : "RGB(255,153,0)"'
    --my-text-colorScheme: =props.color
    background: =(themeOptions.dark=="light") ? ("white"):("black")
    height: 90vh
    margin: 0
    padding: 0
    width: 100%
  stylesheet: >
    .invisible {
      display: none;
      /*position: absolute;*/
      /*left: -999em;*/
      /*opacity: 0.1;*/
    }

    .container {
        height: 100%;
        display: grid; 
        grid-template-columns: 100%; 
        grid-template-rows: min-content 1fr auto; 
        gap: 10px 0px;
        margin: 0 !important;
        padding: calc(15px + var(--f7-safe-area-top)) 0px var(--f7-safe-area-bottom) 0px !important;
        grid-template-areas: 
          "header"
          "main"
          "footer";
        }
    .header {
        grid-area: header;

        margin: 0;
        overflow: hidden;
        }
    .main {
        grid-area: main;
        overflow-y: scroll;
        overflow-x: hidden;
        -ms-overflow-style: none;  /* IE and Edge */
        scrollbar-width: none;  /* Firefox */
        }
    .main::-webkit-scrollbar {
        display: none;
        }
    .footer {
        grid-area: footer; 
        overflow: hidden;
        background: var(--my-bottom-navbar-background);
        }
    .mainWidget {
        --f7-theme-color: #FBBF02;
        --f7-theme-color-rgb: 251, 191, 2;
        /*toggles*/
        --f7-toggle-active-color: #545454;
        --f7-toggle-inactive-color: #B9B9B9;
        /*Custom Vars*/
        /*--tobNavbar Buttons*/
        --mW-topNavbar-button-color-selected: #262626;
        --mW-topNavbar-button-color-unselected: #B9B9B9;
        --mW-topNavbar-button-underline-color: var(--f7-theme-color);
        /*--tobNavbar Swiper*/
        --mW-topNavbar-swiper-navigation-color: #898989;
        --mW-topNavbar-swiper-navigation-size: 20px;
        }
    .mainWidget .topNavbar .button {
        --f7-button-hover-bg-color: transparent;
        --f7-button-pressed-bg-color: rgba(var(--f7-theme-color-rgb), .07);
        --f7-button-text-color: var(--mW-topNavbar-button-color-unselected);
        --f7-button-text-transform: none;
        font-size: 16px;
        width: auto; 
        }
    .mainWidget .topNavbar .selected_menu_item {
        color: var(--mW-topNavbar-button-color);
        text-decoration-color: var(--mW-topNavbar-button-underline-color) !important;
        text-decoration: underline;
        text-underline-offset: 5px;
        }
    .mainWidget .topNavbar .unselected_menu_item {
        color: var(--mW-topNavbar-button-color-unselected);
        font-weight: 300;
        }
    .mainWidget .topNavbar .swiper-button-prev, .mainWidget .topNavbar
    .swiper-button-next {
        width: 100%;
        height: 40px;
        }
    .mainWidget .topNavbar .swiper-button-prev {
        padding-right: 20px;
        justify-content: right;
        }
    .mainWidget .topNavbar .swiper-button-next {
        padding-left: 20px;
        justify-content: left;
        }
slots:
  default:
    - component: f7-block
      config:
        class:
          - container
          - mainWidget
      slots:
        default:
          - component: f7-block
            config:
              class:
                - no-padding
                - header
                - topNavbar
            slots:
              default:
                - component: f7-row
                  config:
                    style:
                      height: auto
                      justify-content: center
                      margin-left: 2%
                      margin-right: 2%
                  slots:
                    default:
                      - component: oh-repeater
                        config:
                          cacheSource: true
                          for: baseMenu
                          fragment: true
                          in:
                            - name: =translation('Home')
                            - name: =translation('Floor')
                            - name: =translation('Room')
                          sourceType: array
                        slots:
                          default:
                            - component: oh-button
                              config:
                                action: variable
                                actionVariable: objVar
                                actionVariableValue:
                                  selectSection: ="SECTION" + loop.baseMenu_idx
                                class:
                                  - '=vars.objVar ? "" : "unselected_menu_item"'
                                  - '=vars.objVar.selectSection=="SECTION" +
                                    loop.baseMenu_idx ? "selected_menu_item" :
                                    "unselected_menu_item"'
                                large: true
                                style:
                                  font-size: 24px
                                  width: auto
                                text: =loop.baseMenu.name
                - component: f7-row
                  config:
                    class:
                      - align-items-stretch
                      - display-flex
                    style:
                      display: '=vars.objVar ? (vars.objVar.selectSection=="SECTION1") ? "" : "none
                        !important" : "none !important"'
                      height: auto
                      width: 100%
                  slots:
                    default:
                      - component: f7-col
                        config:
                          class:
                            - display-flex
                            - justify-content-right
                            - align-items-stretch
                          style:
                            width: 15%
                        slots:
                          default:
                            - component: f7-block
                              config:
                                class:
                                  - swiper-button-prev
                                id: floorsPrev
                                style:
                                  --swiper-navigation-color: var(--mW-topNavbar-swiper-navigation-color)
                                  --swiper-navigation-size: var(--mW-topNavbar-swiper-navigation-size)
                                  position: inherit
                      - component: f7-col
                        config:
                          class:
                            - display-flex
                            - align-items-center
                          style:
                            flex-grow: 1
                        slots:
                          default:
                            - component: f7-swiper
                              config:
                                params:
                                  breakpoints:
                                    "0":
                                      slidesPerView: 1
                                      spaceBetween: 0
                                    "240":
                                      slidesPerView: 1
                                      spaceBetween: 0
                                    "320":
                                      slidesPerGroup: 2
                                      slidesPerView: 2
                                      spaceBetween: 0
                                    "480":
                                      slidesPerGroup: 3
                                      slidesPerView: 3
                                      spaceBetween: 0
                                    "640":
                                      slidesPerGroup: 4
                                      slidesPerView: 4
                                      spaceBetween: 0
                                    "940":
                                      slidesPerGroup: 5
                                      slidesPerView: 5
                                      spaceBetween: 0
                                    "1400":
                                      slidesPerGroup: 6
                                      slidesPerView: 6
                                      spaceBetween: 0
                                    "1800":
                                      slidesPerGroup: 8
                                      slidesPerView: 8
                                      spaceBetween: 0
                                  centerInsufficientSlides: true
                                  grabCursor: true
                                  keyboard: true
                                  mousewheel: true
                                  navigation:
                                    nextEl: "#floorsNext"
                                    prevEl: "#floorsPrev"
                                  observeSlideChildren: true
                                  observer: true
                                  runCallbacksOnInit: true
                                  updateOnWindowResize: true
                                  watchOverflow: true
                                style:
                                  width: 100%
                              slots:
                                default:
                                  - component: oh-repeater
                                    config:
                                      cacheSource: true
                                      fetchMetadata: metadata,semantics,widgetOrder
                                      filter: (loop.floorArray.metadata) &&
                                        (loop.floorArray.metadata.semantics.value).includes("Floor")
                                      for: floorArray
                                      fragment: true
                                      itemTags: ","
                                      sourceType: itemsWithTags
                                    slots:
                                      default:
                                        - component: f7-swiper-slide
                                          config:
                                            expandable: true
                                            style:
                                              border-radius: 5px
                                          slots:
                                            default:
                                              - component: oh-button
                                                config:
                                                  action: variable
                                                  actionVariable: objVar
                                                  actionVariableValue:
                                                    floor: =loop.floorArray.name
                                                    selectSection: SECTION2
                                                  class:
                                                    - '=vars.objVar ? "" :
                                                      "unselected_menu_item"'
                                                    - '=(vars.objVar.floor ==
                                                      loop.floorArray.name) ?
                                                      "selected_menu_item" :
                                                      "unselected_menu_item"'
                                                  text: =loop.floorArray.label
                      - component: f7-col
                        config:
                          class:
                            - display-flex
                            - justify-content-center
                            - align-items-stretch
                          style:
                            width: 15%
                        slots:
                          default:
                            - component: f7-block
                              config:
                                class:
                                  - swiper-button-next
                                id: floorsNext
                                style:
                                  --swiper-navigation-color: var(--mW-topNavbar-swiper-navigation-color)
                                  --swiper-navigation-size: var(--mW-topNavbar-swiper-navigation-size)
                                  position: inherit
                - component: f7-row
                  config:
                    class:
                      - align-items-stretch
                    style:
                      display: '=!vars.objVar ? "none !important" :
                        (vars.objVar.selectSection=="SECTION2" &&
                        !vars.objVar.floor) ? "" : "none !important"'
                      height: auto
                      width: 100%
                  slots:
                    default:
                      - component: f7-col
                        config:
                          class:
                            - display-flex
                            - justify-content-center
                            - align-items-stretch
                          style:
                            width: 15%
                        slots:
                          default:
                            - component: f7-block
                              config:
                                class:
                                  - swiper-button-prev
                                id: allRoomsPrev
                                style:
                                  --swiper-navigation-color: var(--mW-topNavbar-swiper-navigation-color)
                                  --swiper-navigation-size: var(--mW-topNavbar-swiper-navigation-size)
                                  position: inherit
                      - component: f7-col
                        config:
                          class:
                            - display-flex
                            - align-items-center
                          style:
                            flex-grow: 1
                        slots:
                          default:
                            - component: f7-swiper
                              config:
                                params:
                                  breakpoints:
                                    "0":
                                      slidesPerView: 1
                                      spaceBetween: 0
                                    "240":
                                      slidesPerView: 1
                                      spaceBetween: 0
                                    "320":
                                      slidesPerGroup: 2
                                      slidesPerView: 2
                                      spaceBetween: 0
                                    "480":
                                      slidesPerGroup: 3
                                      slidesPerView: 3
                                      spaceBetween: 0
                                    "640":
                                      slidesPerGroup: 4
                                      slidesPerView: 4
                                      spaceBetween: 0
                                    "940":
                                      slidesPerGroup: 5
                                      slidesPerView: 5
                                      spaceBetween: 0
                                    "1400":
                                      slidesPerGroup: 6
                                      slidesPerView: 6
                                      spaceBetween: 0
                                    "1800":
                                      slidesPerGroup: 8
                                      slidesPerView: 8
                                      spaceBetween: 0
                                  centerInsufficientSlides: true
                                  grabCursor: true
                                  keyboard: true
                                  mousewheel: true
                                  navigation:
                                    nextEl: "#allRoomsNext"
                                    prevEl: "#allRoomsPrev"
                                  observeParents: true
                                  observeSlideChildren: true
                                  observer: true
                                  runCallbacksOnInit: true
                                  updateOnWindowResize: true
                                  watchOverflow: true
                                style:
                                  width: 100%
                              slots:
                                default:
                                  - component: oh-repeater
                                    config:
                                      cacheSource: true
                                      fetchMetadata: metadata,semantics,widgetOrder
                                      filter: (loop.roomArray.metadata) &&
                                        ((loop.roomArray.metadata.semantics.value).includes("Room")  ||
                                        (loop.roomArray.metadata.semantics.value).includes("Corridor"))
                                      for: roomArray
                                      fragment: true
                                      itemTags: ","
                                      sourceType: itemsWithTags
                                    slots:
                                      default:
                                        - component: f7-swiper-slide
                                          config:
                                            style:
                                              border-radius: 5px
                                          slots:
                                            default:
                                              - component: oh-button
                                                config:
                                                  action: variable
                                                  actionVariable: objVar
                                                  actionVariableValue:
                                                    floor: =vars.objVar.floor
                                                    room: =loop.roomArray.name
                                                    selectSection: =vars.objVar.selectSection
                                                  class:
                                                    - '=vars.objVar ? "" :
                                                      "unselected_menu_item"'
                                                    - '=(vars.objVar.room ==
                                                      loop.roomArray.name) ?
                                                      "selected_menu_item" :
                                                      "unselected_menu_item"'
                                                  text: =loop.roomArray.label
                      - component: f7-col
                        config:
                          class:
                            - display-flex
                            - justify-content-center
                            - align-items-stretch
                          style:
                            width: 15%
                        slots:
                          default:
                            - component: f7-block
                              config:
                                class:
                                  - swiper-button-next
                                id: allRoomsNext
                                style:
                                  --swiper-navigation-color: var(--mW-topNavbar-swiper-navigation-color)
                                  --swiper-navigation-size: var(--mW-topNavbar-swiper-navigation-size)
                                  position: inherit
                - component: f7-row
                  config:
                    class:
                      - align-items-stretch
                    style:
                      display: '=vars.objVar ? (vars.objVar.selectSection=="SECTION2" &&
                        vars.objVar.floor ) ? "" : "none !important" : "none
                        !important"'
                      height: auto
                      width: 100%
                  slots:
                    default:
                      - component: f7-col
                        config:
                          class:
                            - display-flex
                            - justify-content-center
                            - align-items-stretch
                          style:
                            width: 15%
                        slots:
                          default:
                            - component: f7-block
                              config:
                                class:
                                  - swiper-button-prev
                                id: roomsOfFloorPrev
                                style:
                                  --swiper-navigation-color: var(--mW-topNavbar-swiper-navigation-color)
                                  --swiper-navigation-size: var(--mW-topNavbar-swiper-navigation-size)
                                  position: inherit
                      - component: f7-col
                        config:
                          class:
                            - display-flex
                            - align-items-center
                          style:
                            flex-grow: 1
                        slots:
                          default:
                            - component: f7-swiper
                              config:
                                params:
                                  breakpoints:
                                    "0":
                                      slidesPerView: 1
                                      spaceBetween: 0
                                    "240":
                                      slidesPerView: 1
                                      spaceBetween: 0
                                    "320":
                                      slidesPerGroup: 2
                                      slidesPerView: 2
                                      spaceBetween: 0
                                    "480":
                                      slidesPerGroup: 3
                                      slidesPerView: 3
                                      spaceBetween: 0
                                    "640":
                                      slidesPerGroup: 4
                                      slidesPerView: 4
                                      spaceBetween: 0
                                    "940":
                                      slidesPerGroup: 5
                                      slidesPerView: 5
                                      spaceBetween: 0
                                    "1400":
                                      slidesPerGroup: 6
                                      slidesPerView: 6
                                      spaceBetween: 0
                                    "1800":
                                      slidesPerGroup: 8
                                      slidesPerView: 8
                                      spaceBetween: 0
                                  centerInsufficientSlides: true
                                  grabCursor: true
                                  keyboard: true
                                  mousewheel: true
                                  navigation:
                                    nextEl: "#roomsOfFloorNext"
                                    prevEl: "#roomsOfFloorPrev"
                                  observeSlideChildren: true
                                  observer: true
                                  runCallbacksOnInit: true
                                  updateOnWindowResize: true
                                  watchOverflow: true
                                style:
                                  width: 100%
                              slots:
                                default:
                                  - component: oh-repeater
                                    config:
                                      cacheSource: true
                                      fetchMetadata: metadata,semantics,widgetOrder
                                      filter: (loop.roomArray.metadata) &&
                                        ((loop.roomArray.metadata.semantics.value).includes("Room")
                                        ||
                                        (loop.roomArray.metadata.semantics.value).includes("Corridor"))
                                        &&
                                        ((loop.roomArray.metadata.semantics.config.isPartOf).includes(vars.objVar.floor))
                                      for: roomArray
                                      fragment: true
                                      itemTags: ","
                                      sourceType: itemsWithTags
                                    slots:
                                      default:
                                        - component: f7-swiper-slide
                                          config:
                                            style:
                                              border-radius: 5px
                                          slots:
                                            default:
                                              - component: oh-button
                                                config:
                                                  action: variable
                                                  actionVariable: objVar
                                                  actionVariableValue:
                                                    floor: =vars.objVar.floor
                                                    room: =loop.roomArray.name
                                                    selectSection: =vars.objVar.selectSection
                                                  class:
                                                    - '=vars.objVar ? "" :
                                                      "unselected_menu_item"'
                                                    - '=(vars.objVar.room ==
                                                      loop.roomArray.name) ?
                                                      "selected_menu_item" :
                                                      "unselected_menu_item"'
                                                  text: =loop.roomArray.label
                      - component: f7-col
                        config:
                          class:
                            - display-flex
                            - justify-content-center
                            - align-items-stretch
                          style:
                            width: 15%
                        slots:
                          default:
                            - component: f7-block
                              config:
                                class:
                                  - swiper-button-next
                                id: roomsOfFloorNext
                                style:
                                  --swiper-navigation-color: var(--mW-topNavbar-swiper-navigation-color)
                                  --swiper-navigation-size: var(--mW-topNavbar-swiper-navigation-size)
                                  position: inherit
                - component: f7-row
                  config:
                    style:
                      display: '=!vars.objVar ? "none !important": !vars.objVar.floor ? "none
                        !important" : ""'
                      height: auto
                      justify-content: center
                      width: 100%
                  slots:
                    default:
                      - component: oh-repeater
                        config:
                          cacheSource: true
                          fetchMetadata: semantics,metadata,widgetOrder
                          filter: ((loop.floorItem.metadata) &&
                            (loop.floorItem.metadata.semantics.value).includes("Floor"))
                            && (loop.floorItem.name == vars.objVar.floor)
                          for: floorItem
                          itemTags: ","
                          sourceType: itemsWithTags
                        slots:
                          default:
                            - component: f7-chip
                              config:
                                style:
                                  background: "#F8BB00"
                                text: =loop.floorItem.label
          - component: f7-block
            config:
              class:
                - main
                - no-margin
                - no-padding
            slots:
              default:
                - component: widget:semanticHomeMenu_Weather
                  config:
                    visible: '=(!vars.objVar || ((vars.objVar.selectSection=="SECTION0") &&
                      !vars.objVar.selectThing)) ? true : false'
                - component: oh-repeater
                  config:
                    cacheSource: true
                    fetchMetadata: semantics,metadata
                    for: securityGroup
                    itemTags: AlarmSystem
                    sourceType: itemsWithTags
                  slots:
                    default:
                      - component: widget:semanticHomeMenu_Security
                        config:
                          securityGroup: =loop.securityGroup.name
                          visible: '=vars.objVar ? ((vars.objVar.selectSection +
                            vars.objVar.selectThing)=="SECTION0Security") ? true
                            : false : false'
                - component: oh-repeater
                  config:
                    cacheSource: true
                    for: scene
                    ruleTags: Scene
                    sourceType: rulesWithTags
                  slots:
                    default:
                      - component: widget:semanticHomeMenu_Scenes
                        config:
                          colorScheme: var(--my-text-colorScheme)
                          sceneName: =loop.scene.name
                          sceneUID: =loop.scene.UID
                          visible: '=vars.objVar ? ((vars.objVar.selectSection +
                            vars.objVar.selectThing)=="SECTION0Scenes") ? true :
                            false : false'
                - component: widget:semanticHomeMenu_Appliances
                  config:
                    visible: '=vars.objVar ? ((vars.objVar.selectSection +
                      vars.objVar.selectThing)=="SECTION0Appliances") ? true :
                      false : false'
                - component: widget:semanticHomeMenu_ElectricityMeter
                  config:
                    groupItem: ElectricityMeter
                    groupItemLabel: Smart Meter 1EMH0013125552
                    meterType: Energy
                    visible: '=vars.objVar ? ((vars.objVar.selectSection +
                      vars.objVar.selectThing)=="SECTION0Energy") ? true : false
                      : false'
                - component: widget:semanticHomeMenu_EMS
                  config:
                    groupItem: ElectricityMeter
                    groupItemLabel: Electricity Management System
                    visible: '=vars.objVar ? ((vars.objVar.selectSection +
                      vars.objVar.selectThing)=="SECTION0Energy") ? true : false
                      : false'
                - component: widget:semanticHomeMenu_System
                  config:
                    visible: '=vars.objVar ? ((vars.objVar.selectSection +
                      vars.objVar.selectThing)=="SECTION0System") ? true : false
                      : false'
                - component: f7-row
                  config:
                    class:
                      - justify-content-center
                      - '=vars.objVar ? (vars.objVar.selectSection=="SECTION0")
                        ? "" : "" : "invisible"'
                  slots:
                    default:
                      - component: oh-repeater
                        config:
                          cacheSource: true
                          fetchMetadata: semantics,widgetOrder
                          filter: (loop.floors.metadata) &&
                            (loop.floors.metadata.semantics.value).includes("Floor")
                          for: floors
                          fragment: true
                          itemTags: ","
                          sourceType: itemsWithTags
                        slots:
                          default:
                            - component: oh-repeater
                              config:
                                cacheSource: true
                                fetchMetadata: semantics
                                filter: (loop.rooms.metadata) &&
                                  ((loop.rooms.metadata.semantics.value).includes("Room")  ||
                                  (loop.rooms.metadata.semantics.value).includes("Corridor"))
                                for: rooms
                                fragment: true
                                groupItem: =loop.floors.name
                                sourceType: itemsInGroup
                              slots:
                                default:
                                  - component: oh-repeater
                                    config:
                                      cacheSource: true
                                      for: roomsSrc
                                      fragment: true
                                      in: =loop.rooms_source
                                      sourceType: array
                                      visible: =loop.rooms_idx == "0"
                                    slots:
                                      default:
                                        - component: oh-repeater
                                          config:
                                            cacheSource: true
                                            fetchMetadata: semantics,metadata,uiSemantics,widgetOrder
                                            filter: (loop.equipmentItem.metadata.semantics.config) &&
                                              (loop.equipmentItem.metadata.semantics.config.hasLocation)
                                              &&
                                              (loop.equipmentItem.metadata.semantics.config.hasLocation
                                              == loop.roomsSrc.name)
                                            for: equipmentItem
                                            fragment: true
                                            itemTags: Lightbulb
                                            sourceType: itemsWithTags
                                          slots:
                                            default:
                                              - component: f7-col
                                                config:
                                                  class:
                                                    - '=((vars.objVar.room ==
                                                      loop.equipmentItem.metadata.semantics.config.hasLocation
                                                      ||
                                                      (vars.objVar.selectSection
                                                      == "SECTION2" &&
                                                      !vars.objVar.floor &&
                                                      !vars.objVar.room) ||
                                                      (vars.objVar.selectSection
                                                      == "SECTION2" &&
                                                      vars.objVar.floor ==
                                                      loop.rooms.metadata.semantics.config.isPartOf
                                                      && !vars.objVar.room) ||
                                                      (vars.objVar.selectSection
                                                      == "SECTION1")) &&
                                                      (vars.objVar.selectThing
                                                      == "Lights" ||
                                                      !vars.objVar.selectThing
                                                      )) ? "visible" :
                                                      "invisible"'
                                                  large: 50
                                                  medium: 50
                                                  small: 90
                                                  style:
                                                    overflow: hidden
                                                  width: 100
                                                  xlarge: 33
                                                  xsmall: 100
                                                slots:
                                                  default:
                                                    - component: widget:semanticHomeMenu_Lights
                                                      config:
                                                        colorScheme: var(--my-text-colorScheme)
                                                        equipmentType: Lightbulb
                                                        groupItem: =loop.equipmentItem.name
                                                        groupItemLabel: "=loop.equipmentItem.metadata.uiSemantics ?
                                                          loop.equipmentItem.me\
                                                          tadata.uiSemantics.co\
                                                          nfig.equipment :
                                                          loop.equipmentItem.la\
                                                          bel"
                                                        groupItemLocation: "=loop.equipmentItem.metadata.uiSemantics ?
                                                          loop.equipmentItem.me\
                                                          tadata.uiSemantics.co\
                                                          nfig.location :
                                                          loop.roomsSrc.label"
                                        - component: oh-repeater
                                          config:
                                            cacheSource: true
                                            fetchMetadata: semantics,metadata,uiSemantics,widgetOrder
                                            filter: (loop.equipmentItem.metadata.semantics.config) &&
                                              (loop.equipmentItem.metadata.semantics.config.hasLocation)
                                              &&
                                              (loop.equipmentItem.metadata.semantics.config.hasLocation
                                              == loop.roomsSrc.name)
                                            for: equipmentItem
                                            fragment: true
                                            itemTags: DimmableLight
                                            sourceType: itemsWithTags
                                          slots:
                                            default:
                                              - component: f7-col
                                                config:
                                                  class:
                                                    - '=((vars.objVar.room ==
                                                      loop.equipmentItem.metadata.semantics.config.hasLocation
                                                      ||
                                                      (vars.objVar.selectSection
                                                      == "SECTION2" &&
                                                      !vars.objVar.floor &&
                                                      !vars.objVar.room) ||
                                                      (vars.objVar.selectSection
                                                      == "SECTION2" &&
                                                      vars.objVar.floor ==
                                                      loop.rooms.metadata.semantics.config.isPartOf
                                                      && !vars.objVar.room) ||
                                                      (vars.objVar.selectSection
                                                      == "SECTION1")) &&
                                                      (vars.objVar.selectThing
                                                      == "Lights" ||
                                                      !vars.objVar.selectThing
                                                      )) ? "visible" :
                                                      "invisible"'
                                                  large: 50
                                                  medium: 50
                                                  small: 90
                                                  style:
                                                    overflow: hidden
                                                  width: 100
                                                  xlarge: 33
                                                  xsmall: 100
                                                slots:
                                                  default:
                                                    - component: widget:semanticHomeMenu_Lights
                                                      config:
                                                        colorScheme: var(--my-text-colorScheme)
                                                        equipmentType: DimmableLight
                                                        groupItem: =loop.equipmentItem.name
                                                        groupItemLabel: "=loop.equipmentItem.metadata.uiSemantics ?
                                                          loop.equipmentItem.me\
                                                          tadata.uiSemantics.co\
                                                          nfig.equipment :
                                                          loop.equipmentItem.la\
                                                          bel"
                                                        groupItemLocation: "=loop.equipmentItem.metadata.uiSemantics ?
                                                          loop.equipmentItem.me\
                                                          tadata.uiSemantics.co\
                                                          nfig.location :
                                                          loop.roomsSrc.label"
                                        - component: oh-repeater
                                          config:
                                            cacheSource: true
                                            fetchMetadata: semantics,metadata,uiSemantics,widgetOrder
                                            filter: (loop.equipmentItem.metadata.semantics.config) &&
                                              (loop.equipmentItem.metadata.semantics.config.hasLocation)
                                              &&
                                              (loop.equipmentItem.metadata.semantics.config.hasLocation
                                              == loop.roomsSrc.name)
                                            for: equipmentItem
                                            fragment: true
                                            itemTags: ColorLight
                                            sourceType: itemsWithTags
                                          slots:
                                            default:
                                              - component: f7-col
                                                config:
                                                  class:
                                                    - '=((vars.objVar.room ==
                                                      loop.equipmentItem.metadata.semantics.config.hasLocation
                                                      ||
                                                      (vars.objVar.selectSection
                                                      == "SECTION2" &&
                                                      !vars.objVar.floor &&
                                                      !vars.objVar.room) ||
                                                      (vars.objVar.selectSection
                                                      == "SECTION2" &&
                                                      vars.objVar.floor ==
                                                      loop.rooms.metadata.semantics.config.isPartOf
                                                      && !vars.objVar.room) ||
                                                      (vars.objVar.selectSection
                                                      == "SECTION1")) &&
                                                      (vars.objVar.selectThing
                                                      == "Lights" ||
                                                      !vars.objVar.selectThing
                                                      )) ? "visible" :
                                                      "invisible"'
                                                  large: 50
                                                  medium: 50
                                                  small: 90
                                                  style:
                                                    overflow: hidden
                                                  width: 100
                                                  xlarge: 33
                                                  xsmall: 100
                                                slots:
                                                  default:
                                                    - component: widget:semanticHomeMenu_Lights
                                                      config:
                                                        colorScheme: var(--my-text-colorScheme)
                                                        equipmentType: ColorLight
                                                        groupItem: =loop.equipmentItem.name
                                                        groupItemLabel: "=loop.equipmentItem.metadata.uiSemantics ?
                                                          loop.equipmentItem.me\
                                                          tadata.uiSemantics.co\
                                                          nfig.equipment :
                                                          loop.equipmentItem.la\
                                                          bel"
                                                        groupItemLocation: "=loop.equipmentItem.metadata.uiSemantics ?
                                                          loop.equipmentItem.me\
                                                          tadata.uiSemantics.co\
                                                          nfig.location :
                                                          loop.roomsSrc.label"
                                        - component: oh-repeater
                                          config:
                                            cacheSource: true
                                            fetchMetadata: semantics,metadata,uiSemantics,widgetOrder
                                            filter: (loop.equipmentItem.metadata.semantics.config) &&
                                              (loop.equipmentItem.metadata.semantics.config.hasLocation)
                                              &&
                                              (loop.equipmentItem.metadata.semantics.config.hasLocation
                                              == loop.roomsSrc.name)
                                            for: equipmentItem
                                            fragment: true
                                            itemTags: Lightstripe
                                            sourceType: itemsWithTags
                                          slots:
                                            default:
                                              - component: f7-col
                                                config:
                                                  class:
                                                    - '=((vars.objVar.room ==
                                                      loop.equipmentItem.metadata.semantics.config.hasLocation
                                                      ||
                                                      (vars.objVar.selectSection
                                                      == "SECTION2" &&
                                                      !vars.objVar.floor &&
                                                      !vars.objVar.room) ||
                                                      (vars.objVar.selectSection
                                                      == "SECTION2" &&
                                                      vars.objVar.floor ==
                                                      loop.rooms.metadata.semantics.config.isPartOf
                                                      && !vars.objVar.room) ||
                                                      (vars.objVar.selectSection
                                                      == "SECTION1")) &&
                                                      (vars.objVar.selectThing
                                                      == "Lights" ||
                                                      !vars.objVar.selectThing
                                                      )) ? "visible" :
                                                      "invisible"'
                                                  large: 50
                                                  medium: 50
                                                  small: 90
                                                  style:
                                                    overflow: hidden
                                                  width: 100
                                                  xlarge: 33
                                                  xsmall: 100
                                                slots:
                                                  default:
                                                    - component: widget:semanticHomeMenu_Lights
                                                      config:
                                                        colorScheme: var(--my-text-colorScheme)
                                                        equipmentType: ColorLight
                                                        groupItem: =loop.equipmentItem.name
                                                        groupItemLabel: "=loop.equipmentItem.metadata.uiSemantics ?
                                                          loop.equipmentItem.me\
                                                          tadata.uiSemantics.co\
                                                          nfig.equipment :
                                                          loop.equipmentItem.la\
                                                          bel"
                                                        groupItemLocation: "=loop.equipmentItem.metadata.uiSemantics ?
                                                          loop.equipmentItem.me\
                                                          tadata.uiSemantics.co\
                                                          nfig.location :
                                                          loop.roomsSrc.label"
                                        - component: oh-repeater
                                          config:
                                            cacheSource: true
                                            fetchMetadata: semantics,metadata,uiSemantics,widgetOrder
                                            filter: (loop.equipmentItem.metadata.semantics.config) &&
                                              (loop.equipmentItem.metadata.semantics.config.hasLocation)
                                              &&
                                              (loop.equipmentItem.metadata.semantics.config.hasLocation
                                              == loop.roomsSrc.name)
                                            for: equipmentItem
                                            fragment: true
                                            itemTags: Blinds
                                            sourceType: itemsWithTags
                                          slots:
                                            default:
                                              - component: f7-col
                                                config:
                                                  class:
                                                    - '=((vars.objVar.room ==
                                                      loop.equipmentItem.metadata.semantics.config.hasLocation
                                                      ||
                                                      (vars.objVar.selectSection
                                                      == "SECTION2" &&
                                                      !vars.objVar.floor &&
                                                      !vars.objVar.room) ||
                                                      (vars.objVar.selectSection
                                                      == "SECTION2" &&
                                                      vars.objVar.floor ==
                                                      loop.rooms.metadata.semantics.config.isPartOf
                                                      && !vars.objVar.room) ||
                                                      (vars.objVar.selectSection
                                                      == "SECTION1")) &&
                                                      (vars.objVar.selectThing
                                                      == "Rollers")) ? "visible"
                                                      : "invisible"'
                                                  large: 50
                                                  medium: 50
                                                  small: 90
                                                  style:
                                                    overflow: hidden
                                                  width: 100
                                                  xlarge: 33
                                                  xsmall: 100
                                                slots:
                                                  default:
                                                    - component: widget:semanticHomeMenu_Rollershutter
                                                      config:
                                                        colorScheme: var(--my-text-colorScheme)
                                                        groupItem: =loop.equipmentItem.name
                                                        groupItemLabel: "=loop.equipmentItem.metadata.uiSemantics ?
                                                          loop.equipmentItem.me\
                                                          tadata.uiSemantics.co\
                                                          nfig.equipment :
                                                          loop.equipmentItem.la\
                                                          bel"
                                                        groupItemLocation: "=loop.equipmentItem.metadata.uiSemantics ?
                                                          loop.equipmentItem.me\
                                                          tadata.uiSemantics.co\
                                                          nfig.location :
                                                          loop.roomsSrc.label"
                                        - component: oh-repeater
                                          config:
                                            cacheSource: true
                                            fetchMetadata: semantics,metadata,uiSemantics,widgetOrder
                                            filter: (loop.equipmentItem.metadata.semantics.config) &&
                                              (loop.equipmentItem.metadata.semantics.config.hasLocation)
                                              &&
                                              (loop.equipmentItem.metadata.semantics.config.hasLocation
                                              == loop.roomsSrc.name)
                                            for: equipmentItem
                                            fragment: true
                                            itemTags: RadiatorControl
                                            sourceType: itemsWithTags
                                          slots:
                                            default:
                                              - component: f7-col
                                                config:
                                                  class:
                                                    - '=((vars.objVar.room ==
                                                      loop.equipmentItem.metadata.semantics.config.hasLocation
                                                      ||
                                                      (vars.objVar.selectSection
                                                      == "SECTION2" &&
                                                      !vars.objVar.floor &&
                                                      !vars.objVar.room) ||
                                                      (vars.objVar.selectSection
                                                      == "SECTION2" &&
                                                      vars.objVar.floor ==
                                                      loop.rooms.metadata.semantics.config.isPartOf
                                                      && !vars.objVar.room) ||
                                                      (vars.objVar.selectSection
                                                      == "SECTION1")) &&
                                                      (vars.objVar.selectThing
                                                      == "Climate")) ? "visible"
                                                      : "invisible"'
                                                  large: 50
                                                  medium: 50
                                                  small: 90
                                                  style:
                                                    overflow: hidden
                                                  width: 100
                                                  xlarge: 33
                                                  xsmall: 100
                                                slots:
                                                  default:
                                                    - component: widget:semanticHomeMenu_RadiatorControl
                                                      config:
                                                        colorScheme: var(--my-text-colorScheme)
                                                        groupItem: =loop.equipmentItem.name
                                                        groupItemLabel: "=loop.equipmentItem.metadata.uiSemantics ?
                                                          loop.equipmentItem.me\
                                                          tadata.uiSemantics.co\
                                                          nfig.equipment :
                                                          loop.equipmentItem.la\
                                                          bel"
                                                        groupItemLocation: "=loop.equipmentItem.metadata.uiSemantics ?
                                                          loop.equipmentItem.me\
                                                          tadata.uiSemantics.co\
                                                          nfig.location :
                                                          loop.roomsSrc.label"
                                                        hexColorScheme: var(--my-hex-colorScheme)
                                        - component: oh-repeater
                                          config:
                                            cacheSource: true
                                            fetchMetadata: semantics,uiSemantics,widgetOrder
                                            filter: (loop.equipmentItem.metadata.semantics.config) &&
                                              (loop.equipmentItem.metadata.semantics.config.hasLocation)
                                              &&
                                              (loop.equipmentItem.metadata.semantics.config.hasLocation
                                              == loop.roomsSrc.name)
                                            for: equipmentItem
                                            fragment: true
                                            itemTags: HVAC
                                            sourceType: itemsWithTags
                                          slots:
                                            default:
                                              - component: f7-col
                                                config:
                                                  class:
                                                    - '=((vars.objVar.room ==
                                                      loop.equipmentItem.metadata.semantics.config.hasLocation
                                                      ||
                                                      (vars.objVar.selectSection
                                                      == "SECTION2" &&
                                                      !vars.objVar.floor &&
                                                      !vars.objVar.room) ||
                                                      (vars.objVar.selectSection
                                                      == "SECTION2" &&
                                                      vars.objVar.floor ==
                                                      loop.rooms.metadata.semantics.config.isPartOf
                                                      && !vars.objVar.room) ||
                                                      (vars.objVar.selectSection
                                                      == "SECTION1")) &&
                                                      (vars.objVar.selectThing
                                                      == "Climate")) ? "visible"
                                                      : "invisible"'
                                                  large: 50
                                                  medium: 50
                                                  small: 90
                                                  style:
                                                    overflow: hidden
                                                  width: 100
                                                  xlarge: 33
                                                  xsmall: 100
                                                slots:
                                                  default:
                                                    - component: widget:semanticHomeMenu_HVAC
                                                      config:
                                                        groupItem: =loop.equipmentItem.name
                                                        groupItemLabel: "=loop.equipmentItem.metadata.uiSemantics ?
                                                          loop.equipmentItem.me\
                                                          tadata.uiSemantics.co\
                                                          nfig.equipment :
                                                          loop.equipmentItem.la\
                                                          bel"
                                                        groupItemLocation: "=loop.equipmentItem.metadata.uiSemantics ?
                                                          loop.equipmentItem.me\
                                                          tadata.uiSemantics.co\
                                                          nfig.location :
                                                          loop.roomsSrc.label"
          - component: f7-block
            config:
              class:
                - no-margin
                - no-padding
                - footer
              style:
                display: '=vars.objVar ? (vars.objVar.selectSection=="SECTION0") ? "" : "none
                  !important" : "none !important"'
                width: 100%
            slots:
              default:
                - component: f7-row
                  config:
                    class:
                      - display-flex
                    style:
                      flex-direction: row
                      height: 100%
                      justify-content: space-around
                  slots:
                    default:
                      - component: f7-col
                        config:
                          style:
                            height: 70px
                            min-width: 50px
                        slots:
                          default:
                            - component: oh-link
                              config:
                                action: variable
                                actionVariable: objVar
                                actionVariableValue:
                                  floor: =vars.objVar.floor
                                  room: =vars.objVar.room
                                  selectSection: =vars.objVar.selectSection
                                  selectThing: '=vars.objVar.selectThing == "Security" ? undefined : "Security"'
                                class:
                                  - padding-half
                                style:
                                  color: '=vars.objVar.selectThing == "Security" ? "var(--f7-toggle-active-color)"
                                    : "var(--f7-toggle-inactive-color)"'
                                  display: flex
                                  flex-direction: column
                                  height: 100%
                              slots:
                                default:
                                  - component: oh-icon
                                    config:
                                      height: 100%
                                      icon: iconify:carbon:security
                                  - component: f7-badge
                                    config:
                                      bgColor: red
                                      style:
                                        --f7-badge-size: 16px
                                        font-size: var(--f7-badge-in-icon-font-size)
                                        margin-left: 48px
                                        margin-top: -38px
                                        position: absolute
                                      visible: =(Number(items.gDoorsOpen.state) +Number(items.gWindowsOpen.state) +
                                        Number(items.gSmokeAlarm.state) +
                                        Number(items.gMotionDetected.state)) > 0
                                    slots:
                                      default:
                                        - component: Label
                                          config:
                                            text: =(Number(items.gDoorsOpen.state) + Number(items.gWindowsOpen.state) +
                                              Number(items.gSmokeAlarm.state) +
                                              Number(items.gMotionDetected.state))
                                  - component: Label
                                    config:
                                      text: =translation('AlarmSystem')
                      - component: f7-col
                        config:
                          style:
                            height: 70px
                            min-width: 50px
                        slots:
                          default:
                            - component: oh-link
                              config:
                                action: variable
                                actionVariable: objVar
                                actionVariableValue:
                                  floor: =vars.objVar.floor
                                  room: =vars.objVar.room
                                  selectSection: =vars.objVar.selectSection
                                  selectThing: '=vars.objVar.selectThing == "Scenes" ? undefined : "Scenes"'
                                class:
                                  - padding-half
                                style:
                                  color: '=vars.objVar.selectThing == "Scenes" ? "var(--f7-toggle-active-color)" :
                                    "var(--f7-toggle-inactive-color)"'
                                  display: flex
                                  flex-direction: column
                                  height: 100%
                              slots:
                                default:
                                  - component: oh-icon
                                    config:
                                      height: 100%
                                      icon: iconify:heroicons:rectangle-stack
                                  - component: Label
                                    config:
                                      text: =translation('Scenes')
                      - component: f7-col
                        config:
                          style:
                            height: 70px
                            min-width: 50px
                        slots:
                          default:
                            - component: oh-link
                              config:
                                action: variable
                                actionVariable: objVar
                                actionVariableValue:
                                  floor: =vars.objVar.floor
                                  room: =vars.objVar.room
                                  selectSection: =vars.objVar.selectSection
                                  selectThing: '=vars.objVar.selectThing == "Appliances" ? undefined :
                                    "Appliances"'
                                class:
                                  - padding-half
                                style:
                                  color: '=vars.objVar.selectThing == "Appliances"
                                    ?  "var(--f7-toggle-active-color)" :
                                    "var(--f7-toggle-inactive-color)"'
                                  display: flex
                                  flex-direction: column
                                  height: 100%
                              slots:
                                default:
                                  - component: oh-icon
                                    config:
                                      height: 80%
                                      icon: iconify:bi:plugin
                                  - component: Label
                                    config:
                                      text: =translation('home.equipment.title')
                      - component: f7-col
                        config:
                          style:
                            height: 70px
                            min-width: 50px
                        slots:
                          default:
                            - component: oh-link
                              config:
                                action: variable
                                actionVariable: objVar
                                actionVariableValue:
                                  floor: =vars.objVar.floor
                                  room: =vars.objVar.room
                                  selectSection: =vars.objVar.selectSection
                                  selectThing: '=vars.objVar.selectThing == "Energy" ? undefined : "Energy"'
                                class:
                                  - padding-half
                                style:
                                  color: '=vars.objVar.selectThing == "Energy" ?  "var(--f7-toggle-active-color)"
                                    : "var(--f7-toggle-inactive-color)"'
                                  display: flex
                                  flex-direction: column
                                  height: 100%
                              slots:
                                default:
                                  - component: oh-icon
                                    config:
                                      height: 80%
                                      icon: iconify:simple-line-icons:energy
                                  - component: f7-badge
                                    config:
                                      bgColor: red
                                      style:
                                        --f7-badge-size: 16px
                                        font-size: var(--f7-badge-in-icon-font-size)
                                        margin-left: 48px
                                        margin-top: -38px
                                        position: absolute
                                      visible: =(Number(items.gBatteryLowTotal.state)) > 0
                                    slots:
                                      default:
                                        - component: Label
                                          config:
                                            text: =(Number(items.gBatteryLowTotal.state))
                                  - component: Label
                                    config:
                                      text: =translation('Energy')
                      - component: f7-col
                        config:
                          style:
                            height: 70px
                            min-width: 50px
                        slots:
                          default:
                            - component: oh-link
                              config:
                                action: variable
                                actionVariable: objVar
                                actionVariableValue:
                                  floor: =vars.objVar.floor
                                  room: =vars.objVar.room
                                  selectSection: =vars.objVar.selectSection
                                  selectThing: '=vars.objVar.selectThing == "System" ? undefined : "System"'
                                class:
                                  - padding-half
                                style:
                                  color: '=vars.objVar.selectThing == "System" ?  "var(--f7-toggle-active-color)"
                                    : "var(--f7-toggle-inactive-color)"'
                                  display: flex
                                  flex-direction: column
                                  height: 100%
                              slots:
                                default:
                                  - component: oh-icon
                                    config:
                                      height: 80%
                                      icon: iconify:simple-line-icons:info
                                  - component: Label
                                    config:
                                      text: =translation('System')
          - component: f7-block
            config:
              class:
                - no-margin
                - no-padding
                - footer
              style:
                display: '=vars.objVar ? (vars.objVar.selectSection=="SECTION0") ? "none
                  !important" : "" : "none !important"'
                width: 100%
            slots:
              default:
                - component: f7-row
                  config:
                    class:
                      - display-flex
                    style:
                      flex-direction: row
                      height: 100%
                      justify-content: space-around
                  slots:
                    default:
                      - component: f7-col
                        config:
                          style:
                            height: 70px
                            min-width: 50px
                        slots:
                          default:
                            - component: oh-link
                              config:
                                action: variable
                                actionVariable: objVar
                                actionVariableValue:
                                  floor: =vars.objVar.floor
                                  room: =vars.objVar.room
                                  selectSection: =vars.objVar.selectSection
                                  selectThing: '=vars.objVar.selectThing == "Lights" ? undefined : "Lights"'
                                class:
                                  - padding-half
                                style:
                                  color: '=vars.objVar.selectThing == "Lights" ? "var(--f7-toggle-active-color)" :
                                    "var(--f7-toggle-inactive-color)"'
                                  display: flex
                                  flex-direction: column
                                  height: 100%
                              slots:
                                default:
                                  - component: oh-icon
                                    config:
                                      height: 100%
                                      icon: iconify:clarity:lightbulb-line
                                  - component: Label
                                    config:
                                      text: =translation('Light')
                      - component: f7-col
                        config:
                          style:
                            height: 70px
                            min-width: 50px
                        slots:
                          default:
                            - component: oh-link
                              config:
                                action: variable
                                actionVariable: objVar
                                actionVariableValue:
                                  floor: =vars.objVar.floor
                                  room: =vars.objVar.room
                                  selectSection: =vars.objVar.selectSection
                                  selectThing: '=vars.objVar.selectThing == "Rollers" ? undefined : "Rollers"'
                                class:
                                  - padding-half
                                style:
                                  color: '=vars.objVar.selectThing == "Rollers" ? "var(--f7-toggle-active-color)"
                                    : "var(--f7-toggle-inactive-color)"'
                                  display: flex
                                  flex-direction: column
                                  height: 100%
                              slots:
                                default:
                                  - component: oh-icon
                                    config:
                                      height: 100%
                                      icon: iconify:mdi:window-shutter
                                  - component: Label
                                    config:
                                      text: =translation('Blinds')
                      - component: f7-col
                        config:
                          style:
                            height: 70px
                            min-width: 50px
                        slots:
                          default:
                            - component: oh-link
                              config:
                                action: variable
                                actionVariable: objVar
                                actionVariableValue:
                                  floor: =vars.objVar.floor
                                  room: =vars.objVar.room
                                  selectSection: =vars.objVar.selectSection
                                  selectThing: '=vars.objVar.selectThing == "Climate" ? undefined : "Climate"'
                                class:
                                  - padding-half
                                style:
                                  color: '=vars.objVar.selectThing == "Climate" ?  "var(--f7-toggle-active-color)"
                                    : "var(--f7-toggle-inactive-color)"'
                                  display: flex
                                  flex-direction: column
                                  height: 100%
                              slots:
                                default:
                                  - component: oh-icon
                                    config:
                                      height: 80%
                                      icon: iconify:ph:thermometer-hot-light
                                  - component: Label
                                    config:
                                      text: =translation('HVAC')
                      - component: f7-col
                        config:
                          style:
                            height: 70px
                            min-width: 50px
                        slots:
                          default:
                            - component: oh-link
                              config:
                                action: variable
                                actionVariable: objVar
                                actionVariableValue:
                                  floor: =vars.objVar.floor
                                  room: =vars.objVar.room
                                  selectSection: =vars.objVar.selectSection
                                  selectThing: '=vars.objVar.selectThing == "Appliances" ? undefined :
                                    "Appliances"'
                                class:
                                  - padding-half
                                style:
                                  color: '=vars.objVar.selectThing == "Appliances"
                                    ?  "var(--f7-toggle-active-color)" :
                                    "var(--f7-toggle-inactive-color)"'
                                  display: flex
                                  flex-direction: column
                                  height: 100%
                              slots:
                                default:
                                  - component: oh-icon
                                    config:
                                      height: 80%
                                      icon: iconify:bi:plugin
                                  - component: Label
                                    config:
                                      text: =translation('home.equipment.title')

Security:
(See next post - the character limit was exceeded.)

If I click on “Home”, the “Security” widget button is visible. The translation is done automatically, as @hmerk can confirm - but I haven’t investigated how that works (yet).

But when I click on “Alarmsysteem”, nothing is shown:

However, when I look at the “Security” widget in the “widget corner” of the “development tools”, some stuff is visible:

Also when I (in the “main” widget) set the visible parameter under the line - component: widget:semanticHomeMenu_Security to visible: true, nothing is visible.

Does anyone see what’s causing this behavior. Note that this wasn’t a problem until a couple of weeks…

(@JustinG, I’m pinging you, because you’re the widget wizard. Apologies ;))

Security widget:

uid: semanticHomeMenu_Security
tags:
  - marketplace:152208
props:
  parameters:
    - context: item
      description: Security Group Item
      label: Security Group
      name: securityGroup
      required: true
      type: TEXT
timestamp: Aug 28, 2023, 8:48:03 AM
component: f7-card
config:
  style:
    background: =themeOptions.dark=="light" ? "white"
    border-radius: 10px
    margin-left: 5px
    margin-right: 5px
slots:
  default:
    - component: f7-card-content
      config:
        style:
          height: auto
      slots:
        default:
          - component: f7-row
            config:
              style:
                justify-content: space-between
            slots:
              default:
                - component: f7-col
                  config:
                    style:
                      text-align: center
                  slots:
                    default:
                      - component: oh-button
                        config:
                          action: popup
                          actionModal: widget:semanticHomeMenu_Security_Keypad
                          actionModalConfig:
                            securityGroup: =props.securityGroup
                            targetMode: armed-home
                          class:
                            - padding-top-half
                            - display-flex
                            - flex-direction-column
                          fill: '=vars.objVar.selectThing=="Security" ? true : false'
                          icon-f7: checkmark_shield_fill
                          iconColor: '=items[props.securityGroup+"_mode"].state != "armed-home"  ? "gray"
                            : "red"'
                          iconSize: 60
                          style:
                            --f7-button-bg-color: transparent
                            --f7-button-hover-bg-color: '=vars.objVar.selectThing=="Security" ? "F8BB00" :
                              "transparent"'
                            --f7-button-padding-horizontal: 0px
                            --f7-button-padding-vertical: 0px
                            --f7-button-text-color: 'themeOptions.dark=="light" ? white : black'
                            font-size: 14px
                            height: auto
                          text: ARMED HOME
                - component: f7-col
                  config:
                    style:
                      text-align: center
                  slots:
                    default:
                      - component: oh-button
                        config:
                          action: popup
                          actionModal: widget:semanticHomeMenu_Security_Keypad
                          actionModalConfig:
                            securityGroup: =props.securityGroup
                            targetMode: disarmed
                          class:
                            - padding-top-half
                            - display-flex
                            - flex-direction-column
                          fill: '=vars.objVar.selectThing=="Security" ? true : false'
                          icon-f7: checkmark_shield_fill
                          iconColor: '=items[props.securityGroup+"_mode"].state != "disarmed"  ? "gray" :
                            "green"'
                          iconSize: 60
                          style:
                            --f7-button-bg-color: transparent
                            --f7-button-hover-bg-color: '=vars.objVar.selectThing=="Security" ? "F8BB00" :
                              "transparent"'
                            --f7-button-padding-horizontal: 0px
                            --f7-button-padding-vertical: 0px
                            --f7-button-text-color: 'themeOptions.dark=="light" ? white : black'
                            font-size: 14px
                            height: auto
                          text: DISARMED
                - component: f7-col
                  config:
                    style:
                      text-align: center
                  slots:
                    default:
                      - component: oh-button
                        config:
                          action: popup
                          actionModal: widget:semanticHomeMenu_Security_Keypad
                          actionModalConfig:
                            securityGroup: =props.securityGroup
                            targetMode: armed-away
                          class:
                            - padding-top-half
                            - display-flex
                            - flex-direction-column
                          fill: '=vars.objVar.selectThing=="Security" ? true : false'
                          icon-f7: checkmark_shield_fill
                          iconColor: '=items[props.securityGroup+"_mode"].state != "armed-away"  ? "gray"
                            : "red"'
                          iconSize: 60
                          style:
                            --f7-button-bg-color: transparent
                            --f7-button-hover-bg-color: '=vars.objVar.selectThing=="Security" ? "F8BB00" :
                              "transparent"'
                            --f7-button-padding-horizontal: 0px
                            --f7-button-padding-vertical: 0px
                            --f7-button-text-color: 'themeOptions.dark=="light" ? white : black'
                            font-size: 14px
                            height: auto
                          text: ARMED AWAY
          - component: f7-list
            config:
              accordionList: true
              mediaList: true
            slots:
              default:
                - component: oh-list-item
                  config:
                    icon: '=items.gSmokeAlarm.state == "0" ?
                      "iconify:material-symbols:detector-smoke" :
                      "iconify:material-symbols:detector-alarm"'
                    iconColor: '=items.gSmokeAlarm.state == "0" ? "gray" : "red"'
                    style:
                      --f7-list-item-after-font-size: 16px
                      --f7-list-item-after-text-color: "=themeOptions.dark === 'dark' ?
                        'rgb(180,180,180)' : 'rgb(80,80,80)'"
                      margin-top: 30px
                    title: Smoke Detectors
                  slots:
                    accordion:
                      - component: f7-list
                        config:
                          mediaList: true
                          style:
                            background-color: transparent
                        slots:
                          default:
                            - component: oh-repeater
                              config:
                                accordionList: true
                                cacheSource: true
                                fetchMetadata: semantics,widgetOrder,uiSemantics
                                for: smokeSensorMember
                                fragment: true
                                groupItem: gSmokeAlarm
                                sourceType: itemsInGroup
                              slots:
                                default:
                                  - component: oh-list-item
                                    config:
                                      after: '=items[loop.smokeSensorMember.name].state != "OFF" ? "ALARM" : "OK"'
                                      icon: '=items[loop.smokeSensorMember.name].state != "OFF" ?
                                        "iconify:material-symbols:detector-alarm"
                                        :
                                        "iconify:material-symbols:detector-smoke"'
                                      iconColor: '=items[loop.smokeSensorMember.name].state != "OFF" ? "red" : "gray"'
                                      item: =loop.smokeSensorMember.name
                                      title: =loop.smokeSensorMember.metadata.uiSemantics.config.location
          - component: f7-list
            config:
              accordionList: true
              mediaList: true
            slots:
              default:
                - component: oh-list-item
                  config:
                    icon: '=items.gMotionDetected.state == "0" ? "motion-closed" : "motion-open"'
                    iconColor: '=items.gMotionDetected.state == "0" ? "gray" : "red"'
                    style:
                      --f7-list-item-after-font-size: 16px
                      --f7-list-item-after-text-color: "=themeOptions.dark === 'dark' ?
                        'rgb(180,180,180)' : 'rgb(80,80,80)'"
                      margin-top: 30px
                    title: Motion Detectors
                  slots:
                    accordion:
                      - component: f7-list
                        config:
                          mediaList: true
                          style:
                            background-color: transparent
                        slots:
                          default:
                            - component: oh-repeater
                              config:
                                accordionList: true
                                cacheSource: true
                                fetchMetadata: semantics,widgetOrder,uiSemantics
                                filter: '(loop.motionDetector.category=="motion") ? true : false'
                                for: motionDetector
                                fragment: true
                                groupItem: gMotionDetected
                                sourceType: itemsInGroup
                              slots:
                                default:
                                  - component: oh-list-item
                                    config:
                                      after: '=items[loop.motionDetector.name].state != "ON" ? "NO-Motion" : "MOTION"'
                                      icon: '=items[loop.motionDetector.name].state == "ON" ? "motion-open" :
                                        "motion-closed"'
                                      iconColor: '=items[loop.motionDetector.name].state != "ON" ? "red" : "gray"'
                                      item: =loop.motionDetector.name
                                      title: =loop.motionDetector.metadata.uiSemantics.config.location
          - component: f7-list
            config:
              accordionList: true
              mediaList: true
            slots:
              default:
                - component: oh-list-item
                  config:
                    icon: material:video_camera_front
                    iconColor: gray
                    style:
                      --f7-list-item-after-font-size: 16px
                      --f7-list-item-after-text-color: "=themeOptions.dark === 'dark' ?
                        'rgb(180,180,180)' : 'rgb(80,80,80)'"
                      margin-top: 30px
                    title: Surveillance
                  slots:
                    accordion:
                      - component: f7-list
                        config:
                          mediaList: true
                          style:
                            background-color: transparent
                        slots:
                          default:
                            - component: oh-repeater
                              config:
                                accordionList: true
                                cacheSource: true
                                fetchMetadata: semantics,widgetOrder,uiSemantics
                                filter: '(loop.surveilance.category=="switch") ||
                                  (loop.surveilance.category=="Switch") ? true :
                                  false'
                                for: surveilance
                                fragment: true
                                itemTags: Camera
                                sourceType: itemsWithTags
                              slots:
                                default:
                                  - component: oh-list-item
                                    config:
                                      after: '=items[loop.surveilance.name].state != "ON" ? "OFF" : "ON"'
                                      icon: material:video_camera_front
                                      iconColor: '=items[loop.surveilance.name].state != "ON" ? "gray" : "red"'
                                      item: =loop.surveilance.name
                                      title: =loop.surveilance.metadata.uiSemantics.config.location
          - component: f7-list
            config:
              accordionList: true
              mediaList: true
            slots:
              default:
                - component: oh-list-item
                  config:
                    icon: material:roller_shades
                    iconColor: gray
                    style:
                      --f7-list-item-after-font-size: 16px
                      --f7-list-item-after-text-color: "=themeOptions.dark === 'dark' ?
                        'rgb(180,180,180)' : 'rgb(80,80,80)'"
                      margin-top: 30px
                    title: Blinds
                  slots:
                    accordion:
                      - component: f7-list
                        config:
                          mediaList: true
                          style:
                            background-color: transparent
                        slots:
                          default:
                            - component: oh-repeater
                              config:
                                accordionList: true
                                cacheSource: true
                                fetchMetadata: semantics,widgetOrder,uiSemantics
                                filter: '((loop.shadesMember.category == "rollershutter") ||
                                  ((loop.shadesMember.category).includes("Rollershutter")))
                                  ? true : false'
                                for: shadesMember
                                fragment: true
                                itemTags: Opening
                                sourceType: itemsWithTags
                              slots:
                                default:
                                  - component: oh-list-item
                                    config:
                                      after: '=items[loop.shadesMember.name].state != "100" ? "OPEN" : "CLOSED"'
                                      icon: '=(loop.shadesMember.state == "0") ? "material:roller_shades" :
                                        "material:roller_shades"'
                                      iconColor: gray
                                      item: =loop.shadesMember.name
                                      title: =loop.shadesMember.metadata.uiSemantics.config.location
          - component: f7-list
            config:
              accordionList: true
              mediaList: true
            slots:
              default:
                - component: oh-list-item
                  config:
                    icon: material:sensor_door
                    iconColor: '=items.gDoorsOpen.state == "0" ? "gray" : "red"'
                    style:
                      --f7-list-item-after-font-size: 16px
                      --f7-list-item-after-text-color: "=themeOptions.dark === 'dark' ?
                        'rgb(180,180,180)' : 'rgb(80,80,80)'"
                      margin-top: 30px
                    title: Doors
                  slots:
                    accordion:
                      - component: f7-list
                        config:
                          mediaList: true
                          style:
                            background-color: transparent
                        slots:
                          default:
                            - component: oh-repeater
                              config:
                                accordionList: true
                                cacheSource: true
                                fetchMetadata: semantics,widgetOrder,uiSemantics
                                for: doorMember
                                fragment: true
                                groupItem: gDoorsOpen
                                sourceType: itemsInGroup
                              slots:
                                default:
                                  - component: oh-list-item
                                    config:
                                      after: '=items[loop.doorMember.name].state != "CLOSED" ? "OPEN" : "CLOSED"'
                                      icon: material:sensor_door
                                      iconColor: '=items[loop.doorMember.name].state != "CLOSED" ? "red" : "gray"'
                                      item: =loop.doorMember.name
                                      title: =loop.doorMember.metadata.uiSemantics.config.location
          - component: f7-list
            config:
              accordionList: true
              mediaList: true
            slots:
              default:
                - component: oh-list-item
                  config:
                    icon: material:sensor_window
                    iconColor: '=items.gWindowsOpen.state == "0" ? "gray" : "red"'
                    style:
                      --f7-list-item-after-font-size: 16px
                      --f7-list-item-after-text-color: "=themeOptions.dark === 'dark' ?
                        'rgb(180,180,180)' : 'rgb(80,80,80)'"
                      margin-top: 30px
                    title: Windows
                  slots:
                    accordion:
                      - component: f7-list
                        config:
                          mediaList: true
                          style:
                            background-color: transparent
                        slots:
                          default:
                            - component: oh-repeater
                              config:
                                accordionList: true
                                cacheSource: true
                                fetchMetadata: semantics,widgetOrder,uiSemantics
                                for: windowMember
                                fragment: true
                                groupItem: gWindowsOpen
                                sourceType: itemsInGroup
                              slots:
                                default:
                                  - component: oh-list-item
                                    config:
                                      after: '=items[loop.windowMember.name].state != "CLOSED" ? "OPEN" : "CLOSED"'
                                      icon: material:sensor_window
                                      iconColor: '=items[loop.windowMember.name].state != "CLOSED" ? "red" : "gray"'
                                      item: =loop.windowMember.name
                                      title: =loop.windowMember.metadata.uiSemantics.config.location

Is there any chance we both coulkd do a teamviewer (or any other online meeting) session, so I can check directly within your installation.

I did a fresh setup on a new dev environment lately and did not face any issues…

Sure. Would Wednesday evening suit you?

What time ? Will be out between 17:00 and 20:00 …

After 20h00 is fine (within reason of course, the alarm clock disturbs me at 6h00 :wink:).

Excellent, I will ping you when I am back home…

1 Like