我应该为热泵使用什么设备 types/traits?
What device types/traits should I use for a Heat Pump?
试图找到最适合 type/trait 的热泵(对于那些不知道的人,热泵使用与空调机组相同的技术,但主要用于加热,也可以用于冷却)
一个 action.devices.types.AC_UNIT (https://developers.google.com/actions/smarthome/guides/airconditioning) specifically says it's not for heating, while a action.devices.types.THERMOSTAT (https://developers.google.com/actions/smarthome/guides/thermostat) 说它不同于加热器和空调。
action.devices.traits.TemperatureControl 和 action.devices.traits.TemperatureSetting 似乎都与热泵有关。每个语言看起来很尴尬,例如 "set the heatpump to heat" 适用于 TemperatureControl 但只有有限的选项(加热,冷却,"heatcool" - 不是像 "auto" 或 "fan" 这样的自定义模式)但是相同的命令不适用于 TemperatureSetting(即使设置了 Modes 特征)。 TemperatureControl 不处理设备关闭的状态(来自 OnOff 特性),但仅在 thermostatMode 为 "off" 时才有效。语音命令 "what is the indoor temperature" 也不适用于 TemperatureSetting 特性。
我目前的想法是我需要同时实现 TemperatureControl 和 TemperatureSetting 特性(不确定如何处理冲突的 'off' 状态)并且设备类型仅用于图标所以我应该选择恒温器类型。这样对吗?
一个智能家居设备可以有一种类型但有多种特性。在您的情况下,使用 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
}]
}
试图找到最适合 type/trait 的热泵(对于那些不知道的人,热泵使用与空调机组相同的技术,但主要用于加热,也可以用于冷却)
一个 action.devices.types.AC_UNIT (https://developers.google.com/actions/smarthome/guides/airconditioning) specifically says it's not for heating, while a action.devices.types.THERMOSTAT (https://developers.google.com/actions/smarthome/guides/thermostat) 说它不同于加热器和空调。
action.devices.traits.TemperatureControl 和 action.devices.traits.TemperatureSetting 似乎都与热泵有关。每个语言看起来很尴尬,例如 "set the heatpump to heat" 适用于 TemperatureControl 但只有有限的选项(加热,冷却,"heatcool" - 不是像 "auto" 或 "fan" 这样的自定义模式)但是相同的命令不适用于 TemperatureSetting(即使设置了 Modes 特征)。 TemperatureControl 不处理设备关闭的状态(来自 OnOff 特性),但仅在 thermostatMode 为 "off" 时才有效。语音命令 "what is the indoor temperature" 也不适用于 TemperatureSetting 特性。
我目前的想法是我需要同时实现 TemperatureControl 和 TemperatureSetting 特性(不确定如何处理冲突的 'off' 状态)并且设备类型仅用于图标所以我应该选择恒温器类型。这样对吗?
一个智能家居设备可以有一种类型但有多种特性。在您的情况下,使用 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
}]
}