1. Umsetzung von Erinnerungsmechanismen
Verwendung von datetime
und
timedelta
Manchmal musst du berechnen, wie viel Zeit bis zu einem Ereignis bleibt, um eine Erinnerung zu erstellen. Dabei hilft timedelta
:
from datetime import datetime, timedelta
# Berechnung der Erinnerungszeit
meeting_time = datetime(2023, 10, 30, 15, 0, 0)
reminder_time = meeting_time - timedelta(minutes=30)
print(f"Du solltest die Erinnerung um {reminder_time} senden.")
Einfache Benachrichtigung über die Konsole
Der erste Schritt sind einfache Benachrichtigungen. Sie sind zwar nicht so „cool“ wie Push-Benachrichtigungen auf einem Smartphone, aber für den Anfang reicht das.
import time
def simple_reminder(message, delay):
print(f"In {delay} Sekunden folgt eine Erinnerung...")
time.sleep(delay)
print(f"Erinnerung: {message}")
simple_reminder("Es ist Zeit für das Meeting!", 10)
2. Verwendung von schedule
für wiederholte Erinnerungen
Wenn du möchtest, dass sich eine Erinnerung wiederholt, ist schedule
dein Helfer. Du kannst verschiedene Intervalle einstellen, wie täglich oder wöchentlich:
import schedule
import time
def meeting_reminder():
print("Erinnerung: Dein Meeting beginnt bald!")
# Erinnerung jeden Tag um 14:30
schedule.every().day.at("14:30").do(meeting_reminder)
while True:
schedule.run_pending()
time.sleep(1)
3. Zeitbasierte Benachrichtigungen mit der plyer
-Bibliothek
Um Benachrichtigungen „echter“ zu machen, können wir die Bibliothek plyer
verwenden, um Systembenachrichtigungen zu senden:
from plyer import notification
import time
def plyer_notification(title, message):
notification.notify(
title=title,
message=message,
app_name='Python Reminder',
timeout=10
)
# Anwendungsbeispiel
plyer_notification("Erinnerung!", "Es ist Zeit für das Meeting.")
Die Funktion notification.notify()
zeigt eine Standard-Systembenachrichtigung an.
4. Erinnerung per E-Mail senden
Um Benachrichtigungen per E-Mail zu senden, wird in Python das Modul smtplib
verwendet. Im folgenden Beispiel richten wir den Versand einer Erinnerung per E-Mail über einen SMTP-Server ein.
import smtplib
from email.mime.text import MIMEText
import schedule
import time
def send_email_reminder():
sender = "your_email@example.com"
receiver = "receiver_email@example.com"
subject = "Aufgaben-Erinnerung"
body = "Dies ist eine automatische Erinnerung: Vergiss nicht, deine Aufgabe heute zu erledigen."
# Nachricht erstellen
msg = MIMEText(body)
msg["Subject"] = subject
msg["From"] = sender
msg["To"] = receiver
# Verbindung zum SMTP-Server herstellen und E-Mail senden
with smtplib.SMTP("smtp.example.com", 587) as server:
server.starttls()
server.login(sender, "your_password")
server.sendmail(sender, receiver, msg.as_string())
print("Erinnerung per E-Mail gesendet.")
# Erinnerung jeden Tag um 8:30 Uhr einplanen
schedule.every().day.at("08:30").do(send_email_reminder)
while True:
schedule.run_pending()
time.sleep(1)
Hier sendet send_email_reminder()
eine Benachrichtigung per E-Mail. Passe die Absender- und Empfängeradresse sowie den SMTP-Server an. Diese Methode ermöglicht es, E-Mail-Benachrichtigungen einfach zu automatisieren.
5. Erinnerung über Telegram
Um Erinnerungen über Telegram zu senden, kannst du dessen API verwenden. In diesem Beispiel senden wir eine Benachrichtigung in einen Telegram-Chat mit requests
.
Einrichtung:
-
Erstelle einen Bot in Telegram über BotFather und erhalte das
API_TOKEN
. -
Finde deine
CHAT_ID
, indem du eine Nachricht an deinen Bot sendest und die Chat-ID über die API ermittelst.
import requests
import schedule
import time
def send_telegram_reminder():
api_token = "YOUR_API_TOKEN"
chat_id = "YOUR_CHAT_ID"
message = "Erinnerung: Heute steht eine wichtige Aufgabe an!"
url = f"https://api.telegram.org/bot{api_token}/sendMessage"
payload = {
"chat_id": chat_id,
"text": message
}
response = requests.post(url, data=payload)
if response.status_code == 200:
print("Erinnerung über Telegram gesendet.")
else:
print("Fehler beim Senden der Erinnerung über Telegram.")
# Erinnerung jeden Tag um 9:00 Uhr einplanen
schedule.every().day.at("09:00").do(send_telegram_reminder)
while True:
schedule.run_pending()
time.sleep(1)
Nun sendet der Bot jeden Tag um 9:00 Uhr morgens eine Benachrichtigung in den angegebenen Telegram-Chat.
6. Zusätzliche Tipps zur Einrichtung von Benachrichtigungen
- Fehlerbehandlung: Füge eine Fehlerbehandlung für den Versand von Benachrichtigungen hinzu, beispielsweise überprüfst du die Verbindung zum E-Mail- oder Telegram-Server.
-
Protokollierung: Verwende die Bibliothek
logging
, um Ereignisse im Zusammenhang mit Erinnerungen zu protokollieren. Das hilft, den tatsächlichen Versand von Erinnerungen nachzuverfolgen. - Flexibilität der Einstellungen: Wenn du planst, Erinnerungen in einem Projekt zu verwenden, erstelle eine Funktion zur dynamischen Festlegung von Zeiten und Benachrichtigungsmethoden, um die Einstellungen flexibel anpassen zu können.
GO TO FULL VERSION