homeassistant: исправления

master 102
parent 04f9758fc2
commit a7b14c33bd

@ -12,7 +12,7 @@ serverlog="/var/log/homeassistant/server.log"
warningslog="/var/log/homeassistant/warnings.log" warningslog="/var/log/homeassistant/warnings.log"
retry="20" retry="20"
command=/var/calculate/www/${RC_SVCNAME}/${RC_SVCNAME}-live/.venv/bin/hass command=/var/calculate/www/${RC_SVCNAME}/${RC_SVCNAME}-live/bin/hass
directory=/var/calculate/www/${RC_SVCNAME}/${RC_SVCNAME}-live directory=/var/calculate/www/${RC_SVCNAME}/${RC_SVCNAME}-live
start_stop_daemon_args="--user $user --stdout $stdoutlog --stderr $serverlog --wait 10" start_stop_daemon_args="--user $user --stdout $stdoutlog --stderr $serverlog --wait 10"

@ -15,59 +15,61 @@ configure() {
local live_dir="$home_dir/homeassistant-live" local live_dir="$home_dir/homeassistant-live"
local live_ver="$(get_live_ver $live_dir)" local live_ver="$(get_live_ver $live_dir)"
# отобразим наличие обновления и выйдем
if [[ $action == 'check' ]]; then if [[ $action == 'check' ]]; then
if [[ $live_ver != $last_ver ]]; then if [[ $live_ver != $last_ver ]]; then
einfo "homeassistant: $last_ver update available, $live_ver installed" einfo "homeassistant: $last_ver update available, $live_ver installed"
eval $__result=1 # наличие обновления eval $__result=1
fi fi
return 0 return 0
fi fi
# выйдем если нет обновления
[[ $live_ver == $last_ver ]] && return
# подготовим пути
if [[ ! -e $home_dir ]]; then if [[ ! -e $home_dir ]]; then
mkdir -p $home_dir/versions mkdir -p ${home_dir}/versions
chmod 700 $home_dir chmod 700 $home_dir
chown -R homeassistant: $home_dir chown -R homeassistant: $home_dir
fi fi
touch ${log_dir}/homeassistant.log touch ${log_dir}/homeassistant.log
chown homeassistant: ${log_dir}/homeassistant.log chown homeassistant: ${log_dir}/homeassistant.log
if [[ $live_ver != $last_ver ]]; then if [[ $live_ver == '' ]]; then
if [[ $live_ver == '' ]]; then echo Install Home Assistant
echo Install Home Assistant else
else echo Update Home Assistant
echo Update Home Assistant fi
fi
su - homeassistant -s /bin/bash -c "$(cat <<- EOF su - homeassistant -s /bin/bash -c "$(cat <<- EOF
set -ueo pipefail set -ueo pipefail
export PATH="/lib/rc/bin:$PATH" export PATH="/lib/rc/bin:$PATH"
ebegin 'Create a virtualenv' ebegin 'Create a virtualenv'
test -e ${work_dir} && rm -rf ${work_dir} test -e ${work_dir} && rm -rf ${work_dir}
python -m venv ${work_dir}/.venv python -m venv ${work_dir}
source ${work_dir}/.venv/bin/activate source ${work_dir}/bin/activate
eend eend
ebegin 'Install all Python dependencies' ebegin 'Install all Python dependencies'
python -m pip install wheel &>>${log_dir}/homeassistant.log python -m pip install wheel &>>${log_dir}/homeassistant.log
eend eend
ebegin "Install Home Assistant ${last_ver}" ebegin "Install Home Assistant ${last_ver}"
pip install homeassistant==${last_ver} &>>${log_dir}/homeassistant.log pip install homeassistant==${last_ver} &>>${log_dir}/homeassistant.log
eend eend
ebegin 'Install PostgreSQL dependencies' ebegin 'Install PostgreSQL dependencies'
pip install psycopg2 &>>${log_dir}/homeassistant.log pip install psycopg2 &>>${log_dir}/homeassistant.log
eend eend
ln -snf versions/homeassistant-$last_ver $live_dir ln -snf versions/homeassistant-$last_ver $live_dir
EOF EOF
)" )"
if [[ $live_ver != '' ]]; then if [[ $live_ver != '' ]]; then
rc-service -s homeassistant restart rc-service -s homeassistant restart
echo echo
fi
fi fi
} }

@ -17,10 +17,11 @@ configure() {
local live_ver="$(get_live_ver $live_dir)" local live_ver="$(get_live_ver $live_dir)"
local conf_dir="/var/calculate/zigbee2mqtt" local conf_dir="/var/calculate/zigbee2mqtt"
# отобразим наличие обновления и выйдем
if [[ $action == 'check' ]]; then if [[ $action == 'check' ]]; then
if [[ $live_ver != $last_ver ]]; then if [[ $live_ver != $last_ver ]]; then
einfo "zigbee2mqtt: $last_ver update available, $live_ver installed" einfo "zigbee2mqtt: $last_ver update available, $live_ver installed"
eval $__result=1 # наличие обновления eval $__result=1
fi fi
return 0 return 0
fi fi
@ -36,8 +37,12 @@ configure() {
fi fi
fi fi
# выйдем если нет обновления
[[ $live_ver == $last_ver ]] && return
# подготовим пути
if [[ ! -e $home_dir ]]; then if [[ ! -e $home_dir ]]; then
mkdir -p $home_dir/versions mkdir -p ${home_dir}/versions
chmod 700 $home_dir chmod 700 $home_dir
chown -R zigbee2mqtt: $home_dir chown -R zigbee2mqtt: $home_dir
fi fi
@ -46,75 +51,73 @@ configure() {
chmod 700 $conf_dir chmod 700 $conf_dir
chown -R zigbee2mqtt: $conf_dir chown -R zigbee2mqtt: $conf_dir
fi fi
touch ${log_dir}/zigbee2mqtt.log touch ${log_dir}/zigbee2mqtt.log
chown zigbee2mqtt: ${log_dir}/zigbee2mqtt.log chown zigbee2mqtt: ${log_dir}/zigbee2mqtt.log
if [[ $live_ver != $last_ver ]]; then if [[ $live_ver == '' ]]; then
if [[ $live_ver == '' ]]; then echo Install Zigbee2MQTT
echo Install Zigbee2MQTT else
else echo Update Zigbee2MQTT
echo Update Zigbee2MQTT fi
fi
su - zigbee2mqtt -s /bin/bash -c "$(cat <<- EOF su - zigbee2mqtt -s /bin/bash -c "$(cat <<- EOF
set -ueo pipefail set -ueo pipefail
export PATH="/lib/rc/bin:$PATH" export PATH="/lib/rc/bin:$PATH"
ebegin Download zigbee2mqtt ${last_ver} ebegin Download zigbee2mqtt ${last_ver}
test -e ${work_dir} && rm -rf ${work_dir} # удалим если было прервано test -e ${work_dir} && rm -rf ${work_dir} # удалим если было прервано
wget -q https://github.com/Koenkk/zigbee2mqtt/archive/refs/tags/${last_ver}.zip \ wget -q https://github.com/Koenkk/zigbee2mqtt/archive/refs/tags/${last_ver}.zip \
-O zigbee2mqtt-${last_ver}.zip -O zigbee2mqtt-${last_ver}.zip
eend eend
ebegin 'Extract the archive' ebegin 'Extract the archive'
unzip -q -d versions zigbee2mqtt-${last_ver}.zip unzip -q -d versions zigbee2mqtt-${last_ver}.zip
rm zigbee2mqtt-${last_ver}.zip rm zigbee2mqtt-${last_ver}.zip
eend eend
# вынесем настройки # вынесем настройки
if [[ -z "$(ls -A $conf_dir)" ]]; then if [[ -z "$(ls -A $conf_dir)" ]]; then
mv versions/zigbee2mqtt-${last_ver}/data/* ${conf_dir} mv versions/zigbee2mqtt-${last_ver}/data/* ${conf_dir}
fi fi
rm -rf versions/zigbee2mqtt-${last_ver}/data rm -rf versions/zigbee2mqtt-${last_ver}/data
ln -s ${conf_dir} versions/zigbee2mqtt-${last_ver}/data ln -s ${conf_dir} versions/zigbee2mqtt-${last_ver}/data
ebegin 'Create a virtualenv' ebegin 'Create a virtualenv'
python -m venv ${work_dir}/.venv python -m venv ${work_dir}/.venv
eend eend
ebegin 'Activate environment' ebegin 'Activate environment'
source ${work_dir}/.venv/bin/activate source ${work_dir}/.venv/bin/activate
eend eend
ebegin 'Upgrade pip, wheel and setuptools' ebegin 'Upgrade pip, wheel and setuptools'
pip install --upgrade pip wheel setuptools &>>${log_dir}/zigbee2mqtt.log pip install --upgrade pip wheel setuptools &>>${log_dir}/zigbee2mqtt.log
eend eend
ebegin 'Install Node environment' ebegin 'Install Node environment'
pip install nodeenv &>>${log_dir}/zigbee2mqtt.log pip install nodeenv &>>${log_dir}/zigbee2mqtt.log
eend eend
ebegin 'Init Node environment ${ini[zigbee2mqtt.nodeenv]}' ebegin 'Init Node environment ${ini[zigbee2mqtt.nodeenv]}'
nodeenv -p -n ${ini[zigbee2mqtt.nodeenv]} &>>${log_dir}/zigbee2mqtt.log nodeenv -p -n ${ini[zigbee2mqtt.nodeenv]} &>>${log_dir}/zigbee2mqtt.log
eend eend
einfo 'Install dependencies' einfo 'Install dependencies'
cd ${work_dir} cd ${work_dir}
npm ci &>>${log_dir}/zigbee2mqtt.log npm ci &>>${log_dir}/zigbee2mqtt.log
cd cd
ln -snf versions/zigbee2mqtt-${last_ver} $live_dir ln -snf versions/zigbee2mqtt-${last_ver} $live_dir
EOF EOF
)" )"
if [[ $live_ver != '' ]]; then if [[ $live_ver != '' ]]; then
rc-service -s zigbee2mqtt restart rc-service -s zigbee2mqtt restart
echo echo
else else
ebegin 'Setup zigbee2mqtt' ebegin 'Setup zigbee2mqtt'
mv ${conf_dir}/configuration.yaml ${conf_dir}/configuration.yaml.old mv ${conf_dir}/configuration.yaml ${conf_dir}/configuration.yaml.old
cat > ${conf_dir}/configuration.yaml << EOF cat > ${conf_dir}/configuration.yaml << EOF
# Home Assistant integration (MQTT discovery) # Home Assistant integration (MQTT discovery)
homeassistant: true homeassistant: true
@ -139,8 +142,7 @@ frontend:
port: 8080 port: 8080
host: 127.0.0.1 host: 127.0.0.1
EOF EOF
chown zigbee2mqtt: ${conf_dir}/configuration.yaml chown zigbee2mqtt: ${conf_dir}/configuration.yaml
eend eend
fi
fi fi
} }

@ -16,16 +16,21 @@ configure() {
local live_ver="$(get_live_ver $live_dir)" local live_ver="$(get_live_ver $live_dir)"
local conf_dir="/var/calculate/hass-configurator" local conf_dir="/var/calculate/hass-configurator"
# отобразим наличие обновления и выйдем
if [[ $action == 'check' ]]; then if [[ $action == 'check' ]]; then
if [[ $live_ver != $last_ver ]]; then if [[ $live_ver != $last_ver ]]; then
einfo "hass-configurator: $last_ver update available, $live_ver installed" einfo "hass-configurator: $last_ver update available, $live_ver installed"
eval $__result=1 # наличие обновления eval $__result=1
fi fi
return 0 return 0
fi fi
# выйдем если нет обновления
[[ $live_ver == $last_ver ]] && return
# подготовим пути
if [[ ! -e $home_dir ]]; then if [[ ! -e $home_dir ]]; then
mkdir -p $home_dir/versions mkdir -p ${home_dir}/versions
chmod 700 $home_dir chmod 700 $home_dir
chown -R hass-configurator: $home_dir chown -R hass-configurator: $home_dir
fi fi
@ -34,58 +39,57 @@ configure() {
chmod 700 $conf_dir chmod 700 $conf_dir
chown -R hass-configurator: $conf_dir chown -R hass-configurator: $conf_dir
fi fi
touch ${log_dir}/hass-configurator.log touch ${log_dir}/hass-configurator.log
chown hass-configurator: ${log_dir}/hass-configurator.log chown hass-configurator: ${log_dir}/hass-configurator.log
if [[ $live_ver != $last_ver ]]; then if [[ $live_ver == '' ]]; then
if [[ $live_ver == '' ]]; then echo Install HASS Configurator
echo Install HASS Configurator else
else echo Update Configurator
echo Update Configurator fi
fi
su - hass-configurator -s /bin/bash -c "$(cat <<- EOF # выполним настройки от пользователя hass-configurator
set -ueo pipefail su - hass-configurator -s /bin/bash -c "$(cat <<- EOF
export PATH="/lib/rc/bin:$PATH" set -ueo pipefail
export PATH="/lib/rc/bin:$PATH"
ebegin Download hass-configurator ${last_ver} ebegin Download hass-configurator ${last_ver}
test -e ${work_dir} && rm -rf ${work_dir} # удалим если было прервано test -e ${work_dir} && rm -rf ${work_dir} # удалим если было прервано
wget https://github.com/danielperna84/hass-configurator/archive/refs/tags/${last_ver}.zip \ wget https://github.com/danielperna84/hass-configurator/archive/refs/tags/${last_ver}.zip \
-O hass-configurator-${last_ver}.zip &>>${log_dir}/hass-configurator.log -O hass-configurator-${last_ver}.zip &>>${log_dir}/hass-configurator.log
eend eend
ebegin 'Extract the archive' ebegin 'Extract the archive'
unzip -q -d versions hass-configurator-${last_ver}.zip unzip -q -d versions hass-configurator-${last_ver}.zip
rm hass-configurator-${last_ver}.zip rm hass-configurator-${last_ver}.zip
eend eend
ebegin 'Create a virtualenv' ebegin 'Create a virtualenv'
python -m venv ${work_dir}/.venv python -m venv ${work_dir}/.venv
eend eend
ebegin 'Activate environment' ebegin 'Activate environment'
source ${work_dir}/.venv/bin/activate source ${work_dir}/.venv/bin/activate
eend eend
ebegin 'Upgrade pip and wheel' ebegin 'Upgrade pip and wheel'
pip install --upgrade pip wheel &>>${log_dir}/hass-configurator.log pip install --upgrade pip wheel &>>${log_dir}/hass-configurator.log
eend eend
ebegin 'Install HASS Configurator' ebegin 'Install HASS Configurator'
pip install hass-configurator &>>${log_dir}/hass-configurator.log pip install hass-configurator &>>${log_dir}/hass-configurator.log
eend eend
ln -snf versions/hass-configurator-${last_ver} $live_dir ln -snf versions/hass-configurator-${last_ver} $live_dir
EOF EOF
)" )"
if [[ $live_ver != '' ]]; then if [[ $live_ver != '' ]]; then
rc-service -s hass-configurator restart rc-service -s hass-configurator restart
echo echo
else else
ebegin 'Setup HASS Configurator' ebegin 'Setup HASS Configurator'
cat > $conf_dir/settings.conf << EOF cat > $conf_dir/settings.conf << EOF
{ {
"LISTENIP": "127.0.0.1", "LISTENIP": "127.0.0.1",
"PORT": 3218, "PORT": 3218,
@ -113,9 +117,8 @@ configure() {
"NOTIFY_SERVICE": "persistent_notification.create" "NOTIFY_SERVICE": "persistent_notification.create"
} }
EOF EOF
chown hass-configurator: $conf_dir/settings.conf chown hass-configurator: $conf_dir/settings.conf
eend eend
fi
fi fi
} }

@ -23,7 +23,7 @@ configure() {
set -ueo pipefail set -ueo pipefail
export PATH="/lib/rc/bin:$PATH" export PATH="/lib/rc/bin:$PATH"
source ${work_dir}/.venv/bin/activate source ${work_dir}/bin/activate
hass --config ${conf_dir} &>>${log_dir}/config.log & hass --config ${conf_dir} &>>${log_dir}/config.log &
id_hass=\$! id_hass=\$!

Loading…
Cancel
Save