时间:2023-02-06 14:24:25 | 浏览:560
本文作者:carlyang1986
追加修改(2018-12-15 21:41:26):
我这篇文章有一个贴图错误,就是homeassistant括号那里,发了第一篇发现可能一下写的比较长,文字表达也不够清楚,后续我会拆成专题章节,多放图片,争取每一步的操作都有展示。这里向评论区的给位说声感谢。
题记:
从2010年开始接触到第一台安卓智能机以来,自己的手机换了一茬又一茬。但是有一台小米1一直舍不得卖掉保留到现在。在2012年就是这台具有里程碑意义的一款手机,让我从此成为米粉。 这台手机没有前置摄像头,运行优酷看视频都困难,所以一直在我的抽屉里吃灰,有一次无意间看到一篇安卓智能机变树莓派的文章,参考里面的安装方式不成功继续找了其他的一些文章,安装过程中也积累了一些经验,今天把这些记录下来分享给大家。这台手机安装好homeassistant平台以后我会逐步完善家里的智能家具设备,让这个平台更好用。后续的更新也会随着折腾的深入记录下来。
这里要感谢这两篇文章的作者,让我少走了许多的弯路。在这里也提醒有意折腾的朋友多查百度,多看其他人的文章,有些文章中可能因为命令行的排版或者系统版本的原因有和自己遇到的问题不一致的情况,就需要结合更多人的文章思考,我这里对小米手机1的安装过程做梳理。参考文章如下:
没有树莓派?没关系,手机也行!闲置安卓设备打造智能家庭中枢
[基础教程] 怎么顺利安装Home Assistant,新手教程
第一篇介绍的比较全面,包括deploy软件的安装,homekit,mqtt等安装。这里我只介绍homeassistant的安装部分,其他安装部分可以参考该文。另外一篇写的是armhf平台安装homeassistant的过程,解决了很多安装过程中的依赖错误。但是有些排版上的问题,有些安装步骤和我的系统也不太一样。
1.安装准备
1.1 具备以下条件可以尝试
1.手机的安卓版本要在4.0以上并且有root权限,保证deploy能够安装。没有root权限的朋友可以去参考下termux安装homeassistant的方法,但是我卡在最后安装homeassistant那里,可能是新版的HA需要解决一些依赖问题,我没有弄好,这里就不做展开了。
2.我的手机处理器是armv7架构,属于armhf平台,更老的手机处理器请选择armel架构安装系统。操作系统推荐debian 9和ubuntu 18因为python3的版本比较高,能够满足目前homeassistant的安装需要。
1.2 Deploy设置
设置过程请参看这篇文章↓
没有树莓派?没关系,手机也行!闲置安卓设备打造智能家庭中枢
我这里没有完全按照这篇文章的方法做,这里把自己的设置贴上来供大家参考。如果用我的方法没有弄好就请看看这篇文章,也许会有启发。
首先,安装好deloy后需要给root权限,我不知道busybox安装能有什么用因为卸载掉了busybox好像也能正常运行,不过busybox本身不大,就留着吧。
然后,进入软件,左上角的三根横线点开,进入settings设置参见截图。
deploy settings
这里要注意把锁定屏幕常量,锁定wifi一直连接这些都打开,免得手机省电状态断网清理后台,然后在自己的清理后台的地方把deploy设置到白名单,不让后台清理,这样就能保证deploy一直运行了。
deploy settings
其次,第一次运行deploy要更新下ENV也就是更新环境,如果换操作系统,在换之前也要先remove env移除环境,不然可能无法正常安装系统。不喜欢英文环境可以切换语言到中文。
接下来要找到右下角的三横线带小竖线的这个图标打开系统安装部分的设置
Deploy system settings
我之前按照教程选择了ubuntu 16.04版本,结果安装到homeassistant的时候提示python版本低于3.5.3,我自己编译安装了3.6以后环境又不知道咋设置了,弄的一时很狼狈,后来用ubuntu 18.04的时候因为依赖问题没有安装成功,最后在debian上折腾好了,其实ubuntu 18.04也是可以的,而且内置了python 3.6这对以后homeassistant的升级有很大帮助,这里推荐喜欢折腾的朋友选择ubuntu 18.04也就是bionic这个。安装源另外一篇教程换了中科大的,我这里几次没有安装成功,后来还是老实的用官方的源,虽然慢,不过成功率还是高一些的。一般来说第一次都没办法正常的装好,需要点停止后再安装一次,直到ssh那里装好了,显示deloy就行了。
Debian 9的设置
我这里用的是debian 9,系统选项参考设置。我的处理器支持armhf,能选择hf的选一下,因为armel这种是不带硬件浮点运算的,可能性能上会差一些,但是我的处理器不支持64位,所以无法用arm64,如果是A53或者A73这种新的支持64位系统的处理器可以用arm64,这样安装依赖会简单很多,这里只针对armhf平台做说明。
yo
用户名密码建议改简单点,喜欢麻烦的可以保持默认。下面有一项INIT的勾选enable很简单这里就不做说明了,INIT里面保持默认设置就可以了。
设置好之后点右上角的三个点,选安装,经过漫长的等待和不停的重装后系统终于装好了,这里看人品吧。我反正装了多次。
装好以后点start,系统启动没有fail项就算成功了。局域网中找台电脑挂上putty或者Xshell去访问吧。
2. homeassistant安装过程
现在进入正题,debian和ubuntu的命令基本一样。以下部分ubuntu 18安装的朋友可以继续参考。
2.1 python安装环境的配置以及homeassistant安装
首先,激活debian并更新,我个人习惯用nano编辑器,所以再装个nano,如果喜欢vi编辑器的可以跳过这步。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install nano
然后,安装必要的依赖环境 -y的意思是直接点yes确认,免得每个包都来一遍。
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
依赖安装可能比较慢,等待装好就可以了。
因为debian 9已经内置了python 3.5.3所以安装python这步就可以略过了。
接着要安装python3必要的依赖和PIP3
sudo apt-get install python3-pip python3-dev -y
新建用户和组
sudo adduser --system homeassistant
sudo addgroup homeassistant
sudo usermod -G dialout -a homeassistant
这里有一个两个教程都没有写的坑,就是homeassistant这个用户的sudo权限问题,教程的说法是在deploy里赋予root权限,但是我这里没成功。
这里我利用了visudo命令,意思是赋予某个用户sudo或者root权限,请按照文中涂黄的地方修改,这样在homeassistant的用户下就可以正常的使用sudo命令了。这里因为要用vi命令,可能有些新人不太了解怎么去编辑,首先进入文件后点键盘上的i键,这样就可以用方向键找到需要去改动的行,输入好对应的文字以后点键盘的esc键推出编辑。再输入:wq就可以保存退出了。
写到这里顺带把root和homeassitant的密码设置了,免得以后麻烦。输入:
sudo passwd root
出现Enter new unix password:
这时候设置,后面用winscp的时候需要用root账号登陆。同理,搞定homeassistant
然后要做的事情就是设置环境以及进入环境
sudo su -s /bin/bash homeassistant
virtualenv -p python3 /srv/homeassistant
这里注意python3后面有个空格再斜杠,不然这条命令过不去。
source /srv/homeassistant/bin/activate
如果环境部署好就和图上一样,我设置的用户名是abc。前面有(homeassistant)homeassistant就可以了。
在环境下安装HA,注意前面是(homeassistant)$ 复制后边的代码:
(homeassistant)$ pip3 install --upgrade pip
(homeassistant)$ pip3 install --upgrade setuptools
(homeassistant)$ pip3 install netdisco
(homeassistant)$ pip3 install --upgrade homeassistant
不出意外的话homeassistant就安装好了,在环境中输入hass启动。第一次启动时间很长,需要耐心等待。
见到路由器出来就差不多了,用浏览器访问你的deploy的ip地址:8123看下页面是不是已经出来了。出来后可以设置下用户名密码,看看主页,如果没问题就在putty上按ctrl+c退出命令行。至此,homeassistant安装完成。朋友们可以退出putty或者输入exit推出homeassitant用户,为后续设置开机启动做准备。
2.2 设置hass开机启动
因为deploy是一种chroot容器,与真正在计算机不太一样,无法用常规方式做开机启动,这也是我在一开始的设置里就说要勾选INIT enable的原因。
先参考项目文档,往下找找到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安装
MoloHub是一个可以让用户通过微信,google以及facebook访问到homeassistant的插件,这个插件可以穿透内网,不需要复杂的设置。
项目地址
进入后往下找到一键安装,把命令粘贴到putty下运行即可,如果提示找不到curl命令,那就通过sudo apt-get install curl安装一个。
正常情况下进入homeassistant会出现molo,点击之后会让你扫描二维码,用微信扫描关注后就可以访问了,非常简单。
4. 内网穿透安装以及开机启动设置
4.1花生壳内网版的安装及设置
内网穿透无非就花生壳,ngrok,frp几种大家可以根据自己的需要进行安装,我这里用的是花生壳。
首先在花生壳的官网登陆,注册一个免费域名,开通内网穿透需要花6块钱,价格不贵,相对稳定。花生壳会给你一个免费的域名,不要急着关网页,一会要需要回来设置。注册后会提示你关注花生壳的微信公众号,这里关注上,在微信客户端添加好自己的账号密码,绑定内网穿透要用。
然后再开个窗口,打开花生壳的网址,下载树莓派版本,目前最新版本3.0。
下载后的文件通过winscp拷贝到/home文件夹下待用。
putty输入命令
cd /home
ls
sudo dpkg -i phddns_rapi_3.0.2.armhf.deb
不出意外应该装好给出一个SN
进入网址b.oray.com
用这个SN登陆,默认密码是admin。登陆以后就会弹出一个二维码让你扫描绑定自己的账号,这里绑定上就行了。
回到最初注册花生壳的页面,
点击开通内网穿透的账号进入设置界面。
左侧找到内网穿透,添加映射,这里只能添加两个映射,我添加了SSH和hass,本地的IP地址是127.0.0.1。设置好以后就可以用了。
4.2 花生壳内网版开机启动以及定时启动
4.2.1 开机启动
设置好以后总不能每次启动deploy都输入一次命令,为了偷懒我就打起了设置开机启动的主意。在花生壳树莓派安装的教程里面提到了可以通过phddns start/status/stop/restart的命令实现花生壳打开,查看状态,关闭,重启等功能。但是没说这个命令在哪,我在debian 9里面按照花生壳的教程没搞定,但是在/usr/sbin文件夹发现了这个文件,尝试输入./phddns start 能用,说明这个就是花生壳自己的服务端了,接下来就考虑怎么把这个东西设置成开机启动。
前面已经设置过hass-daemon的开机启动,这里照猫画虎的来一次。
首先把phddns拷贝到etc/init.d目录下,感觉命令行有困难的可以用wiscp
sudo cp /usr/sbin/phddns /etc/init.d
然后查看文件是否已经复制好
cd /etc/init.d
ls
接着给phddns赋予可执行权限
sudo chmod +x /etc/init.d/phddns
加入启动项
sudo update-rc.d phddns defaults
sudo service phddns install
加入以后输入(注意/前面有个.) ./phddns start
如果出现正常的连接提示就没问题了,然后在/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
sudo /etc/init.d/phddns start
sudo /etc/init.d/cron
exit 0
这里添加了cron是为了后面定时任务方便,所以一起写了,这个命令已经在系统中带了,所以不用配置。
最后在deploy里面点关闭再启动下,看看b.oray.com的右上角图标有没有绿色的点出来,一般等会就有了。
4.2 定时重启
花生壳虽然好,但是内网环境毕竟有点不稳定,所以定时重启花生壳让域名解析到地址是必要的,这里就用到了linux中著名的定时命令cron,这个命令在/etc/crontab中可以打开编辑器查看,里面有一些语法说明。
我在最后加了一行
*/10 * * * * root /etc/init.d/phddns restart
意思是平均每10分钟重启一次花生壳。这个大家不要太贪心设置成1分钟,一般设置成10分钟或者30分钟都是可以的,不然你输入命令或者在改文件的时候断线了可别赖我。重连的意思就是断开再连。crontab文件如下,仅供参考。
/etc/crontab: system-wide crontab Unlike any other crontab you don"t have
# to run the `crontab" command to install the new version when you edit
# this file and files in /etc/cron.d. These files also have username
# fields, that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
*/10 * * * * root /etc/init.d/phddns restart
#
最后保存退出,deploy重启加载cron以后就能正常运行了。
5. 远程控制手机
添加这一行的目的是避免偶尔手机卡顿或者deploy出错需要重启,总不能自己跑回家就为了点一下吧。这个软件我也是偶然发现的,很好用推荐给大家。Air Droid,这个软件的用来管理手机文件的,不需要连接usb线缆,也不用在同一个网里面。本来我考虑过teamviewer,但是这个软件的quickconnect需要连接的时候在手机上点下确认,不适合我。软件很容易部署,跟着提示走就好了,在air mirror里面就可以远程控制手机了。
末了还要提醒下,deploy和airdroid都要在手机里设置成开机运行,并且第一次连接的时候点确认给软件管理权。我还在手机里安装了重启软件,点下就能重启,但是我这个小米1(一定要装v5系统,v4不知道,2.3装不上deploy)最近重启后会有概率连不上wifi,所以我也就不敢随便重启了,想起来给清理下内存就好了。我已经在小米手机的网络管理禁用其他不必要联网的应用了,但是系统应用无法禁用,这个浏览器每天给我弹东西,看来小米植入广告也没有放过小米1这个老古董。我的截图是pc客户端,当然web页面也是可以的,这样就很方便随时查看手机的状态。
到最后还是要做一件事,把本教程中提到的软件和配置文件贴个百度云上来,方便各位朋友。欢迎大家交流。后续我还会开homeasistant配置的坑,和大家一起交流(绿米的空调伴侣坑死我了,死活用不了)等我弄的七七八八了再开坑继续写,也欢迎各位群里的高人指点小弟。
总结
写这个用了我大概两天的时间,但是这个HA用下来的感觉可能还是不如原生的小米之家,他的优势是能把不同牌子的智能家居设备集成到一起,相互联动。可能是受限手机性能的原因,偶尔花生壳或者ssh会连不上,也就促成我折腾到目前这样的状态,之前的很多朋友写了不同的教程给我启发,但是找起来很分散很麻烦,我也怕自己久了会忘记现在怎么处理这些问题,所以写下来给大家分享,也算是备忘。后续我还会接着开HA的坑,喜欢的朋友麻烦关注我吧。
相信这种评论,大家随处可见,很多人都说小米是组装机,但是我试问一下,难道其他品牌就不是组装机了吗?没有任何一个品牌是靠自己的力量把一款手机从头到尾的制造出来,只是说组装的成分不同而已。的确,现在华为手机的国产含量很高,因为种种制裁的原因,不
本文作者:carlyang1986 追加修改(2018-12-15 21:41:26):我这篇文章有一个贴图错误,就是homeassistant括号那里,发了第一篇发现可能一下写的比较长,文字表达也不够清楚,后续我会拆成专题章节,多放图片,
网传小米将于12月2日举办年度新品发布会,将同时发布小米13和MIUI14,近期是备受米粉关注;网传消息真假不知,暂且不提。本期要跟大家分享的是关于MIUI13相册的八个功能,相册作为手机里使用频次最高的应用,熟悉掌握各种功能,是用户最基本
【手机中国新闻】一项新的专利表明,小米在考虑开发模块化智能手机。2020年2月,北京小米移动软件有限公司向美国专利商标局(USPTO)申请了“电子设备”的专利。该文档最近于2021年4月29日发布,并且也包含在世界知识产权组织(WIPO)的
现如今,智能穿戴设备正在一步一步的走入寻常百姓家。大家在享受智能穿戴设备给生活带来的便利的同时,知道这些智能穿戴公司当初取那些名字的含义吗?想必大家能够很轻易的说出像苹果、谷歌、亚马逊,百度、腾讯这样大公司的名字由来,但还有一些你可能没听说
4月2日,小米邀请媒体朋友们参观了位于廊坊的富士康科技工业园。在廊坊富士康,这里有小米9最主要的生产线,大多数的小米9手机都是在廊坊富士康生产的。我们在这里看到了小米9手机的整个组装流程。 首先我们见到的是小米9的SMT生产线,这里是加
小米发布了小米13系列,令人期待的小米影像果然不负众望,三颗徕卡镜头将小米的影像与其它手机拉开了距离,但小米影像的组成部分,除了镜头,还有相册。你可能会想,不就是平平无奇的相册吗?其实小米相册可以说是一个宝藏APP,它虽然画面简洁,但是可以
男人爱车,男人还爱鞋,大学舍友喜欢跑步,会省吃俭用一个月买一双自己喜欢的跑鞋,到货了还会跟我们炫耀一下。5G智玩好物早前分享过小米有品云弹减震运动鞋二代使用体验,穿到现在,确实很不错,像是在云端跳跃的感觉。最近,5G智玩好物又拿到一款小米有
389贴合机是宇道机电自主研发推出的一款手机辅料全自动贴合线,仅2人照看就可完成以前60个员工的工作,产能高达每小时3600片,产品良率99%以上,占地小,还可以按客户要求增减工位,是手机行业降低成本,节省人力,提高产能的最佳选择。该设备采
我是属于喜欢裸机使用的那种年轻人,我觉得戴手机壳是十分累赘的事情,损失了手机设计师的认真打磨的品质感,同时又增加了手机的厚重度,而且手机壳用久了以后,手机背部会出现起这种黏胶的小白点,相信大家也会认同的我观点。这是我的旧手机,戴了手机壳一年
随着共享经济的持续升温,普通消费者的生活似乎逐渐被共享经济包围了,从前两年的网约车到短租民舍再到共享单车、共享汽车,一个又一个共享租赁行业如雨后春笋般冒了出来。不管这些租赁行业现状发展的是好还是坏,但它的确点燃了新一轮的租赁经济爆发。最近,
很多手机发烧友们,如果能像我一样,不用下载什么app之类的应用软件,就能实现自己的租手机的梦,你觉得是不是很爽呢!随着移动互联网的更新速度的加快,各大商业应用软件的层出不群,多元化的服务是人们的根本需求,但是随着各大营销的升级,我们的每个人
现在手机发展速度有有目共睹的,几乎几个月就会推出一款升级的手机。小编的手机买了快一年了,几乎一天一摔,电源键也不管用了,非常惨,所以准备暑假换个手机,但是新出的手机太贵,以前的款式又不想买,就很纠结,最近又可以租手机了,小编又在想是租手机合
U盘是我们日常工作必不可少的工具,拷贝文件、备份数据都离不开它;但尴尬的是,单位配的U盘只能直接插电脑,不能直接插手机,而我每天又需要从手机拷贝文件到内网电脑(非互联网且禁止直连手机)。之前一直是用OTG转接线,由于转接线大家都在用,经常在
小米10发布之后就引起了非常多的讨论,然而我们却经常能够听到这样的声音,认为小米根本就没有什么所谓的技术,充其量也就是一家“组装厂”,甚至认为小米根本就没有核心技术。这种说法一直是困扰着小米,也可以说影响到了小米在大众心目中的品牌形象,自然