Home Assistant - 提取变量的正确语法
Home Assistant - correct syntax for extracting variable
所以我正在为我的三星洗衣机和烘干机使用 SmartThings API 集成,并试图将以下项目提取到传感器中-
剩余时间
儿童锁
sensor.smartthings_dryer_api的格式如下:
components:
main:
custom.dryerWrinklePrevent:
operatingState:
value: ready
timestamp: '2022-03-12T09:09:09.254Z'
dryerWrinklePrevent:
value: 'off'
timestamp: '2022-03-12T09:09:09.430Z'
samsungce.dryerDryingTemperature:
dryingTemperature:
value: medium
timestamp: '2022-05-12T14:29:41.834Z'
supportedDryingTemperature:
value:
- none
- extraLow
- low
- mediumLow
- medium
- high
timestamp: '2021-07-14T01:14:32.968Z'
samsungce.welcomeMessage:
welcomeMessage:
value: null
samsungce.dryerCyclePreset:
maxNumberOfPresets:
value: 10
timestamp: '2021-07-14T04:24:01.303Z'
presets:
value: null
samsungce.deviceIdentification:
micomAssayCode:
value: '20233745'
timestamp: '2021-07-17T18:01:23.747Z'
modelName:
value: null
serialNumber:
value: null
serialNumberExtra:
value: null
modelClassificationCode:
value: 300000010011
timestamp: '2021-07-14T01:14:32.968Z'
description:
value: DA_WM_A51_20_/DC92-02
timestamp: '2021-07-17T02:26:34.816Z'
binaryId:
value: DA_WM_A51_20_COMMON
timestamp: '2021-07-14T04:17:43.540Z'
switch:
switch:
value: 'off'
timestamp: '2022-05-12T14:29:40.957Z'
samsungce.dryerFreezePrevent:
operatingState:
value: null
ocf:
st:
value: null
mndt:
value: null
mnfv:
value: DA_WM_A51_20_COMMON_30
timestamp: '2021-07-14T04:23:58.420Z'
mnhw:
value: ARTIK051
timestamp: '2021-07-14T04:17:42.176Z'
di:
value: 0c9488c1-348b
timestamp: '2021-07-14T01:14:29.964Z'
mnsl:
value: http://www.samsung.com
timestamp: '2021-10-28T23:28:25.361Z'
dmv:
value: res.1.1.0,sh.1.1.0
timestamp: '2021-10-28T23:28:25.361Z'
'n':
value: '[dryer] Samsung'
timestamp: '2021-07-14T01:14:29.964Z'
mnmo:
value: DA_WM_A51_20_COMMON|20233741|3000000
timestamp: '2021-07-14T04:17:42.176Z'
vid:
value: DA-WM-WD-000001
timestamp: '2021-07-14T01:14:29.964Z'
mnmn:
value: Samsung Electronics
timestamp: '2021-07-14T01:14:29.964Z'
mnml:
value: http://www.samsung.com
timestamp: '2021-07-14T01:14:29.964Z'
mnpv:
value: DAWIT 2.0
timestamp: '2021-07-14T04:17:42.176Z'
mnos:
value: TizenRT 1.0 + IPv6
timestamp: '2021-07-14T04:17:42.176Z'
pi:
value: 0c9488c1-348b
timestamp: '2021-07-14T01:14:29.964Z'
icv:
value: core.1.1.0
timestamp: '2021-07-14T01:14:29.964Z'
custom.dryerDryLevel:
dryerDryLevel:
value: normal
timestamp: '2022-05-12T14:29:41.830Z'
supportedDryerDryLevel:
value:
- none
- damp
- less
- normal
- more
- very
timestamp: '2021-07-14T01:14:32.968Z'
samsungce.dryerAutoCycleLink:
dryerAutoCycleLink:
value: 'off'
timestamp: '2021-07-14T01:14:32.968Z'
samsungce.dryerCycle:
dryerCycle:
value: Table_00_Course_01
timestamp: '2022-05-12T14:29:41.271Z'
supportedCycles:
value:
- cycle: '01'
supportedOptions:
dryingLevel:
raw: D33E
default: normal
options:
- damp
- less
- normal
- more
- very
dryingTemperature:
raw: '8410'
default: medium
options:
- medium
- cycle: 9C
supportedOptions:
dryingLevel:
raw: D33E
default: normal
options:
- damp
- less
- normal
- more
- very
dryingTemperature:
raw: '8520'
default: high
options:
- high
- cycle: A5
supportedOptions:
dryingLevel:
raw: D33E
default: normal
options:
- damp
- less
- normal
- more
- very
dryingTemperature:
raw: '8520'
default: high
options:
- high
- cycle: 9E
supportedOptions:
dryingLevel:
raw: D33E
default: normal
options:
- damp
- less
- normal
- more
- very
dryingTemperature:
raw: '8308'
default: mediumLow
options:
- mediumLow
- cycle: 9B
supportedOptions:
dryingLevel:
raw: D520
default: very
options:
- very
dryingTemperature:
raw: '8520'
default: high
options:
- high
- cycle: '27'
supportedOptions:
dryingLevel:
raw: D000
options: []
dryingTemperature:
raw: '8520'
default: high
options:
- high
- cycle: E5
supportedOptions:
dryingLevel:
raw: D000
options: []
dryingTemperature:
raw: '8000'
options: []
- cycle: A0
supportedOptions:
dryingLevel:
raw: D000
options: []
dryingTemperature:
raw: '8000'
options: []
- cycle: A4
supportedOptions:
dryingLevel:
raw: D000
options: []
dryingTemperature:
raw: 853E
default: high
options:
- extraLow
- low
- mediumLow
- medium
- high
- cycle: A6
supportedOptions:
dryingLevel:
raw: D000
options: []
dryingTemperature:
raw: '8520'
default: high
options:
- high
- cycle: A3
supportedOptions:
dryingLevel:
raw: D308
default: normal
options:
- normal
dryingTemperature:
raw: '8410'
default: medium
options:
- medium
- cycle: A2
supportedOptions:
dryingLevel:
raw: D33E
default: normal
options:
- damp
- less
- normal
- more
- very
dryingTemperature:
raw: '8102'
default: extraLow
options:
- extraLow
timestamp: '2021-07-14T01:14:32.968Z'
referenceTable:
value:
id: Table_00
timestamp: '2021-07-14T01:14:32.968Z'
custom.disabledCapabilities:
disabledCapabilities:
value:
- samsungce.dryerCyclePreset
- samsungce.dryerFreezePrevent
- samsungce.welcomeMessage
timestamp: '2021-10-28T23:28:27.622Z'
samsungce.driverVersion:
versionNumber:
value: 21082401
timestamp: '2021-10-28T17:10:18.181Z'
samsungce.kidsLock:
lockState:
value: unlocked
timestamp: '2021-07-14T01:14:32.968Z'
samsungce.detergentOrder:
alarmEnabled:
value: false
timestamp: '2021-07-14T01:14:32.968Z'
orderThreshold:
value: 0
unit: cc
timestamp: '2021-07-14T01:14:32.968Z'
powerConsumptionReport:
powerConsumption:
value:
energy: 1841800
deltaEnergy: 0
power: 0
powerEnergy: 0
persistedEnergy: 0
energySaved: 0
start: '2022-05-12T14:24:29Z'
end: '2022-05-12T14:29:13Z'
timestamp: '2022-05-12T14:29:13.497Z'
dryerOperatingState:
completionTime:
value: '2022-05-12T15:44:42Z'
timestamp: '2022-05-12T14:29:42.244Z'
machineState:
value: stop
timestamp: '2022-05-12T14:29:41.386Z'
supportedMachineStates:
value: null
dryerJobState:
value: none
timestamp: '2022-05-12T14:29:41.395Z'
samsungce.detergentState:
remainingAmount:
value: 0
unit: cc
timestamp: '2021-07-14T01:14:32.968Z'
dosage:
value: 0
unit: cc
timestamp: '2021-07-14T01:14:32.968Z'
initialAmount:
value: 0
unit: cc
timestamp: '2021-07-14T01:14:32.968Z'
detergentType:
value: none
timestamp: '2021-07-14T01:14:32.968Z'
samsungce.dryerDelayEnd:
remainingTime:
value: 0
unit: min
timestamp: '2021-10-28T17:10:18.497Z'
refresh: {}
custom.jobBeginningStatus:
jobBeginningStatus:
value: null
execute:
data:
value:
payload:
rt:
- x.com.samsung.da.operation
if:
- oic.if.baseline
- oic.if.a
x.com.samsung.da.state: Ready
x.com.samsung.da.remainingTime: '01:15:00'
x.com.samsung.da.progressPercentage: '1'
x.com.samsung.da.progress: None
x.com.samsung.da.delayEndTime: '00:00:00'
x.com.samsung.da.supportedProgress:
- None
- Drying
- Cooling
- Finish
data:
href: /operational/state/vs/0
timestamp: '2022-05-12T14:29:42.244Z'
remoteControlStatus:
remoteControlEnabled:
value: 'false'
timestamp: '2021-07-14T01:18:09.064Z'
custom.supportedOptions:
referenceTable:
value:
id: Table_00
timestamp: '2021-07-14T01:14:32.968Z'
supportedCourses:
value:
- '01'
- 9C
- A5
- 9E
- 9B
- '27'
- E5
- A0
- A4
- A6
- A3
- A2
timestamp: '2021-07-14T01:14:32.968Z'
samsungce.dryerDryingTime:
supportedDryingTime:
value:
- '0'
- '20'
- '30'
- '40'
- '50'
- '60'
timestamp: '2021-07-14T01:14:32.968Z'
dryingTime:
value: '0'
unit: min
timestamp: '2022-05-12T14:29:42.043Z'
friendly_name: SmartThings dryer API
我已经尝试了我能想到的 state_attr 的所有变体来获取值,但没有任何效果。我还需要提取剩余时间的 'minutes' 和 'hours' 部分并将其转换为剩余分钟数。
变量路径如下:
components:
main:
execute:
data:
value:
payload:
if: (?????)
x.com.samsung.da.remainingTime: '01:15:00' (need just hour and minutes as total minutes)
和
components:
main:
samsungce.kidsLock:
lockState:
value: unlocked
{{ state_attr('sensor.smartthings_dryer_api', 'components').main.execute.data.value.payload['x.com.samsung.da.remainingTime'] }}
{{ state_attr('sensor.smartthings_dryer_api', 'components').main['samsungce.kidsLock'].lockState.value }}
所以我正在为我的三星洗衣机和烘干机使用 SmartThings API 集成,并试图将以下项目提取到传感器中- 剩余时间 儿童锁
sensor.smartthings_dryer_api的格式如下:
components:
main:
custom.dryerWrinklePrevent:
operatingState:
value: ready
timestamp: '2022-03-12T09:09:09.254Z'
dryerWrinklePrevent:
value: 'off'
timestamp: '2022-03-12T09:09:09.430Z'
samsungce.dryerDryingTemperature:
dryingTemperature:
value: medium
timestamp: '2022-05-12T14:29:41.834Z'
supportedDryingTemperature:
value:
- none
- extraLow
- low
- mediumLow
- medium
- high
timestamp: '2021-07-14T01:14:32.968Z'
samsungce.welcomeMessage:
welcomeMessage:
value: null
samsungce.dryerCyclePreset:
maxNumberOfPresets:
value: 10
timestamp: '2021-07-14T04:24:01.303Z'
presets:
value: null
samsungce.deviceIdentification:
micomAssayCode:
value: '20233745'
timestamp: '2021-07-17T18:01:23.747Z'
modelName:
value: null
serialNumber:
value: null
serialNumberExtra:
value: null
modelClassificationCode:
value: 300000010011
timestamp: '2021-07-14T01:14:32.968Z'
description:
value: DA_WM_A51_20_/DC92-02
timestamp: '2021-07-17T02:26:34.816Z'
binaryId:
value: DA_WM_A51_20_COMMON
timestamp: '2021-07-14T04:17:43.540Z'
switch:
switch:
value: 'off'
timestamp: '2022-05-12T14:29:40.957Z'
samsungce.dryerFreezePrevent:
operatingState:
value: null
ocf:
st:
value: null
mndt:
value: null
mnfv:
value: DA_WM_A51_20_COMMON_30
timestamp: '2021-07-14T04:23:58.420Z'
mnhw:
value: ARTIK051
timestamp: '2021-07-14T04:17:42.176Z'
di:
value: 0c9488c1-348b
timestamp: '2021-07-14T01:14:29.964Z'
mnsl:
value: http://www.samsung.com
timestamp: '2021-10-28T23:28:25.361Z'
dmv:
value: res.1.1.0,sh.1.1.0
timestamp: '2021-10-28T23:28:25.361Z'
'n':
value: '[dryer] Samsung'
timestamp: '2021-07-14T01:14:29.964Z'
mnmo:
value: DA_WM_A51_20_COMMON|20233741|3000000
timestamp: '2021-07-14T04:17:42.176Z'
vid:
value: DA-WM-WD-000001
timestamp: '2021-07-14T01:14:29.964Z'
mnmn:
value: Samsung Electronics
timestamp: '2021-07-14T01:14:29.964Z'
mnml:
value: http://www.samsung.com
timestamp: '2021-07-14T01:14:29.964Z'
mnpv:
value: DAWIT 2.0
timestamp: '2021-07-14T04:17:42.176Z'
mnos:
value: TizenRT 1.0 + IPv6
timestamp: '2021-07-14T04:17:42.176Z'
pi:
value: 0c9488c1-348b
timestamp: '2021-07-14T01:14:29.964Z'
icv:
value: core.1.1.0
timestamp: '2021-07-14T01:14:29.964Z'
custom.dryerDryLevel:
dryerDryLevel:
value: normal
timestamp: '2022-05-12T14:29:41.830Z'
supportedDryerDryLevel:
value:
- none
- damp
- less
- normal
- more
- very
timestamp: '2021-07-14T01:14:32.968Z'
samsungce.dryerAutoCycleLink:
dryerAutoCycleLink:
value: 'off'
timestamp: '2021-07-14T01:14:32.968Z'
samsungce.dryerCycle:
dryerCycle:
value: Table_00_Course_01
timestamp: '2022-05-12T14:29:41.271Z'
supportedCycles:
value:
- cycle: '01'
supportedOptions:
dryingLevel:
raw: D33E
default: normal
options:
- damp
- less
- normal
- more
- very
dryingTemperature:
raw: '8410'
default: medium
options:
- medium
- cycle: 9C
supportedOptions:
dryingLevel:
raw: D33E
default: normal
options:
- damp
- less
- normal
- more
- very
dryingTemperature:
raw: '8520'
default: high
options:
- high
- cycle: A5
supportedOptions:
dryingLevel:
raw: D33E
default: normal
options:
- damp
- less
- normal
- more
- very
dryingTemperature:
raw: '8520'
default: high
options:
- high
- cycle: 9E
supportedOptions:
dryingLevel:
raw: D33E
default: normal
options:
- damp
- less
- normal
- more
- very
dryingTemperature:
raw: '8308'
default: mediumLow
options:
- mediumLow
- cycle: 9B
supportedOptions:
dryingLevel:
raw: D520
default: very
options:
- very
dryingTemperature:
raw: '8520'
default: high
options:
- high
- cycle: '27'
supportedOptions:
dryingLevel:
raw: D000
options: []
dryingTemperature:
raw: '8520'
default: high
options:
- high
- cycle: E5
supportedOptions:
dryingLevel:
raw: D000
options: []
dryingTemperature:
raw: '8000'
options: []
- cycle: A0
supportedOptions:
dryingLevel:
raw: D000
options: []
dryingTemperature:
raw: '8000'
options: []
- cycle: A4
supportedOptions:
dryingLevel:
raw: D000
options: []
dryingTemperature:
raw: 853E
default: high
options:
- extraLow
- low
- mediumLow
- medium
- high
- cycle: A6
supportedOptions:
dryingLevel:
raw: D000
options: []
dryingTemperature:
raw: '8520'
default: high
options:
- high
- cycle: A3
supportedOptions:
dryingLevel:
raw: D308
default: normal
options:
- normal
dryingTemperature:
raw: '8410'
default: medium
options:
- medium
- cycle: A2
supportedOptions:
dryingLevel:
raw: D33E
default: normal
options:
- damp
- less
- normal
- more
- very
dryingTemperature:
raw: '8102'
default: extraLow
options:
- extraLow
timestamp: '2021-07-14T01:14:32.968Z'
referenceTable:
value:
id: Table_00
timestamp: '2021-07-14T01:14:32.968Z'
custom.disabledCapabilities:
disabledCapabilities:
value:
- samsungce.dryerCyclePreset
- samsungce.dryerFreezePrevent
- samsungce.welcomeMessage
timestamp: '2021-10-28T23:28:27.622Z'
samsungce.driverVersion:
versionNumber:
value: 21082401
timestamp: '2021-10-28T17:10:18.181Z'
samsungce.kidsLock:
lockState:
value: unlocked
timestamp: '2021-07-14T01:14:32.968Z'
samsungce.detergentOrder:
alarmEnabled:
value: false
timestamp: '2021-07-14T01:14:32.968Z'
orderThreshold:
value: 0
unit: cc
timestamp: '2021-07-14T01:14:32.968Z'
powerConsumptionReport:
powerConsumption:
value:
energy: 1841800
deltaEnergy: 0
power: 0
powerEnergy: 0
persistedEnergy: 0
energySaved: 0
start: '2022-05-12T14:24:29Z'
end: '2022-05-12T14:29:13Z'
timestamp: '2022-05-12T14:29:13.497Z'
dryerOperatingState:
completionTime:
value: '2022-05-12T15:44:42Z'
timestamp: '2022-05-12T14:29:42.244Z'
machineState:
value: stop
timestamp: '2022-05-12T14:29:41.386Z'
supportedMachineStates:
value: null
dryerJobState:
value: none
timestamp: '2022-05-12T14:29:41.395Z'
samsungce.detergentState:
remainingAmount:
value: 0
unit: cc
timestamp: '2021-07-14T01:14:32.968Z'
dosage:
value: 0
unit: cc
timestamp: '2021-07-14T01:14:32.968Z'
initialAmount:
value: 0
unit: cc
timestamp: '2021-07-14T01:14:32.968Z'
detergentType:
value: none
timestamp: '2021-07-14T01:14:32.968Z'
samsungce.dryerDelayEnd:
remainingTime:
value: 0
unit: min
timestamp: '2021-10-28T17:10:18.497Z'
refresh: {}
custom.jobBeginningStatus:
jobBeginningStatus:
value: null
execute:
data:
value:
payload:
rt:
- x.com.samsung.da.operation
if:
- oic.if.baseline
- oic.if.a
x.com.samsung.da.state: Ready
x.com.samsung.da.remainingTime: '01:15:00'
x.com.samsung.da.progressPercentage: '1'
x.com.samsung.da.progress: None
x.com.samsung.da.delayEndTime: '00:00:00'
x.com.samsung.da.supportedProgress:
- None
- Drying
- Cooling
- Finish
data:
href: /operational/state/vs/0
timestamp: '2022-05-12T14:29:42.244Z'
remoteControlStatus:
remoteControlEnabled:
value: 'false'
timestamp: '2021-07-14T01:18:09.064Z'
custom.supportedOptions:
referenceTable:
value:
id: Table_00
timestamp: '2021-07-14T01:14:32.968Z'
supportedCourses:
value:
- '01'
- 9C
- A5
- 9E
- 9B
- '27'
- E5
- A0
- A4
- A6
- A3
- A2
timestamp: '2021-07-14T01:14:32.968Z'
samsungce.dryerDryingTime:
supportedDryingTime:
value:
- '0'
- '20'
- '30'
- '40'
- '50'
- '60'
timestamp: '2021-07-14T01:14:32.968Z'
dryingTime:
value: '0'
unit: min
timestamp: '2022-05-12T14:29:42.043Z'
friendly_name: SmartThings dryer API
我已经尝试了我能想到的 state_attr 的所有变体来获取值,但没有任何效果。我还需要提取剩余时间的 'minutes' 和 'hours' 部分并将其转换为剩余分钟数。
变量路径如下:
components:
main:
execute:
data:
value:
payload:
if: (?????)
x.com.samsung.da.remainingTime: '01:15:00' (need just hour and minutes as total minutes)
和
components:
main:
samsungce.kidsLock:
lockState:
value: unlocked
{{ state_attr('sensor.smartthings_dryer_api', 'components').main.execute.data.value.payload['x.com.samsung.da.remainingTime'] }}
{{ state_attr('sensor.smartthings_dryer_api', 'components').main['samsungce.kidsLock'].lockState.value }}