本帖最后由 pcping 于 2018-6-24 22:20 编辑
本文参考了大神的帖子,自己填了点坑,然后目标人群是纯纯的小白,站在巨人的肩膀上看世界挺美。
公网ip
二、域名: 1、 申请域名:这里我选择的是阿里的域名 自己摸索下买个域名(这个自己买啊),然后设置云解析,方法论坛里有阿里ddns的方法可以用hass来实现,也可以用路由器,我用的是newwifi,然后刷了老毛子的固件,自带阿里云解析
然后在路由器中端口转发*****.8123就可以外网访问hass了(端口转发内部端口填8123,外部端口填8123就可以了,因为8123是不封的)。为了让小白看的懂,以下我就用域名: www.哈哈哈.com来进行讲解。
2、申请ssl,前面我们访问hass用的是http,要用小度和天猫一样要有ssl,因此要申请个证书,进入阿里云的控制台,点击左侧的ssl证书 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png 然后点右上角的购买证书 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image003.jpg 先点品牌的symantec,这时免费域名是不会跳出来的,我们点保护类型的1个域名,这时免费域名就出来了,哈哈哈,然后按提示认证注册就行了 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image009.jpg 之后我们返回到ssl证书,找到下载,然后下载apache的证书
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image011.jpg file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image012.png 证书保存在电脑上等下用,这步先停一停,我们开始搭建环境。
二:搭建环境: Lamp就是服务器的环境,意思就是:Linux+Apache+Mysql/MariaDB+Perl/PHP/Python,常用的就是Linux(ubuntu)+Apache+Mysql+PHP。论坛里各种修仙教程,仙言仙语,不适合小白,我这里来一个最笨的也是最简单的方法,以树莓派为介质。
2、用 etcher将系统烧录到SD卡内,SD卡插入树莓派,树莓派连上网线插在路由器上,然后开机,找到树莓的ip,然后用 putty.exe软件ssh登陆(ssh是什么我就不说了,论坛里有,要不文章太TM长了),这个系统进入后默认要求你修改密码,修改好它就直接退出了,我们再重新登陆一次就行。 然后,开root: 输入新建的root密码,之后输入su,输入刚才设置的密码进入root账户,然后cd回车到根目录
3、Lamp中的L我们安装好了,接下去安装amp,这里我们用一个软件叫 宝塔面板,具体百度搜索 命令: 然后输入y 回车,接着就是一个字等,两个字(看电视)。。。。。。。。。。。。。。。。。大约10分钟左右。 安装完成后在浏览器输入树莓派的Ip:8888(比如192.168.1.11:8888,具体一自己的树莓派ip为准),账户名密码注意安装完成时告诉你了,千万别关了。
之后安装完了,在面板设置这里设置一下账户密码,在左侧边栏软件管理里面安装一下phpmyadmin(这个是图形化数据库管理工具,很有用,一定装一下。4.4以上版本)
在左边侧边栏点击网站--添加站点--域名填写 www.哈哈哈.com(上文说了,就拿这个域名做教程了),这里注意一下,因为大多数433端口都是被封的,所以路由器里映射一下,内部433,外部,随便,这里随便写一个8089,就是 www.哈哈哈.com:8089,其他默认不管。
之后我们点击该网站右边的设置
然后点击弹出框左侧的ssl,再点击其他证书,将之前在阿里云上下载下来的证书里面key和pem文件内的内容复制到对应的左右两个框里(证书有4个文件,有两个是一串数字开头,就是这个两个,用文本文档打开全选复制即可)。
三、建立数据库 以上环境搭载好以后说明可以使用https访问了,然后我们开始建立数据库 这里用到一个软件winscp,可视化操作lunix, 进入软件新建会话,主机名输入树莓派ip,和ssh是一样的,点击高级,选择左边环境内的SFTP,然后在右边SFTP服务器内输入sudo /usr/lib/openssh/sftp-server,这样就可以自由的复制粘贴了。
然后通过putty软件root用户下输入cd /www/wwwroot/www.哈哈哈.com 进入网站根目录 然后执行 我们看到oauth2-server-php已经下载并解压到了网站根目录了。
(1)先在winscp中修改文件server.php mysql:dbname=数据库的名字,自己取,等下要和数据库一样的,username 用root,password自己设置一个。保存
(3)进入数据库,新建一个数据库,名字就是刚才填在server.php里mysql:dbname的名字,记得数据库的root密码改成和server.php输入的一样。 创建完后点管理进入phpmyadmin,选中刚才创建的数据库,点SQL,开始建表,复制粘贴,记得点一下sql下面的格式按钮,然后点执行
CREATE TABLE oauth_clients (
client_id VARCHAR(80) NOT NULL,
client_secret VARCHAR(80),
redirect_uri VARCHAR(2000),
grant_types VARCHAR(80),
scope VARCHAR(4000),
user_id VARCHAR(80),
PRIMARY KEY (client_id)
);
CREATE TABLE oauth_access_tokens (
access_token VARCHAR(40) NOT NULL,
client_id VARCHAR(80) NOT NULL,
user_id VARCHAR(80),
expires TIMESTAMP NOT NULL,
scope VARCHAR(4000),
PRIMARY KEY (access_token)
);
CREATE TABLE oauth_authorization_codes (
authorization_code VARCHAR(40) NOT NULL,
client_id VARCHAR(80) NOT NULL,
user_id VARCHAR(80),
redirect_uri VARCHAR(2000),
expires TIMESTAMP NOT NULL,
scope VARCHAR(4000),
id_token VARCHAR(1000),
PRIMARY KEY (authorization_code)
);
CREATE TABLE oauth_refresh_tokens (
refresh_token VARCHAR(40) NOT NULL,
client_id VARCHAR(80) NOT NULL,
user_id VARCHAR(80),
expires TIMESTAMP NOT NULL,
scope VARCHAR(4000),
PRIMARY KEY (refresh_token)
);
CREATE TABLE oauth_users (
username VARCHAR(80),
password VARCHAR(80),
first_name VARCHAR(80),
last_name VARCHAR(80),
email VARCHAR(80),
email_verified BOOLEAN,
scope VARCHAR(4000),
PRIMARY KEY (username)
);
CREATE TABLE oauth_scopes (
scope VARCHAR(80) NOT NULL,
is_default BOOLEAN,
PRIMARY KEY (scope)
);
CREATE TABLE oauth_jwt (
client_id VARCHAR(80) NOT NULL,
subject VARCHAR(80),
public_key VARCHAR(2000) NOT NULL
);
这里停一停,然后进入百度技能平台https://dueros.baidu.com/dbp/main/console,注册进入后创建新技能,选择智能家居,创建后就看到一个回调地址
然后返回phpmyadmin,继续插入SQL
insert into oauth_clients (client_id, client_secret, redirect_uri) VALUES ("your clientid", "your secret", "your callback address");
your clientid和your secret随便编,但是要记住,your callback address就是上面的回调地址,然后替换后点格式,然后执行
然后回到技能页面按图填写
点击保存,然后授权,然后跳出来 do you什么什么的,点yes,就出现了success页面表示成功了。
接着我们还是用winscp到网站根目录,修改gate.php,其中applianceId就是hass里的设备id,friendlyName就是显示的名字,自己摸索吧,保存刷新。
然后进入模拟测试,输入发现设备,客厅吸顶灯就出来了,输入打开客厅吸顶灯,灯就亮了,成功!!!!!!
在小度里默认设备就添加了,感觉比天猫好,还能自定义名称,希望能有大神拓展开发,收工
|