AIoT.IO.VN
AIoT.IO.VN
SmartHome SERIES
🌐 VI • EN

[OpenHAB] Share a Remote-Control Widget for LG WebOS TV

Ng Nghia Phan • • ⚡ 6 min read • -- views • --
VI EN
TABLE OF CONTENTS (Nhấn để xem)

Requirements

  • OpenHAB version: 4.3.3
  • The LG WebOS binding is installed.

I redesigned this widget based on widgets shared on the OpenHAB community site. If you copy it, please keep the attribution. ^^.

Usage

  • Open MENU > Developer Tools > Widgets, add a new widget, paste the code, and enjoy.
uid: LGWebOSremote
tags: []
props:
  parameters:
    - context: item
      description: Select the RCButton item
      label: Simulate a Remote Control button press
      name: item
      required: true
      type: TEXT
    - context: item
      description: Select the Power switch item
      label: Power ON/OFF TV
      name: power
      required: true
      type: TEXT
    - context: item
      description: Select the Mute switch item
      label: Mute audio of the device
      name: mute
      required: true
      type: TEXT
  parameterGroups: []
timestamp: Mar 11, 2025, 8:00:38 PM
component: f7-card
config:
  style:
    --f7-card-margin-horizontal: 0px
    background-color: rgb(26, 26, 26)
    border-radius: 50px
    height: 48rem
    width: 23rem
slots:
  default:
    - component: Label
      config:
        style:
          color: white
          font-size: 18px
          left: 20px
          top: 22px
          line-height: 32px
          overflow: hidden
          position: absolute
          text-overflow: ellipsis
          text-shadow: -1px 1px 1px hsl(0,0%,66%)
          white-space: nowrap
        text: ="LG WebOS TV"
    - component: oh-button
      config:
        action: command
        actionCommand: "=(items[props.power].state === 'OFF') ? 'ON' : 'OFF' "
        actionItem: =props.power
        iconF7: power
        iconSize: 30
        color: white
        style:
          background-color: rgb(53,53,53)
          color: "=(items[props.power].state === 'OFF') ? 'green' : 'red' "
          display: flex
          border-radius: 50%
          height: 60px
          left: 154px
          position: absolute
          top: 10px
          width: 60px
    - component: oh-button
      config:
        action: command
        actionCommand: HOME
        actionItem: =props.item
        iconF7: house
        iconSize: 30
        style:
          background-color: rgb(53,53,53)
          border-radius: 50px 0 0 50px
          color: white
          display: flex
          font-size: 25px
          height: 60px
          left: 45px
          position: absolute
          top: 80px
          width: 136px
    - component: oh-button
      config:
        action: command
        actionCommand: EXIT
        actionItem: =props.item
        text: THOÁT
        style:
          background-color: rgb(53,53,53)
          border-radius: 0 50px 50px 0
          color: white
          display: flex
          font-size: 25px
          height: 60px
          left: 187px
          position: absolute
          top: 80px
          width: 136px
    - component: oh-button
      config:
        action: command
        actionCommand: VOLUMEUP
        actionItem: =props.item
        iconF7: plus
        iconSize: 35
        style:
          background-color: rgb(53,53,53)
          border-radius: 50px 50px 0 0
          color: white
          display: flex
          font-size: 25px
          height: 95px
          left: 11px
          position: absolute
          top: 153px
          width: 60px
          z-index: 2
    - component: oh-button
      config:
        action: command
        actionCommand: VOLUMEDOWN
        actionItem: =props.item
        iconF7: minus
        iconSize: 35
        style:
          background-color: rgb(53,53,53)
          border-radius: 0 0 50px 50px
          color: white
          display: flex
          font-size: 25px
          height: 95px
          left: 11px
          position: absolute
          top: 253px
          width: 60px
          z-index: 2
    - component: oh-button
      config:
        action: command
        actionCommand: UP
        actionItem: =props.item
        iconF7: chevron_up
        iconSize: 35
        style:
          border-radius: 50%
          color: white
          display: flex
          font-size: 25px
          height: 60px
          left: 154px
          position: absolute
          top: 150px
          width: 60px
          z-index: 2
    - component: oh-button
      config:
        action: command
        actionCommand: RIGHT
        actionItem: =props.item
        iconF7: chevron_right
        iconSize: 35
        style:
          border-radius: 50%
          color: white
          display: flex
          font-size: 25px
          height: 60px
          right: 84px
          position: absolute
          top: 220px
          width: 60px
          z-index: 2
    - component: oh-button
      config:
        action: command
        actionCommand: DOWN
        actionItem: =props.item
        iconF7: chevron_down
        iconSize: 35
        style:
          border-radius: 50%
          color: white
          display: flex
          font-size: 25px
          height: 60px
          left: 154px
          position: absolute
          top: 290px
          width: 60px
          z-index: 2
    - component: oh-button
      config:
        action: command
        actionCommand: LEFT
        actionItem: =props.item
        iconF7: chevron_left
        iconSize: 35
        style:
          border-radius: 50%
          color: white
          display: flex
          font-size: 25px
          height: 60px
          left: 84px
          position: absolute
          top: 220px
          width: 60px
          z-index: 2
    - component: f7-badge
      config:
        style:
          border: white solid 1px
          background-color: rgb(53,53,53)
          border-radius: 50%
          height: 65px
          left: 150px
          position: absolute
          top: 220px
          width: 65px
          z-index: 2
    - component: f7-badge
      config:
        style:
          border-radius: 50%
          background-color: rgb(53,53,53)
          height: 200px
          left: 84px
          position: absolute
          top: 150px
          width: 200px
          z-index: 1
    - component: oh-button
      config:
        action: command
        actionCommand: ENTER
        actionItem: =props.item
        style:
          border-radius: 50px
          color: white
          display: flex
          font-size: 25px
          height: 65px
          left: 149px
          position: absolute
          top: 220px
          width: 65px
          z-index: 2
        text: OK
    - component: oh-button
      config:
        action: command
        actionCommand: CHANNELUP
        actionItem: =props.item
        iconF7: arrow_up
        iconSize: 35
        style:
          background-color: rgb(53,53,53)
          border-radius: 50px 50px 0 0
          color: white
          display: flex
          font-size: 25px
          height: 95px
          left: 297px
          position: absolute
          top: 153px
          width: 60px
          z-index: 2
    - component: oh-button
      config:
        action: command
        actionCommand: CHANNELDOWN
        actionItem: =props.item
        iconF7: arrow_down
        iconSize: 35
        style:
          background-color: rgb(53,53,53)
          border-radius: 0 0 50px 50px
          color: white
          display: flex
          font-size: 25px
          height: 95px
          left: 297px
          position: absolute
          top: 253px
          width: 60px
          z-index: 2
    - component: oh-button
      config:
        action: command
        actionCommand: BACK
        actionItem: =props.item
        iconF7: arrow_uturn_left
        iconSize: 25
        style:
          background-color: rgb(53,53,53)
          border-radius: 10px
          color: white
          display: flex
          font-size: 11px
          height: 55px
          left: 11px
          position: absolute
          top: 357px
          width: 90px
        text: BACK
    - component: oh-button
      config:
        action: command
        actionCommand: MENU
        actionItem: =props.item
        style:
          background-color: rgb(53,53,53)
          border-radius: 10px
          color: white
          display: flex
          height: 55px
          left: 140px
          position: absolute
          top: 357px
          width: 90px
        text: MENU
    - component: oh-button
      config:
        action: command
        actionCommand: INFO
        actionItem: =props.item
        text: INFO
        style:
          background-color: rgb(53,53,53)
          color: white
          display: flex
          height: 55px
          left: 267px
          position: absolute
          top: 357px
          width: 90px
    - component: oh-button
      config:
        action: command
        actionCommand: MUTE
        actionItem: =props.item
        color: "=(items[props.mute].state === 'OFF') ? 'white' : 'red'"
        iconF7: speaker_slash_rtl
        iconSize: 30
        style:
          background-color: rgb(53,53,53)
          border-radius: 50px 0 0 50px
          display: flex
          font-size: 25px
          height: 60px
          left: 44px
          position: absolute
          top: 428px
          width: 90px
    - component: oh-button
      config:
        action: command
        actionCommand: PAUSE
        actionItem: =props.item
        iconF7: pause_fill
        iconSize: 30
        style:
          background-color: rgb(53,53,53)
          color: white
          display: flex
          height: 60px
          left: 140px
          position: absolute
          top: 428px
          width: 90px
    - component: oh-button
      config:
        action: command
        actionCommand: PLAY
        actionItem: =props.item
        iconF7: play_fill
        iconSize: 30
        style:
          background-color: rgb(53,53,53)
          border-radius: 0 50px 50px 0
          color: white
          display: flex
          height: 60px
          left: 236px
          position: absolute
          top: 428px
          width: 90px
    - component: oh-button
      config:
        action: command
        actionCommand: 1
        actionItem: =props.item
        style:
          background-color: rgb(53,53,53)
          border-radius: 10px
          color: white
          display: flex
          font-size: 25px
          height: 60px
          left: 44px
          position: absolute
          top: 494px
          width: 90px
        text: 1
    - component: oh-button
      config:
        action: command
        actionCommand: 2
        actionItem: =props.item
        style:
          background-color: rgb(53,53,53)
          border-radius: 10px
          color: white
          display: flex
          font-size: 25px
          height: 60px
          left: 140px
          position: absolute
          top: 494px
          width: 90px
        text: 2
    - component: oh-button
      config:
        action: command
        actionCommand: 3
        actionItem: =props.item
        style:
          background-color: rgb(53,53,53)
          border-radius: 10px
          color: white
          display: flex
          font-size: 25px
          height: 60px
          left: 236px
          position: absolute
          top: 494px
          width: 90px
        text: 3
    - component: oh-button
      config:
        action: command
        actionCommand: 4
        actionItem: =props.item
        style:
          background-color: rgb(53,53,53)
          border-radius: 10px
          color: white
          display: flex
          font-size: 25px
          height: 60px
          left: 44px
          position: absolute
          top: 560px
          width: 90px
        text: 4
    - component: oh-button
      config:
        action: command
        actionCommand: 5
        actionItem: =props.item
        style:
          background-color: rgb(53,53,53)
          border-radius: 10px
          color: white
          display: flex
          font-size: 25px
          height: 60px
          left: 140px
          position: absolute
          top: 560px
          width: 90px
        text: 5
    - component: oh-button
      config:
        action: command
        actionCommand: 6
        actionItem: =props.item
        style:
          background-color: rgb(53,53,53)
          border-radius: 10px
          color: white
          display: flex
          font-size: 25px
          height: 60px
          left: 236px
          position: absolute
          top: 560px
          width: 90px
        text: 6
    - component: oh-button
      config:
        action: command
        actionCommand: 7
        actionItem: =props.item
        style:
          background-color: rgb(53,53,53)
          border-radius: 10px
          color: white
          display: flex
          font-size: 25px
          height: 60px
          left: 44px
          position: absolute
          top: 625px
          width: 90px
        text: 7
    - component: oh-button
      config:
        action: command
        actionCommand: 8
        actionItem: =props.item
        style:
          background-color: rgb(53,53,53)
          border-radius: 10px
          color: white
          display: flex
          font-size: 25px
          height: 60px
          left: 140px
          position: absolute
          top: 625px
          width: 90px
        text: 8
    - component: oh-button
      config:
        action: command
        actionCommand: 9
        actionItem: =props.item
        style:
          background-color: rgb(53,53,53)
          border-radius: 10px
          color: white
          display: flex
          font-size: 25px
          height: 60px
          left: 236px
          position: absolute
          top: 625px
          width: 90px
        text: 9
    - component: oh-button
      config:
        action: command
        actionCommand: 0
        actionItem: =props.item
        style:
          background-color: rgb(53,53,53)
          border-radius: 10px
          color: white
          display: flex
          font-size: 25px
          height: 60px
          left: 140px
          position: absolute
          top: 690px
          width: 90px
        text: "0"
TAGS: #openhab

Discussion & Feedback 0

Share your questions, feedback or insights with the community