From f8c38b8177002b059d36c2dd826d514627b92232 Mon Sep 17 00:00:00 2001 From: tteckster Date: Wed, 15 Mar 2023 09:45:06 -0400 Subject: [PATCH] Add AppDaemon install to HA Core script (#1167) (#1168) Co-authored-by: Sergio Rius --- ct/homeassistant-core-v5.sh | 75 ++++++++++++++++++++++++++++++++++++- 1 file changed, 74 insertions(+), 1 deletion(-) diff --git a/ct/homeassistant-core-v5.sh b/ct/homeassistant-core-v5.sh index 988b31df..cbb5aea1 100644 --- a/ct/homeassistant-core-v5.sh +++ b/ct/homeassistant-core-v5.sh @@ -356,10 +356,11 @@ header_info function update_script() { PY=$(ls /srv/homeassistant/lib/) IP=$(hostname -I | awk '{print $1}') - UPD=$(whiptail --title "UPDATE" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 3 \ + UPD=$(whiptail --title "UPDATE" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 4 \ "1" "Update Core" ON \ "2" "Install HACS" OFF \ "3" "Install FileBrowser" OFF \ + "4" "Install/Update AppDaemon" OFF \ 3>&1 1>&2 2>&3) header_info if [ "$UPD" == "1" ]; then @@ -431,6 +432,78 @@ echo -e "FileBrowser should be reachable by going to the following URL. ${BL}http://$IP:8080${CL} admin|changeme\n" exit fi +if [ "$UPD" == "4" ]; then + clear + header_info + if [[ ! -d /srv/appdaemon ]]; then + msg_info "Installing AppDaemon" + mkdir /srv/appdaemon + cd /srv/appdaemon + python3 -m venv . + source bin/activate + pip install appdaemon &>/dev/null + mkdir -p /root/.homeassistant/appdaemon/apps + cat > /root/.homeassistant/appdaemon/appdaemon.yaml << EOF +# Sample appdaemon.yml file +# For configuration, please visit: https://appdaemon.readthedocs.io/en/latest/CONFIGURE.html +appdaemon: + time_zone: CET + latitude: 51.725 + longitude: 14.3434 + elevation: 0 + plugins: + HASS: + type: hass + ha_url: + token: +http: + url: http://127.0.0.1:5050 +admin: +api: +EOF + msg_ok "Installed AppDaemon" + + msg_info "Creating Service" + cat > /etc/systemd/system/appdaemon.service << EOF +[Unit] +Description=AppDaemon +After=homeassistant.service +Requires=homeassistant.service +[Service] +Type=simple +WorkingDirectory=/root/.homeassistant/appdaemon +ExecStart=/srv/appdaemon/bin/appdaemon -c "/root/.homeassistant/appdaemon" +RestartForceExitStatus=100 +[Install] +WantedBy=multi-user.target +EOF + systemctl enable --now appdaemon &>/dev/null + msg_ok "Created Service" + + msg_ok "Completed Successfully!\n" + echo -e "AppDaemon should be reachable by going to the following URL. + ${BL}http://$IP:5050${CL}\n" + exit + else + msg_info "Upgrading AppDaemon" + msg_info "Stopping AppDaemon" + systemctl stop appdaemon + msg_ok "Stopped AppDaemon" + + msg_info "Updating AppDaemon" + source /srv/appdaemon/bin/activate + pip install --upgrade appdaemon &>/dev/null + msg_ok "Updated AppDaemon" + + msg_info "Starting AppDaemon" + systemctl start appdaemon + sleep 2 + msg_ok "Started AppDaemon" + msg_ok "Update Successful" + echo -e "\n Go to http://${IP}:5050 \n" + exit + fi +fi } if command -v pveversion >/dev/null 2>&1; then