Skip to content

Instantly share code, notes, and snippets.

@Caldis
Created January 16, 2019 14:35
Show Gist options
  • Star 10 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save Caldis/7646df406de43e6c6581ff491dfd8afe to your computer and use it in GitHub Desktop.
Save Caldis/7646df406de43e6c6581ff491dfd8afe to your computer and use it in GitHub Desktop.
在 Andorid 使用 Termux 安装 HomeAssistant 以作为家庭的 HomeKit 中枢

在 Andorid 使用 Termux 安装 HomeAssistant 以作为家庭的 HomeKit 中枢

主文档

0.配置 Termux

安装

  • 直接在 Play 商店搜索并下载 Termux

显示修饰键

  • 音量键 + Q

更新环境

  • 执行 pkg update
  • 执行 pkg upgrade

安装必备软件

  • 执行 pkg install curl vim

安装优化脚本

  • 需要保证已安装 curl
  • 执行 sh -c "$(curl -fsSL https://github.com/Cabbagec/termux-ohmyzsh/raw/master/install.sh)"
  • 脚本允许后先后有如下两个选项:
  • Enter a number, leave blank to not to change:
  • Enter a number, leave blank to not to change:
  • 分别选择背景色和字体
  • 想要继续更改挑选配色的话, 继续运行脚本来再次筛选: ~/termux-ohmyzsh/install.sh
  • 执行过上面的zsh一键配置脚本后, 并且授予文件访问权限的话, 会在家目录生成 storage 目录,并且生成若干目录,软连接都指向外置存储卡的相应目录

远程登陆 (可选)

  • 由于 Termux 不支持用密码登陆, 因此需要生成私钥, 并分发公钥文件 (在任意设备中使用同一份公钥, 公钥可以由任意设备生成)

使用 Windows 10 生成公钥

  • 在 Windows 10 生成 ssh 公钥需要 ssh 客户端
  • 打开设置, 在 应用和功能-管理可选功能-添加功能 中找到 OpenSSH客户端, 点击安装
  • 打开 PowerShell, 输入 ssh-keygen -t rsa
  • 生成后的密钥会复制到 %userprofile%/.ssh 下, id_rsa 为私钥, id_rsa.pub 为公钥

将公钥复制到手机上

  • 使用数据线将手机复制到任意目录, 进入 Termux 执行命令(cp), 将 id_rsa.pub 文件复制并重命名为 /data/data/com.termux/files/home/.ssh/authorized_keys

启用 Termux 的 ssh 服务

  • 在 Termux 输入 sshd 开启 OpenSSH 的守护进程
  • 在 Termux 输入 whoami 以获取用户名,如u0_a32
  • 在 Termux 输入 ip a 查看 ip 地址

安装 Windows 10 的 Linux 子系统

  • 打开设置, 在 系统设置-更新和安全-针对开发人员 中选择 开发人员模式
  • 打开设置, 在左上角搜索 启用或者关闭Windows功能, 在 适用于Linux的Windows子系统 前打勾, 安装完毕后重启电脑
  • 在 Windows 商店搜索 Ubuntu 点击安装

登陆 Termux

  • 进入所安装的 Linux 子系统, 输入 ssh 用户名@地址 -p 8022 登陆

保持 Termux 后台运行

  • 下拉手机顶部状态栏,看到 Termux,点击 ACQUIRE WAKELOCK,即可看到 1 session(wake lock help), 此时,termux就可以保持后台运行
  • 在不使用手机时, 保持 Termux 为前台运行并锁屏即可 (不要切换到桌面)

参考

1.安装 Home Assistant

更新环境

  • 执行 pkg update
  • 执行 pkg upgrade

安装/升级基础库

  • 执行 pkg install clang python python-dev openssl-dev clang
  • 执行 pip install --upgrade pip

安装 Home Assistant 的依赖 (可选)

  • 执行 pip install sqlalchemy warrant mutagen hap-python

安装并启动 Home Assistant

  • 执行 pip install homeassistant
  • 执行 hass
  • 电脑打开 地址:8123 查看是否正确运行

故障排除

如果出现 aarch64-linux-android-clang 的错误 (上方有小字缺失ffi.h文字)

参考

2.配置 Home Assistant

该步骤根据实际情况操作

拷贝配置文件到根目录的 HomeAssistant 下

执行 cp /data/data/com.termux/files/home/.homeassistant/configuration.yaml /storage/emulated/0/HomeAssistant/configuration.yaml

将根目录的 HomeAssistant 下配置拷贝到配置文件目录

执行 cp /storage/emulated/0/HomeAssistant/configuration.yaml /data/data/com.termux/files/home/.homeassistant/configuration.yaml

安装 HomeKit 依赖

执行 apt install libavahi-compat-libdnssd-dev

参考

@SparkCui
Copy link

win10 ssh不需要装子系统,powershell就自带了ssh,直接用就好

@4285f4
Copy link

4285f4 commented Jul 16, 2020

感谢教程,【pkg install clang python python-dev openssl-dev clang】多了一个clang,另外我使用hass运行的话会有很长一串的错误,使用hass --open-ui可以成功运行

@Cnyn0403
Copy link

您好 , 我完全照著以上教學的方法來做 , `可是會出現以下錯誤

ERROR: Command errored out with exit status 1: /data/data/com.termux/files/usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/data/data/com.termux/files/usr/tmp/pip-install-cmax352u/pillow/setup.py'"'"'; __file__='"'"'/data/data/com.termux/files/usr/tmp/pip-install-cmax352u/pillow/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /data/data/com.termux/files/usr/tmp/pip-record-c4cgx6sl/install-record.txt --single-version-externally-managed --prefix '' --user --prefix= --compile --install-headers /data/data/com.termux/files/home/.homeassistant/deps/include/python3.9/pillow Check the logs for full command output.
WARNING: You are using pip version 20.2.4; however, version 21.1.3 is available.
You should consider upgrading via the '/data/data/com.termux/files/usr/bin/python3 -m pip install --upgrade pip' command.
2021-07-15 03:14:00 ERROR (MainThread) [homeassistant.setup] Setup failed for image: Requirements for image not found: ['pillow==8.2.0'].
2021-07-15 03:14:01 ERROR (MainThread) [homeassistant.setup] Unable to set up dependencies of person. Setup failed for dependencies: image
2021-07-15 03:14:01 ERROR (MainThread) [homeassistant.setup] Setup failed for person: Could not set up all dependencies.2021-07-15 03:14:01 ERROR (MainThread) [homeassistant.setup] Unable to set up dependencies of onboarding. Setup failed for dependencies: person
2021-07-15 03:14:01 ERROR (MainThread) [homeassistant.setup] Setup failed for onboarding: Could not set up all dependencies.
2021-07-15 03:14:01 ERROR (MainThread) [homeassistant.setup] Unable to set up dependencies of frontend. Setup failed for dependencies: onboarding
2021-07-15 03:14:01 ERROR (MainThread) [homeassistant.setup] Setup failed for frontend: Could not set up all dependencies.
2021-07-15 03:14:01 ERROR (MainThread) [homeassistant.setup] Unable to set up dependencies of safe_mode. Setup failed for dependencies: frontend
2021-07-15 03:14:01 ERROR (MainThread) [homeassistant.setup] Setup failed for safe_mode: Could not set up all dependencies.
2021-07-15 03:14:01 WARNING (SyncWorker_1) [homeassistant.bootstrap] Cannot launch the UI because frontend not loaded

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment