Neues Modul: Signalbot (Integration für den Signal Messenger) via signal-cli

Begonnen von Adimarantis, 31 Januar 2021, 19:16:19

Vorheriges Thema - Nächstes Thema

tomcat.x

Hallo zusammen,

nutzt noch jemand das Modul auf einen System mit Buster?

Ich weiß nicht, ob es ein generelles Thema oder ein spezielles ist. Es sieht so aus, als ob das Device die Registrierung vergessen hat. Aufgefallen ist mir dsas, nachdem ich ein paar Tage lang keine Nachrichten mehr bekommen habe. Ein Update einer Komponente (so wie FilliFairy weiter oben) habe ich nicht gemacht, aber kann ja sein, dass es ohne jetzt unter Buster auch nicht mehr funktioniert.

Das Fehlen der Registrierung gab es glaube ich schon mal, vielleicht in anderem Zusammenhang, aber da ich aktuell keinen Fehler sondern nur den Zustand disconnected sehe, habe ich über die Suche nichts gefunden.

Kann man da was aus einem Backup zurückholen? Oder einfach neu registrieren? Ich habe die Befürchtung, dass ich eine bereits registrierte Nummer nicht einfach neu registrieren kann.

Viele Grüße
Thomas

Nachtrag:
Ich denke, ich habe es selbst gefunden. Der Service läuft zwar, aber es gibt folgende Warnung:
WARN  MultiAccountManager - Ignoring +49##########: signal-cli version is too old for the Signal-Server, please update. (AccountCheckException)Wobei es ja eigentlich nur eine Warnung ist. Aber vielleicht ist jetzt wirklich der Zeitpunkt für trixie gekommen.
Kann man in dem aktuellen Zustand noch ein Backup mit dem script machen umd es zu übertragen?
FHEM: 6.4 auf Raspi 4B, Raspbian (noch Buster), Perl v5.28.1
Sender/Empfänger: 2 x CULv3, Duofern Stick, HM-MOD-RPI-PCB
Gateways: FRITZ!Box 6591 (OS: 8.25), Trädfri, ConBee 2,  piVCCU, OpenMQTTGateway
Sensoren/Aktoren: FRITZ!DECT, FS20, FHT, HMS, HomeMatic, Trädfri, DuoFern, NetAtmo

Adimarantis

Ich denke da sind wirklich signal-cli und Signal Server zu weit divergiert.
Grundsätzlich sollte es gehen, dass man die Config sichert und wieder einspielt, aber bei zu großen Versionsprüngen könnte es sein, dass die Migration dann nicht klappt.
In dem Fall eventuell, inkrementiell mit kleinere Versionsschritten arbeiten. Ältere Install Scripten sind ja in der SVN History verfügbar.

Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

HarryT

Hello all

Signal stopped working on my Raspberry with FHEM

In the FHEM Deviceoverview signal is reported as:

VERSION: Signalbot:3.21 signal-cli:0.13.17 Protocol::DBus:0.22
model: Debian GNU/Linux 12 (bookworm)

In the logging I see:
2026-03-30_09:43:08 SignalBot lastError: No account registered - use set account to connect to an existing registration, link or register to get a new account
2026-03-30_09:43:08 SignalBot disconnected

get signalbot accounts answers with an empty list of accounts.

Most likely this started at a reboot from my raspberry

A fresh (warm) reboot of the raspberry did not solve the issue.

I see no reason why my account would be gone. 

Any idea what could be wrong and how to solve it?

Thanks in advance


FHEM 6.4 auf Raspberry Pi3  (1,2 Ghz)
RFXTRX433XL, ZWave, KFL200 and ConBeeIII
Raspberry Pi1 (0,7 Ghz) and Raspberry Pi4 for testing
German reading skills are good.

tomcat.x

For me it stopped working because of outdated signal-cli version, but it is signal-cli 0.12.8. So should be other reason at your end. I also don't have the message, but when looking to the device it also looks as if no account is registered.

Did you check status of service ("sudo service signal status")? There I found the reason for my issue.

Regards
Thomas
FHEM: 6.4 auf Raspi 4B, Raspbian (noch Buster), Perl v5.28.1
Sender/Empfänger: 2 x CULv3, Duofern Stick, HM-MOD-RPI-PCB
Gateways: FRITZ!Box 6591 (OS: 8.25), Trädfri, ConBee 2,  piVCCU, OpenMQTTGateway
Sensoren/Aktoren: FRITZ!DECT, FS20, FHT, HMS, HomeMatic, Trädfri, DuoFern, NetAtmo

HarryT

Hi

Thanks for the quick answer. Indeed this gives some clues

I get:
------------------
* signal.service - Send secure messages to Signal clients
     Loaded: loaded (/etc/systemd/system/signal.service; enabled; preset: enabled)
     Active: active (running) since Mon 2026-03-30 09:43:08 CEST; 8h ago
   Main PID: 2681 (java)
      Tasks: 28 (limit: 758)
        CPU: 1min 21.312s
     CGroup: /system.slice/signal.service
             `-2681 /opt/java/bin/java --enable-native-access=ALL-UNNAMED -Xms2m -classpath /opt/signal/lib/signal-cli-0.13.17.jar:/opt/signal/lib/libsignal-cli-0.13.17.jar:/opt/signal/lib/bcprov-jdk18on-1.8>

mrt 30 09:42:38 Debi12-12 systemd[1]: Starting signal.service - Send secure messages to Signal clients...
mrt 30 09:43:07 Debi12-12 signal-cli[2681]: WARN  MultiAccountManager - Ignoring +xxxxxxxxx: Error while checking account +xxxxxxxx: Closed unexpectedly (AccountCheckException)
mrt 30 09:43:07 Debi12-12 signal-cli[2681]: INFO  DaemonCommand - Starting daemon in multi-account mode
mrt 30 09:43:08 Debi12-12 systemd[1]: Started signal.service - Send secure messages to Signal clients.
mrt 30 09:43:08 Debi12-12 signal-cli[2681]: INFO  DbusHandler - Started DBus server on SYSTEM bus: org.asamk.Signal

------------------
xxxx is the correct number.

This number is still active and worked in this setup for years. I didn't change or upgrade anything. So still wonder why this does not work anymore.

An ideas?

Greetings
 
FHEM 6.4 auf Raspberry Pi3  (1,2 Ghz)
RFXTRX433XL, ZWave, KFL200 and ConBeeIII
Raspberry Pi1 (0,7 Ghz) and Raspberry Pi4 for testing
German reading skills are good.

HarryT

And another issue as I testet with a fresh install.

In a complete fresh installation with RaspbianOS (64bit), FHEM 6.4 and signalbot (with the newest signal_install.sh) I get

=================
× signal.service - Send secure messages to Signal clients
     Loaded: loaded (/etc/systemd/system/signal.service; enabled; preset: enabled)
     Active: failed (Result: exit-code) since Mon 2026-03-30 18:26:26 CEST; 3s ago
 Invocation: d2582dc679a440f0ad1c9762a4daa0ab
    Process: 5824 ExecStart=/opt/signal/bin/signal-cli --config /var/lib/signal-cli daemon --system (code=exited, status=1/FAILURE)
   Main PID: 5824 (code=exited, status=1/FAILURE)
        CPU: 9ms

mrt 30 18:26:25 Debi13-24 systemd[1]: Starting signal.service - Send secure messages to Signal clients...
mrt 30 18:26:26 Debi13-24 signal-cli[5824]: ERROR: JAVA_HOME is set to an invalid directory: /opt/java
mrt 30 18:26:26 Debi13-24 signal-cli[5824]: Please set the JAVA_HOME variable in your environment to match the
mrt 30 18:26:26 Debi13-24 signal-cli[5824]: location of your Java installation.
mrt 30 18:26:26 Debi13-24 systemd[1]: signal.service: Main process exited, code=exited, status=1/FAILURE
mrt 30 18:26:26 Debi13-24 systemd[1]: signal.service: Failed with result 'exit-code'.
mrt 30 18:26:26 Debi13-24 systemd[1]: Failed to start signal.service - Send secure messages to Signal clients.
========================

Indeed /opt/java does not exist. 
 
FHEM 6.4 auf Raspberry Pi3  (1,2 Ghz)
RFXTRX433XL, ZWave, KFL200 and ConBeeIII
Raspberry Pi1 (0,7 Ghz) and Raspberry Pi4 for testing
German reading skills are good.

HarryT

Forget my last message. The problem with /opt/java was solved after a new install_signal.sh call.
FHEM 6.4 auf Raspberry Pi3  (1,2 Ghz)
RFXTRX433XL, ZWave, KFL200 and ConBeeIII
Raspberry Pi1 (0,7 Ghz) and Raspberry Pi4 for testing
German reading skills are good.

HarryT

Ok again an update

In the fresh installation, I used a backup of last night of my signal settings, the accounts is available.

In this installation I have
   
Signalbot:3.21 signal-cli:0.13.23 Protocol::DBus:0.22
Debian GNU/Linux 13 (trixie)
 
So maybe an issue with signal-cli 0.13.17 ??

However I would expect more people having issues.

Greetings
FHEM 6.4 auf Raspberry Pi3  (1,2 Ghz)
RFXTRX433XL, ZWave, KFL200 and ConBeeIII
Raspberry Pi1 (0,7 Ghz) and Raspberry Pi4 for testing
German reading skills are good.

Beko136

Hallo,

laut [https://github.com/AsamK/signal-cli/issues/1993] handelt es sich um eine Umstellung, die auf Signal-Seite passiert ist, wenn ich das richtig verstanden habe. In Version v0.14.1 von signal.cli sei "SPQR" berücksichtigt und Signal funktioniere dann wieder. Kann das signal_install.sh-Skript [https://svn.fhem.de/fhem/trunk/fhem/contrib/signal/signal_install.sh] bitte von jemandem, der sich auskennt, dahingehend angepasst werden?

Danke und schöne Grüße

Adimarantis

Hier mal auf die Schnelle ein Installer der die aktuelle signal-cli version installiert.

Ich habe damit allerdings noch nicht geschafft mich neu zu registrieren. Bekomme dauernd Fehler wie "invalid transport method" und so

Leider aktuell nicht wirklich Zeit da tiefer reinzugehen

Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Adimarantis

Aus Signalbot geht es wohl gerade nicht, weil er mit den aktuellen Fehlermeldungen nicht zurecht kommt.
Ich habe es aber "zu Fuß" geschafft mich wieder zu registrieren:
Service stoppen:
  service stop signal
Java 25 aktivieren
  export JAVA_HOME=/opt/java
Erst mit SMS registrieren - captcha auf https://signalcaptchas.org/registration/generate lösen und den link "Signal öffnen" kopieren und als captcha unten einfügen
  sudo -E /opt/signal/bin/signal-cli --config /var/lib/signal-cli -u +49..... register --reregister --captcha signalcaptcha://......
Eine Minute warten dann den selben Befehl (das Captcha gilt normalerweise noch) für Voice:
  sudo -E /opt/signal/bin/signal-cli --config /var/lib/signal-cli -u +49..... register -v --reregister --captcha signalcaptcha://......
Dann sollte der Anruf mit der Verification Code kommen und den dann setzen
  sudo -E /opt/signal/bin/signal-cli --config /var/lib/signal-cli -u +49..... verify <code>
Service wieder starten:
  service signal start 

Danach noch ein "set reinit" im Signalbot und ihr solltet wieder online sein

Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Ralli

Mich hat's auch erwischt, bis jetzt habe ich den ursprünglichen Account noch nicht wieder zum Laufen bekommen.
Gruß,
Ralli

Proxmox 9 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte OpenCCU (3.85.7.20260404) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.62), FBDECT, Siri und Alexa

Beko136

Guten Morgen,

danke @Adimarantis für die Bereitstellung des aktualisierten Skripts. Die Installation hat damit nun wieder fehlerfrei funktioniert.
Ich habe über den CLI-Weg auch wieder eine Registrieren geschafft, nur FHEM zeigt nach wie vor "disconnected" an, auch nach Reboots und "reinit". Hat jemand eine Idee?

Danke und sG

enno

Moin

bei mir ist war es auch "disconnected" :'( Ich habe die Anleitung von Jörg versucht. Bis jetzt läuft nur der Signal Service mit der Version v0.14.1  und Java 25. Registrieren hat aber noch nicht geklappt.

Für mich die grösste Hürde war Java 25 zu aktivieren.

Gruss
  Enno

Edit: Mit etwas Ruhe hat die Registrierung über die Shell geklappt. Vielen Dank an Jörg!
Einfacher FHEM Anwender auf Intel®NUC mit Proxmox und Debian

Beko136

Hallo,

FHEM meldet nach wie vor "disconnected", aber über die Commandline kann ich mit dem Signal-Service interagieren (Kontakte und Identities abfragen usw.). Versuche ich jedoch, eine Nachricht zu senden, dann erhalte ich folgenden Fehler:
/opt/signal/bin/signal-cli -a +43...... send -m "Testnachricht" +43......
WARN  ManagerImpl - No profile name set. When sending a message it's recommended to set a profile name with the updateProfile command. This may become mandatory in the future.
WARN  SendHelper - Failed to send message due to IO exception: org/signal/libsignal/protocol/state/internal/SessionStore
Failed to send (some) messages:
+43......: Network failure for "+43......"
1775205778462
Failed to send message

Wenn ich den receive-Command absetze (weil Signal darauf hinweist, dass erwartet wird, dass das regelmäßig gemacht wird), dann kommt Folgendes:
/opt/signal/bin/signal-cli -a +43...... receive
java.lang.NoClassDefFoundError: org/signal/libsignal/protocol/state/internal/SessionStore
        at org.signal.libsignal.internal.Native.SessionCipher_DecryptPreKeySignalMessage(Native Method)
        at org.signal.libsignal.protocol.SessionCipher.lambda$decrypt$1(SessionCipher.java:142)
        at org.signal.libsignal.internal.FilterExceptions.filterExceptions(FilterExceptions.java:362)
        at org.signal.libsignal.protocol.SessionCipher.decrypt(SessionCipher.java:135)
        at org.whispersystems.signalservice.api.crypto.SignalSessionCipher.decrypt(SignalSessionCipher.java:38)
        at org.whispersystems.signalservice.api.crypto.SignalServiceCipher.decryptInternal(SignalServiceCipher.java:194)
        at org.whispersystems.signalservice.api.crypto.SignalServiceCipher.decrypt(SignalServiceCipher.java:145)
        at org.asamk.signal.manager.helper.IncomingMessageHandler.handleRetryEnvelope(IncomingMessageHandler.java:115)
        at org.asamk.signal.manager.helper.ReceiveHelper.retryFailedReceivedMessage(ReceiveHelper.java:285)
        at org.asamk.signal.manager.helper.ReceiveHelper.retryFailedReceivedMessages(ReceiveHelper.java:266)
        at org.asamk.signal.manager.helper.ReceiveHelper.receiveMessagesInternal(ReceiveHelper.java:132)
        at org.asamk.signal.manager.helper.ReceiveHelper.receiveMessages(ReceiveHelper.java:106)
        at org.asamk.signal.manager.internal.ManagerImpl.receiveMessages(ManagerImpl.java:1502)
        at org.asamk.signal.manager.internal.ManagerImpl.receiveMessages(ManagerImpl.java:1472)
        at org.asamk.signal.commands.ReceiveCommand.handleCommand(ReceiveCommand.java:93)
        at org.asamk.signal.commands.CommandHandler.handleLocalCommand(CommandHandler.java:37)
        at org.asamk.signal.App.handleLocalCommand(App.java:281)
        at org.asamk.signal.App.handleCommand(App.java:182)
        at org.asamk.signal.App.init(App.java:147)
        at org.asamk.signal.Main.main(Main.java:56)
Caused by: java.lang.ClassNotFoundException: org.signal.libsignal.protocol.state.internal.SessionStore
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
        at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
        ... 20 more

Kann das noch jemand bestätigen? Java-Meldungen zu einem "SessionStore" sind mir auch bei anderen Signal-cli-Commands aufgefallen.

Danke und sG