diff --git a/fuer_bash_rc b/fuer_bash_rc new file mode 100644 index 0000000..5f125cb --- /dev/null +++ b/fuer_bash_rc @@ -0,0 +1,2 @@ +echo "export JOPLIN_BASE_URL='http://127.0.0.1:41184'" >> ~/.bashrc +echo "export JOPLIN_TOKEN='38e155423d3b2697847bf35f79c2088e0d49513fed1301410125b18937a476f73d90e708fe7d5f0728e890a5b4a581dae4ed3a99f72cd3f3da641ecbca1170e7'" >> ~/.bashrc \ No newline at end of file diff --git a/joplin/joplin-server.service b/joplin/joplin-server.service new file mode 100644 index 0000000..43fc945 --- /dev/null +++ b/joplin/joplin-server.service @@ -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 \ No newline at end of file diff --git a/openclaw_signal_installationsanleitung.md b/openclaw_signal_installationsanleitung.md new file mode 100644 index 0000000..bc15ae9 --- /dev/null +++ b/openclaw_signal_installationsanleitung.md @@ -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) diff --git a/paperless/.env b/paperless/.env new file mode 100644 index 0000000..2e4efc4 --- /dev/null +++ b/paperless/.env @@ -0,0 +1,2 @@ +PAPERLESS_URL=http://10.0.0.104:8777 +PAPERLESS_TOKEN=b459366d60e03626b6297904fe3ab3246abb49e8 \ No newline at end of file diff --git a/raspi_led_ausschalten b/raspi_led_ausschalten new file mode 100644 index 0000000..9fed5b1 --- /dev/null +++ b/raspi_led_ausschalten @@ -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 \ No newline at end of file