爱星物联对接小米IoT实现小爱同学语音控制

[复制链接]
查看2391 | 回复14 | 2024-5-11 09:51:57 | 显示全部楼层 |阅读模式

智能音响,作为现代智能家居的重要组成部分,其重要性体现在多个方面,不仅极大地丰富了人们的生活体验,还推动了科技与日常生活的深度融合,今天我将拿我6-7年前买的小爱同学控制我的智能设备;

对接小爱同学有两种方式,第一种是技能方式第二种是小米IoT的云云对接方式,要说哪种方式更好,我自然是推荐小米IoT云云对接的,可是呢...他对你的小米开发者账号要求比较高,在新规定出来之后开发者账号已经无法随意开通云云对接了,还好我公司的账号在很久很久以前开通了,所以...来一场让人羡慕的演示吧!

接下来会根据以下几步进行分享:

1、小米开发者账号

2、小米开放平台服务器配置(这是云云对接的关键)

3、通过米家APP授权,这是验证服务器配置的关键

4、创建小米IoT云云对接的产品

5、配置爱星物联的智能产品、语控配置

6、通过测试工具测试指令

7、通过测试工具通过预料测试指令

8、通过小爱同学测试指令;

小米开发者账号

小米IoT包含两种方式,第一种是云云对接, 第二种是SDK接入;如需平台支持音响控制,必须账号具有云云对接权限,现在小米已不提供申请;我给小米提过很多工单申请,都被无情的拒绝了;

有云云对接权限的账号:

image.png

无云云对接权限的账号:

image.png

小米开放平台服务器配置

点击控制台->应用->云接入OAuth管理,这里配置爱星物联的OAuth2.0的地址,这样小米就能通过OAuth2.0调用你的授权和下发控制了;

image.png

但是很多人要问了,这个爱星物联的服务器地址从哪里来呢?

其实我们可以找到开源代码中的“iot_smart_speaker_service”服务,将这个部署到公共网络,并且配置好https,下面是我Nginx的对语控服务的配置;

想要看https怎么申请,你可以看我之前的一篇文章《泛域名证书可以这么申请,免费也挺好用

server {
  listen       443 ssl;
  server_name cloudapi.hogan123.com;
  access_log logs/access.log main;
  ssl_certificate /opt/hogan/cert/cloudapi/fullchain.cer;
  ssl_certificate_key /opt/hogan/cert/cloudapi/cloudapi.hogan123.com.key;

  ssl_session_cache    shared:SSL:1m;
  ssl_session_timeout  5m;

  ssl_ciphers  HIGH:!aNULL:!MD5;
  ssl_prefer_server_ciphers  on;

  add_header X-XSS-Protection 1;
  add_header X-Content-Type-Options "nosniff";

  location / {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_buffering off;
    proxy_pass http://127.0.0.1:31003;
  }
}

通过上面的配置我们得到以下地址:

OAuth2.0 配置:

账号授权URL:https://cloudapi.hogan123.com/login

Client ID:XiaomiTest

Client Secret:XiaomiTest123

跳转URL:https://oauth-redirect.api.home.mi.com/r/2147481880

Access Token URL:https://cloudapi.hogan123.com/oauth/token

Refresh URL:https://cloudapi.hogan123.com/oauth/token

Scope:all

Grant Type:authorization_code

云通信配置:

设备指令接受URL:https://cloudapi.hogan123.com/api/xiaomiIoTGateWay

将配置填入到小米的服务配置中:

image.png

点击“测试”,将会打开OAuth2.0的授权页面;

这里有个坑,需要注意以下,平台是支持多个APP进行配置的,所以官方提供的域名是一个泛域名,他们会拿泛域名的前缀作为APP的appkey进行识别账号来源和APP信息,我这里没有用到泛域名,所以....这个我们得改下代码,改成给自己的appKey,不然加载不出APP的信息;如果配置了泛域名的朋友,你可以忽略我这一步;

image.png

成功打开了授权登录页面,输入App的账号密码,点击登录,点击确认授权,如果小米没有返回错误的json,说明你成功了;

常见的错误,你没有用https,你使用了端口访问等;

image.png

通过米家APP授权

这是验证服务器配置的关键,私有云平台的配网的时候也将显示到授权后的页面中(记得用小米开发者平台绑定账号登录米家APP)

image.png

看到下面的页面,说明你成功授权了,只是没有配网设备,如果你在爱星物联提供的APP中配网了设备,并且给产品配置了语控,这里就可以同步到设备了;

image.png

创建小米IoT云云对接的产品

创建产品中,产品类型决定平台默认帮你创建的功能列表,语控指令只支持平台提供的功能,自动的功能别想了,另外产品类型也必须是平台提供的,平台没有你需要提单申请,而且申请时间超长的;

image.png

image.png

小米平台会根据你选择的产品品类默认设置物模型功能,开发者可以根据自己的需求添加和修改功能,并非所有功能支持语控;

image.png

image.png

配置私有云的产品功能和语控配置

image.png

image.png

这里设备类型要从小米开发者平台的功能定义的JSON中获取

image.png

通过测试工具测试指令

在操作这一步之前,需要给我们的开发的设备配网,注意这里配网设备是配置到授权页面授权的账号中;有了设备之后,进入米家APP-连接其他平台,点击同步设备之后,同步页面能看到加载出来了设备之后,开始调试这里将看到“调试APP功能(云端缓存)”

image.png

之前产品选择的功能比较多,但是我们在平台配置里面只配置了开关;这里可以点击“读取”、“写入”,点击之后控制指令将发至平台,平台将指令发往设备,实现设备控制,设备状态获取;

image.png

使用测试工具通过语料测试指令

进入到小爱语控测试工具,平台将帮你生成预料,点击语料进行推送测试;

image.png

image.png

通过小爱同学测试指令

最后将我82年的小爱同学,绑定到小爱音响APP,然后和他说说“打开测试产品”;

image.png

敬请期待下篇,小爱同学技能方式对接... ❤️

回复

使用道具 举报

1055173307 | 2024-5-11 10:54:34 | 显示全部楼层
回复

使用道具 举报

1084504793 | 2024-5-11 11:14:53 | 显示全部楼层
回复

使用道具 举报

爱笑 | 2024-5-11 11:23:05 | 显示全部楼层
学起来学起来
用心做好保姆工作
回复 支持 反对

使用道具 举报

hrqwe | 2024-5-11 23:20:10 | 显示全部楼层
打卡
日拱一卒,功不唐捐
回复

使用道具 举报

知行合一 | 2024-5-14 11:18:32 | 显示全部楼层
感谢分享
回复

使用道具 举报

noonezero | 2024-5-14 12:00:49 | 显示全部楼层
学习学习
回复

使用道具 举报

wukong50 | 2024-5-14 13:43:22 | 显示全部楼层
回复

使用道具 举报

timo | 2024-5-14 19:10:08 | 显示全部楼层
好用就是好用
回复 支持 反对

使用道具 举报

7788 | 2024-5-14 19:18:05 | 显示全部楼层
学习了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则