[OH3] Main UI - main_widget - part 1.2 - The main_widget_FloorsAndRooms [3.3.0;3.4.9)

[:crayon: Add a primary screenshot or a logo here. The first image of the post will be promoted seen in the add-on list in the UI.]

The main_widget_FloorsAndRooms is a successor to the formerly used seperate floors and rooms cards.
uiSemantics are now used if existing for labeling of cards/widgets. Useage can be found here

Screenshots

tbd

Changelog

Version 0.2

  • bug fixes

Version 0.1

  • initial release

Resources

uid: main_widget_FloorsAndRooms
tags: []
props:
  parameterGroups: []
timestamp: Nov 3, 2022, 8:37:23 PM
component: f7-block
config:
  style:
    flex: 1 1 auto
    margin-bottom: -1em
    margin-top: 1em
    overflow: scroll
  visible: '=vars.objVar ? (vars.objVar.selectSection=="SECTION0") ? false : true : false'
slots:
  default:
    - component: oh-repeater
      config:
        fetchMetadata: semantics,metadata,widgetOrder
        filter: '(vars.objVar && vars.objVar.floor) ? loop.floorItem.name==vars.objVar.floor : (loop.floorItem.metadata) && (loop.floorItem.metadata.semantics.value).includes("Floor")'
        for: floorItem
        itemTags: ","
        sourceType: itemsWithTags
      slots:
        default:
          - component: oh-repeater
            config:
              fetchMetadata: semantics,metadata,widgetOrder
              filter: '(vars.objVar && vars.objVar.room) ? loop.roomItem.name==vars.objVar.room : (loop.roomItem.metadata) && (loop.roomItem.metadata.semantics.value).includes("Room")'
              for: roomItem
              groupItem: =loop.floorItem.name
              sourceType: itemsInGroup
            slots:
              default:
                - component: oh-repeater
                  config:
                    fetchMetadata: semantics,metadata,listWidget,uiSemantics
                    filter: loop.lightItem.metadata.semantics.config.hasLocation == loop.roomItem.name
                    for: lightItem
                    itemTags: Lightbulb
                    sourceType: itemsWithTags
                  slots:
                    default:
                      - component: oh-repeater
                        config:
                          fetchMetadata: semantics,metadata,listWidget,uiSemantics
                          filter: '(loop.lightPowerItem.type=="Switch") ? true : false'
                          for: lightPowerItem
                          groupItem: =loop.lightItem.name
                          sourceType: itemsInGroup
                        slots:
                          default:
                            - component: widget:main_widget_Light_Card
                              config:
                                Title: "=loop.lightItem.metadata.uiSemantics ? loop.lightItem.metadata.uiSemantics.config.equipment + loop.lightItem.metadata.uiSemantics.config.preposition + loop.lightItem.metadata.uiSemantics.config.location : loop.lightItem.label"
                                groupItem: =loop.lightItem.name
                                powerItem: = loop.lightPowerItem.name
                                visible: '=!vars.objVar ? false : !vars.objVar.selectThing ? true : (vars.objVar.selectThing=="Lights") ? true : false'
                - component: oh-repeater
                  config:
                    fetchMetadata: semantics,metadata,listWidget
                    filter: loop.equipmentItem.metadata.semantics.config.hasLocation == loop.roomItem.name
                    for: equipmentItem
                    itemTags: Blinds
                    sourceType: itemsWithTags
                  slots:
                    default:
                      - component: oh-repeater
                        config:
                          fetchMetadata: semantics,metadata,listWidget,uiSemantics
                          filter: '(loop.shutterItem.type=="Rollershutter") ? true : false'
                          for: shutterItem
                          groupItem: =loop.equipmentItem.name
                          sourceType: itemsInGroup
                        slots:
                          default:
                            - component: oh-repeater
                              config:
                                fetchMetadata: semantics,metadata
                                filter: loop.modeItem.type=="Switch"
                                for: modeItem
                                groupItem: =loop.equipmentItem.name
                                sourceType: itemsInGroup
                              slots:
                                default:
                                  - component: widget:main_widget_Rollershutter_Card
                                    config:
                                      RollerGroup: =loop.equipmentItem.name
                                      RollerItem: =loop.shutterItem.name
                                      RollerMode: = loop.modeItem.name
                                      Title: "=loop.shutterItem.metadata.uiSemantics ? loop.shutterItem.metadata.uiSemantics.config.equipment + loop.shutterItem.metadata.uiSemantics.config.preposition + loop.shutterItem.metadata.uiSemantics.config.location : loop.shutterItem.label"
                                      visible: '=!vars.objVar ? false : !vars.objVar.selectThing ? true : (vars.objVar.selectThing=="Rollers") ? true : false'
                - component: oh-repeater
                  config:
                    fetchMetadata: semantics,metadata,listWidget,uiSemantics
                    filter: loop.radiatorItem.metadata.semantics.config.hasLocation == loop.roomItem.name
                    for: radiatorItem
                    itemTags: RadiatorControl
                    sourceType: itemsWithTags
                  slots:
                    default:
                      - component: widget:main_widget_RadiatorControl_Card
                        config:
                          Title: "=loop.radiatorItem.metadata.uiSemantics ? loop.radiatorItem.metadata.uiSemantics.config.equipment + loop.radiatorItem.metadata.uiSemantics.config.preposition + loop.radiatorItem.metadata.uiSemantics.config.location : loop.radiatorItem.label"
                          groupItem: =loop.radiatorItem.name
                          visible: '=!vars.objVar ? false : !vars.objVar.selectThing ? true : (vars.objVar.selectThing=="Climate") ? true : false'
                - component: oh-repeater
                  config:
                    fetchMetadata: semantics,metadata,listWidget,uiSemantics
                    filter: loop.hvacItem.metadata.semantics.config.hasLocation == loop.roomItem.name
                    for: hvacItem
                    itemTags: HVAC
                    sourceType: itemsWithTags
                  slots:
                    default:
                      - component: oh-repeater
                        config:
                          fetchMetadata: semantics,metadata,listWidget,uiSemantics
                          filter: '((loop.hvacPowerItem.groupNames.indexOf(loop.hvacItem.name) >= 0) && (loop.hvacPowerItem.type=="Switch")) ? true : false'
                          for: hvacPowerItem
                          itemTags: Control,Power
                          sourceType: itemsWithTags
                        slots:
                          default:
                            - component: oh-repeater
                              config:
                                fetchMetadata: semantics,metadata,listWidget
                                filter: '((loop.hvacModeItem.groupNames.indexOf(loop.hvacItem.name) >= 0) && (loop.hvacModeItem.type=="String")) ? true : false'
                                for: hvacModeItem
                                itemTags: Control,Temperature
                                sourceType: itemsWithTags
                              slots:
                                default:
                                  - component: widget:main_widget_HVAC_Card
                                    config:
                                      Title: "=loop.hvacItem.metadata.uiSemantics ? loop.hvacItem.metadata.uiSemantics.config.equipment + loop.hvacItem.metadata.uiSemantics.config.preposition + loop.hvacItem.metadata.uiSemantics.config.location : loop.hvacItem.label"
                                      groupItem: =loop.hvacItem.name
                                      modeItem: =loop.hvacModeItem.name
                                      powerItem: =loop.hvacPowerItem.name
                                      visible: '=!vars.objVar ? false : !vars.objVar.selectThing ? true : (vars.objVar.selectThing=="Climate") ? true : false'