周星驰在这次 发表于 2018-10-25 15:10

还不会天猫精灵接入HomeAssistant的朋友可以看看此贴

还不会天猫精灵接入HomeAssistant的朋友可以看看此贴,一来可以感受智能家居带给我们的便利,二来可以感受天猫精灵到底智能到了什么地步?那么下面开始教程吧!

写在前面,方案有几个硬性要求:   

1.homeassistant公网可以访问
   
2.搭建公网可访问的https的oauth2服务(个人认为这里难度对较高)
   
3.搭建公网可访问的网关服务器,将天猫开放平台的语义转换成HA的api,代理调用HA。   
   
4.该方式目前只能自己搭自己用(技能只能在测试状态,无法发布)

0.先发一张架构图


1.下载Oauth2和网关PHP代码

查看自己的php版本:
执行php -v
PHP 5.3.3 (cli) (built: Mar 22 2017 12:27:09)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
PHP 5.3.3即为你的php版本。根据版本选择下面对应的方案

php5.3.9以下版本可以直接执行:


php版本在5.3.9(包含5.3.9)以上的人请执行下列操作:


同时,新版本的静态文件已整合到git里,不再需要看下面的压缩包了

2.数据库建表

进入你的mysql数据库新建一个数据库,并在mysql执行下列建表命令


b.然后再新建账号和密码(XXXXXXclientid、XXXXXXsecret自己随便设,要记住后面填到天猫开放平台里)

INSERT INTO oauth_clients (client_id, client_secret, redirect_uri) VALUES ("XXXXXXclientid", "XXXXXXsecret", "https://open.bot.tmall.com/oauth/callback");

3.修改配置文件

请按照你自己的数据库配置修改 homeassistant_conf.php

4.在天猫开放平台新建技能

用你的淘宝账号在open.bot.tmall这个网址上面(前后加http和.com就好)登陆,新建技能

技能类型选择智能家居,上传图片和一些描述(因为技能无法发布,这里叫什么你随意)


配置好了之后点击下一步,真机测试下面点开启真机测试,之后就可以在下放看到H5的配置页面。


点击账户配置,会跳转到之前配置的账户授权连接


授权成功之后,如果没有报错,则天猫平台的页面会显示出你当前的设备列表(gate.php中配置的设备)。同时手机天猫精灵客户端也可以看到这些设备了。看到默认的设备列表说明这部ok了。
————————————————————————————————————————
这里如果出现:"Oauth token 返回不正确,请检查”或”参数值内容错误。,三秒后返回设备列表“

请修改Oauth2-PHP-Server的相关文件。
将oauth2-server-php/src/OAuth2中的Server.php中 'require_exact_redirect_uri' => true,
修改为
'require_exact_redirect_uri' => false,
(require_exact_redirect_uri参数改为false)
————————————————————————————————————
凭借code获得token后即表示授权成功后你就可以看到你已经配置的设备列表

5.配置自己的设备列表

配置设备的方法现在已整合论坛的代码,支持多虚拟设备(传感器)

在这里修改你的hass地址和密码:你的域名/information.php

在这里管理你的设备列表:你的域名/discovery.php

因为将原有的账号体系去掉,所以第一次访问时看到登录按钮,点击即可通过。

完成hass域名密码配置后只要确认功能没问题,就可以把目录下的/information.php文件改成别的名字,比如information.php.back 这样避免外人通过这个页面拿到你的hass密码。

然后没有然后了,愉快的加你的设备吧!

添加设备请注意:

1.多个同一位置的传感器请使用虚拟设备。

2.关于设备类型和名称:

deviceType(设备类型)选择你实际操控时,想让天猫精灵控制的设备名。

比如你以‘冰箱’的形式操作这个设备,那这里就选择‘冰箱’,控制的时候叫天猫精灵打开[位置]的冰箱。

deviceName(设备名称)这个位置虽然留空让你填写,但请一定填写成更设备类型一样的名字!!! 必须一样听明白没?这里不按要求写,天猫精灵不听指令不要来找我。这是天猫的要求

3.关于操作和属性

actions(支持的操作)

操作action

主要用于确定该设备支持哪些操作,可以根据ha里的功能进行判断后添加

设置音量             命令:把(客厅)的(电视的)音量调到80%【范围0-100】
设置颜色               命令:把(客厅)的(落地灯)调成(白色)
设置亮度               命令:把(客厅)的(吸顶灯)亮度调到(80)【范围0-100】
打开                      命令:打开(厨房)的(窗帘)
关闭                      命令:关闭(卫生间)的(吊灯)
声音按步长调小   命令: (客厅)的(电视)大点声 (仅media_player支持)
声音按步长调小   命令: (客厅)的(电视)小点声(仅media_player支持)
下一首或下一台   命令: (客厅)的(电视)下一台(仅media_player支持)
上一首或上一台   命令: (客厅)的(电视)上一台(仅media_player支持)
暂停、继续          命令:(餐厅)的(扫地机器人)暂停(media_player、vacuum)
查询温度
查询亮度
查询湿度
查询pm2.5
查询电源开关

properties(支持的属性状态)

主要用于传感器和设备状态,需要查询的设备请选择对应的属性
电源状态   (客厅)的(吸顶灯)开着呢嘛?
PM2.5      (客厅)的(传感器)的(PM2.5)是多少?
湿度         (客厅)的(传感器)的(湿度)是多少?
温度         (客厅)的(传感器)的(温度)是多少?
亮度         (客厅)的(传感器)的(亮度)是多少?


以上就是天猫精灵接入HomeAssistant的详细教程了,相信可以让大家钻研很长时间了,那么今天的分享就到此为止了。更多智能电视精彩应用,可下载当贝市场(点此下载)进行体验。

libaizibubai 发表于 2018-10-25 15:43

感谢分享
页: [1]
查看完整版本: 还不会天猫精灵接入HomeAssistant的朋友可以看看此贴