homeassistant搭建_梅林搭建home-assistant

岳劲
2023-12-01

安装entwareentware-setup.sh

安装python以及依赖

将pip缓存指向U盘mkdir /tmp/mnt/sda1/.cache

ln -s /tmp/mnt/sda1/.cache /root/.cache

# 如果你自身闪存足够,可以不修改指向

安装所需包opkg install python3 python3-pip gcc pkg-config libopenssl libffi python3-pyopenssl python3-openssl make

配置ffi.h和ffitarget.h因为home-assistant需要python-miio依赖,但是编译过程中需要ffi.h和ffitarget.hwget ftp://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz # 下载包

tar -zxvf libffi-3.2.1.tar.gz

cd libffi-3.2.1

./configure

make

cp armv7l-unknown-linux-gnueabi/include/*.h /opt/include # armv7l-unknown-linux-gnueabi 路径根据实际情况修改

安装所需库pip3 install --upgrade setuptools

pip3 install sqlalchemy

pip3 install netifaces

pip3 install python-miio

pip3 install xmltodict

#部分库会自动安装,所以这边就不一一列举出来了

配置启动进入目录/opt/etc/init.d,创建文件hass-daemon,并将下面内容写入文件后chmod a+x /opt/etc/init.d/hass-daemon#!/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=""

# Typically /usr/bin/hass

HASS_BIN="hass"

RUN_AS="ghostcir"

PID_DIR="/opt/var/run"

PID_FILE="$PID_DIR/hass.pid"

CONFIG_DIR="/opt/etc/homeassistant"

LOG_DIR="/opt/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() {

create_piddir

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"

$CMD

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安装/opt/etc/init.d/hass-daemon install启动/opt/etc/init.d/hass-daemon start

接入设备

 类似资料: