Google Home脚本编辑器中湿度触发脚本报错求助
问题解决:基于湿度传感器差值控制进气扇
我需要实现当车间传感器1的相对湿度(RH%)大于车间传感器2时,开启车间进气扇,但编写的脚本持续报错,无法正常运行。
原脚本代码
metadata: name: Intake Fan On/Off description: Intake fan to be on only when sensor 1 RH% is greater than sensor 2 RH% starters: - type: device.state.HumiditySetting # For devices that support humidity settings such as humidifiers and dehumidifiers. device: Workshop Sensor 1 - Workshop state: humiditySetpointPercent greaterThan: [ ('device.Workshop Sensor 2 - Workshop') 'state.humiditySetpointPercent', ] actions: - type: device.command.OnOff # Turn the device on or off. # Whether to turn the device on or off. on: true devices: Intake Fan - Workshop
收到的错误信息
The value should be one of [String, Bool, Number, Temperature, ColorTemperature, DateTime, Time, Weekday, Duration, ColorHex] but is [Array] instead. The expected formats for time string are [HH:MM:SS; HH:MM; HH:MM AM/PM; HH AM/PM; sunrise/sunset]. The expected formats for duration string are [HHhMMm; HHhMMmSSs; HHhoursMMminSSsec; HHhrsMMminutesSSseconds; MMminutes; HHh MMm]. The expected formats for weekday string are [monday; TUESDAY; WED; fri].
错误原因及修正方案
核心错误点
- 状态类型误用:
device.state.HumiditySetting是给加湿器/除湿器这类设备的设定湿度用的,而传感器的实时湿度应该用device.state.Humidity - 比较值格式错误:
greaterThan字段不能用数组格式,引用其他设备状态需要使用标准的device+state嵌套语法
修改后的正确脚本
metadata: name: Intake Fan On/Off description: Intake fan activates when Workshop Sensor 1 humidity > Workshop Sensor 2 humidity starters: - type: device.state.Humidity device: Workshop Sensor 1 - Workshop state: ambientHumidityPercent greaterThan: device: Workshop Sensor 2 - Workshop state: ambientHumidityPercent actions: - type: device.command.OnOff on: true devices: Intake Fan - Workshop
可选补充:添加风扇关闭逻辑
如果需要当传感器1湿度回落至等于/小于传感器2时自动关闭风扇,可以扩展脚本如下:
metadata: name: Intake Fan On/Off description: Intake fan activates/deactivates based on humidity difference between two sensors starters: # 开启风扇条件 - type: device.state.Humidity device: Workshop Sensor 1 - Workshop state: ambientHumidityPercent greaterThan: device: Workshop Sensor 2 - Workshop state: ambientHumidityPercent # 关闭风扇条件 - type: device.state.Humidity device: Workshop Sensor 1 - Workshop state: ambientHumidityPercent lessThanOrEqualTo: device: Workshop Sensor 2 - Workshop state: ambientHumidityPercent actions: # 根据触发条件自动切换开关状态 - type: device.command.OnOff devices: Intake Fan - Workshop
内容的提问来源于stack exchange,提问作者Alf Tupper
相关产品推荐
相关产品推荐

