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

280 lines
6.8 KiB
Markdown

# 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äß:
```text
UnsupportedClassVersionError ... class file version 69.0 ... only recognizes ... 65.0
```
Das bedeutet: das verwendete `signal-cli` wurde für Java 25 gebaut.
Funktionierender Befehl:
```bash
sudo apt update
sudo apt install -y openjdk-25-jre-headless
java -version
```
Falls mehrere Java-Versionen installiert sind:
```bash
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:
```text
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:
```bash
sudo mv /usr/local/bin/signal-cli /usr/local/bin/signal-cli.manual.bak 2>/dev/null || true
hash -r
```
Paketquelle hinzufügen:
```bash
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:
```text
Das Laden der konfigurierten Datei »main/binary-armhf/Packages« wird übersprungen ...
```
Dann `signal-cli-native` installieren:
```bash
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:
```bash
which signal-cli
signal-cli --version
```
## signal-cli mit Signal koppeln
Der einfache Befehl:
```bash
signal-cli link -n "OpenClaw"
```
führte im Terminal nur zu Fragezeichen. Das war ein Darstellungsproblem des QR-Codes.
Funktionierender Weg:
```bash
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:
```text
Signal → Profilbild → Verknüpfte Geräte → Neues Gerät verknüpfen
```
Dann den QR-Code scannen.
## Signal-Channel in OpenClaw aktivieren
Im Dashboard:
```text
Kommunikation → Channels → Signal
```
Dort Signal aktivieren und die passenden Felder setzen.
Empfohlene Werte:
```json5
{
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:
```text
+43...
```
Danach den Gateway neu starten:
```bash
openclaw gateway restart
openclaw channels status
```
## Signal-Versand testen
In OpenClaw `2026.5.6` verwendet `message send` nicht `--to`, sondern `--target`.
Funktionierender Test:
```bash
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:
```bash
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:
```text
paperless
```
nicht:
```text
papaerless
```
## Gateway-Scope-Freigabe
Beim Anlegen des Zeitplans kann eine Gateway-Freigabe notwendig sein. Die Fehlermeldung sieht etwa so aus:
```text
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:
```bash
openclaw devices list
openclaw approvals get
```
Danach den `openclaw cron add ...` Befehl erneut ausführen.
## Zeitplan prüfen und manuell starten
Zeitpläne anzeigen:
```bash
openclaw cron list
```
Beispiel für den angelegten Job:
```text
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:
```bash
openclaw cron run 257ad34d-5e96-47a2-a06d-1b9a792e6687
```
Erfolgreiche Ausgabe:
```json
{
"ok": true,
"enqueued": true,
"runId": "manual:257ad34d-5e96-47a2-a06d-1b9a792e6687:..."
}
```
Läufe prüfen:
```bash
openclaw cron runs
```
## Merksätze für diese OpenClaw-Version
```text
openclaw message send → --target
openclaw cron add → --to
openclaw cron run → Job-ID verwenden, nicht den Namen
Paperless-Skill → paperless
```
## Quellen
- OpenClaw Channel-Konfiguration: https://docs.openclaw.ai/gateway/config-channels
- OpenClaw CLI-Referenz: https://docs.openclaw.ai/cli
- signal-cli Projekt: https://github.com/AsamK/signal-cli
- signal-cli Debian/Ubuntu-Pakete: https://packaging.gitlab.io/signal-cli/
- signal-cli Provisioning/Linking: https://github.com/AsamK/signal-cli/wiki/Linking-other-devices-(Provisioning)