小白从零开始:一台安卓手机安装homeassistant将米家设备接入苹果homekit

2021-11-17 16:32:52 23点赞 198收藏 20评论

0 前言

iPhone也用了好久了,家里的米家设备比较多,一直只能通过米家app来操作。这些天看到可以通过homeassistant实现将米家设备接入苹果homekit,并且支持siri,功能很全,所以就准备折腾一番。

网上很多教程都是很久之前的了,有些也过时了,所以这次重新整理记录一下折腾的步骤,帮助一样遇到困难的朋友。

1 准备工作

准备一台可以root的安卓手机,我用的是索尼Xperia Z Premium,我,这是我2016年发疯,花了5000多块钱买的手机,现在闲鱼二手只要三四百块钱,高通骁龙835处理器,非常容易root,刷上原来机锋论坛马大的固件包,除了玩游戏,其他都能用途,现在真是性价比之王啊。(边框掉漆了)

小白从零开始:一台安卓手机安装homeassistant将米家设备接入苹果homekit

2 安装linux

手机要先root,然后安装busybox(酷安有)以及linux deploy(我从github下载的原版)。

1.打开deploy之后,先点击右下角的配置

小白从零开始:一台安卓手机安装homeassistant将米家设备接入苹果homekit

小白从零开始:一台安卓手机安装homeassistant将米家设备接入苹果homekit

发行版GNU/Linux选择debian;架构选择arm64;发行版本选择buster;用户名和用户密码自行设置,简单一些;初始化选择启用;ssh选择启用;源改为:https://mirrors.163.com/debian;空间大一点设置成8192MB。

小白从零开始:一台安卓手机安装homeassistant将米家设备接入苹果homekit

2.之后点击左上角,选择“设置”,关闭“屏幕常亮”,钩选锁定wifi和CPU唤醒;在“环境”一栏点击“更新环境”,更新一下deploy运行的环境。

小白从零开始:一台安卓手机安装homeassistant将米家设备接入苹果homekit

3.点击右上角,选择“安装”,之后就是耐心等待,安装完成之后会显示"<<deploy",之后点击右上角的“配置”。

小白从零开始:一台安卓手机安装homeassistant将米家设备接入苹果homekit

4.运行完成之后点击最下面的“启动”,看到starting extra/ssh ... done,以及下一行的<<< start就是启动成功了。

3 安装python和依赖库,安装homeassistant

参考https://post.smzdm.com/p/adwl3r2n/

1.用ssh方式登录到手机。

windows下可以用putty或者xshell这两个软件,win10可以直接用shell终端,macos下可以用自带的终端terminal,或者下载一个terminus。

使用操作自带的终端应用的话,可以直接使用命令ssh 用户名@ip地址:端口号(端口一般默认都是22,所以也可以不输入)。

2.登录之后用命令:

sudo su -

直接使用超级用户权限,方便操作。

3.安装python,按顺序输入以下命令

1)先更新一下apt-get组件

sudo apt-get update

sudo apt-get upgrade

上面这两条命令是更新一下系统的相关组件。

2)安装依赖库

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 virtualenv -y

这一条命令是安装一些必要的依赖环境,-y的意思是直接点yes确认,免得每个包都来一遍。

3)sudo adduser --system homeassistant

sudo addgroup homeassistant

sudo usermod -G dialout -a homeassistant

这三条命令分别是新建用户(homeassistant)和用户组。

4)sudo passwd root

设定root用户的密码,方便以后用scp方式登录的时候使用。

5)sudo su -s /bin/bash homeassistant

virtualenv -p python3 /srv/homeassistant

上面这条命令可能会失败,这个时候需要进入到/srv/文件夹下,新建homeassistant文件夹,命令如下:

sudo mkdir /srv/homeassistant

然后赋予权限:

sudo chmod 777 /srv/homeassistant

接着再运行命令就好了。

source /srv/homeassistant/bin/activate

为homeassistant设置运行环境,运行好之后应该会如下图所示。

小白从零开始:一台安卓手机安装homeassistant将米家设备接入苹果homekit

6)在设置好后的来环境下安装homeassistant,在(homeassistant) root@ localhost:~#后边的复制下面的代码

(homeassistant)$ pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

上一条是将pip3安装器的源更换为清华的国内源,这样安装会快一些。

(homeassistant)$ pip3 install --upgrade pip

(homeassistant)$ pip3 install --upgrade setuptools

(homeassistant)$ pip3 install netdisco

(homeassistant)$ pip3 install --upgrade homeassistant

运行的最后一条就是安装homeassistant,然后就是漫长的等待。等再次看到(homeassistant) root@ localhost:~#就是安装好了。

四、启动homeassistant

参考https://post.smzdm.com/p/adwl3r2n/

1.第一次启动使用命令:

hass

就会启动homeassistant系统。第一次启动的时间比较久,所以需要耐心等待。过个5到10分钟,就可以在浏览器中输入手机的IP地址加端口8123(默认端口),如:

http://192.168.50.149:8123

看看能否进入到系统页面。

能进入页面的话,第一步就是创建用户名和密码,之后可以在命令终端里按键盘上的ctrl+c键,结束hass进程,进行下一步的设置。

2.在后台开启homeassistant用户进程

用ssh登录手机linux系统开启进程有个问题,就是关闭ssh后所有创建的进程也会一同关闭。可以理解成所有在ssh为父进程,ssh下创建的进程其实都子进程,父进程一关,子进程也就都会关掉。为了解决这个问题,可以使用nohup命令或者setsid命令。我自己现在用的是setsid。

再次登录到手机之后,先用:

sudo su -

进入超级用户模式

source /srv/homeassistant/bin/activate

这时会显示:(homeassistant) root@localhost:~#

使用命令:

nohup hass &

或者

setsid hass(推荐使用这个命令)

这两个命令会将hass在后台运行,其父pid为1,退出ssh后不会终结服务。其中nohup运行后输出的消息都输出到相应目录下的nohup.out文件。

如果想指定将信息输出到哪个文件,可以用:

nohup hass > xxx.out >2 &1 &

其中xxx.out是想要输出的文件名。

可以使homeassistant在后台运行。

注:可以使用命令:

ps -ef

查看后台所有进程

ps -ef |grep hass

可以查看hass进程的pid编号。假设进程pid为28678,可以用

kill 28678

强制结束进程。

五、米家设备接入homeassistant

目前已经运行起了home assistant系统,下一步就是将米家设备接入home assistant了。

home assistant里自带了一个能自动接入小米设备的插件,所以就省了我们一个一个地添加了。

要安装这个插件,需要安装hacs中的xiaomi miot auto或者xiaomi miio插件。在home assistant安装hacs。hacs可以是home assistant的一个社区商店,里面是很多个人开发的插件。这个需要使用home assistant的 supervisor功能安装,但是通过我们这种方式安装的supervisor属于core模式,没有supervisor功能,所以需要我们用稍微麻烦一点的方法安装。

1.安装xiaomi_miot

1.1通过hacs安装:

https://github.com/hacs/integration/releases/tag/1.15.2网址,下载hacs.zip。解压后得到hacs文件夹。

要使用hacs,还需要一个GitHub账号,并且对hacs授权。

1.2直接用wget安装(然后跳过2、3)

wget -q -O - https://cdn.jsdelivr.net/gh/al-one/hass-xiaomi-miot/install.sh | HUB_DOMAIN=hub.fastgit.org bash -

参见:https://github.com/al-one/hass-xiaomi-miot

2.在home/homeassistant/.homeassistant文件夹中新建"custom_components"和"www"这2个文件夹。命令如下:

cd home/homeassistant/.homeassistant

mkdir custom_components

mkdir www

这样就创建了文件夹。

接着就是通过winscp(Windows系统)把下载的hacs文件夹复制到custom_components下面。假设我们把hacs文件夹复制到了/root/文件夹下,使用如下命令:

cp -r root/hacs home/homeassistant/.homeassistant/custom_components

这样就把hacs复制进去了,然后重启home assistant系统,就能在最左侧看到HACS了。

3.点击hacs,新增储备库,搜索xiaomi miot auto,注意后面一定要有个auto,新增了之后会提示重启,重启即可。

4.重启之前来到“配置” -“集成”,搜索xiaomi miot auto,安装之后就按照提示登录就可以了。

六、总结

坑1: ERROR: Failed building wheel for cryptography Failed to build cryptography ERROR: Could not build wheels for cryptography which use P EP 517 and cannot be installed directly

解决方法:

sudo apt-get install pep517 libffi-dev libssl-dev

坑2: http依赖安装出问题

解决方法:pip3 install aiohttp_cors

参考:https://www.hachina.io/03.非典型安装(高级用户)/安装HomeAssistant%20Core/

坑3:定时启动服务

在linux deploy里,内置了定时启动的服务,在/etc/文件夹下的cron.daily、cron.hourly、cron.monthly里面,把写好的脚本放进去。再用命令:

service cron start启动就可以了。

坑4:查找某进程的pid

pgrep - f hass

或者

ps -ef | grep hass

坑5:查找所有进程占用的端口

lsof -i:8123

坑6:以下命令可以查看磁盘各分区大小、已用空间等信息:

df -h

坑7:关闭唤醒锁。这个很重要。假如不关的话锁屏一段时间后安卓系统会自动限制后台运行,来达到省电的作用。怎么关呢?把系统的省电方案更改为均衡,并且关闭诸如休眠省电之类的选项。然后把Linux deploy在设置里让其保持后台运行。然后下载MT管理器,打开左侧菜单点击【终端模拟器】,然后下滑任务栏里开启唤醒锁即可。其实任何终端应该都有唤醒锁功能,开启就行啦。

展开 收起

《夏天》iOS数字版软件

《夏天》iOS数字版软件

暂无报价

《Picsew》iOS数字版软件

《Picsew》iOS数字版软件

暂无报价

《扫描全能王付费版》iOS数字版软件

《扫描全能王付费版》iOS数字版软件

暂无报价

《kirakira+》 iOS软件

《kirakira+》 iOS软件

暂无报价

《1Password》 ios密码管理软件

《1Password》 ios密码管理软件

暂无报价

《记账·圈子账本(专业版)》iOS数字版中文软件

《记账·圈子账本(专业版)》iOS数字版中文软件

暂无报价

《国家地理 每日精选》iOS数字版软件

《国家地理 每日精选》iOS数字版软件

暂无报价

《航旅纵横PRO》iOS数字版应用

《航旅纵横PRO》iOS数字版应用

暂无报价

《彩云天气Pro》iOS数字版软件

《彩云天气Pro》iOS数字版软件

暂无报价

《鲨鱼记账本Pro》iOS软件

《鲨鱼记账本Pro》iOS软件

暂无报价

《APlayer》iOS视频播放类App

《APlayer》iOS视频播放类App

暂无报价

《Money Pro》 记账理财软件

《Money Pro》 记账理财软件

暂无报价

《5coins 记账》iOS数字版中文软件

《5coins 记账》iOS数字版中文软件

暂无报价

《iWoman》iOS中文软件

《iWoman》iOS中文软件

暂无报价

《TouchRetouch》iOS数字版软件

《TouchRetouch》iOS数字版软件

暂无报价

《凤凰新闻(专业版)》iOS数字版应用

《凤凰新闻(专业版)》iOS数字版应用

暂无报价
20评论

  • 精彩
  • 最新
  • 一直要输入密码,又没设置过[sudo] password for homeassistant:

    校验提示文案

    提交
  • 设定root用户的密码,我刚设置的密码在建立文件夹时密码就不对了

    校验提示文案

    提交
  • 安装完这个之后安卓手机需要常驻在家里吧。。我希望是能走nas里透过homeassistant服务来实现siri控制米家。

    校验提示文案

    提交
  • 算了我还是花点钱吧

    校验提示文案

    提交
  • 楼主你好,我用华为P9 root后进行安装,但是在putty SSH登录手机,一直在让我输入 password,输入linux Deploy上设置的密码后,显示ACCESS DENIED。
    找了很多地方都没有相关资料,请问楼主有碰到类似情况吗?

    校验提示文案

    提交
  • 如果只是为了siri手动控制设备,直接米家app里设定手动场景添加到siri就行了。
    设定后可以跟小爱同学一样的效果。

    校验提示文案

    提交
  • 先收藏了,有大佬出来评论了,我再来看看

    校验提示文案

    提交
  • 怎么做到8g镜像的?

    校验提示文案

    提交
  • 在吗作者我在最后安装hass.的时候报错pip3 install --upgrade homeassistant

    校验提示文案

    提交
    同样的问题

    校验提示文案

    提交
    看看执行完source /srv/homeassistant/bin/activate后,前缀是不是
    (homeassistant) root@localhost

    校验提示文案

    提交
    收起所有回复
  • @站立的家巧 作者在不

    校验提示文案

    提交
  • 楼主你好,报错Failed building wheel for ruamel.yaml怎么解决

    校验提示文案

    提交
  • 求解惑1:HA接入的各品牌商的插件,比如米家,是否涉及逆向工程侵犯品牌商知识产权?[思考]
    求解惑2:为什么国内没有厂家把用户需要的软件集成进硬件盒子里直接出售?主要阻塞点是哪些?

    校验提示文案

    提交
    1不是米家的逆向工程,是抓包得到cookie,然后就能连接米家设备。2.tb有成套出售的hass盒子

    校验提示文案

    提交
    收起所有回复
  • 小白收藏先

    校验提示文案

    提交
  • 怎么装supervisor 我搞了半天没装上nodered

    校验提示文案

    提交
  • 你好,请问手机一直显示ssh 打开失败怎么处理呀

    校验提示文案

    提交
  • @站立的家巧 我linux哪里启动一直都没用。【12:14:521 1: Extracting 11bsemanage1.. 【12:14:521 1: 【12:14:531 I: Extracting 11bpam0g. 112:14:531 I: Extracting 11bpcre3 . . 112:14:531 1: Extracting per1-base. [12:14:54] I: Extracting sed ..• 【12:14:541 I: Extracting 1ogin. 【12:14:551 I: Extracting passwd.• . 【12:14:55] I: Extracting 11bsystendo。 112:14:551 1: Extracting 11budev1•• • 112:14:561 I: Extracting sysvinit-ut11s... 【12:14:561 I: Extracting tar• 【12:14:56] I: Extracting tzdata.•. [12:14:571 I: Extracting libsmartcols1. 【12:14:571 I: Extracting 1ibuuid1.•• 【12:14:571 1: Extracting mount. . . 112:14:571 1: Extracting ut11-1inux.•• [12:14:58] I: Extracting zlib1g... 【12:14:581 ## core/emulator : doinstall && do_configure 【12:14:581 ## core/ mnt : do_instal1 && do_configure [12:14:58] : Configuring core/mnt.. (12:14:59) in core/net : do install añ do configure [12:14:59] :: Configuring core/net [12:14:59] chroot: can't execute "/debootstrap/ debootstrap': No such file or directory [12:14:591

    校验提示文案

    提交
  • 很厉害啊,正想体验一下

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
天猫超级红包
距结束::
每天领现金,最高24888元
红包按钮
最新文章 热门文章
198
扫一下,分享更方便,购买更轻松