Skip to content

Signal ​

Verbinden Sie Ihren Triggerfish-Agenten mit Signal, damit andere Ihnen Nachrichten ueber die Signal-App senden koennen. Der Adapter kommuniziert mit einem signal-cli-Daemon ueber JSON-RPC unter Verwendung Ihrer verknuepften Signal-Telefonnummer.

Wie Signal sich unterscheidet ​

Der Signal-Adapter ist Ihre Telefonnummer. Im Gegensatz zu Telegram oder Slack, wo ein separates Bot-Konto existiert, kommen Signal-Nachrichten von anderen Personen an Ihre Nummer. Das bedeutet:

  • Alle eingehenden Nachrichten haben isOwner: false -- sie stammen immer von jemand anderem
  • Der Adapter antwortet als Ihre Telefonnummer
  • Es gibt keine Eigentuemer-Pruefung pro Nachricht wie bei anderen Kanaelen

Dies macht Signal ideal fuer den Empfang von Nachrichten von Kontakten, die Ihre Nummer anschreiben, wobei der Agent in Ihrem Namen antwortet.

Standard-Klassifizierung ​

Signal hat standardmaessig die Klassifizierung PUBLIC. Da alle eingehenden Nachrichten von externen Kontakten stammen, ist PUBLIC der sichere Standard.

Einrichtung ​

Schritt 1: signal-cli installieren ​

signal-cli ist ein Drittanbieter-Befehlszeilenclient fuer Signal. Triggerfish kommuniziert mit ihm ueber einen TCP- oder Unix-Socket.

Linux (nativer Build -- kein Java benoetigt):

Laden Sie den neuesten nativen Build von der signal-cli Releases-Seite herunter, oder lassen Sie Triggerfish ihn waehrend der Einrichtung fuer Sie herunterladen.

macOS / andere Plattformen (JVM-Build):

Erfordert Java 21+. Triggerfish kann automatisch eine portable JRE herunterladen, wenn Java nicht installiert ist.

Sie koennen auch die gefuehrte Einrichtung ausfuehren:

bash
triggerfish config add-channel signal

Dies prueft auf signal-cli, bietet an, es herunterzuladen, falls es fehlt, und fuehrt Sie durch die Verknuepfung.

Schritt 2: Ihr Geraet verknuepfen ​

signal-cli muss mit Ihrem bestehenden Signal-Konto verknuepft werden (wie das Verknuepfen einer Desktop-App):

bash
signal-cli link -n "Triggerfish"

Dies gibt eine tsdevice:-URI aus. Scannen Sie den QR-Code mit Ihrer Signal-Mobile-App (Einstellungen > Verknuepfte Geraete > Neues Geraet verknuepfen).

Schritt 3: Daemon starten ​

signal-cli laeuft als Hintergrund-Daemon, mit dem sich Triggerfish verbindet:

bash
signal-cli -a +14155552671 daemon --tcp localhost:7583

Ersetzen Sie +14155552671 durch Ihre Telefonnummer im E.164-Format.

Schritt 4: Triggerfish konfigurieren ​

Fuegen Sie Signal zu Ihrer triggerfish.yaml hinzu:

yaml
channels:
  signal:
    endpoint: "tcp://127.0.0.1:7583"
    account: "+14155552671"
    classification: PUBLIC
OptionTypErforderlichBeschreibung
endpointstringJasignal-cli-Daemon-Adresse (tcp://host:port oder unix:///pfad/zum/socket)
accountstringJaIhre Signal-Telefonnummer (E.164-Format)
classificationstringNeinKlassifizierungsobergrenze (Standard: PUBLIC)
defaultGroupModestringNeinGruppennachrichten-Behandlung: always, mentioned-only, owner-only (Standard: always)
groupsobjectNeinPro-Gruppe-Konfigurationsueberschreibungen
ownerPhonestringNeinFuer zukuenftige Verwendung reserviert
pairingbooleanNeinPairing-Modus waehrend der Einrichtung aktivieren

Schritt 5: Triggerfish starten ​

bash
triggerfish stop && triggerfish start

Senden Sie eine Nachricht an Ihre Telefonnummer von einem anderen Signal-Benutzer, um die Verbindung zu bestaetigen.

Gruppennachrichten ​

Signal unterstuetzt Gruppenchats. Sie koennen steuern, wie der Agent auf Gruppennachrichten antwortet:

ModusVerhalten
alwaysAuf alle Gruppennachrichten antworten (Standard)
mentioned-onlyNur antworten, wenn per Telefonnummer oder @-Erwaehnung erwaehnt
owner-onlyNie in Gruppen antworten

Global oder pro Gruppe konfigurieren:

yaml
channels:
  signal:
    endpoint: "tcp://127.0.0.1:7583"
    account: "+14155552671"
    defaultGroupMode: mentioned-only
    groups:
      "ihre-gruppen-id":
        mode: always
        classification: INTERNAL

Gruppen-IDs sind Base64-kodierte Bezeichner. Verwenden Sie triggerfish signal list-groups oder konsultieren Sie die signal-cli-Dokumentation, um sie zu finden.

Nachrichtenaufteilung ​

Signal hat ein Nachrichtenlimit von 4.000 Zeichen. Antworten, die laenger sind, werden automatisch in mehrere Nachrichten aufgeteilt, wobei an Zeilenumbruechen oder Leerzeichen fuer bessere Lesbarkeit geteilt wird.

Tipp-Indikatoren ​

Der Adapter sendet Tipp-Indikatoren, waehrend der Agent eine Anfrage verarbeitet. Der Tipp-Status wird geloescht, wenn die Antwort gesendet wurde.

Erweiterte Tools ​

Der Signal-Adapter stellt zusaetzliche Tools bereit:

  • sendTyping / stopTyping -- Manuelle Tipp-Indikator-Steuerung
  • listGroups -- Alle Signal-Gruppen auflisten, in denen das Konto Mitglied ist
  • listContacts -- Alle Signal-Kontakte auflisten

Klassifizierung aendern ​

yaml
channels:
  signal:
    endpoint: "tcp://127.0.0.1:7583"
    account: "+14155552671"
    classification: INTERNAL

Gueltige Stufen: PUBLIC, INTERNAL, CONFIDENTIAL, RESTRICTED.

Starten Sie den Daemon nach der Aenderung neu: triggerfish stop && triggerfish start

Zuverlaessigkeits-Features ​

Der Signal-Adapter enthaelt mehrere Zuverlaessigkeitsmechanismen:

Auto-Reconnection ​

Wenn die Verbindung zu signal-cli abbricht (Netzwerkunterbrechung, Daemon-Neustart), verbindet sich der Adapter automatisch mit exponentiellem Backoff wieder. Kein manuelles Eingreifen erforderlich.

Gesundheitspruefung ​

Beim Start prueft Triggerfish, ob ein bestehender signal-cli-Daemon gesund ist, mittels einer JSON-RPC-Ping-Probe. Wenn der Daemon nicht reagiert, wird er automatisch beendet und neu gestartet.

Versions-Tracking ​

Triggerfish verfolgt die bekannt gute signal-cli-Version (derzeit 0.13.0) und warnt beim Start, wenn Ihre installierte Version aelter ist. Die signal-cli-Version wird bei jeder erfolgreichen Verbindung protokolliert.

Unix-Socket-Unterstuetzung ​

Zusaetzlich zu TCP-Endpunkten unterstuetzt der Adapter Unix-Domain-Sockets:

yaml
channels:
  signal:
    endpoint: "unix:///run/signal-cli/socket"
    account: "+14155552671"

Fehlerbehebung ​

signal-cli-Daemon nicht erreichbar:

  • Ueberpruefen Sie, ob der Daemon laeuft: Pruefen Sie den Prozess oder versuchen Sie nc -z 127.0.0.1 7583
  • signal-cli bindet nur IPv4 — verwenden Sie 127.0.0.1, nicht localhost
  • TCP-Standardport ist 7583
  • Triggerfish startet den Daemon automatisch neu, wenn ein ungesunder Prozess erkannt wird

Nachrichten kommen nicht an:

  • Bestaetigen Sie, dass das Geraet verknuepft ist: Pruefen Sie die Signal-Mobile-App unter Verknuepfte Geraete
  • signal-cli muss nach der Verknuepfung mindestens eine Synchronisation empfangen haben
  • Pruefen Sie die Logs auf Verbindungsfehler: triggerfish logs --tail

Java-Fehler (nur JVM-Build):

  • signal-cli JVM-Build erfordert Java 21+
  • Fuehren Sie java -version aus, um zu pruefen
  • Triggerfish kann bei Bedarf waehrend der Einrichtung eine portable JRE herunterladen

Reconnection-Schleifen:

  • Wenn Sie wiederholte Reconnection-Versuche in den Logs sehen, stuerzt moeglicherweise der signal-cli-Daemon ab
  • Pruefen Sie die signal-cli-eigene stderr-Ausgabe auf Fehler
  • Versuchen Sie einen Neustart mit einem frischen Daemon: Stoppen Sie Triggerfish, beenden Sie signal-cli, starten Sie beide neu