试图找到最适合热泵的类型/特性(对于那些不知道,热泵使用与AC装置相同的技术但主要用于加热的人,也可以用于冷却)
action.devices.types.AC_UNIT(https://developers.google.com/actions/smarthome/guides/airconditioning)明确说明它不是用于加热,而action.devices.types.THERMOSTAT(https://developers.google.com/actions/smarthome/guides/thermostat)则表示它是'与加热器和空调机组不同。
action.devices.traits.TemperatureControl和action.devices.traits.TemperatureSetting似乎也与热泵相关。每种语言看起来都很尴尬,例如"将热泵设置为加热"适用于TemperatureControl,但只有有限的选项(加热,冷却," heatcool" - 不是自定义模式,如" auto"或" fan")但是同样的命令不能用于TemperatureSetting(即使设置了Modes特性)。 TemperatureControl不会处理关闭设备的状态(来自OnOff特性),但仅在恒温器模式关闭时才有效。代替。语音命令"什么是室内温度"也不适用于TemperatureSetting特性。
我目前的想法是,我需要实现TemperatureControl和TemperatureSetting特性(不确定如何处理冲突的'关闭状态),并且设备类型仅用于图标,所以我应该只是选择恒温器类型。这是对的吗?
答案 0 :(得分:1)
智能家居设备可以有一种类型,但有几种特性。在您的情况下,使用AC_UNIT
类型可能是有意义的,因为它类似。
您想要支持的特征有多种选择。如果需要,您可以使用 TemperatureSetting 特征。这类似于恒温器,并且您可以设置 off , heat 和 cool 等模式。您还可以为其提供设定值和环境温度。这可能对你的情况最有意义。
或者,您可以使用更通用的 TemperatureControl 特征。这将允许你给它设置直接温度,这可能对你想要的东西没有意义。
如果您正在寻找其他模式,可以使用 Modes 特征。这将允许您使用自定义模式,这些模式将与 TemperatureSetting 特征随附的模式一起使用。
如果您只想要一个简单的切换功能,还有通用的 OnOff 特征。
您可以查看the full list of traits,了解哪一个或哪些最适合您的设备。
{
"availableModes": [{
"name": "mode",
"name_values": [{
"name_synonym": ["mode"],
"lang": "en"
}],
"settings": [{
"setting_name": "Wind",
"setting_values": [{
"setting_synonym": ["wind", "fan"],
"lang": "en"
}]
},
{
"setting_name": "Auto",
"setting_values": [{
"setting_synonym": ["auto", "automatic"],
"lang": "en"
}]
}],
"ordered": false
}]
}