Ruhezeiten im Detail: Störungen in bestimmten Zeiträumen vermeiden
Was du lernen wirst
- Ruhezeiten in der Konfigurationsdatei aktivieren, um während der Ruhezeit nicht gestört zu werden
- Die Funktionsweise der Ruhezeiten und die Logik der Zeitberechnung verstehen
- Uhrzeiten über Mitternacht konfigurieren (z. B. 22:00 - 08:00)
- Die Prioritätsbeziehung zwischen Ruhezeiten und anderen intelligenten Filtermechanismen verstehen
Dein aktuelles Problem
Vielleicht kennst du diese Situation: Du hast um 22 Uhr eine Aufgabe an die KI delegiert und bist dann zur Ruhe gegangen. Um 2 Uhr nachts hat die KI die Aufgabe abgeschlossen und ein "Ding"-Geräusch hat dich geweckt. Oder du hast der KI während deiner Mittagspause einige Dateien bearbeiten lassen, und um 12:05 Uhr hat die Benachrichtigung deine Pause unterbrochen.
Was sind Ruhezeiten
Ruhezeiten sind eine Zeitraum-Konfiguration. In diesen Zeiträumen stoppt opencode-notify das Senden aller Benachrichtigungen, um zu vermeiden, dass du in Zeiten, in denen du nicht gestört werden möchtest, Erinnerungen erhältst.
Wann du diese Lösung brauchst
- Nachtruhe: 22:00 - 08:00 einstellen, um nicht im Schlaf gestört zu werden
- Mittagspause: 12:00 - 13:00 einstellen, um während der Mittagspause nicht gestört zu werden
- Fokussierte Arbeitszeit: 09:00 - 12:00 einstellen, um während Meetings nicht durch Benachrichtigungen unterbrochen zu werden
- Keine Arbeit am Wochenende: Das gesamte Wochenende als Ruhezeit einstellen
Ruhezeiten eignen sich am besten, um deine Ruhezeit oder konzentrierte Arbeitszeit zu schützen. Die KI kann die Aufgaben im Hintergrund erledigen, und du kannst die Ergebnisse überprüfen, wenn du bereit bist.
Das Konzept
Die Funktionsweise der Ruhezeiten ist einfach:
- Zeitprüfung: Bevor eine Benachrichtigung gesendet wird, prüft das Plugin, ob die aktuelle Zeit innerhalb der konfigurierten Ruhezeit liegt
- Unterstützung für Zeiträume: Unterstützung für beliebige Zeiträume, einschließlich Uhrzeiten über Mitternacht (z. B. 22:00 - 08:00)
- Mittlere Priorität: Die Prüfung der Ruhezeiten hat eine niedrigere Priorität als die Prüfung der Parent-Sessions, aber eine höhere als die Erkennung des Terminalfokus. Wenn es sich um eine Child-Session handelt und
notifyChildSessionsfalse ist, wird die Prüfung der Ruhezeiten übersprungen.
Ruhezeiten vs. temporäres Deaktivieren
Ruhezeiten sind eine regelmäßig wiederkehrende Zeitkonfiguration, z. B. jeden Abend von 22 bis 8 Uhr. Wenn du Benachrichtigungen temporär deaktivieren möchtest (z. B. die nächste Stunde keine Benachrichtigungen), kannst du "enabled": false in der Konfigurationsdatei festlegen oder die Konfigurationsdatei löschen, um zu den Standardwerten zurückzukehren.
Schritt-für-Schritt-Anleitung
Schritt 1: Konfigurationsdatei öffnen
Die Konfigurationsdatei befindet sich unter: ~/.config/opencode/kdco-notify.json
Wenn die Datei nicht existiert, kannst du sie zuerst erstellen:
vim ~/.config/opencode/kdco-notify.jsonnotepad $env:USERPROFILE\.config\opencode\kdco-notify.jsonDu solltest den Inhalt der Konfigurationsdatei sehen (wenn sie existiert) oder eine leere Datei.
Schritt 2: Ruhezeiten-Konfiguration hinzufügen
Füge oder ändere den Abschnitt quietHours in der Konfigurationsdatei:
{
"quietHours": {
"enabled": true,
"start": "22:00",
"end": "08:00"
}
}Erklärung der Konfigurationsoptionen:
| Option | Typ | Standardwert | Beschreibung |
|---|---|---|---|
enabled | boolean | false | Ob Ruhezeiten aktiviert sind |
start | string | "22:00" | Ruhezeit-Startzeit, Format "HH:MM" |
end | string | "08:00" | Ruhezeit-Endzeit, Format "HH:MM" |
Schritt 3: Konfigurationsdatei speichern
Speichere die Datei und beende den Editor.
Kontrollpunkt ✅: Führe den folgenden Befehl aus, um zu überprüfen, ob das Format der Konfigurationsdatei korrekt ist:
cat ~/.config/opencode/kdco-notify.json | jq .Du solltest formatierten JSON-Inhalt ohne Fehlermeldungen sehen.
jq nicht installiert?
Wenn das System den Befehl jq nicht hat, kannst du diese Überprüfung überspringen oder den JSON-Inhalt in einen JSON-Validator im Browser kopieren, um ihn zu überprüfen.
Schritt 4: OpenCode neu starten
Nach dem Ändern der Konfigurationsdatei musst du OpenCode neu starten, damit die Änderungen wirksam werden.
Kontrollpunkt ✅: Nach dem Neustart lädt OpenCode die Konfiguration automatisch neu.
Schritt 5: Ruhezeiten testen
Um zu überprüfen, ob die Ruhezeiten wirksam sind, kannst du:
startundendauf Werte in der Nähe der aktuellen Zeit einstellen (z. B. wenn es jetzt 14:00 Uhr ist, auf 13:55 - 14:05 einstellen)- Der KI eine einfache Aufgabe delegieren
- Warten, bis die Aufgabe abgeschlossen ist
Du solltest sehen: Während der Ruhezeit erhältst du keine Benachrichtigungen.
Hinweis: Wenn die aktuelle Zeit nicht innerhalb der Ruhezeit liegt oder enabled auf false gesetzt ist, erhältst du normalerweise Benachrichtigungen.
Schritt 6: Auf häufige Konfiguration zurücksetzen
Nach dem Testen ändere die Konfiguration zurück auf häufig verwendete Zeiträume (z. B. 22:00 - 08:00):
{
"quietHours": {
"enabled": true,
"start": "22:00",
"end": "08:00"
}
}Speichere die Konfigurationsdatei und starte OpenCode neu.
Häufige Fehler
Häufiger Fehler 1: Ruhezeiten vergessen zu aktivieren
Problem: start und end sind konfiguriert, aber du erhältst weiterhin Benachrichtigungen.
Ursache: Das Feld enabled ist false oder nicht gesetzt.
Lösung: Stelle sicher, dass enabled auf true gesetzt ist:
{
"quietHours": {
"enabled": true,
"start": "22:00",
"end": "08:00"
}
}Häufiger Fehler 2: Falsches Zeitformat
Problem: Die Konfiguration wirkt sich nicht aus, oder beim Starten tritt ein Fehler auf.
Ursache: Das Zeitformat ist nicht "HH:MM" oder verwendet das 12-Stunden-Format (AM/PM).
Falsches Beispiel:
{
"start": "10 PM", // ❌ Fehler: AM/PM nicht unterstützt
"end": "8:00" // ⚠️ Funktioniert, aber empfiehlt "08:00" für Konsistenz
}Richtiges Beispiel:
{
"start": "22:00", // ✅ Korrekt: 24-Stunden-Format, führende Nullen empfohlen
"end": "08:00" // ✅ Korrekt: 24-Stunden-Format, führende Nullen empfohlen
}Häufiger Fehler 3: Missverständnis von Uhrzeiten über Mitternacht
Problem: 22:00 - 08:00 sind eingestellt, aber bestimmte Tageszeiten werden ebenfalls stummgeschaltet.
Ursache: Falsche Annahme, dass start kleiner als end sein muss, was zu falscher Zeitraum-Berechnung führt.
Richtiges Verständnis:
- 22:00 - 08:00 bedeutet: 22 Uhr abends bis 8 Uhr morgens am nächsten Tag
- Dies ist ein Zeitraum über Mitternacht, den das Plugin automatisch erkennt
- Nicht 08:00 - 22:00 (wenn du so einstellst, wird der gesamte Tag stummgeschaltet)
Überprüfung von Uhrzeiten über Mitternacht
Wenn du überprüfen möchtest, ob Uhrzeiten über Mitternacht korrekt konfiguriert sind, kannst du einen kurzen Testzeitraum in der Konfigurationsdatei festlegen (z. B. 10 Minuten) und dann beobachten, ob du keine Benachrichtigungen im erwarteten Zeitraum erhältst.
Häufiger Fehler 4: OpenCode nicht neu gestartet
Problem: Nach dem Ändern der Konfigurationsdatei arbeiten die Ruhezeiten weiterhin mit der alten Konfiguration.
Ursache: Die Konfigurationsdatei wird beim Start des Plugins einmal geladen und überwacht keine Dateiänderungen in Echtzeit.
Lösung: Nach jedem Ändern der Konfigurationsdatei musst du OpenCode neu starten, damit die Änderungen wirksam werden.
Beziehung zwischen Ruhezeiten und anderen Filtermechanismen
Die Position der Ruhezeiten im intelligenten Filtermechanismus:
graph TD
A[OpenCode-Event ausgelöst] --> B{Ist es eine Parent-Session?}
B -->|Nein| C[🚫 Keine Benachrichtigung]
B -->|Ja| D{Ist es Ruhezeit?}
D -->|Ja| C
D -->|Nein| E{Ist Terminal fokussiert?}
E -->|Ja| C
E -->|Nein| F[✅ Benachrichtigung senden]Wichtige Punkte:
- Mittlere Priorität der Ruhezeiten: Die Prüfung der Parent-Sessions hat die höchste Priorität, gefolgt von den Ruhezeiten. Wenn es sich um eine Child-Session handelt und
notifyChildSessionsfalse ist, wird die Prüfung der Ruhezeiten übersprungen. Nach Bestehen der Parent-Sessions-Prüfung werden jedoch keine Benachrichtigungen gesendet, egal ob das Terminal fokussiert ist oder nicht, solange es sich um Ruhezeiten handelt. - Unabhängig von Terminalfokus-Erkennung: Auch wenn das Terminal nicht fokussiert ist, werden während der Ruhezeiten keine Benachrichtigungen gesendet
- Ausführungsreihenfolge: Die Prüfung der Parent-Sessions wird vor der Prüfung der Ruhezeiten ausgeführt. Nur wenn die Prüfung der Parent-Sessions bestanden ist (d. h. es handelt sich um eine Parent-Session oder
notifyChildSessionsist true), wird die Prüfung der Ruhezeiten fortgesetzt.
Sonderfall: Berechtigungsanfragen und Fragen
Berechtigungsanfragen (permission.updated) und Fragen (tool.execute.before) werden im Quellcode ebenfalls durch Ruhezeiten eingeschränkt. Das bedeutet, dass während der Ruhezeiten auch dann keine Benachrichtigungen gesendet werden, wenn die KI blockiert ist und auf deine Autorisierung oder Antwort wartet.
Häufige Konfigurationsbeispiele
Beispiel 1: Nachtruhe
Konfiguriere Ruhezeiten von 22 Uhr abends bis 8 Uhr morgens:
{
"quietHours": {
"enabled": true,
"start": "22:00",
"end": "08:00"
}
}Beispiel 2: Mittagspause
Konfiguriere Ruhezeiten von 12 Uhr mittags bis 13 Uhr nachmittags:
{
"quietHours": {
"enabled": true,
"start": "12:00",
"end": "13:00"
}
}Beispiel 3: Fokussierte Arbeitszeit
Konfiguriere Ruhezeiten von 9 Uhr morgens bis 12 Uhr mittags (z. B. um während Meetings nicht durch Benachrichtigungen gestört zu werden):
{
"quietHours": {
"enabled": true,
"start": "09:00",
"end": "12:00"
}
}Beispiel 4: Vollständige Konfiguration
Ruhezeiten zusammen mit anderen Konfigurationsoptionen verwenden:
{
"enabled": true,
"notifyChildSessions": false,
"suppressWhenFocused": true,
"sounds": {
"idle": "Glass",
"error": "Basso",
"permission": "Submarine"
},
"quietHours": {
"enabled": true,
"start": "22:00",
"end": "08:00"
},
"terminal": "ghostty"
}Zusammenfassung
Ruhezeiten sind eine wichtige Funktion von opencode-notify, um Störungen in bestimmten Zeiträumen zu vermeiden:
- Konfigurationsmethode: Konfiguriere den Abschnitt
quietHoursin~/.config/opencode/kdco-notify.json - Zeitformat: Verwende das 24-Stunden-Format
"HH:MM", z. B."22:00"und"08:00" - Unterstützung über Mitternacht: Unterstützung für Zeiträume über Mitternacht, z. B.
"22:00" - "08:00"bedeutet 22 Uhr abends bis 8 Uhr morgens am nächsten Tag - Ausführungsreihenfolge: Parent-Sessions-Prüfung → Ruhezeiten → Terminalfokus-Erkennung. Ruhezeiten werden erst nach Bestehen der Parent-Sessions-Prüfung wirksam
- Neustart erforderlich: Nach dem Ändern der Konfigurationsdatei muss OpenCode neu gestartet werden, damit die Änderungen wirksam werden
Durch eine angemessene Konfiguration der Ruhezeiten kannst du die KI während der Ruhezeit oder konzentrierter Arbeit im Hintergrund Aufgaben erledigen lassen und die Ergebnisse überprüfen, wenn du bereit bist.
Vorschau auf die nächste Lektion
In der nächsten Lektion lernen wir die Terminalerkennungs-Prinzipien.
Du wirst lernen:
- Wie opencode-notify automatisch dein verwendetes Terminal erkennt
- Die Liste der unterstützten 37+ Terminal-Emulatoren
- Die Methode zum manuellen Festlegen des Terminal-Typs
- Die Implementierungsprinzipien der macOS-Fokus-Erkennung
Anhang: Quellcode-Referenz
Klicken zum Anzeigen der Quellcode-Pfade
Aktualisiert: 2026-01-27
| Funktion | Dateipfad | Zeilen |
|---|---|---|
| Ruhezeiten-Prüfung | src/notify.ts | 181-199 |
| Konfigurationsschnittstellen-Definition | src/notify.ts | 30-48 |
| Standardkonfiguration | src/notify.ts | 56-68 |
| Ruhezeiten-Prüfung in Aufgabenabschluss-Behandlung | src/notify.ts | 262 |
| Ruhezeiten-Prüfung in Fehlerbenachrichtigungs-Behandlung | src/notify.ts | 300 |
| Ruhezeiten-Prüfung in Berechtigungsanfragen-Behandlung | src/notify.ts | 323 |
| Ruhezeiten-Prüfung in Fragen-Behandlung | src/notify.ts | 341 |
Wichtige Konstanten:
DEFAULT_CONFIG.quietHours: Standardkonfiguration für Ruhezeiten (Zeilen 63-67)enabled: false: Ruhezeiten standardmäßig nicht aktiviertstart: "22:00": Standard-Ruhezeit-Startzeitend: "08:00": Standard-Ruhezeit-Endzeit
Wichtige Funktionen:
isQuietHours(config: NotifyConfig): boolean: Prüft, ob die aktuelle Zeit innerhalb der Ruhezeiten liegt (Zeilen 181-199)- Prüft zuerst, ob
config.quietHours.enabledtrueist - Konvertiert die aktuelle Zeit in Minuten
- Konvertiert Start- und Endzeit in Minuten
- Verarbeitet Zeiträume über Mitternacht (
startMinutes > endMinutes) - Gibt
truezurück, wenn die Zeit innerhalb der Ruhezeiten liegt,falsewenn nicht
- Prüft zuerst, ob
Geschäftsregeln:
- BR-1-3: Keine Benachrichtigungen während Ruhezeiten (
notify.ts:262) - BR-3-2: Ruhezeiten unterstützen Zeiträume über Mitternacht (z. B. 22:00-08:00) (
notify.ts:193-196) - BR-4-1: Keine Benachrichtigungen, wenn aktuelle Zeit in Ruhezeiten liegt (
notify.ts:182-198) - BR-4-2: Unterstützung für Zeiträume über Mitternacht (z. B. 22:00-08:00) (
notify.ts:194-196)