tts loop fix
This commit is contained in:
parent
4e394888b0
commit
d43c60aef2
|
|
@ -553,7 +553,8 @@ Erst dann starten die automatischen TICKs mit Bildern!"""
|
|||
|
||||
# Warte auf [READY] - KEIN Timeout-Fallback!
|
||||
# Heartbeat startet NUR wenn Claude wirklich [READY] sendet
|
||||
if self.chat.wait_for_ready_signal(timeout=300): # 5 Minuten max
|
||||
# stop_check prüft ob Q gedrückt wurde (self.running = False)
|
||||
if self.chat.wait_for_ready_signal(timeout=300, stop_check=lambda: not self.running): # 5 Minuten max
|
||||
# ════════════════════════════════════════════════════════════════
|
||||
# Chat-ID ermitteln und gespeicherten TTS-State laden
|
||||
# ════════════════════════════════════════════════════════════════
|
||||
|
|
|
|||
|
|
@ -997,7 +997,7 @@ class ClaudeChatInterface:
|
|||
logger.debug(f"Fehler bei typing-check: {e}")
|
||||
return False
|
||||
|
||||
def wait_for_ready_signal(self, timeout: int = 120) -> bool:
|
||||
def wait_for_ready_signal(self, timeout: int = 120, stop_check: callable = None) -> bool:
|
||||
"""
|
||||
Wartet bis Claude [READY] sendet.
|
||||
|
||||
|
|
@ -1006,9 +1006,11 @@ class ClaudeChatInterface:
|
|||
|
||||
Args:
|
||||
timeout: Maximale Wartezeit in Sekunden
|
||||
stop_check: Optionale Funktion die True zurückgibt wenn abgebrochen werden soll
|
||||
(z.B. lambda: not bridge.running)
|
||||
|
||||
Returns:
|
||||
True wenn [READY] empfangen, False bei Timeout
|
||||
True wenn [READY] empfangen, False bei Timeout oder Abbruch
|
||||
"""
|
||||
logger.info(f"Warte auf [READY] Signal in letzter Claude-Nachricht (max {timeout}s)...")
|
||||
start_time = time.time()
|
||||
|
|
@ -1018,10 +1020,19 @@ class ClaudeChatInterface:
|
|||
logger.debug(f"Initiale Claude-Nachrichten: {initial_count}")
|
||||
|
||||
while time.time() - start_time < timeout:
|
||||
# Prüfe ob abgebrochen werden soll (z.B. Q gedrückt)
|
||||
if stop_check and stop_check():
|
||||
logger.info("wait_for_ready abgebrochen (stop_check)")
|
||||
return False
|
||||
|
||||
# Warte bis Claude fertig ist mit Tippen
|
||||
typing_wait_start = time.time()
|
||||
while self.is_claude_typing():
|
||||
time.sleep(0.5)
|
||||
# Prüfe auch hier auf Abbruch
|
||||
if stop_check and stop_check():
|
||||
logger.info("wait_for_ready abgebrochen während typing-wait")
|
||||
return False
|
||||
# Timeout für typing-wait (max 60s)
|
||||
if time.time() - typing_wait_start > 60:
|
||||
logger.debug("Typing-Wait Timeout, prüfe trotzdem...")
|
||||
|
|
|
|||
Loading…
Reference in New Issue