You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Alexa智能家居技能中为风扇添加自定义模式与属性值

实现Alexa风扇自定义速度设置与自定义模式支持方案

我来帮你解决这两个问题——实现自定义风扇速度设置,以及搞清楚Alexa是否支持自定义风扇模式:

一、搞定「Alexa,将风扇速度设置为3」的具体步骤

要实现这个语音指令,核心是用Alexa的RangeController能力来定义你的风扇档位范围,具体操作如下:

1. 在开发者控制台配置设备Capability

打开Alexa Developer Console的智能家居技能,找到你的风扇设备类型,添加Alexa.RangeController这个接口,并配置关键参数:

  • Instance:填FanSpeed(用来标识这是风扇速度控制器,避免和其他功能混淆)
  • SupportedRange:设置minimumValue: 1、maximumValue: 3、precision: 1,这样就限定了只能设置1、2、3这三个整数档位
  • FriendlyNames:添加["风扇速度"]这类名称,让Alexa能把语音指令和这个控制器关联起来

2. 后端处理SetRangeValue指令

在你的技能后端(比如AWS Lambda)里,监听Alexa.RangeController.SetRangeValue这个指令,提取出指令里的rangeValue(也就是用户说的3),然后调用你的设备控制逻辑(比如本地通信协议或者设备API)去设置风扇速度。

给你一段Node.js的示例代码参考:

const handleSetRangeValue = async (directive) => {
  const { endpointId } = directive.directive.endpoint;
  const targetSpeed = directive.directive.payload.rangeValue;
  
  // 这里替换成你实际控制风扇的代码,比如调用设备的REST API或者MQTT消息
  await sendFanControlCommand(endpointId, targetSpeed);
  
  // 返回成功响应给Alexa,让它知道指令执行完成
  return {
    event: {
      header: {
        namespace: "Alexa.RangeController",
        name: "RangeValueUpdated",
        payloadVersion: "3",
        messageId: directive.directive.header.messageId
      },
      endpoint: {
        endpointId: endpointId
      },
      payload: {
        rangeValue: targetSpeed
      }
    }
  };
};

3. 测试验证

配置完后,在Alexa App里重新发现设备,然后直接说「Alexa,将风扇速度设置为3」,就能看到风扇响应了。

二、Alexa智能家居技能支持风扇自定义模式吗?

当然支持!你可以用Alexa.ModeController能力来实现各种自定义模式,比如睡眠模式、自然风模式、强劲模式等等。

实现自定义模式的步骤:

  1. 配置ModeController Capability
    同样在开发者控制台里,给风扇设备添加Alexa.ModeController接口,配置supportedModes来定义你的自定义模式。比如:
{
  "type": "AlexaInterface",
  "interface": "Alexa.ModeController",
  "instance": "FanMode",
  "version": "3",
  "properties": {
    "supported": [{"name": "mode"}],
    "proactivelyReported": true,
    "retrievable": true
  },
  "configuration": {
    "supportedModes": [
      {
        "value": "SLEEP_MODE",
        "friendlyNames": [
          {
            "@type": "text",
            "value": {"locale": "zh-CN", "text": "睡眠模式"}
          }
        ]
      },
      {
        "value": "NATURAL_WIND",
        "friendlyNames": [
          {
            "@type": "text",
            "value": {"locale": "zh-CN", "text": "自然风模式"}
          }
        ]
      }
    ]
  }
}
  1. 后端处理SetMode指令
    在后端监听Alexa.ModeController.SetMode指令,提取payload.mode的值(比如SLEEP_MODE),然后触发风扇切换到对应的模式逻辑。

  2. 测试语音指令
    配置完成后,就可以说「Alexa,把风扇调成睡眠模式」这类指令,风扇会自动切换到对应的模式。

一些排查小技巧

  • 如果指令没反应,先检查Capability里的friendlyNames语言是否和你的Alexa设备语言一致(比如都是中文)
  • 确保后端正确返回响应给Alexa,要是Alexa收不到成功确认,会提示指令执行失败
  • 自定义模式的value要唯一,不能重复,不然Alexa无法区分不同模式

内容的提问来源于stack exchange,提问作者Abhishek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:40:03