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

如何在IFTTT中实现Nordic Thingy 52按键触发智能设备开关切换

实现Nordic Thingy 52按键触发Smart Life设备的开关切换功能

我来帮你解决这个按键切换Smart Life设备的问题!核心思路就是记录上一次的动作状态,每次按键触发时执行相反操作,下面给你几个可行的方案,按需选择:

方案1:用IFTTT + Google Sheets 实现无代码状态切换

这个方案适合不想碰代码的用户,用现成的自动化工具组合就能搞定:

  • 第一步:准备状态存储表格
    新建一个Google Sheets表格,在A1单元格输入last_action,B1单元格初始值设为off(假设你的设备初始是关闭状态,要是初始是开就设为on)。
  • 第二步:用IFTTT的多步骤Applet实现逻辑
    打开IFTTT创建一个新的Multi-step Applet:
    1. 触发条件:选择Webhooks服务,触发事件设为button_press(和你Nordic Thingy 52发送的事件名称一致)。
    2. 第一步动作:选择Google Sheets服务,动作选Get cell value,指定你刚才创建的表格,单元格选B1(读取上一次的动作状态)。
    3. 添加条件判断:用IFTTT的If功能,判断读取到的last_action值:
      • 如果是off,就执行Smart Life的“开启”动作,然后再用Google Sheets的Update cell动作把B1单元格改成on;
      • 如果是on,就执行Smart Life的“关闭”动作,然后把B1单元格改成off。

方案2:用Node-RED做中间代理(灵活可控)

如果你有一点编程基础,这个方案更灵活,能自定义更多逻辑:

  • 第一步:搭建Node-RED环境
    可以本地安装、用Docker部署,或者用云服务(比如IBM Cloud的Node-RED实例),快速搞定环境。
  • 第二步:配置节点流
    1. 拖入http in节点:设置接收POST请求,路径设为/thingy-toggle,这个就是你Nordic Thingy 52要发送Webhook的地址。
    2. 拖入function节点,写入状态切换逻辑:
      // 从Node-RED上下文读取上一次动作,默认初始为'off'
      let lastAction = context.get('lastAction') || 'off';
      // 计算当前要执行的相反动作
      let currentAction = lastAction === 'off' ? 'on' : 'off';
      // 更新上下文里的状态记录
      context.set('lastAction', currentAction);
      // 把动作传给下一个节点
      msg.payload = { action: currentAction };
      return msg;
      
    3. 拖入http request节点:调用Smart Life的API执行开关动作。你需要先获取Smart Life的API密钥和设备ID(参考官方开发者文档或者第三方集成工具),根据msg.payload.action的值发送对应的开启/关闭请求。
    4. 拖入http response节点:给Nordic Thingy 52返回成功响应,确保请求链路完整。
  • 第三步:把Nordic Thingy 52的Webhook地址改成Node-RED的http in节点地址(比如http://你的Node-RED地址:1880/thingy-toggle)。

方案3:直接查询Smart Life设备状态(最准确)

这个方案不需要额外存储状态,直接查询设备当前的实际状态,再执行相反动作,避免状态不同步:

  • 第一步:获取Smart Life API权限
    参考Smart Life官方开发者文档,申请API密钥,拿到你的设备ID和访问凭证。也可以用第三方工具(比如pySmartPlug Python库)简化API调用。
  • 第二步:部署逻辑到云函数
    把查询+切换的代码部署到云函数(比如AWS Lambda、Google Cloud Functions):
    from pySmartPlug import SmartPlug
    
    def toggle_device(event, context):
        # 替换成你的设备信息
        plug = SmartPlug("设备IP地址", "Smart Life账号", "密码")
        current_state = plug.state
    
        # 执行相反动作
        if current_state == 'ON':
            plug.turn_off()
        else:
            plug.turn_on()
        return {"status": "success"}
    
  • 第三步:把Nordic Thingy 52的Webhook地址设为云函数的触发地址,每次按键就会触发云函数查询设备状态并切换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:44:38