Files
raspi_openclaw/openclaw_signal_installationsanleitung.md
2026-05-10 10:52:42 +02:00

6.8 KiB

OpenClaw Signal-Integration und täglicher Morgen-Digest

Diese Anleitung beschreibt den funktionierenden Installationsweg auf dem OpenClaw-System 2026.5.6 auf ARM64/aarch64. Sie berücksichtigt die konkret aufgetretenen Stolperstellen: Java-Version, fehlende native libsignal-client, QR-Code-Ausgabe im Terminal, unterschiedliche CLI-Optionen bei message send und cron add, sowie den korrekten Paperless-Skillnamen.

Ziel

OpenClaw soll täglich um 08:00 Uhr Europe/Vienna eine Signal-Nachricht senden. Der Inhalt soll ein kurzer deutschsprachiger Digest sein mit:

  • Terminen und Aufgaben aus caldav-kalender für heute und morgen
  • neuen Dokumenten aus dem Paperless-Posteingang über den Skill paperless
  • Versand per Signal an +436643941018

Voraussetzungen

  • OpenClaw ist installiert und läuft.
  • OpenClaw-Version: 2026.5.6
  • Systemarchitektur: ARM64/aarch64
  • signal-cli soll als verknüpftes Signal-Gerät verwendet werden.
  • Der Signal-Channel wird in OpenClaw über das Dashboard aktiviert.

Java 25 installieren

Der zuerst installierte Java-21-Stand war zu alt. Die Fehlermeldung lautete sinngemäß:

UnsupportedClassVersionError ... class file version 69.0 ... only recognizes ... 65.0

Das bedeutet: das verwendete signal-cli wurde für Java 25 gebaut.

Funktionierender Befehl:

sudo apt update
sudo apt install -y openjdk-25-jre-headless
java -version

Falls mehrere Java-Versionen installiert sind:

sudo update-alternatives --config java

Dort Java 25 auswählen.

signal-cli korrekt installieren

Der manuelle /opt-Installationsweg führte auf ARM64 zu folgendem Fehler:

Missing required native library dependency: libsignal-client
no signal_jni in java.library.path

Der funktionierende Weg war daher die Paketquelle für signal-cli und die native Variante.

Zuerst alten manuellen Symlink sichern oder entfernen:

sudo mv /usr/local/bin/signal-cli /usr/local/bin/signal-cli.manual.bak 2>/dev/null || true
hash -r

Paketquelle hinzufügen:

sudo curl -sL -o /etc/apt/trusted.gpg.d/morph027-signal-cli.asc \
  https://packaging.gitlab.io/signal-cli/gpg.key

echo "deb [arch=arm64] https://packaging.gitlab.io/signal-cli signalcli main" \
  | sudo tee /etc/apt/sources.list.d/morph027-signal-cli.list

sudo apt update

Wichtig: Die Architektur wurde explizit auf arm64 eingeschränkt, weil sonst eine Warnung zu armhf erschien:

Das Laden der konfigurierten Datei »main/binary-armhf/Packages« wird übersprungen ...

Dann signal-cli-native installieren:

sudo apt install -y signal-cli-native

Das Paket morph027-keyring war nicht verfügbar und wurde daher nicht installiert. Der manuell abgelegte GPG-Key reichte aus.

Prüfen:

which signal-cli
signal-cli --version

signal-cli mit Signal koppeln

Der einfache Befehl:

signal-cli link -n "OpenClaw"

führte im Terminal nur zu Fragezeichen. Das war ein Darstellungsproblem des QR-Codes.

Funktionierender Weg:

sudo apt install -y qrencode

signal-cli link -n "OpenClaw" | tee >(xargs -L 1 qrencode -t utf8)

Wichtig: Den Prozess laufen lassen, bis das Handy die Verknüpfung bestätigt hat. Nicht vorher mit Ctrl+C abbrechen.

Auf dem Handy:

Signal → Profilbild → Verknüpfte Geräte → Neues Gerät verknüpfen

Dann den QR-Code scannen.

Signal-Channel in OpenClaw aktivieren

Im Dashboard:

Kommunikation → Channels → Signal

Dort Signal aktivieren und die passenden Felder setzen.

Empfohlene Werte:

{
  enabled: true,
  cliPath: "signal-cli",
  dmPolicy: "pairing",
  allowFrom: [],
  configWrites: true,
  historyLimit: 50
}

Falls ein Feld Signal Account vorhanden ist, dort die Signal-Nummer im internationalen Format eintragen:

+43...

Danach den Gateway neu starten:

openclaw gateway restart
openclaw channels status

Signal-Versand testen

In OpenClaw 2026.5.6 verwendet message send nicht --to, sondern --target.

Funktionierender Test:

openclaw message send \
  --channel signal \
  --target "+436643941018" \
  --message "OpenClaw Signal-Test"

Wenn diese Nachricht ankommt, ist der Signal-Channel korrekt eingerichtet.

Täglichen Morgen-Digest anlegen

Wichtig: Bei cron add heißt die Zieloption in dieser OpenClaw-Version nicht --target, sondern --to.

Korrektes Kommando:

openclaw cron add \
  --name "Signal Morgen-Digest" \
  --cron "0 8 * * *" \
  --tz "Europe/Vienna" \
  --session isolated \
  --message "Erstelle täglich auf Deutsch einen kompakten Morgen-Digest. Nutze caldav-kalender für Termine und Aufgaben für heute und morgen. Nutze paperless für neue Dokumente im Paperless-Posteingang. Melde neue Paperless-Dokumente nur einmal und verwende dafür persistentes Tracking. Abschnitte: Termine heute, Termine morgen, Aufgaben, Neue Paperless-Dokumente. Wenn leer: Keine." \
  --announce \
  --channel signal \
  --to "+436643941018"

Der korrekte Paperless-Skillname ist:

paperless

nicht:

papaerless

Gateway-Scope-Freigabe

Beim Anlegen des Zeitplans kann eine Gateway-Freigabe notwendig sein. Die Fehlermeldung sieht etwa so aus:

scope upgrade pending approval
pairing required: device is asking for more scopes than currently approved

Dann im Dashboard unter Geräte oder Approvals die Scope-Erweiterung genehmigen. Alternativ per CLI prüfen:

openclaw devices list
openclaw approvals get

Danach den openclaw cron add ... Befehl erneut ausführen.

Zeitplan prüfen und manuell starten

Zeitpläne anzeigen:

openclaw cron list

Beispiel für den angelegten Job:

ID                                   Name                  Schedule
257ad34d-5e96-47a2-a06d-1b9a792e6687 Signal Morgen-Digest  cron 0 8 * * * @ Europe/Vienna

In dieser Version erwartet openclaw cron run die Job-ID, nicht den Namen.

Funktionierender manueller Start:

openclaw cron run 257ad34d-5e96-47a2-a06d-1b9a792e6687

Erfolgreiche Ausgabe:

{
  "ok": true,
  "enqueued": true,
  "runId": "manual:257ad34d-5e96-47a2-a06d-1b9a792e6687:..."
}

Läufe prüfen:

openclaw cron runs

Merksätze für diese OpenClaw-Version

openclaw message send  → --target
openclaw cron add      → --to
openclaw cron run      → Job-ID verwenden, nicht den Namen
Paperless-Skill        → paperless

Quellen