tuya-ipc-terminal/run.sh aktualisiert

This commit is contained in:
admin 2025-10-16 18:23:48 +00:00
parent e2ba56031c
commit 603544b57c

View File

@ -1,30 +1,74 @@
#!/usr/bin/with-contenv bashio
bashio::log.info "--- START DES SUPER-DEBUG-SKRIPTS ---"
bashio::log.info "Schritt A: Überprüfe und setze Berechtigungen für das Expect-Skript..."
chmod +x /tuya_auth_login.exp
bashio::log.info "Berechtigungen gesetzt. Hier ist der Verzeichnis-Inhalt von /:"
ls -l /
bashio::log.info "Berechtigungs-Check abgeschlossen."
# Konfiguration lesen
readonly TUYA_EMAIL=$(bashio::config 'TUYA_EMAIL')
readonly TUYA_PASSWORD=$(bashio::config 'TUYA_PASSWORD')
readonly TUYA_REGION=$(bashio::config 'TUYA_REGION')
bashio::log.info "Schritt B: Konfiguration wurde gelesen."
bashio::log.info "Region: ${TUYA_REGION}, Email: ${TUYA_EMAIL}"
# 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
bashio::log.info "Schritt C: Starte den Authentifizierungsprozess..."
# --- 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
EXIT_CODE=$?
bashio::log.warning "Authentifizierungsprozess wurde mit Exit-Code beendet: ${EXIT_CODE}"
bashio::log.info "Schritt D: Authentifizierungsprozess ist beendet."
bashio::log.info "Wenn das Log hier endet, ist der Authentifizierungsprozess abgestürzt."
# --- Kamera-Refresh mit Wiederholungslogik ---
bashio::log.info "Synchronisiere Kameraliste mit Tuya-Cloud..."
RETRIES=5
SUCCESS=false
for i in $(seq 1 $RETRIES); do
bashio::log.info "Versuch ${i}/${RETRIES}, die Kameraliste abzurufen..."
# Führe den Refresh-Befehl aus und prüfe den Exit-Code
if tuya-ipc-terminal cameras refresh; then
bashio::log.info "Kameraliste erfolgreich synchronisiert."
SUCCESS=true
break # Die Schleife bei Erfolg verlassen
fi
bashio::log.warning "Fehler bei der Synchronisierung der Kameras. Warte 10 Sekunden vor dem nächsten Versuch."
sleep 10
done
bashio::log.info "--- SUPER-DEBUG-SKRIPT BEENDET ---"
bashio::log.warning "Das Addon wird nun stoppen. Bitte kopieren Sie das gesamte Log."
if [ "$SUCCESS" = false ]; then
bashio::log.fatal "Konnte Kameraliste nach ${RETRIES} Versuchen nicht abrufen. Addon wird beendet."
exit 1
fi
exit 0
# Starte den RTSP-Server im Hintergrund
bashio::log.info "Starte den Tuya RTSP-Server im Hintergrund..."
tuya-ipc-terminal rtsp start --port 8554 &
RTSP_PID=$!
sleep 2
bashio::log.info "RTSP-Server gestartet mit PID ${RTSP_PID}."
# Überprüfe, ob der Prozess wirklich gestartet wurde
if ! ps -p "${RTSP_PID}" > /dev/null; then
bashio::log.fatal "RTSP-Server konnte nicht gestartet werden oder ist sofort abgestürzt."
exit 1
fi
# --- Start: Watchdog-Schleife zur Überwachung im Betrieb ---
bashio::log.info "Starte den Watchdog zur Überwachung der Sitzung."
while true; do
sleep 900 # Warte 15 Minuten
if ! ps -p "${RTSP_PID}" > /dev/null; then
bashio::log.error "Watchdog: RTSP-Server-Prozess nicht gefunden! Starte das Addon neu."
exit 1
fi
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
else
bashio::log.info "Watchdog: Sitzung ist gültig und RTSP-Server läuft."
fi
done