Homeassistant在小米1手机上的安装过程
追加修改(2018-12-24 12:50:39):
针对第二篇文章《智能家居折腾记 篇二:Homeassistant在小米1手机上的安装过程》中热心朋友的提问,我发现了写作过程中的一个疏漏,其实在我推荐的第一个文章中写到了这个步骤,被我不小心忘记了,造成很多朋友运行过程中遇到的了权限问题。
这个问题我回头仔细看了一下,是建立用户以后忘记把文件夹/srv/homeassistant的管理权限给新建的homeassistant用户了,这里把坑补上,在这里谢谢这位热心朋友。输入代码如下:
安装 HomeAssistant
首先要添加一个用户
sudo useradd -rm homeassistant
在 /srv 目录下面添加 python 运行环境,
sudo mkdir /srv/homeassistant
sudo chown homeassistant:homeassistant /srv/homeassistant
后续命令按照sudo apt-get install python3-pip python3-dev这样往下弄,创建环境,在环境中运行pip3 install --upgrade homeassistant 就可以了。
前面一篇文章中,我们已经在小米1手机上安装了deploy,并且在deploy中的chroot环境中安装了ubuntu 18.04,这篇文章中将介绍homeassistant系统的安装过程。本文所使用的工具请到这个百度云盘的连接下载
1. homeassistant安装过程
homeassistant是一个基于python3平台的智能家居管理系统,能够介入超过3000多种设备,当然这个数字只是说说,目前我还没找到京东微联sp mini接入的方法,我的建议是遇到问题多到hassbian论坛或者hass.io中文论坛上去看看,随着系统的更新说不定有些设备就支持了。闲言少叙,这里我把homeassistant的安装分为两部,第一步是安装必要的依赖和建立虚拟环境,第二部就是安装homeassistant平台并设置开机启动。
1.1 python安装环境的配置以及homeassistant安装
首先,在deploy最上面有一行ip地址,可以通过ssh客户端访问到这个地址,端口号是22。推荐使用xshell或者putty,以putty为例,
这里ip地址是我手机deploy软件上显示的地址,大家根据自己的情况填写,端口默认22,不需要更改。
随后出现登录界面,这里输入我们安装时候设置的用户名,如果记不住回手机安装ubuntu系统的设置界面看一下。
随后输入密码,我的是1234,这里输入1234,输入的时候不会有任何变化,输入好以后回车,出现欢迎界面。
随后按照步骤输入命令,命令输入结束后点回车。
1. 激活系统
sudo apt-get update
因为我更新过,所以这里提示很少,正常情况下会更新出很多行,末尾还是会回到命令提示符,这时候我们输入下一条命令。
2.升级系统
sudo apt-get upgrade
然后我们安装nano,这是一个文本编辑器,和vi比起来对新手更友好一些。
sudo apt-get install nano
我已经安装过,所以这里没有安装提示,当问到y/n的时候输入y确认安装。
接下来,安装必要的依赖环境。这些都是homeassistant安装必须的,这里把命令复制下来,通过命令行的地方右键点击就能粘贴上,非常方便。
sudo apt-get install build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev libffi-dev -y
依赖安装可能比较慢,等待装好就可以了。
如果大家用的系统python 3.5.3就需要通过编译安装python或者升级系统到最新版。因为ubuntu 18.04的python版本是3.6.5,,所以安装编译python这步就不用了。
接着要安装python3必要的依赖和pip3
sudo apt-get install python3-pip python3-dev -y
通过pip3安装虚拟环境
sudo pip3 install --upgrade virtualenv
新建用户和组
sudo adduser --system homeassistant
sudo addgroup homeassistant
sudo usermod -G dialout -a homeassistant
这里打开deploy软件查看ubuntu安装设置中是否添加了homeassistant用户,如果没有请添加。
接着设置用户权限,命令行中输入:
sudo visudo
大家请按照我图里面黄色线的地方去修改,nano编辑器上下左右选择光标要修改的地方,这里编辑方式和记事本差不多,很容易,修改好以后按住键盘上的ctrl键再按x键,这时会问是否保存,点y,再回车确认文件名称就行了。
下面要设置root和homeassitant的密码,输入:
sudo passwd root
出现Enter new unix password:
这时候设置,后面用winscp的时候需要用root账号登陆。同理,搞定homeassistant
sudo passwd homeassistant
至此,安装的准备活动就做好了,已经走过了多一半的路,下面我们需要在虚拟环境中安装homeassistant。
1.2 设置虚拟环境,在虚拟环境中安装homeassistant
sudo su -s /bin/bash homeassistant
virtualenv -p python3 /srv/homeassistant
source /srv/homeassistant/bin/activate
如果环境部署好就和图上一样,我设置的用户名是abc。前面有(homeassistant)homeassistant就可以了。
在环境下安装HA,注意前面是(homeassistant)$ 复制后边的代码,输入代码如下:
pip3 install --upgrade pip
pip3 install --upgrade setuptools
pip3 install netdisco
pip3 install --upgrade homeassistant
不出意外的话homeassistant就安装好了,在环境中输入hass启动。第一次启动时间很长,需要耐心等待。
见到路由器出来就差不多了,用浏览器访问你的deploy的ip地址:8123看下页面是不是已经出来了。出来后可以设置下用户名密码,看看主页,如果没问题就在putty上按ctrl+c退出命令行。至此,homeassistant安装完成。朋友们可以退出putty或者输入exit推出homeassitant用户,为后续设置开机启动做准备。
2 设置hass开机启动
因为deploy是一种chroot容器,与真正在计算机不太一样,无法用常规方式做开机启动,这也是我在一开始的设置里就说要勾选INIT enable的原因。
2.1 采用网盘中附件安装方式
从我分享的网盘中找到这个hass-daemon的文件,通过网盘里面的winscp工具把文件拷贝到/etc/init.d目录下。winscp软件登录方式和putty差不多,可以同时登录,输入ip地址和端口号以后,使用root用户名和密码登录。文件类型选择SCP。
进入winscp以后找到/etc/init.d文件夹,网盘里面的hass-daemon文件拷贝进去。拷贝进去文件上点击右键选择属性,在权限这里输入0755点击确认。
保存配置文件之后在putty中执行下面的命令
sudo update-rc.d hass-daemon defaults
sudo service hass-daemon install
最后可以手动尝试启动服务
sudo /etc/init.d/hass-daemon start
接着在winscp中进入/etc目录,找到rc.local文件,如果没有这个文件自己创建一个文件命名为rc.local并进入编辑,这里最好在winscp中右键点击选择内部编辑器,如果双击打开需要在编辑器上方的编码中选择utf-8编码。否则正常启动。把下段文字粘贴进去点保存,然后在文件上右键选择属性,权限设置成0755。
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other value on error.
# In order to enable or disable this script just change the execution bits.
#
# By default this script does nothing.
sudo /etc/init.d/hass-daemon start
exit 0
2.2 如果没有从网盘下载附件,linux基础比较好的朋友可以采用putty安装请参考如下代码,这里不需要打开winscp。
先参考项目文档 最下面找到python environment的脚本,把整段代码复制下来,自己创建文件后编辑。
sudo touch /etc/init.d/hass-daemon
sudo nano /etc/init.d/hass-daemon
需要修改 RUN_AS 和 PRE_EXEC 这两个值
RUN_AS="homeassistant"
PRE_EXEC="source /srv/homeassistant/bin/activate;"
保存配置文件之后接着执行下面的命令
sudo chmod +x /etc/init.d/hass-daemon
sudo update-rc.d hass-daemon defaults
sudo service hass-daemon install
最后可以手动尝试启动服务
sudo /etc/init.d/hass-daemon start
启动脚本中定义了日志输出,可以通过下面的命令查看日志
tail /var/opt/homeassistant/home-assistant.log
另外需要注意的是,官方文档中的启动脚本是指定了配置文件的路径的
CONFIG_DIR="/var/opt/homeassistant"
如果需要编辑配置文件需要到该目录下编辑。
当然也可以修改会默认的目录下面
CONFIG_DIR="/home/homeassistant/.homeassistant
如果,到这里hass能正常启动说明服务安装成功了,现在添加到开机启动项。
首先在设置里面确认INIT的设置是/etc/rc.local目录。
然后继续在putty中输入命令
sudo nano /etc/rc.local
这里字有点多,我把我的代码贴出来分享给大家。
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other value on error.
# In order to enable or disable this script just change the execution bits.
#
# By default this script does nothing.
sudo /etc/init.d/hass-daemon start
exit 0
然后ctrl+x保存退出就可以了。在手机的deploy软件下点停止再启动,看下rc.local是不是正常启动,过一会就能通过浏览器访问到homeassistant了。
一般用户到这里就可以结束了,对于喜欢折腾的朋友可以继续看,我要做微信访问和内网穿透访问以及远控手机。
3. 安装MoloHub通过手机微信访问HA。
MoloHub是一个可以让用户通过微信,google以及github访问到homeassistant的插件,这个插件可以穿透内网,不需要复杂的设置。点击下面的项目地址,找到一键安装,把下面命令复制到命令行,运行。如果提示没有找到curl命令,需要安装curl。
首先,安装curl
sudo apt-get install curl
然后,点击项目地址,进入molohub项目,在一键安装里面将命令行粘贴到命令行。
curl --silent --show-error --retry 5 https://raw.githubusercontent.com/haoctopus/molohub/master/auto_install.py | sudo python
粘贴后通过homeassistant的网页重启就行了,重启的方法是在网页左侧找到配置-通用-服务管理下面有重启服务,点击,等一会重新进入网页就看到如下页面。molohub安装成功。
正常情况下进入homeassistant会出现molo,点击之后会让你扫描二维码,用微信扫描关注后就可以访问了,非常简单。
















校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案