tuya-ipc-terminal/run.sh aktualisiert

This commit is contained in:
admin 2025-10-16 18:26:59 +00:00
parent 603544b57c
commit 41f93a9dd9

View File

@ -5,7 +5,6 @@ readonly TUYA_EMAIL=$(bashio::config 'TUYA_EMAIL')
readonly TUYA_PASSWORD=$(bashio::config 'TUYA_PASSWORD') readonly TUYA_PASSWORD=$(bashio::config 'TUYA_PASSWORD')
readonly TUYA_REGION=$(bashio::config 'TUYA_REGION') readonly TUYA_REGION=$(bashio::config 'TUYA_REGION')
# Prüfen, ob Konfiguration vorhanden ist
if [[ -z "${TUYA_EMAIL}" || -z "${TUYA_PASSWORD}" ]]; then if [[ -z "${TUYA_EMAIL}" || -z "${TUYA_PASSWORD}" ]]; then
bashio::log.fatal "Tuya-E-Mail und Passwort müssen konfiguriert sein." bashio::log.fatal "Tuya-E-Mail und Passwort müssen konfiguriert sein."
exit 1 exit 1
@ -15,21 +14,17 @@ fi
bashio::log.info "Authentifizierung bei Tuya..." bashio::log.info "Authentifizierung bei Tuya..."
printf "%s\n%s\n%s\n" "${TUYA_REGION}" "${TUYA_EMAIL}" "${TUYA_PASSWORD}" | /tuya_auth_login.exp 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..." bashio::log.info "Synchronisiere Kameraliste mit Tuya-Cloud..."
RETRIES=5 RETRIES=5
SUCCESS=false SUCCESS=false
for i in $(seq 1 $RETRIES); do for i in $(seq 1 $RETRIES); do
bashio::log.info "Versuch ${i}/${RETRIES}, die Kameraliste abzurufen..." 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 if tuya-ipc-terminal cameras refresh; then
bashio::log.info "Kameraliste erfolgreich synchronisiert." bashio::log.info "Kameraliste erfolgreich synchronisiert."
SUCCESS=true SUCCESS=true
break # Die Schleife bei Erfolg verlassen break
fi fi
bashio::log.warning "Fehler bei der Synchronisierung der Kameras. Warte 10 Sekunden."
bashio::log.warning "Fehler bei der Synchronisierung der Kameras. Warte 10 Sekunden vor dem nächsten Versuch."
sleep 10 sleep 10
done done
@ -38,25 +33,25 @@ if [ "$SUCCESS" = false ]; then
exit 1 exit 1
fi fi
# Starte den RTSP-Server im Hintergrund # --- Starte den RTSP-Server und den Watchdog ---
bashio::log.info "Starte den Tuya RTSP-Server im Hintergrund..." bashio::log.info "Starte den Tuya RTSP-Server im Hintergrund..."
tuya-ipc-terminal rtsp start --port 8554 & tuya-ipc-terminal rtsp start --port 8554 &
RTSP_PID=$! RTSP_PID=$!
sleep 2 sleep 2
bashio::log.info "RTSP-Server gestartet mit PID ${RTSP_PID}." bashio::log.info "RTSP-Server gestartet mit PID ${RTSP_PID}."
# Überprüfe, ob der Prozess wirklich gestartet wurde # --- KORRIGIERTE PRÜFUNG (OHNE 'ps') ---
if ! ps -p "${RTSP_PID}" > /dev/null; then if [ ! -d "/proc/${RTSP_PID}" ]; then
bashio::log.fatal "RTSP-Server konnte nicht gestartet werden oder ist sofort abgestürzt." bashio::log.fatal "RTSP-Server konnte nicht gestartet werden oder ist sofort abgestürzt."
exit 1 exit 1
fi fi
# --- Start: Watchdog-Schleife zur Überwachung im Betrieb ---
bashio::log.info "Starte den Watchdog zur Überwachung der Sitzung." bashio::log.info "Starte den Watchdog zur Überwachung der Sitzung."
while true; do 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." bashio::log.error "Watchdog: RTSP-Server-Prozess nicht gefunden! Starte das Addon neu."
exit 1 exit 1
fi fi