diff --git a/tuya-ipc-terminal/run.sh b/tuya-ipc-terminal/run.sh index 204f94c..c42ed35 100644 --- a/tuya-ipc-terminal/run.sh +++ b/tuya-ipc-terminal/run.sh @@ -5,7 +5,6 @@ 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 @@ -15,21 +14,17 @@ fi bashio::log.info "Authentifizierung bei Tuya..." printf "%s\n%s\n%s\n" "${TUYA_REGION}" "${TUYA_EMAIL}" "${TUYA_PASSWORD}" | /tuya_auth_login.exp -# --- 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 + break fi - - bashio::log.warning "Fehler bei der Synchronisierung der Kameras. Warte 10 Sekunden vor dem nächsten Versuch." + bashio::log.warning "Fehler bei der Synchronisierung der Kameras. Warte 10 Sekunden." sleep 10 done @@ -38,25 +33,25 @@ if [ "$SUCCESS" = false ]; then exit 1 fi -# Starte den RTSP-Server im Hintergrund +# --- Starte den RTSP-Server und den Watchdog --- 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 +# --- KORRIGIERTE PRÜFUNG (OHNE 'ps') --- +if [ ! -d "/proc/${RTSP_PID}" ]; 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 + sleep 900 - if ! ps -p "${RTSP_PID}" > /dev/null; then + # --- KORRIGIERTE PRÜFUNG (OHNE 'ps') --- + if [ ! -d "/proc/${RTSP_PID}" ]; then bashio::log.error "Watchdog: RTSP-Server-Prozess nicht gefunden! Starte das Addon neu." exit 1 fi