小米手环+blinker+米家+小爱,呼唤手环执行家居自定义动作,爽啊

背景

  • 场景1:下班快到家,要喊家里人炒菜,开着车不方便打电话(siri唤醒可以是个替代的办法);或者没开车出地铁了,走着路又要翻电话很麻烦。期望对着小米手环喊两下就可以通知家里人炒菜。
  • 场景2:晚上在床,睡觉前,要检查所有灯是否都关了,如果没关打开APP关闭全部也很繁琐(房间里没有小爱)。期望对着小米手环喊两下就可以关闭全部灯。

需要

  • 小米手环4
  • blinker app (app store 搜索 blinker)
  • 米家 app
  • 小爱智能音箱
  • 手机(测试了苹果手机)
  • nodered

操作

  1. 手机上安装好blinker app(app store 搜索 blinker)
  • 如何添加虚拟设备?
  • 打开app,注册个用户,等下米家里要绑定此账号
  • 点击右上角的加号,添加设备,设备类型选择:Diy设备——Arduino,下一步,选择wifi接入,然后下一步,复制此key,留做备用。不需要添加任何按键,所有设备按键为空即可。
  • 进入设备,点 “开始使用”,然后点击右上角圆圈内带三点的符号,这里可以修改设备名。注意:此处的设备名便是你将要在小爱里面语音控制需要喊的设备名。
    例如我就添加了一个设备叫“到家”
  1. 米家app添加绑定blinker这个第三方平台账号

点击添加,里面选择“点灯科技”,如下是选择后的效果

  1. nodered 如何安装node-red-contrib-blinker-mqtt并设置
    参考链接

如下是我的设置,注意,deviceType一定要选“米家:电源类”,如果是选了“米家:灯”的话,呼唤小米手环时,会提示你有什么灯、什么灯,小爱识别不到到达是要操作哪个灯,还要你选一次。(可能也跟我有个“全部灯”有关吧)

  1. 测试,我对着手环喊:打开回家。家里的小爱同学就说:马上到家,开始炒菜。

  2. 流文件

[{"id":"3e03f530.f2b25a","type":"tab","label":"011:马上到家可以炒菜","disabled":false,"info":""},{"id":"5fa65d76.65eb64","type":"Blinker-IN","z":"3e03f530.f2b25a","name":"","blinker":"e0ff8c72.14eba","x":176,"y":166,"wires":[["665cb9b1.c91728"]]},{"id":"e8c4b2d7.9edc8","type":"debug","z":"3e03f530.f2b25a","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":751.5,"y":176,"wires":[]},{"id":"665cb9b1.c91728","type":"function","z":"3e03f530.f2b25a","name":"tts文本","func":"var content =\"马上到家,可以开始炒菜。\";\nmsg.payload=\" \"+content;\nreturn msg;","outputs":1,"noerr":0,"x":375,"y":168,"wires":[["670f7aec.c00404"]]},{"id":"670f7aec.c00404","type":"exec","z":"3e03f530.f2b25a","command":"sshpass -p '6X6X' ssh -o \"StrictHostKeyChecking no\" root@192.168.1.101 '/data/text_to_mico.sh' ","addpay":true,"append":"","useSpawn":"false","timer":"","oldrc":false,"name":"小爱ssh并tts","x":567.5,"y":170.5,"wires":[["e8c4b2d7.9edc8"],[],[]]},{"id":"e0ff8c72.14eba","type":"blinker-conf","z":"","name":"到家","SecretKey":"4941f12071be","DeviceType":"outlet","autoRes":"true"}]


上面这里,大家可以换成小爱tts节点。

异常排查

  • 设备名最好都设置为“XX灯”发现这个是手环识别的最准确的。什么“打开XX机”、“打开回家”等都不好使。
  • nodered里的设置要注意,deviceType一定要选“米家:电源类”,如果是选了“米家:灯”的话,呼唤小米手环时,会提示你有什么灯、什么灯,小爱识别不到到达是要操作哪个灯,还要你选一次。(可能也跟我有个“全部灯”有关吧)
  • nodered里设备名要和点灯里的保持一致

特别感谢

后续

  • 期望有大神能实现:让手环将喊的话转发给家里的小爱并播放,例如:XX,不要再玩了,开始做作业。

不错不错,米粉肯定喜欢这个

手环发不了信息。
不过你愿意掏手机,可以透过微信给你小孩传话。

手环现在能识别语音了都? 这么高级啊

手环四,自带小爱吧。

怎么样处理回传过来的信息呢?比如我叫开灯。穿过来的信息里面有ture

nidered节点的msg接个输出看看就都明白了

可以在小爱同学里添加训练,免得说“打开回家”
你也可以说“打开二锅头”…

已经搞定,唯一缺点就是只能虚拟5个设备