meldungen: Lucy spricht – jede Telegram-Meldung in ihrem Ton
User 25.09.: „Hermes' Persona ist Lucy – das muss sich in all ihren Meldungen widerspiegeln“; das angehängte „(Diese Meldung kam auch an Lucy.)“ tat so, als wäre sie jemand anderes als der Absender. - notify.sh: Kopfzeile aus dem Betreff in Lucys Ton (SOUL.md: „Commander“, knapp, sachlich), bei Dringendem „Commander, das ist dringend.“; keine zweite Anrede, wenn der Text schon mit ihr beginnt. Morgenmeldung mit kurzen Marken statt Betreffen in Klammern; die des Homelabs sagt, woher sie kommt. - Wächter: Zusatz „kam auch an Lucy“ entfernt (der Briefkasten bekommt die Meldung weiter). - Melde-Log und Auswertungen unverändert. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
2784c0ea32
commit
c31ef827fc
@@ -39,7 +39,12 @@ if [ "$(wc -c < "$ARBEIT")" -gt "$MAX_ZEICHEN" ]; then
|
||||
TEXT="$TEXT
|
||||
… gekürzt. Den vollen Stapel hat die Box unter ~/.hermes/night-queue.txt.zuletzt-gesendet."
|
||||
fi
|
||||
NACHRICHT="Guten Morgen, Commander. Heute Nacht gab es $ANZAHL $WORT:
|
||||
# Lucys Ton (SOUL.md): kurz, sachlich. Kommen zwei Morgenmeldungen (KI-Box und Homelab), sagt die zweite, woher.
|
||||
case "$BETREFF" in
|
||||
*Homelab*) NACHRICHT="Guten Morgen, Commander. Aus dem Homelab kamen heute Nacht $ANZAHL $WORT:" ;;
|
||||
*) NACHRICHT="Guten Morgen, Commander. Heute Nacht gab es $ANZAHL $WORT:" ;;
|
||||
esac
|
||||
NACHRICHT="$NACHRICHT
|
||||
$TEXT"
|
||||
|
||||
for ((i = 1; i <= VERSUCHE; i++)); do
|
||||
|
||||
+54
-5
@@ -69,20 +69,69 @@ case "$MSG" in
|
||||
KRITISCH*) DRINGEND=1 ;;
|
||||
esac
|
||||
|
||||
# Lucys Stimme (User-Wunsch 25.09.2026: „Hermes' Persona ist Lucy — das muss sich in all ihren Meldungen
|
||||
# widerspiegeln“). Was über Telegram rausgeht, kommt von ihrem Bot, also spricht sie: Anrede „Commander“, knapp,
|
||||
# sachlich, ohne Emojis und Ausrufe (~/.hermes/SOUL.md). Die Kopfzeile folgt aus dem Betreff; beginnt die Nachricht
|
||||
# schon mit ihrer Anrede (Morgenmeldung, von Lucy selbst formulierte Berichte), bleibt sie weg. Melde-Log und
|
||||
# Auswertungen (update_verlauf.py, protokoll.py) behalten Betreff und Wortlaut wie bisher.
|
||||
lucy_kopf() {
|
||||
case "$MSG" in
|
||||
Commander*|"Guten Morgen, Commander"*) return 0 ;;
|
||||
esac
|
||||
case "${SUBJECT,,}" in
|
||||
*test*) echo "Commander, ein Test des Meldewegs." ; return 0 ;;
|
||||
*morgenmeldung*) echo "Guten Morgen, Commander." ; return 0 ;;
|
||||
esac
|
||||
if [ "$DRINGEND" = "1" ]; then
|
||||
echo "Commander, das ist dringend."
|
||||
return 0
|
||||
fi
|
||||
case "${SUBJECT,,}" in
|
||||
*homelab-problem*) echo "Commander, im Homelab stimmt etwas nicht." ;;
|
||||
*"homelab wieder ok"*) echo "Commander, Entwarnung im Homelab." ;;
|
||||
*homelab-update*) echo "Commander, Bericht aus dem Homelab." ;;
|
||||
*box-problem*) echo "Commander, auf der Box stimmt etwas nicht." ;;
|
||||
*"box wieder ok"*) echo "Commander, Entwarnung auf der Box." ;;
|
||||
*update*) echo "Commander, Bericht von der Wartung." ;;
|
||||
*deploy*) echo "Commander, Bericht vom Deploy." ;;
|
||||
*erinnerung*) echo "Commander, eine Erinnerung." ;;
|
||||
*radar*) echo "Commander, Bericht vom Modell-Radar." ;;
|
||||
"") echo "Commander, kurz gesagt:" ;;
|
||||
*) echo "Commander, $(printf '%s' "$SUBJECT" | tr -d '[]')." ;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Dasselbe als kurze Marke für eine Zeile der Morgenmeldung („Homelab, Störung: …“ statt „[Homelab-Problem]: …“).
|
||||
lucy_marke() {
|
||||
case "${SUBJECT,,}" in
|
||||
"") return 0 ;;
|
||||
*alarm*|*notfall*) echo "Dringend" ;;
|
||||
*homelab-problem*) echo "Homelab, Störung" ;;
|
||||
*"homelab wieder ok"*) echo "Homelab, Entwarnung" ;;
|
||||
*homelab-update*) echo "Homelab, Update" ;;
|
||||
*box-problem*) echo "Box, Störung" ;;
|
||||
*"box wieder ok"*) echo "Box, Entwarnung" ;;
|
||||
*box-update*) echo "Box, Wartung" ;;
|
||||
*) printf '%s' "$SUBJECT" | tr -d '[]' ;;
|
||||
esac
|
||||
}
|
||||
KOPF="$(lucy_kopf)"
|
||||
|
||||
# Nachtruhe: 00:00–06:59 sammeln, außer es ist dringend. 10#… verhindert, dass „08“/„09“ als
|
||||
# Oktalzahl gelesen werden.
|
||||
HOUR="${MC_NOTIFY_STUNDE:-$(date +%H)}"
|
||||
if [ "$DRINGEND" != "1" ] && [ "$((10#$HOUR))" -lt 7 ]; then
|
||||
mkdir -p "$(dirname "$NIGHT_QUEUE")"
|
||||
printf -- '- %s%s\n' "${SUBJECT:+$SUBJECT: }" "$MSG" >> "$NIGHT_QUEUE"
|
||||
MARKE="$(lucy_marke)"
|
||||
printf -- '- %s%s\n' "${MARKE:+$MARKE: }" "$MSG" >> "$NIGHT_QUEUE"
|
||||
# Wortlaut „QUEUED für Morgen-Digest“ nicht ändern: services/update_verlauf.py liest ihn.
|
||||
echo "$TS QUEUED für Morgen-Digest: $MSG" >> "$LOG"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Primärweg: Telegram via hermes send (Login-Shell-PATH, falls aus Timer/cron aufgerufen).
|
||||
if [ -n "$SUBJECT" ]; then
|
||||
SEND_OUT="$(bash -lc '"$1" send --to telegram --subject "$2" -- "$3"' _ "$HERMES_BIN" "$SUBJECT" "$MSG" 2>&1)"
|
||||
# Primärweg: Telegram via hermes send (Login-Shell-PATH, falls aus Timer/cron aufgerufen). Die Kopfzeile ist Lucys.
|
||||
if [ -n "$KOPF" ]; then
|
||||
SEND_OUT="$(bash -lc '"$1" send --to telegram --subject "$2" -- "$3"' _ "$HERMES_BIN" "$KOPF" "$MSG" 2>&1)"
|
||||
else
|
||||
SEND_OUT="$(bash -lc '"$1" send --to telegram -- "$2"' _ "$HERMES_BIN" "$MSG" 2>&1)"
|
||||
fi
|
||||
@@ -119,7 +168,7 @@ telegram_direkt() {
|
||||
return 1
|
||||
fi
|
||||
text="$MSG"
|
||||
[ -n "$SUBJECT" ] && text="$SUBJECT
|
||||
[ -n "$KOPF" ] && text="$KOPF
|
||||
$MSG"
|
||||
printf 'url = "%s/bot%s/sendMessage"\n' "$TG_API" "$token" \
|
||||
| curl -sf -m 15 -o /dev/null --config - \
|
||||
|
||||
Reference in New Issue
Block a user