『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 136386|回复: 1011

[进阶教程] 天猫精灵接入homeassistant本地版环境搭建

  [复制链接]

16

主题

158

帖子

911

积分

高级会员

Rank: 4

积分
911
金钱
753
HASS币
0
发表于 2018-6-12 22:06:46 | 显示全部楼层 |阅读模式
本帖最后由 w_anghe 于 2019-7-14 11:35 编辑

2019-07-14更新
这个方法还是有些麻烦, 还是建议通过docker搞定, 站内可以搜索相关帖子

这几天在我的orange pi上成功的部署了c1pher(25989406)大神的代码,实现了在同一台机器跑homeassistant服务和用于天猫精灵的oauth2和网关服务(好处就是减少了一次网络访问, 速度会快一些, 可靠性会高一点),现在把整个过程写个简要的教程,不对的地方还请大家指正,对于引用了论坛中诸位大神的代码没有提及的还请见谅。
1.此教程的前提条件,如果不满足以下条件就可以忽略此教程了
  a.你的宽带有公网IP或者你用其他方法从公网访问你家里的主机(花生壳,FRP等方法)
  b.拥有一个域名和用于此域名https访问的证书(推荐使用letsencrypt证书),内网申请letsencrypt证书推荐使用dnspod验证的方法
  c.linux操作的基础知识,会修改配置文件,会apt-get安装软件包
2.LAMP环境搭建
c1pher大神说得对,拥有php+mysql环境就会容易很多,基本就是直接复制代码就行了,所以我重点说一下在类似树莓派的主机上搭建LAMP环境的方法和我具体实践中遇到的坑。
我用的主机是orange pi, 这个类似于树莓派,跑的ubuntu16.04,arm架构,不同于x86架构,一键搭建LAMP环境的脚本是跑不了的,我就具体说一下我安装环境的过程。
a.安装mysql
这个地方有个大坑,当我所有的环境都安装好了的时候,发现无论如何也不能添加设备,后来跟踪代码发现数据操作出错,经过多次尝试发现mysql的版本必须小于5.7,用5.5,5.6的都没有问题,而我的ubuntu16.04安装的软件包默认的就是mysql5.7,要想安装5.6的版本用了很多方法,最后找到一个相对简单的,首先要找到低版本的软件源,编辑/etc/apt/sources.list文件,添加如下内容
deb http://mirrors.ustc.edu.cn/ubuntu-ports trusty main universe restricted multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-ports trusty-security main universe restricted multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-ports trusty-updates main universe restricted multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports trusty main universe restricted multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports trusty-security main universe restricted multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports trusty-updates main universe restricted multiverse
添加后执行sudo apt-update
sudo apt-cache search mysql | grep mysql-server
从返回的结果查看有哪些版本可以安装,用下边的命令安装相应的版本
sudo apt-get install mysql-server-5.6

如果不出意外mysql就安装上了
b.安装apache
直接执行下面的命令
sudo apt-get install apache2
sudo a2enmod ssl

安装好后配置文件默认的路径是 /etc/apache2,为了支持https,需要修改一下配置文件
/etc/apache2/sites-enabled/000-default.conf
在文件的末尾增加,这个是打开https,红色自己的文件就是数字证书,这个可以申请letsencrypt的证书
<VirtualHost *:443>
        DocumentRoot /var/www/html
        ServerName 你的域名
        SSLEngine on
        SSLCertificateFile /var/opt/homeassistant/letsencrypt/certs/cert.pem
        SSLCertificateKeyFile /var/opt/homeassistant/letsencrypt/certs/privkey.pem
        SSLCertificateChainFile /var/opt/homeassistant/letsencrypt/certs/fullchain.pem
</VirtualHost>
一般家庭宽带的外网运营商都是封443端口的,在你的路由器上映射端口的时候可以映射成其他的端口。
c.安装php环境
经本人测试,php5和php7的环境都可以,比如我的ubuntu16.04安装默认的php组件就是php7,就是以后下载代码的时候一定要按c1pher(25989406)大神的说明,下载对应的版本,这个以后再说。
安装php的代码如下
sudo apt-get install php-fpm -y
sudo apt-get install php -y
sudo apt-get install php-fpm php-cli php-curl php-gd php-mcrypt php-mysql php-cgi
sudo apt-get install libapache2-mod-php

d.部署代码
部署代码就严格按照大神的教程做就可以了
https://bbs.hassbian.com/thread-1862-1-1.html其中涉及到的域名就用你的动态域名和适合的端口,注意不是必须用443端口,其他端口一样可以,只要证书有效。
强调一下,一定要看自己的php的版本来决定用哪个版本的的代码
php5.3.9以下版本可以直接执行:git clone https://github.com/bshaffer/oauth2-server-php.git -b php5.2-develop
git clone  https://github.com/c1pher-cn/tmall-bot-x1.git
mv tmall-bot-x1/*.
php版本在5.3.9(包含5.3.9)以上的人请执行下列操作:
git clone https://github.com/bshaffer/oauth2-server-php.git
git clone  https://github.com/c1pher-cn/tmall-bot-x1.git   -b php5.3
mv tmall-bot-x1/*.
注意apache2的www目录在/var/www/html
e.内网用动态域名访问本地主机可能有问题
如果是openwrt路由器,建议修改host文件, 把动态域名映射成局域网ip,如果不方便,直接修改本机的host文件也可以。

评分

参与人数 1金钱 +10 收起 理由
windgo + 10 谢谢分享!

查看全部评分

回复

使用道具 举报

40

主题

3056

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

积分
11149
金钱
8042
HASS币
182
发表于 2018-6-12 22:12:43 | 显示全部楼层
不错 支持一下。
Nero
回复

使用道具 举报

1

主题

27

帖子

202

积分

论坛分享达人

积分
202
金钱
175
HASS币
0
发表于 2018-6-12 22:17:49 | 显示全部楼层
感谢分享
回复

使用道具 举报

2

主题

73

帖子

862

积分

高级会员

Rank: 4

积分
862
金钱
789
HASS币
0
发表于 2018-6-12 22:29:22 | 显示全部楼层
本地离线的天猫么?
回复

使用道具 举报

0

主题

2

帖子

16

积分

新手上路

Rank: 1

积分
16
金钱
14
HASS币
0
发表于 2018-6-12 22:30:06 | 显示全部楼层
学习学习
回复

使用道具 举报

16

主题

158

帖子

911

积分

高级会员

Rank: 4

积分
911
金钱
753
HASS币
0
 楼主| 发表于 2018-6-12 22:33:11 | 显示全部楼层
kevinshane 发表于 2018-6-12 22:29
本地离线的天猫么?

就是本地的服务器, 需要映射端口到外网, 比论坛提供的公用服务器要快一些
回复

使用道具 举报

2

主题

227

帖子

1980

积分

金牌会员

Rank: 6Rank: 6

积分
1980
金钱
1753
HASS币
0
发表于 2018-6-12 22:43:42 来自手机 | 显示全部楼层
学习学习一下
回复

使用道具 举报

2

主题

284

帖子

2279

积分

金牌会员

Rank: 6Rank: 6

积分
2279
金钱
1994
HASS币
0
发表于 2018-6-12 22:48:53 | 显示全部楼层
学习一下
回复

使用道具 举报

0

主题

51

帖子

197

积分

注册会员

Rank: 2

积分
197
金钱
146
HASS币
0
发表于 2018-6-12 22:53:54 | 显示全部楼层

不错 支持一下。
回复

使用道具 举报

6

主题

180

帖子

893

积分

论坛积极会员

积分
893
金钱
713
HASS币
0
发表于 2018-6-12 23:20:21 | 显示全部楼层
感谢分享
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 03:06 , Processed in 0.489453 second(s), 38 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表