signal hinzugefuegt
This commit is contained in:
@@ -0,0 +1,2 @@
|
|||||||
|
echo "export JOPLIN_BASE_URL='http://127.0.0.1:41184'" >> ~/.bashrc
|
||||||
|
echo "export JOPLIN_TOKEN='38e155423d3b2697847bf35f79c2088e0d49513fed1301410125b18937a476f73d90e708fe7d5f0728e890a5b4a581dae4ed3a99f72cd3f3da641ecbca1170e7'" >> ~/.bashrc
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Joplin CLI Data API Server
|
||||||
|
After=network-online.target
|
||||||
|
Wants=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
User=hans
|
||||||
|
WorkingDirectory=/home/hans
|
||||||
|
Environment=NODE_ENV=production
|
||||||
|
# Falls du Umgebungsvariablen für WebDAV brauchst, kannst du die hier ergänzen:
|
||||||
|
# Environment=JOPLIN_HOME=/home/hans/.config/joplin
|
||||||
|
ExecStart=/usr/local/bin/joplin --profile /home/hans/.config/joplin server start
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=5
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
@@ -0,0 +1,279 @@
|
|||||||
|
# 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)
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
PAPERLESS_URL=http://10.0.0.104:8777
|
||||||
|
PAPERLESS_TOKEN=b459366d60e03626b6297904fe3ab3246abb49e8
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
# Power-LED (ROT) deaktivieren
|
||||||
|
dtparam=pwr_led_trigger=none
|
||||||
|
dtparam=pwr_led_activelow=on
|
||||||
|
|
||||||
|
# Activity-LED (GRÜN) deaktivieren
|
||||||
|
dtparam=act_led_trigger=none
|
||||||
|
dtparam=act_led_activelow=off
|
||||||
|
|
||||||
|
# Ethernet-Port LEDs deaktivieren (Pi 4 spezifisch)
|
||||||
|
dtparam=eth_led0=4
|
||||||
|
dtparam=eth_led1=4
|
||||||
Reference in New Issue
Block a user