a UI simple widget to use with the thermostatic valves. In my case with sonoff TRVZB.
Screenshots
Resources
uid: thermostatic-valve-control
tags: []
props:
parameters:
- description: Thermostat to control
label: Description
name: Title
required: false
type: TEXT
- context: item
description: Temperature Room
label: Ist Temperature Item
name: tempItem
required: true
type: TEXT
- context: item
description: Valve System Mode
label: System Mode Item
name: systemModeItem
required: true
type: TEXT
- context: item
description: Temperature Setpoint
label: Setpoint Item
name: setpointItem
required: true
type: TEXT
- context: item
description: Battery Status Item
label: Battery Status Item
name: batteryStatusItem
required: false
type: TEXT
- context: item
description: Running Mode Item
label: Running Mode Item
name: runningModeItem
required: false
type: TEXT
timestamp: Jan 1, 2025, 4:51:46 PM
component: f7-card
config:
noBorder: false
noShadow: false
outline: false
padding: true
style:
--f7-card-border-radius: 15px
--f7-card-box-shadow: 0px 5px 10px rgba(0,0,0,0.15)
--f7-card-content-padding-horizontal: 16px
--f7-card-content-padding-vertical: 0px
--f7-card-header-font-size: 14px
--f7-card-header-font-weight: 600
--f7-card-margin-horizontal: 5px
width: 100%
slots:
content:
- component: oh-label-card
config:
action: analyzer
actionAnalyzerCoordSystem: time
actionAnalyzerItems: =[props.tempItem,props.setpointItem]
icon: f7:thermometer
item: =(props.tempItem)
noShadow: true
title: =(props.Title)
trendItem: =(props.tempItem)
vertical: false
- component: oh-stepper-card
config:
autorepeat: true
color-theme: gray
fill: false
item: =(props.setpointItem)
large: false
max: 30
min: 10
noBorder: true
noShadow: true
raised: true
round: true
small: true
step: 0.5
- component: f7-row
config:
class:
- padding-bottom
slots:
default:
- component: f7-col
config:
width: 100
slots:
default:
- component: f7-segmented
config:
class:
- segmented-round
colorTheme: gray
outline: true
raised: true
round: true
strong: false
style:
width: 100%
slots:
default:
- component: oh-button
config:
action: command
actionCommand: off
actionItem: =props.systemModeItem
active: =(items[props.systemModeItem].state == 'off')
round: true
small: false
text: off
textColor: white
title: Off
style:
font-size: 16pt
- component: oh-button
config:
action: command
actionCommand: auto
actionItem: =props.systemModeItem
active: =(items[props.systemModeItem].state == 'auto')
round: true
small: false
text: auto
textColor: white
title: Auto
style:
font-size: 16pt
- component: oh-button
config:
action: command
actionCommand: heat
actionItem: =props.systemModeItem
active: =(items[props.systemModeItem].state == 'heat')
round: true
small: false
text: heat
textColor: white
title: Heat
style:
font-size: 16pt
- component: f7-row
config:
class:
- padding-bottom
slots:
default:
- component: f7-col
config:
width: 50
style:
display: flex
justify-content: center
align-items: center
slots:
default:
- component: oh-label-card
config:
item: =(props.batteryStatusItem)
title: Battery
noShadow: true
value: =(items[props.batteryStatusItem].displayState) + '%'
style:
font-size: 16pt
color: green
text-align: center
- component: f7-col
config:
width: 50
style:
display: flex
justify-content: center
align-items: center
slots:
default:
- component: oh-label-card
config:
item: =(props.runningModeItem)
title: State
noShadow: true
value: =(items[props.runningModeItem].state)
style:
font-size: 16pt
color: red
text-align: center