OMG! OH3 is amazing, because I (with all your help) achieved this!

Hi

Dont have a /static folder
image

So i create it ?

1 Like

Hi,

No need to create a static folder - it is just the default (pretend its the HTML folder)
If you do create sub folders then you would state /static/subfolder etc.

Also I think you should remove the g_isabbelas: between the slots: and the -component.

I have included my full configuration to help you

config:
  label: Home Page
locations:
  - component: oh-locations-tab
    config:
      cardOrder:
        - separator: 2nd Floor
        - Inside
        - F2Bedroom
        - F2Chillout
        - gSecondFloor
        - separator: 1st Floor
        - FFLanding
        - MasterBedroom
        - FFBedroom2
        - FFBedroom3
        - gFirstFloor
        - separator: Ground Floor
        - Garage
        - Gym
        - Kennel
        - Kitchen
        - Office
        - PlantRoom
        - Snug
        - gGroundFloor
        - separator: Guest Floor
        - GEChillout
        - GERearBedroom
        - gGuestFloor
        - separator: Outdoors
        - Outside
        - GreenHouse
        - Terrace
        - SecurityRoom
        - WeatherStation
    slots:
      Snug:
        - component: oh-location-card
          config:
            title: Snug
            subtitle: Ground Floor
            backgroundImage: /static/files/snug.jpg
            disableBadges: false
            invertText: false
      GEChillout:
        - component: oh-location-card
          config:
            backgroundImage: /static/files/chillout3.jpg
            invertText: false
            disableBadges: false
      FFBedroom2:
        - component: oh-location-card
          config:
            backgroundImage: /static/files/bedroom2.jpg
      FFBedroom3:
        - component: oh-location-card
          config:
            backgroundImage: /static/files/bedroom3.jpg
      F2Chillout:
        - component: oh-location-card
          config:
            backgroundImage: /static/files/chillout4.jpg
      gGroundFloor:
        - component: oh-location-card
          config:
            disableBadges: false
            backgroundImage: /static/files/groundfloor3.jpg
            badges:
              - lights
              - windows
              - doors
              - garagedoors
              - blinds
              - presence
              - lock
              - climate
              - screens
              - projectors
              - speakers
              - temperature
              - humidity
              - luminance
      Office:
        - component: oh-location-card
          config:
            invertText: false
            title: Ian's Office
            subtitle: Ground Floor
            backgroundImage: /static/files/office.jpg
      gSecondFloor:
        - component: oh-location-card
          config:
            backgroundImage: /static/files/2ndfloor2.jpg
            badges:
              - lights
              - windows
              - doors
              - garagedoors
              - blinds
              - presence
              - lock
              - climate
              - screens
              - projectors
              - speakers
              - temperature
              - humidity
              - luminance
      gFirstFloor:
        - component: oh-location-card
          config:
            title: First Floor
            subtitle: Bedrooms
            backgroundImage: /static/files/1stfloor2.jpg
      Kitchen:
        - component: oh-location-card
          config:
            backgroundImage: /static/files/kitchen3.jpg
      MasterBedroom:
        - component: oh-location-card
          config:
            backgroundImage: /static/files/masterbedroom.jpg
      Inside:
        - component: oh-location-card
          config:
            backgroundImage: /static/files/gelivingroom.jpg
      GreenHouse:
        - component: oh-location-card
          config:
            backgroundImage: /static/files/greenhouse.jpg
      Gym:
        - component: oh-location-card
          config:
            backgroundImage: /static/files/gym.jpg
      Garage:
        - component: oh-location-card
          config:
            backgroundImage: /static/files/garage.jpg
      gGuestFloor:
        - component: oh-location-card
          config:
            backgroundImage: /static/files/guestfloor.jpg
      F2Bedroom:
        - component: oh-location-card
          config:
            backgroundImage: /static/files/bedroom4.jpg
      PlantRoom:
        - component: oh-location-card
          config:
            backgroundImage: /static/files/plantroom.jpg
            badges:
              - lights
              - windows
              - doors
              - garagedoors
              - blinds
              - presence
              - lock
              - climate
              - screens
              - projectors
              - speakers
              - temperature
              - humidity
              - luminance
      Terrace:
        - component: oh-location-card
          config:
            backgroundImage: /static/files/terrace.jpg
            badges:
              - lights
              - windows
              - doors
              - garagedoors
              - blinds
              - presence
              - lock
              - climate
              - screens
              - projectors
              - speakers
              - temperature
              - humidity
              - luminance
      Outside:
        - component: oh-location-card
          config:
            backgroundImage: /static/files/outside.jpg
      Storage:
        - component: oh-location-card
          config:
            backgroundImage: /static/files/lounge3.jpg
      Kennel:
        - component: oh-location-card
          config:
            backgroundImage: /static/files/kennel2.jpg
      SecurityRoom:
        - component: oh-location-card
          config:
            backgroundImage: /static/files/securityroom.jpg
      WeatherStation:
        - component: oh-location-card
          config:
            backgroundImage: /static/files/weatherstation.jpg
      FFLanding:
        - component: oh-location-card
          config:
            backgroundImage: /static/files/landing.jpg
            invertText: true
      GERearBedroom:
        - component: oh-location-card
          config:
            backgroundImage: /static/files/guestbedroom.jpg
            invertText: true
equipment:
  - component: oh-equipment-tab
    config: {}
    slots:
      Battery:
        - component: oh-equipment-card
          config:
            backgroundImage: /static/files/battery.jpg
          slots:
            header:
              - component: oh-gauge
                config:
                  labelText: Powerwall
                  item: TeslaPowerwall_BatteryState
                  size: 250
                  value: 60
                  type: semicircle
                  borderColor: white
                  borderBgColor: rgba(255,255,255,0.4)
                  valueTextColor: white
                  labelTextColor: white
                  borderWidth: 20
                  style:
                    margin-left: 30px
      Blinds:
        - component: oh-equipment-card
          config:
            backgroundImage: /static/files/blinds.jpg
      Camera:
        - component: oh-equipment-card
          config:
            backgroundImage: /static/files/camera.jpg
      Dishwasher:
        - component: oh-equipment-card
          config:
            backgroundImage: /static/files/dishwasher.jpg
      Dryer:
        - component: oh-equipment-card
          config:
            backgroundImage: /static/files/dryer.jpg
            invertText: true
      Equipment:
        - component: oh-equipment-card
          config:
            backgroundImage: /static/files/equipment.jpg
      GarageDoor:
        - component: oh-equipment-card
          config:
            backgroundImage: /static/files/garagedoor.jpg
      HVAC:
        - component: oh-equipment-card
          config:
            backgroundImage: /static/files/hvac.jpg
      Inverter:
        - component: oh-equipment-card
          config:
            backgroundImage: /static/files/inverter.jpg
            invertText: true
      Lightbulb:
        - component: oh-equipment-card
          config:
            backgroundImage: /static/files/lightbulb.jpg
      NetworkAppliance:
        - component: oh-equipment-card
          config:
            backgroundImage: /static/files/networkappliance.jpg
            invertText: false
      Oven:
        - component: oh-equipment-card
          config:
            backgroundImage: /static/files/oven.jpg
      Pump:
        - component: oh-equipment-card
          config:
            backgroundImage: /static/files/pump.jpg
      RemoteControl:
        - component: oh-equipment-card
          config:
            backgroundImage: /static/files/remotecontrol.jpg
      Screen:
        - component: oh-equipment-card
          config:
            backgroundImage: /static/files/screen.jpg
      Speaker:
        - component: oh-equipment-card
          config:
            backgroundImage: /static/files/speaker.jpg
      Valve:
        - component: oh-equipment-card
          config:
            backgroundImage: /static/files/valve.jpg
      WashingMachine:
        - component: oh-equipment-card
          config:
            backgroundImage: /static/files/washingmachine.jpg
            invertText: false
      WeatherService:
        - component: oh-equipment-card
          config:
            backgroundImage: /static/files/weatherservice.jpg
      WebService:
        - component: oh-equipment-card
          config:
            backgroundImage: /static/files/webservice.jpg
      WhiteGood:
        - component: oh-equipment-card
          config:
            backgroundImage: /static/files/whitegoods.jpg
      MotionDetector:
        - component: oh-equipment-card
          config:
            backgroundImage: /static/files/MotionDetector.jpg
      Television:
        - component: oh-equipment-card
          config:
            backgroundImage: /static/files/Television.jpg
      Doorbell:
        - component: oh-equipment-card
          config:
            backgroundImage: /static/files/Doorbell.jpg
      Boiler:
        - component: oh-equipment-card
          config:
            backgroundImage: /static/files/Boiler.jpg
            invertText: true
properties:
  - component: oh-properties-tab
    config: {}
    slots:
      Water:
        - component: oh-property-card
          config:
            backgroundImage: /static/files/water.jpg
      Light:
        - component: oh-property-card
          config:
            backgroundImage: /static/files/light.jpg
      Temperature:
        - component: oh-property-card
          config:
            title: Temperatures
            subtitle: "='Setpoint: ' + items.MT_AmbientSetpointPAD12.state"
            backgroundImage: /static/files/temperature.jpg
          slots:
            glance:
              - component: oh-link
                config:
                  text: "='Supply: ' + items.MT_ActualHotWaterSupply.state"
                  iconF7: thermometer
                  iconColor: red
                  color: white
                  style:
                    font-size: 12px
                    margin-top: 8px
              - component: oh-link
                config:
                  text: "='Outside:  ' + items.MT_OutsideTemperature.state"
                  iconF7: thermometer
                  iconColor: blue
                  color: white
                  style:
                    font-size: 12px
                    margin-top: 3px
      CO:
        - component: oh-property-card
          config:
            backgroundImage: /static/files/co2.jpg
            title: ='CO ' + items.LocalAirQuality_CO.state
          slots:
            glance:
              - component: oh-link
                config:
                  text: "='Air Quality Index: ' + items.LocalAirQuality_AirQualityIndex.state"
                  iconF7: staroflife
                  iconColor: white
                  color: white
                  style:
                    font-size: 12px
                    margin-top: 8px
                    font-weight: bold
              - component: oh-link
                config:
                  text: "='Air Quality Today: ' + items.LocalAirQuality_AQIDescription.state"
                  color: white
                  style:
                    font-size: 12px
                    margin-top: 3px
                    font-weight: bold
      Energy:
        - component: oh-property-card
          config:
            backgroundImage: /static/files/energy.jpg
          slots:
            header:
              - component: f7-block
                config:
                  style:
                    color: white
                    display: flex
                    flex-direction: column
                    width: 320px
                    padding: 0
                    margin: 0
                slots:
                  default:
                    - component: f7-row
                      config:
                        style:
                          padding: 0
                          display: flex
                          margin: 0
                      slots:
                        default:
                          - component: Label
                            config:
                              text: Energy
                              style:
                                font-size: 24px
                          - component: oh-gauge
                            config:
                              labelText: Coverage (Yr)
                              item: SolarEdgeAggregateYear_SelfConsumptionCoverage
                              size: 175
                              value: 8
                              type: semicircle
                              borderColor: white
                              borderBgColor: rgba(255,255,255,0.4)
                              valueTextColor: white
                              labelTextColor: white
                              borderWidth: 8
                              style:
                                margin-left: auto
                    - component: f7-row
                      config:
                        style:
                          padding: 0
                          justify-content: flex-start
                          margin: 0
                      slots:
                        default:
                          - component: Label
                            config:
                              text: Today's
                              style:
                                font-size: 14px
                    - component: f7-row
                      config:
                        style:
                          padding: 0
                          justify-content: flex-start
                          margin: 0
                      slots:
                        default:
                          - component: Label
                            config:
                              text: ="Production " + items.SolarEdgeAggregateDay_Production.state
                              style:
                                font-size: 12px
      Humidity:
        - component: oh-property-card
          config:
            backgroundImage: /static/files/humidity.jpg
          slots:
            header:
              - component: oh-gauge
                config:
                  labelText: Humidity (Avg)
                  item: LocalAirQuality_Humidity
                  size: 250
                  value: 60
                  type: semicircle
                  borderColor: white
                  borderBgColor: rgba(255,255,255,0.4)
                  valueTextColor: white
                  labelTextColor: white
                  borderWidth: 15
                  style:
                    margin-left: 30px
      Illuminance:
        - component: oh-property-card
          config:
            backgroundImage: /static/files/illuminance.jpg
      Noise:
        - component: oh-property-card
          config:
            backgroundImage: /static/files/noise.jpg
      Opening:
        - component: oh-property-card
          config:
            backgroundImage: /static/files/opening.jpg
      Power:
        - component: oh-property-card
          config:
            backgroundImage: /static/files/power.jpg
          slots:
            header:
              - component: f7-block
                config:
                  style:
                    color: white
                    display: flex
                    flex-direction: column
                    width: 320px
                    margin: 0
                slots:
                  default:
                    - component: f7-row
                      config:
                        style:
                          padding: 0
                          justify-content: space-between
                          margin: 0
                      slots:
                        default:
                          - component: Label
                            config:
                              text: Power
                              style:
                                font-size: 30px
                          - component: oh-label
                            config:
                              item: TeslaPowerwall_BatteryState
                              style:
                                font-size: 30px
                          - component: oh-icon
                            config:
                              icon: ="battery-" + items.TeslaPowerwall_BatteryState.state
                              size: 30px
                    - component: f7-row
                      config:
                        style:
                          justify-content: space-between
                      slots:
                        default:
                          - component: Label
                            config:
                              text: ="Battery " + items.TeslaPowerwall_InstantPowerBattery.state
                              style:
                                font-size: 14px
                          - component: Label
                            config:
                              text: ="Load " + items.TeslaPowerwall_InstantPowerLoad.state
                              style:
                                font-size: 14px
                          - component: Label
                            config:
                              text: ="Site " + items.TeslaPowerwall_InstantPowerSite.state
                              style:
                                font-size: 14px
                          - component: Label
                            config:
                              text: ="Solar " + items.TeslaPowerwall_InstantPowerSolar.state
                              style:
                                font-size: 14px
      Presence:
        - component: oh-property-card
          config:
            backgroundImage: /static/files/presence.jpg
          slots:
            glance:
              - component: oh-link
                config:
                  text: ='Motion Detected ' + items.WottonVideoCam2811_MP4History.state
                  iconF7: camera
                  iconColor: white
                  color: white
                  style:
                    font-size: 12px
                    margin-top: 10px
      Pressure:
        - component: oh-property-card
          config:
            title: Pressure
            subtitle: "='Pressure: ' + items.localCurrentBarometricPressure.state"
            backgroundImage: /static/files/pressure.jpg
          slots:
            glance:
              - component: oh-link
                config:
                  text: "='Tomorrow Forecast: ' + items.localDailyForecastTomorrowPressure.state"
                  iconF7: gauge
                  iconColor: white
                  color: white
                  style:
                    font-size: 12px
                    margin-top: 8px
      Rain:
        - component: oh-property-card
          config:
            title: Rain
            subtitle: "='Expected: ' + items.localCurrentRain.state"
            backgroundImage: /static/files/rain.jpg
          slots:
            glance:
              - component: oh-link
                config:
                  text: "='Rain Tomorrow: ' + items.localDailyForecastTomorrowRain.state"
                  iconF7: cloud_rain
                  iconColor: white
                  color: white
                  style:
                    font-size: 12px
                    margin-top: 8px
      SoundVolume:
        - component: oh-property-card
          config:
            backgroundImage: /static/files/soundvolume.jpg
          slots:
            header:
              - component: f7-link
                config:
                  text: Multiroom Audio Volume
                  style:
                    text-transform: uppercase
                    font-size: 14px
                    color: white
              - component: f7-block
                config:
                  title: Multiroom Audio Volume
                  style:
                    color: white
                    display: flex
                    flex-direction: row
                    width: 320px
                    justify-content: space-around
                slots:
                  default:
                    - component: oh-knob
                      config:
                        item: SonosGym_Volume
                        size: 75
                        max: 110
                        primaryColor: white
                        secondaryColor: gray
                        textColor: white
                        class:
                          - card-prevent-open
                    - component: oh-knob
                      config:
                        item: SonosOffice_Volume
                        size: 75
                        max: 50
                        primaryColor: white
                        secondaryColor: gray
                        textColor: white
                        class:
                          - card-prevent-open
                    - component: oh-knob
                      config:
                        item: SonosSnug_Volume
                        size: 75
                        max: 30
                        primaryColor: white
                        secondaryColor: gray
                        textColor: white
                        class:
                          - card-prevent-open
      Timestamp:
        - component: oh-property-card
          config:
            backgroundImage: /static/files/timestamp.jpg
      Ultraviolet:
        - component: oh-property-card
          config:
            title: Ultraviolet
            subtitle: "='UV Index: ' + items.localTodayUVIndex.state"
            backgroundImage: /static/files/ultraviolet.jpg
          slots:
            glance:
              - component: oh-link
                config:
                  text: "='UV Tomorrow: ' + items.localTomorrowForecastedUVIndex.state"
                  iconF7: sun_max
                  iconColor: yellow
                  color: white
                  style:
                    font-size: 12px
                    margin-top: 8px
      Wind:
        - component: oh-property-card
          config:
            title: Wind
            subtitle: "='Wind Speed: ' + items.localCurrentWindSpeed.state"
            backgroundImage: /static/files/wind.jpg
          slots:
            glance:
              - component: oh-link
                config:
                  text: "='Wind Tomorrow: ' + items.localDailyForecastTomorrowWindSpeed.state"
                  iconF7: wind
                  iconColor: white
                  color: white
                  style:
                    font-size: 12px
                    margin-top: 8px
              - component: oh-link
                config:
                  text: "='Wind Direction: ' +
                    items.localDailyForecastTomorrowWindDirection.state"
                  iconF7: wind
                  iconColor: white
                  color: white
                  style:
                    font-size: 12px
                    margin-top: 3px
      Voltage:
        - component: oh-property-card
          config:
            backgroundImage: /static/files/voltage.jpg
            invertText: true
      Duration:
        - component: oh-property-card
          config:
            backgroundImage: /static/files/Duration.jpg
      Frequency:
        - component: oh-property-card
          config:
            backgroundImage: /static/files/Frequency.jpg
      Gas:
        - component: oh-property-card
          config:
            backgroundImage: /static/files/Gas.jpg
            title: Gas & Flow
      Level:
        - component: oh-property-card
          config:
            backgroundImage: /static/files/Level.jpg
1 Like

does not bother but does not need to be there.

by the way i liked that you set up here

hi

Thank you for your help.

But i am really unsure what you mean.
If this is the path /static/static/isabellas_vearelse.jpg

I need to create folder ,dont i …Sorry for the NOOB question

no
/etc/openhab/html/ = /static/
you have the pictures in the folder /etc/openhab/html/static/
subfolder from /etc/openhab/html/
it is simpler to transfer files from /etc/openhab/html/static/ folder to /etc/openhab/html/

2 Likes

Hi again

thx for your patience.

Still have an issue.

Actually it looks like a VERY small picture is added in top left corner.

Not sure what to do.

Solved …Tried another picture

image

Do you see the readme.txt file?
Open it open it open it.

2 Likes

Hi

i guess you are asking me.

Believe or not but yes i did.

Issue was that i did not really understand the “static koncept”

The readme file did not adress anything in regards to spaces ,or local charaters .

All of this likely something i should have known ,but i try to not let my non technical background come in between my love for Openhab.

Thankfully several people here have been very helpfull here and given me a push in the right direction.

On your screenshot it seems that there is a space between isabellas_vaerelse and .jpg.

Hi Marcel

You are right.

Problem is fixed. It is working now.

1 Like

What an amazing setup Andy, a great inspiration.

I was looking at your rule and I don’t think that it currently works as you intended. In both if statements the requiredPosition = 100 and requiredPosition = 0 should be changed to requiredPosition == 100 and requiredPosition == 0 respectively. Currently you are assigning (=) the value to requiredPosition whereas I think you want to compare (==) requiredPosition with the value.

1 Like

Hi Marcel!

Thanks so much. You are absolutely correct - it was work in progress - and I’m just about to complete the final testing on the latest version and I will report it.

Thanks again, and Happy New Year!

1 Like

Hi Andy,
Is this an Openhab default setting that you can select between Equipment and Properties in the location-card you posted? If not, I would be grateful if you could post the corresponding yaml-code - unfortunately I could not find anything in the forum so far.

With my Openhab, the Points of a piece of an Equipment are displayed directly in the list of the respective location-card in the location cards generated automatically by Openhab. With many lamps, for example, this can become very confusing due to the large number of list entries. I would therefore like to display only the Equipment in the list of the location-card, which then lists its points in its list view or directly accesses the point elements in a separate view. I have the impression that this is the case with your solution, isn’t it?

Hi Benny,

Just back at my desk. Give me an hour and I’ll reply properly.

Best Andy

Hi Benny,

Sorry that this took a little longer; time in Thailand goes slower than the rest of the world :wink:

I have posted examples below of how I easily got this look and feel; but I think it’s also important to point out why I did it this way. It is clear to me from your question that you understand all the principles very well so I thought I would give both a short and long answer in case that also helps others :slightly_smiling_face:

So the easy and simple answer for you is – the way in which the Light items (Point_Control) belonging to a piece of Equipment (Equipment_Lightbulb) are displayed by default is specified via Metadata / using the Metadata option at the Equipment level.
If nothing is specified, which is the default, then effectively you end up with a simple list of lights.

So from the Model, select the Equipment like:

Screenshot 2021-01-04 at 22.48.35

The Snug Room (location) has Snug Lights (the Equipment)

If you click on Add Metadata, you get these options:

And then to achieve your goal of showing a Single / Summary / Group line on a list of Equipment items – you want to select the Default List Item Widget

Which then gives you this configuration page:

The Long answer is I wanted the best of all worlds.

In the example below, like your multiple Lamp requirement, I didn’t want the Room (Location Card) to show every single Point in ‘list fashion’ but to show the Equipment in summary form , HOWEVER I did want to take advantage of the built-in at-a-glance modules - there is an excellent write up on these here - these are the fabulous icons automatically generated on the Location card indicating Windows open, Blinds open, Lights on etc.

Also, in the case of my Sonos devices I wanted to show the device; but once selected I wanted an accordion list providing two sub-options - the first option being the brilliant Sonos Multi Room widget from @buschif4 and the 2nd option being a list of all the Sonos points should a user want to play around with an individual Point/Channel of the Sonos thing.

And then finally I also wanted on the same Equipment tab on the Location Card to also display an individual Point (the Sonos Volume) as I guessed that one of the reasons the users would come here would be to control the volume quickly.

I know – best of all worlds – super greedy of me :laughing:

I achieved this by adding an intermediate, ‘dummy’ piece of equipment, in this case a Sonos Speaker within another Speaker Group.
The Default List Item metadata on the holding / dummy equipment speaker is configured like this.

Here is the UI for the metadata.

All I actually changed / added was to specify

  1. that my 2 option accordion (widget below) would pop up rather than a list of all items
  2. the state of the holding / dummy group should show the state of the real speaker

And here is the YAML for the default list item widget

value: " "
config:
  action: popup
  actionModal: widget:widget_sonoslist
  actionModalConfig:
item: SonosSnug
zone: Snug
  item: SonosSnug_State

So, when you click on the Location (Room) card; it looks like this

When you click on the dummy equipment group, you are then calling the accordion widget below

Again; thank you again @buschif4 for your wonderful Sonos Multi Room widget; which I just slightly adapted

The YAML for the accordion list is:

uid: widget_sonoslist
tags: []
props:
  parameters:
- context: item
  description: An item to control
  label: Item
  name: item
  required: false
  type: TEXT
- label: Zone
  name: zone
  required: false
  type: TEXT
timestamp: Dec 15, 2020, 10:13:06 AM
component: f7-block
config:
  padding: 0px
  margin: 0px
slots:
  default:
- component: oh-grid-row
  config:
    padding: 0px
    margin: 0px
  slots:
    default:
      - component: oh-grid-col
        config:
          padding: 0px
          margin: 0px
        slots:
          default:
            - component: oh-list
              config:
                padding: 0px
                margin: 0px
                accordionList: true
              slots:
                default:
                  - component: oh-list-item
                    config:
                      padding: 0px
                      margin: 0px
                      title: Sonos Music System
                      icon: oh:speaker
                      badge: OK
                      badgeColor: green
                    slots:
                      accordion:
                        - component: oh-list
                          config:
                            accordionList: true
                          slots:
                            default:
                              - component: oh-list-item
                                config:
                                  title: Sonos Multi Room
                                  action: popup
                                  actionModal: widget:widget_SonosPlayer
                                  actionModalConfig:
                                    itemTitle: =props.item + '_MediaTitle'
                                    itemAlbum: =props.item + '_CurrentAlbum'
                                    itemArtist: =props.item + '_MediaArtist'
                                    itemCover: =props.item + '_CurrentAlbumCoverArt'
                                    itemPlayer: =props.item + '_MediaControl'
                                    itemVolume: =props.item + '_Volume'
                                    itemShuffle: =props.item + '_Shuffle'
                                    itemRepeat: =props.item + '_Repeat'
                                    propZoneName: =props.zone
                                    itemMaster: =props.item
                                    propZoneArray: '["Snug", "SonosSnug_MediaControl", "SonosSnug_Volume", "SonosSnug_Coordinator"]["Office", "SonosOffice_MediaControl", "SonosOffice_Volume", "SonosOffice_Coordinator"]["Kitchen", "SonosKitchen_MediaControl",  "SonosKitchen_Volume", "SonosKitchen_Coordinator"]["Guest Chillout", "SonosGEChillout_MediaControl",  "SonosGEChillout_Volume", "SonosGEChillout_Coordinator"]["F2 Chillout", "SonosF2Chillout_MediaControl",  "SonosF2Chillout_Volume", "SonosF2Chillout_Coordinator"]["Gym", "SonosGym_MediaControl", "SonosGym_Volume", "SonosGym_Coordinator"]["Master Bedroom", "SonosMasterBedroom_MediaControl", "SonosMasterBedroom_Volume", "SonosMasterBedroom_Coordinator"]["Bedroom3",  "SonosFFBedroom3_MediaControl", "SonosFFBedroom3_Volume", "SonosFFBedroom3_Coordinator"]["Kennel",  "SonosKennel_MediaControl", "SonosFFBedroom3_Volume", "SonosKennel_Coordinator"]'
                                    propWidgetTitle: =props.zone
                                    itemCoordinator: =props.item + '_Coordinator'
                                    itemSonosRule: Sonos_Multiroom_Control
                              - component: oh-list-item
                                config:
                                  title: Sonos Single Room
                                  action: popup
                                  actionModal: widget:widget_SonosPlaySingleRoom
                                  actionModalConfig:
                                    item: =props.item

Which then gives the multi room function

The 2nd option on my two option accordion list (It felt good at the time ) :rofl: then provides the Sonos Points – this is what we/I didn’t want showing on the initial Location card for the Room

And here is the Yaml for that

uid: widget_SonosPlaySingleRoom
tags:
  - LG TV
  - TV
props:
  parameters:
    - context: item
      description: An item to control
      label: Item
      name: item
      required: false
      type: TEXT
  parameterGroups: []
timestamp: Dec 15, 2020, 10:46:30 AM
component: f7-block
config:
  padding: 0px
  margin: 0px
slots:
  default:
    - component: oh-grid-row
      config:
        padding: 0px
        margin: 0px
      slots:
        default:
          - component: oh-grid-col
            config:
              padding: 0px
              margin: 0px
            slots:
              default:
                - component: oh-list
                  config:
                    padding: 0px
                    margin: 0px
                    accordionList: true
                  slots:
                    default:
                      - component: oh-label-item
                        config:
                          item: =props.item + '_CurrentAlbum'
                          title: Current Album
                          icon: oh:album
                      - component: oh-label-item
                        config:
                          item: =props.item + '_CurrentTrack'
                          title: Current Track
                          icon: oh:song_name
                      - component: oh-label-item
                        config:
                          item: =props.item + '_MediaArtist'
                          title: Media Artist
                          icon: oh:artist
                      - component: oh-label-item
                        config:
                          action: options
                          actionItem: =props.item + '_Repeat'
                          item: =props.item + '_Repeat'
                          title: Repeat
                          icon: oh:repeat
                      - component: oh-toggle-item
                        config:
                          item: =props.item + '_Shuffle'
                          title: Shuffle
                          icon: oh:shuffle
                          iconUseState: true
                      - component: oh-player-item
                        config:
                          item: =props.item + '_MediaControl'
                          title: Sonos Media Control
                          icon: oh:MediaControl
                      - component: oh-slider-item
                        config:
                          scale: true
                          label: true
                          scaleSubSteps: 5
                          min: 0
                          max: 100
                          item: =props.item + '_Volume'
                          title: Sonos Volume
                          icon: oh:SoundVolume
                          iconUseState: true
                      - component: oh-list-item
                        config:
                          title: Playlist Favorites 1
                          icon: f7:heart
                      - component: oh-list-item
                        config:
                          title: Playlist Favorites 2
                          icon: f7:heart

Hoping the short one answers your question, and the longer explanation comes in handy for others :wink:

4 Likes

Hi Andy,
Thanks for taking the time to explain your approach in detail - especially the trick with the dummy group is really great.

Thanks again, and Happy New Year :slightly_smiling_face:

Thanks a lot for your awesome example, what i still don’t get is how you achieve to have tabs for equipment and properties displayed in the location card:

This is automatic if you have both equipment and points/properties directly below the location.

2 Likes

Thanks, that was the missing link :wink:

I don’t think it would do any harm to point out the very nice demo, which can be accessed via the link https://demo.openhab.org.
You can also log in as an admin (User: demo, PW: demo) and take your time to see how some basic things can be realised under OH 3.

2 Likes