OH Slider Widget Not Movable/Interactive in Custom Widget

I’m creating a custom widget with an oh-slider component that displays correctly but cannot be moved/interacted with. The slider appears with the correct styling and current value, but dragging the knob or clicking on the track does nothing.

Widget Configuration:

- component: oh-slider
  config:
    item: =props.dimmer_item
    min: 0
    max: 100
    style:
      --f7-range-bar-size: 6px
      --f7-range-bar-border-radius: 3px
      --f7-range-knob-size: 24px
      --f7-range-active-color: orange
      width: 150px

What I’ve tried:

  1. Removing fixed width from the slider
  2. Wrapping in a container div
  3. Adding step, scale, and other properties
  4. Different CSS variable approaches
  5. Using --f7-range-size instead of width
  6. Verifying the item is writable (it is - other controls work on the same item)

Context:

· The slider is inside an expandable card widget
· Other interactive elements (buttons, toggle) in the same widget work fine
· The item updates correctly when changed from other controls
· The slider shows the current value correctly
· Only the interactivity is missing

Complete yaml:

uid: wohnen_modern_glass_v3
tags:
  - light
  - dimmer
  - scene
props:
  parameters:
    - description: Widget Title
      name: title
      required: true
      type: TEXT
    - context: item
      description: Light Switch Item
      label: Light Item
      name: light_item
      required: true
      type: TEXT
    - context: item
      description: Dimmer Item
      label: Dimmer Item
      name: dimmer_item
      required: true
      type: TEXT
    - context: item
      description: Scene 1 Item
      label: Scene 1 Item
      name: scene1_item
      required: false
      type: TEXT
    - context: item
      description: Scene 2 Item
      label: Scene 2 Item
      name: scene2_item
      required: false
      type: TEXT
  parameterGroups: []
timestamp: Jan 23, 2026, 10:23:09 AM
component: f7-card
config:
  expandable: true
  swipeToClose: true
  backdrop: true
  noShadow: false
  class:
    - card-expandable-animate-width
  style:
    max-height: 150px
    min-width: 300px
    margin: 5px
    background: linear-gradient(145deg, #ffffff, #f5f7fa)
    border: none
    border-radius: 25px
    box-shadow: 0px 10px 30px rgba(0,0,0,0.08)
slots:
  default:
    - component: oh-button
      config:
        iconF7: gear
        iconSize: 25px
        color: "#2c3e50"
        style:
          position: absolute
          top: 0
          right: 0
          padding-top: 15px
          padding-bottom: 65px
          z-index: 999
        class:
          - cell-open-button
          - card-opened-fade-out
    - component: f7-card-content
      slots:
        default:
          - component: oh-button
            config:
              iconF7: xmark_circle_fill
              iconSize: 25px
              color: "#2c3e50"
              style:
                position: absolute
                top: 0
                right: 0
                padding-top: 15px
                padding-bottom: 65px
                z-index: 999
              class:
                - card-opened-fade-in
                - cell-close-button
                - card-close
          - component: f7-block
            config:
              class:
                - no-padding
                - card-prevent-open
              style:
                margin: 0px
                height: 135px
            slots:
              default:
                - component: f7-row
                  config:
                    style:
                      padding: 12px 16px
                      height: 100%
                  slots:
                    default:
                      - component: f7-col
                        config:
                          style:
                            width: 25%
                        slots:
                          default:
                            - component: oh-button
                              config:
                                iconF7: lightbulb_fill
                                iconSize: 65px
                                color: white
                                iconColor: "=items[props.light_item].state == 'ON' ? 'orange' : '#95a5a6'"
                                action: toggle
                                actionItem: =props.light_item
                                actionCommand: ON
                                actionCommandAlt: OFF
                                class:
                                  - card-prevent-open
                                style:
                                  padding-top: 15px
                                  height: 85px
                      - component: f7-col
                        config:
                          style:
                            width: 75%
                            display: flex
                            flex-direction: column
                            justify-content: space-between
                        slots:
                          default:
                            - component: Label
                              config:
                                text: "=props.title ? props.title : 'Light Control'"
                                class:
                                  - card-prevent-open
                                style:
                                  padding-left: 5px
                                  font-size: 28px
                                  font-weight: 800
                                  color: "#2c3e50"
                            - component: Label
                              config:
                                text: "=items[props.light_item].state == 'ON' ? 'Eingeschalten' : 'Ausgeschalten'"
                                class:
                                  - card-prevent-open
                                style:
                                  padding-left: 5px
                                  font-size: 14px
                                  color: "#95a5a6"
                                  font-weight: 600
                            - component: oh-slider
                              config:
                                item: =props.dimmer_item
                                min: 0
                                max: 100
                                color: orange
                                class:
                                  - card-prevent-open
                                style:
                                  --f7-range-bar-height: 6px
                                  --f7-range-knob-size: 16px
                                  --f7-range-bar-active-bg-color: orange
                                  width: 100%
                            - component: f7-row
                              slots:
                                default:
                                  - component: f7-col
                                    slots:
                                      default:
                                        - component: oh-button
                                          config:
                                            text: SZENE 1
                                            action: command
                                            actionItem: =props.scene1_item
                                            actionCommand: ON
                                            outline: true
                                            class:
                                              - card-prevent-open
                                            style:
                                              color: "#2c3e50"
                                              border-color: "#e0e0e0"
                                              border-radius: 10px
                                              font-size: 11px
                                              font-weight: 800
                                              height: 2.2em
                                              width: 100%
                                  - component: f7-col
                                    slots:
                                      default:
                                        - component: oh-button
                                          config:
                                            text: SZENE 2
                                            action: command
                                            actionItem: =props.scene2_item
                                            actionCommand: ON
                                            outline: true
                                            class:
                                              - card-prevent-open
                                            style:
                                              color: "#2c3e50"
                                              border-color: "#e0e0e0"
                                              border-radius: 10px
                                              font-size: 11px
                                              font-weight: 800
                                              height: 2.2em
                                              width: 100%
          - component: f7-block
            config:
              class:
                - card-prevent-open
                - card-content-padding
            slots:
              default:
                - component: f7-row
                  config:
                    style:
                      flex-direction: column
                      padding: 20px
                  slots:
                    default:
                      - component: f7-block
                        config:
                          style:
                            margin-bottom: 30px
                        slots:
                          default:
                            - component: span
                              config:
                                content: "=props.title"
                                style:
                                  font-size: 32px
                                  font-weight: 800
                                  color: "#2c3e50"
                            - component: span
                              config:
                                content: Settings
                                style:
                                  display: block
                                  font-size: 14px
                                  text-transform: uppercase
                                  color: "#95a5a6"
                                  font-weight: 700
                                  margin-top: 5px
                      - component: f7-block
                        config:
                          style:
                            display: flex
                            align-items: center
                            justify-content: space-between
                            width: 100%
                            padding: 16px 0
                            border-bottom: 1px solid rgba(0,0,0,0.1)
                        slots:
                          default:
                            - component: f7-block
                              config:
                                style:
                                  display: flex
                                  align-items: center
                              slots:
                                default:
                                  - component: f7-icon
                                    config:
                                      f7: bolt_fill
                                      size: 24
                                      style:
                                        color: orange
                                        margin-right: 12px
                                  - component: span
                                    config:
                                      content: Power
                                      style:
                                        font-weight: 600
                                        font-size: 16px
                                        color: "#2c3e50"
                            - component: oh-toggle
                              config:
                                item: =props.light_item
                                style:
                                  --f7-toggle-width: 50px
                                  --f7-toggle-height: 30px
                                  --f7-toggle-handle-size: 26px
                                  --f7-toggle-active-color: orange
                      - component: f7-block
                        config:
                          style:
                            display: flex
                            align-items: center
                            justify-content: space-between
                            width: 100%
                            padding: 16px 0
                        slots:
                          default:
                            - component: f7-block
                              config:
                                style:
                                  display: flex
                                  align-items: center
                              slots:
                                default:
                                  - component: f7-icon
                                    config:
                                      f7: sun_max_fill
                                      size: 24
                                      style:
                                        color: orange
                                        margin-right: 12px
                                  - component: span
                                    config:
                                      content: Brightness
                                      style:
                                        font-weight: 600
                                        font-size: 16px
                                        color: "#2c3e50"
                            - component: oh-slider
                              config:
                                item: =props.dimmer_item
                                min: 0
                                max: 100
                                style:
                                  --f7-range-bar-size: 6px
                                  --f7-range-bar-border-radius: 3px
                                  --f7-range-knob-size: 24px
                                  --f7-range-active-color: orange
                                  width: 150px
                      - component: f7-row
                        config:
                          style:
                            margin-top: 30px
                        slots:
                          default:
                            - component: f7-col
                              slots:
                                default:
                                  - component: oh-button
                                    config:
                                      text: SZENE 1
                                      action: command
                                      actionItem: =props.scene1_item
                                      actionCommand: ON
                                      fill: true
                                      color: orange
                                      style:
                                        border-radius: 10px
                                        font-size: 14px
                                        font-weight: 800
                                        height: 3em
                                        width: 100%
                            - component: f7-col
                              slots:
                                default:
                                  - component: oh-button
                                    config:
                                      text: SZENE 2
                                      action: command
                                      actionItem: =props.scene2_item
                                      actionCommand: ON
                                      fill: true
                                      color: orange
                                      style:
                                        border-radius: 10px
                                        font-size: 14px
                                        font-weight: 800
                                        height: 3em
                                        width: 100%
                                        margin-left: 10px

The widget code appears functional and the slider works when I do quick test on my system. What version of OH are you using (I’m using a 5.2 snapshot from a few weeks back)?

Mobile screen

Desktop

If you are not on the most recent version, then see if an update fixes the issue. MainUI is getting lots of small bug fixes with each update these days as all the minor issues with the new F7 version get ironed out.

Getting this error for latest snapshot build

2026-01-24 08:37:14.735 [ERROR] [.automation.jsscripting.file.deye.js] - Failed to execute script: TypeError: invokeMember (setTemplateUID) on com.oracle.truffle.host.adapters.SimpleRule$$Adapter failed due to: Unknown identifier: setTemplateUID

Same behaviour with latest snapshot…should I open a github issue?

I still can’t replicate the issue. Both sliders are fully interactive when I test the posted widget code. So, I wonder if there is something else going on.

Are you seeing this problem in the widget editor or only when you place the widget on a page?

Neither nor…

Hmmm…very strange.

What browser are you using? I’ve tested it on Firefox and Chrome and it works in both.

There’s very little way for the component itself to loose its interactivity. The most likely situation is that, for some reason when it is rendered in your system, there is some other transparent element on top of it so you can’t click on it. Try right clicking on the slider and selecting “inspect” from the context menu. If you don’t see some part of this html highlighted:

<div class="range-slider range-slider-horizontal color-orange oh-slider card-prevent-open" style="--f7-range-bar-height: 6px; --f7-range-knob-size: 16px; --f7-range-bar-active-bg-color: orange; width: 100%;">
  <!---->
  <div class="range-bar">
    <div class="range-bar-active" style="width: 68%;">
    </div>
  </div>
  <div class="range-knob-wrap range-knob-active-state" style="left: 190.4px;">
    <div class="range-knob">
    </div>
  </div>
</div>

then that is becuase there is something else preventing you clicking on the slider.

See here…

I tried chrome, Firefox or openhab App on android

I’ve just updated to the latest snapshot and I still cannot replicate the issue either in the widget editor or on a page. So, this is almost certainly not an OH bug, but more likely something specific to your system.

Definitely check to see if an error appears in your browser console when you load the page or open the card.

Other than that, all I can suggest at this point is that you try several variations to see if you can narrow down the problem:

  • What happens if you replace the slider with a stepper? Can you interact with the stepper?
  • What happens if instead of using props.dimmer_item you put the item name in directly?
  • What happens if you use a Number item with no units?
  • What happens if the slider is the only element that appears when the card opens?

let me check this this week