软路由LEDE x86下安装HomeAssistant

我的环境是Koolshare的LEDE,

先在LEDE下安装debian,然后安装python3,接着安装HASS

1.安装debian

1.1安装Unified Controller

酷软中心安装Unified Controller

1.2 安装debian

安装debian

2.安装python

putty登陆到路由器

# 输入用户名,密码登陆到路由器
# 接着切换到debian
debian

# 更新一下软件
apt update -y && apt upgrade -y

# 安装python3和虚拟空间
apt install python3
apt-get install python3-venv

3.安装HASS

# 在当前路径创建HASS虚拟环境
python3 -m venv homeassistant

# 切换到虚拟环境目录,我目录在/mnt/sda3/debian/下
cd homeassistant

# 激活虚拟环境
source bin/activate

# 安装wheel和setuptools版本更新工具,
# 可以不安装这个,直接安装HASS,如果装HASS失败了,就返回来装这个就行了
pip install wheel

# 安装HASS,这一步出现红字的错误有可能是网络问题(具体看错误信息)
# 出现错误了,就多试几次
python3 -m pip install homeassistant

# 运行HASS
hass --open-ui
# 接着等HASS启动,这里时间看个人情况,有些长的需要1小时左右,短的的十几到几十分钟
# 等到putty返回start....就可以打开web控制页面了
http://软路由的地址:8123/

4.设置开机启动

经过上面的操作应该可以进到HASS的管理页面了,进去以后可以先关闭HASS
用winscp登陆后定位到 /etc/init.d/

# 定位到这里,然后新建一个文件,把下面代码拷贝进去,保存
/etc/init.d/

hass-daemon

hass-daemon代码如下,参考了:https://www.home-assistant.io/docs/autostart/init.d/

#!/bin/sh
### BEGIN INIT INFO
# Provides:          hass
# Required-Start:    $local_fs $network $named $time $syslog
# Required-Stop:     $local_fs $network $named $time $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Description:       Home\ Assistant
### END INIT INFO

# /etc/init.d Service Script for Home Assistant
# Created with: https://gist.github.com/naholyr/4275302#file-new-service-sh
PRE_EXEC="cd /homeassistant; source bin/activate; hass --open-ui;" #预备运行命令
# Typically /usr/bin/hass
HASS_BIN="hass"
RUN_AS="root"  #用户名
PID_DIR="/var/run/hass"
PID_FILE="$PID_DIR/hass.pid"  
CONFIG_DIR="/home/$RUN_AS/.homeassistant" #配置文件路径
LOG_DIR="/var/log/homeassistant"
LOG_FILE="$LOG_DIR/home-assistant.log"
FLAGS="-v --config $CONFIG_DIR --pid-file $PID_FILE --log-file $LOG_FILE --daemon"

start() {
  if [ ! -d "$PID_DIR" ]; then
    echo "It seems you did not run"
    echo -e "\tservice hass-daemon install"
    return 1
  fi
  if [ -f $PID_FILE ] && kill -0 $(cat $PID_FILE) 2> /dev/null; then
    echo 'Service already running' >&2
    return 1
  fi
  echo -n 'Starting service… ' >&2
  local CMD="$PRE_EXEC $HASS_BIN $FLAGS"
  su -s /bin/bash -c "$CMD" $RUN_AS
  if [ $? -ne 0 ]; then
    echo "Failed" >&2
  else
    echo 'Done' >&2
  fi
}

stop() {
  if [ ! -f "$PID_FILE" ] || ! kill -0 $(cat "$PID_FILE") 2> /dev/null; then
    echo 'Service not running' >&2
    return 1
  fi
  echo -n 'Stopping service… ' >&2
  kill $(cat "$PID_FILE")
  while ps -p $(cat "$PID_FILE") > /dev/null 2>&1; do sleep 1;done;
  rm -f $PID_FILE
  echo 'Done' >&2
}

install() {
  echo "Installing Home Assistant Daemon (hass-daemon)"
  update-rc.d hass-daemon defaults
  create_piddir
  mkdir -p $CONFIG_DIR
  chown $RUN_AS $CONFIG_DIR
  mkdir -p $LOG_DIR
  chown $RUN_AS $LOG_DIR
}

uninstall() {
  echo "Are you really sure you want to uninstall this service? The INIT script will"
  echo -n "also be deleted! That cannot be undone. [yes|No] "
  local SURE
  read SURE
  if [ "$SURE" = "yes" ]; then
    stop
    remove_piddir
    echo "Notice: The config directory has not been removed"
    echo $CONFIG_DIR
    echo "Notice: The log directory has not been removed"
    echo $LOG_DIR
    update-rc.d -f hass-daemon remove
    rm -fv "$0"
    echo "Home Assistant Daemon has been removed. Home Assistant is still installed."
  fi
}

create_piddir() {
  if [ ! -d "$PID_DIR" ]; then
    mkdir -p $PID_DIR
    chown $RUN_AS "$PID_DIR"
  fi
}

remove_piddir() {
  if [ -d "$PID_DIR" ]; then
    if [ -e "$PID_FILE" ]; then
      rm -fv "$PID_FILE"
    fi
    rmdir -fv "$PID_DIR"
  fi
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  install)
    install
    ;;
  uninstall)
    uninstall
    ;;
  restart)
    stop
    start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart|install|uninstall}"
esac

测试是否可用

# 退出当前虚拟状态
exit
# 安装
chroot /mnt/sda3/debian /bin/bash service hass-daemon install
# 返回如下
Installing Home Assistant Daemon (hass-daemon)
# 脚本启动
chroot /mnt/sda3/debian /bin/bash service hass-daemon start
# 上面运行完,可以去网页测试一下了,如果能打开,证明没问题

设置路由器启动时运行HASS,
lede设置开机启动
系统-->启动项,然后翻到最下面


开机启动第一步
开机启动代码
# 我这里加了50秒的延时
sleep 50s
chroot /mnt/sda3/debian service hass-daemon start

重启路由器,等一会儿,HASS网页就能打开了

你可能感兴趣的:(软路由LEDE x86下安装HomeAssistant)