From 9066e581716be62fc70a3fdf5e6dc147695cc86d Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 9 May 2025 11:07:35 +0200 Subject: [PATCH] Update homeassistant-core.sh --- ct/homeassistant-core.sh | 44 +++++++++++++++++++++++++++++++++------- 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/ct/homeassistant-core.sh b/ct/homeassistant-core.sh index 41f58d9..8b76350 100644 --- a/ct/homeassistant-core.sh +++ b/ct/homeassistant-core.sh @@ -28,38 +28,66 @@ function update_script() { msg_error "Read Guide: https://github.com/community-scripts/ProxmoxVE/discussions/1549" exit 1 fi + check_container_storage check_container_resources + if [[ ! -d /srv/homeassistant ]]; then msg_error "No ${APP} Installation Found!" - exit + exit 1 fi - PY=$(ls /srv/homeassistant/lib/) + setup_uv IP=$(hostname -I | awk '{print $1}') UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UPDATE" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 4 \ "1" "Update Core" ON \ "2" "Install HACS" OFF \ "3" "Install FileBrowser" OFF \ 3>&1 1>&2 2>&3) + if [ "$UPD" == "1" ]; then if (whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "SELECT BRANCH" --yesno "Use Beta Branch?" 10 58); then clear header_info echo -e "${GN}Updating to Beta Version${CL}" - BR="--pre " + BR="--pre" else clear header_info echo -e "${GN}Updating to Stable Version${CL}" BR="" fi + msg_info "Stopping Home Assistant" systemctl stop homeassistant msg_ok "Stopped Home Assistant" + if [[ -d /srv/homeassistant/bin ]]; then + msg_info "Migrating to .venv-based structure" + source /srv/homeassistant/bin/activate + PY_VER=$(python3 -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')") + deactivate + mv /srv/homeassistant "/srv/homeassistant_backup_$PY_VER" + mkdir -p /srv/homeassistant + cd /srv/homeassistant + + uv python install 3.13 + UV_PYTHON=$(uv python list | awk '/3\.13\.[0-9]+.*\/root\/.local/ {print $2; exit}') + if [[ -z "$UV_PYTHON" ]]; then + msg_error "No local Python 3.13 found via uv" + exit 1 + fi + + uv venv .venv --python "$UV_PYTHON" + source .venv/bin/activate + uv pip install homeassistant mysqlclient psycopg2-binary isal webrtcvad wheel + mkdir -p /root/.homeassistant + msg_ok "Migration complete" + else + source /srv/homeassistant/.venv/bin/activate + fi + msg_info "Updating Home Assistant" - source /srv/homeassistant/bin/activate - $STD pip install ${BR}--upgrade homeassistant + $STD uv pip install $BR --upgrade homeassistant msg_ok "Updated Home Assistant" msg_info "Starting Home Assistant" @@ -70,16 +98,18 @@ function update_script() { echo -e "\n Go to http://${IP}:8123 \n" exit fi + if [ "$UPD" == "2" ]; then msg_info "Installing Home Assistant Community Store (HACS)" $STD apt update $STD apt install -y unzip - cd .homeassistant + cd /root/.homeassistant $STD bash <(curl -fsSL https://get.hacs.xyz) msg_ok "Installed Home Assistant Community Store (HACS)" echo -e "\n Reboot Home Assistant and clear browser cache then Add HACS integration.\n" exit fi + if [ "$UPD" == "3" ]; then set +Eeuo pipefail read -r -p "Would you like to use No Authentication? " prompt @@ -131,4 +161,4 @@ description msg_ok "Completed Successfully!\n" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8123${CL}" \ No newline at end of file +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8123${CL}"