Files
ha-kiosk-dashboard/setup-ha-auto-login.sh
2025-12-31 04:26:59 -08:00

63 lines
2.2 KiB
Bash

#!/bin/bash
# Setup script for Home Assistant automatic login
# This helps configure Firefox to stay logged into Home Assistant
echo "Home Assistant Auto-Login Setup"
echo "================================"
echo ""
echo "There are several ways to keep the dashboard logged in:"
echo ""
echo "OPTION 1: Long-Lived Access Token (Recommended)"
echo " - Create a token in Home Assistant:"
echo " Profile > Long-Lived Access Tokens > Create Token"
echo " - Then use URL: http://homeassistant.local:8123/lovelace/default_view?auth_token=YOUR_TOKEN"
echo ""
echo "OPTION 2: Trusted Networks"
echo " - Add this computer's IP to Home Assistant's trusted_networks"
echo " - Edit configuration.yaml or use the UI"
echo ""
echo "OPTION 3: Firefox Auto-Login"
echo " - Configure Firefox to save and auto-fill credentials"
echo ""
read -p "Which option do you want to use? (1/2/3): " choice
case $choice in
1)
echo ""
echo "Enter your Home Assistant Long-Lived Access Token:"
read -s TOKEN
echo ""
echo "Updating dashboard script with token..."
sed -i "s|HA_URL=\"\${HA_URL:-.*}\"|HA_URL=\"\${HA_URL:-http://homeassistant.local:8123/lovelace/default_view?auth_token=$TOKEN}\"|" ~/scripts/homeassistant-dashboard.sh
echo "✓ Token configured!"
echo " The dashboard will now auto-login using the token."
;;
2)
echo ""
echo "To use trusted networks:"
echo "1. Get this computer's IP:"
hostname -I | awk '{print $1}'
echo ""
echo "2. Add it to Home Assistant's trusted_networks in configuration.yaml:"
echo " http_config:"
echo " trusted_networks:"
echo " - $(hostname -I | awk '{print $1}')"
echo ""
echo "3. Restart Home Assistant"
echo ""
echo "After that, the dashboard should auto-login."
;;
3)
echo ""
echo "Setting up Firefox to save credentials..."
echo "You'll need to manually log in once, then Firefox will remember."
echo ""
echo "To test: Run ~/scripts/launch-dashboard.sh, log in manually once,"
echo "then Firefox should remember your credentials."
;;
*)
echo "Invalid choice"
exit 1
;;
esac