#!/usr/bin/expect -f # Entferne den alten Konfigurationsordner, um eine Neu-Authentifizierung zu erzwingen. set config_dir "/config/.tuya-data" if { [file isdirectory $config_dir] } { puts "Alter Konfigurationsordner gefunden. Wird entfernt, um Neu-Authentifizierung zu erzwingen." if {[catch {file delete -force -- $config_dir} err]} { puts stderr "Fehler: Konnte den existierenden Ordner '$config_dir' nicht löschen: $err" exit 1 } } puts "Starte den Authentifizierungsprozess..." set timeout 30 # Lese die Eingaben (Region, E-Mail, Passwort) von stdin gets stdin region if { [eof stdin] || $region eq "" } { puts stderr "Fehler: Region konnte nicht von stdin gelesen werden oder ist leer." exit 1 } gets stdin email if { [eof stdin] || $email eq "" } { puts stderr "Fehler: E-Mail konnte nicht von stdin gelesen werden oder ist leer." exit 1 } gets stdin password if { [eof stdin] || $password eq "" } { puts stderr "Fehler: Passwort konnte nicht von stdin gelesen werden oder ist leer." exit 1 } # --- KORRIGIERTE ZEILE --- # Starte den Befehl zur Authentifizierung mit dem korrekten Sub-Befehl 'auth' spawn tuya-ipc-terminal auth add $region $email --password # --- ENDE DER KORREKTUR --- # Behandele die Interaktion mit dem Prozess expect { "Password:" { send "$password\r" exp_continue } "Enter password:" { send "$password\r" exp_continue } "Please enter your password:" { send "$password\r" exp_continue } "Authentication successful" { puts "Authentifizierung erfolgreich abgeschlossen!" catch {expect eof} catch {wait} exit 0 } "Login successful" { puts "Login erfolgreich abgeschlossen!" catch {expect eof} catch {wait} exit 0 } "Authentication completed" { puts "Authentifizierung abgeschlossen!" catch {expect eof} catch {wait} exit 0 } "Invalid credentials" { puts stderr "Authentifizierung fehlgeschlagen: Ungültige Anmeldedaten" catch {expect eof} catch {wait} exit 1 } "Login failed" { puts stderr "Authentifizierung fehlgeschlagen: Login fehlgeschlagen" catch {expect eof} catch {wait} exit 1 } "Authentication failed" { puts stderr "Authentifizierung fehlgeschlagen" catch {expect eof} catch {wait} exit 1 } eof { set exit_code [lindex [wait] 2] if { $exit_code == 0 } { puts "Prozess beendet, vermutlich erfolgreich." exit 0 } else { puts stderr "Prozess unerwartet beendet mit Exit-Code $exit_code." exit 1 } } timeout { puts stderr "Zeitüberschreitung beim Authentifizierungsprozess" catch {expect eof} catch {wait} exit 1 } }