59 lines
2.2 KiB
Plaintext

#!/usr/bin/with-contenv bashio
# Konfiguration lesen
readonly TUYA_EMAIL=$(bashio::config 'TUYA_EMAIL')
readonly TUYA_PASSWORD=$(bashio::config 'TUYA_PASSWORD')
readonly TUYA_REGION=$(bashio::config 'TUYA_REGION')
# Prüfen, ob Konfiguration vorhanden ist
if [[ -z "${TUYA_EMAIL}" || -z "${TUYA_PASSWORD}" ]]; then
bashio::log.fatal "Tuya-E-Mail und Passwort müssen konfiguriert sein."
exit 1
fi
# --- START: Authentifizierung und Kamera-Sync ---
bashio::log.info "Authentifizierung bei Tuya..."
printf "%s\n%s\n%s\n" "${TUYA_REGION}" "${TUYA_EMAIL}" "${TUYA_PASSWORD}" | /tuya_auth_login.exp
# --- NEU: Kamera-Refresh erzwingen ---
bashio::log.info "Synchronisiere Kameraliste mit Tuya-Cloud..."
# Dieser Befehl sorgt dafür, dass die lokale Konfiguration mit den Kameras aus Ihrem Account gefüllt wird.
tuya-ipc-terminal cameras refresh
# Eine kurze Pause kann helfen, damit alle Prozesse synchron sind.
sleep 5
# --- ENDE NEU ---
# Starte den RTSP-Server im Hintergrund
bashio::log.info "Starte den Tuya RTSP-Server im Hintergrund..."
tuya-ipc-terminal rtsp start --port 8554 &
# Speichere die Prozess-ID (PID) des RTSP-Servers
RTSP_PID=$!
bashio::log.info "RTSP-Server gestartet mit PID ${RTSP_PID}."
# Überprüfe, ob der Prozess noch läuft
if ! ps -p "${RTSP_PID}" > /dev/null; then
bashio::log.fatal "RTSP-Server konnte nicht gestartet werden. Prüfen Sie das Log auf Fehler wie 'no cameras found'."
exit 1
fi
# --- Start: Watchdog-Schleife ---
bashio::log.info "Starte den Watchdog zur Überwachung der Sitzung."
while true; do
# Warte für 15 Minuten
sleep 900
bashio::log.info "Watchdog: Überprüfe den Status der Tuya-Sitzung..."
RESPONSE=$(tuya-ipc-terminal cameras refresh 2>&1)
if echo "${RESPONSE}" | grep -q -E "401|USER_SESSION_LOSS|Not login"; then
bashio::log.error "Watchdog: Abgelaufene Sitzung erkannt! Starte das Addon neu."
kill "${RTSP_PID}"
exit 1
elif ! ps -p "${RTSP_PID}" > /dev/null; then
bashio::log.error "Watchdog: RTSP-Server-Prozess nicht gefunden! Starte das Addon neu."
exit 1
else
bashio::log.info "Watchdog: Sitzung ist gültig und RTSP-Server läuft."
fi
done