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

Adimarantis

Ich habe gerade mal Befehle über GoogleAuth bei mir getestet und dabei keine grundsätzlichen Probleme festgestellt.
D.h. es muss bei deiner individuellen Konfiguration der Wurm drin sein.
Bevor du da lange auf Fehlersuche gehst, würde ich fast vorschlagen, die Telefonnummer neu zu registrieren.
Mach dir eine Sicherheitskopie von /var/lib/signal-cli (dabei kann auch das Install Script helfen: sudo ./signal_install backup )
Dann stoppe den signal-cli Service und lösche den Inhalt dieses Verzeichnisses um sicherzugehen, dass keine potentiellen Fehlkonfigurationen übrig sind.
Dann Service wieder starten und entsprechend der Doku Nummer neu registrieren.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Sailor

Moin tosammen

Da JAVA OpenJDK 23.0.1 im stabilen Zustand released wurde und dies scheinbar mit Signal-cli Version v0.13.11 zusammenspielt, anbei die Anleitung zur Installation aus dem Raspberry.

########## Libaries for 50_Signalbot.pm #################
sudo apt install default-jdk
### Download latest .tar.gz for Linux / AArch64 in "Ready for use: JDK XX" https://jdk.java.net

### In this example latest version is "23.0.1"
cd ~/Downloads
wget https://download.java.net/java/GA/jdk23.0.1/c28985cbf10d4e648e4004050f8781aa/11/GPL/openjdk-23.0.1_linux-aarch64_bin.tar.gz
sudo cp ~/Downloads/openjdk-23.0.1_linux-aarch64_bin.tar.gz /usr/lib/jvm/
cd /usr/lib/jvm/

sudo tar -xvzf /usr/lib/jvm/openjdk-23.0.1_linux-aarch64_bin.tar.gz
sudo mv ./jdk-23.0.1 ./java-23.0.1-openjdk-arm64

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-23.0.1-openjdk-arm64/bin/java 1
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-23.0.1-openjdk-arm64/bin/javac 1

sudo update-alternatives --config java
Choose version 23.0.1

sudo nano /etc/environment
JAVA_HOME="/usr/lib/jvm/java-23.0.1-openjdk-arm64"

nano ~/.bashrc
   ### Add line at the end of file
source /etc/environment

sudo rm ~/Downloads/openjdk-23.0.1_linux-aarch64_bin.tar.gz
sudo rm cd /usr/lib/jvm/openjdk-23.0.1_linux-aarch64_bin.tar.gz


### Get latest version https://github.com/AsamK/signal-cli/releases
### In this example the latest version is 0.13.11
wget https://github.com/AsamK/signal-cli/releases/download/v0.13.11/signal-cli-0.13.11.tar.gz
sudo tar xf signal-cli-0.13.11.tar.gz -C /opt
sudo ln -sf /opt/signal-cli-0.13.11/bin/signal-cli /usr/local/bin/

### Use the latest signal_install script from fhem
sudo apt-get install qrencode
cd /opt/fhem/contrib/signal
wget https://svn.fhem.de/trac/export/HEAD/trunk/fhem/contrib/signal/signal_install.sh
sudo mv ./signal_install.sh.1 ./signal_install.sh
sudo chown -R fhem:dialout /opt/fhem/contrib/signal/signal_install.sh
sudo chmod 755 /opt/fhem/contrib/signal/signal_install.sh
sudo chmod +x /opt/fhem/contrib/signal/signal_install.sh
sudo /opt/fhem/contrib/signal/signal_install.sh


Gruß
    Sailor
******************************
Man wird immer besser...

FhemPiUser

Zitat von: Adimarantis am 17 Januar 2025, 08:48:35Ich habe gerade mal Befehle über GoogleAuth bei mir getestet und dabei keine grundsätzlichen Probleme festgestellt.
D.h. es muss bei deiner individuellen Konfiguration der Wurm drin sein.
Bevor du da lange auf Fehlersuche gehst, würde ich fast vorschlagen, die Telefonnummer neu zu registrieren.
Mach dir eine Sicherheitskopie von /var/lib/signal-cli (dabei kann auch das Install Script helfen: sudo ./signal_install backup )
Dann stoppe den signal-cli Service und lösche den Inhalt dieses Verzeichnisses um sicherzugehen, dass keine potentiellen Fehlkonfigurationen übrig sind.
Dann Service wieder starten und entsprechend der Doku Nummer neu registrieren.


Das ist ja mal sehr interessant: Ich habe wie empfohlen ein Backup gemacht mit "sudo ./signal_install.sh backup" und siehe da, dann kamen auf einmal alle Nachrichten an, die ich die letzten Tage versucht habe vom Handy an den Signalbot zu schreiben. Jetzt geht alle wieder.

Beim Backup wurde der signal-service gestoppt und neu gestartet und das scheint das Problem gelöst zu haben. Mich wundert das allerdings, da ich ja gestern bereits den service mit "sudo service signal restart" neu gestartet hatte und das nicht das Problem gelöst hatte. Sehr merkwürdig.

Trotzdem danke für den Hinweis, hat geholfen...

Holzbein

Moin,

Versuche seit geraumer Zeit den Signalbot auf einem Ubuntu 20.04.4 LTS zu Installieren.

Vorgegangen bin ich nach der Installationsnleitung im Wiki.

Egal was ich auch mache, der Dienst startet nicht und ich habe nicht die geringste Ahnung warum nicht.

Muss allerdings auch dazu sagen das ich nicht die große Ahnung von Linux habe, alle Kommandos die ich brauche muss ich mir zusammen suchen.

Ich hoffe jemand hat Erbarmen mit mir und kann mir auf die Sprünge helfen, das wäre sehr Nett.


This script will help you to install signal-cli as system dbus service
and prepare the use of the FHEM Signalbot module

Please verify that these settings are correct:
Signal-cli User:              signal-cli
Signal-cli Install directory: /opt
Signal config storage:        /var/lib/signal-cli
Signal version:               0.13.14 (libsignal-client v0.68.1)
System library path:          /usr/lib
System architecture:          amd64
System GLIBC version:         2.31
Using Java version:           java
Native Java 21.0              yes (current version:21.0)
This will update system packages, install or uninstall signal-cli

system   : prepare required system package (except signal-cli)
install  : install signal-cli and setup as dbus system service
test     : run a basic test if everything is installed and registered correctly
remove   : Remove signal-cli and all configurations (will be archived)
start    : Start the signal-cli service (or respective docker processes)
all      : Run system, install, start and test (default)


Proceed (Y/n)? y
Checking for /usr/lib...found
Checking for /etc/dbus-1...found
Checking for /etc/dbus-1/system.d...found
Checking for /usr/share/dbus-1...found
Checking for /usr/share/dbus-1/system-services...found
Checking for /etc/systemd/system...found
Checking for /run/dbus...found
Checking for apt-ftparchive...available
Checking for wget...available
Checking for sudo...available
Checking for haveged...available
Checking for java...available
Checking for diff...available
Checking for dbus-send...available
Checking for cpan...available
Checking for zip...available
Checking for qrencode...available
Checking for /usr/include/dbus-1.0/dbus/dbus.h...available
Checking for /usr/share/build-essential/essential-packages-list...available
Checking for /usr/share/doc/libimage-librsvg-perl...available
Checking for /usr/share/perl5/URI.pm...available
Checking for Protocol::DBus...V0.22 found
Checking user signal-cli ...found
Checking for Java 21.0...successful
Checking/downloading native library...done
Checking for /opt...found
Checking for /var/lib/signal-cli...found
Checking for existing signal-cli installation...found
Checking signal-cli version...signal-cli 0.13.14
signal-cli matches target version...ok
Checking for /etc/dbus-1/system.d/org.asamk.Signal.conf...found
Checking for /usr/share/dbus-1/system-services/org.asamk.Signal.service...found
Checking for /etc/systemd/system/signal.service...found
Start signal-cli service
Job for signal.service failed because the control process exited with error code.
See "systemctl status signal.service" and "journalctl -xe" for details.
Checking installation via dbus-send command...Error org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
unexpected reply

Sending a message via perl Protocol::DBus...Error getting reply

sudo systemctl status signal
● signal.service - Send secure messages to Signal clients
     Loaded: loaded (/etc/systemd/system/signal.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Tue 2025-05-20 15:28:20 CEST; 2min 53s ago
    Process: 2836 ExecStartPre=/bin/sleep 10 (code=exited, status=0/SUCCESS)
    Process: 2846 ExecStart=/opt/signal/bin/signal-cli --config /var/lib/signal-cli daemon --system (code=exited, status=1/FAILURE)
   Main PID: 2846 (code=exited, status=1/FAILURE)

Mai 20 15:28:06 ubu-bh systemd[1]: Starting Send secure messages to Signal clients...
Mai 20 15:28:20 ubu-bh signal-cli[2846]: WARN  Manager - Failed to call libsignal-client: /tmp/libsignal17439824507535267146/libsignal_jni_amd64.so: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /tmp/libsignal17439824507535267146/libsignal_jni_amd64.so)
Mai 20 15:28:20 ubu-bh signal-cli[2846]: Missing required native library dependency: libsignal-client
Mai 20 15:28:20 ubu-bh systemd[1]: signal.service: Main process exited, code=exited, status=1/FAILURE
Mai 20 15:28:20 ubu-bh systemd[1]: signal.service: Failed with result 'exit-code'.
Mai 20 15:28:20 ubu-bh systemd[1]: Failed to start Send secure messages to Signal clients.

Danke und Gruß
Erhardt

buec65

Bei mir hat Signal auch aus nicht nachvollziehbaren Gründen nicht mehr empfangen können und mit dem Tip aus Beitrag 1337 ging es dann

ZitatDas ist ja mal sehr interessant: Ich habe wie empfohlen ein Backup gemacht mit "sudo ./signal_install.sh backup" und siehe da, dann kamen auf einmal alle Nachrichten an, die ich die letzten Tage versucht habe vom Handy an den Signalbot zu schreiben. Jetzt geht alle wieder.

Holzbein

Moin,

danke für den Ratschlag, aber der wird bei mir leider nichts bringen weil Signal erst garnicht startet.

Das Verzeichniss /var/lib/signal-cli war und ist leer.

Gruß
Erhardt

buec65

Da fehlt ja auch was, sollte eigentlich automatisch geladen werden

lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /tmp/libsignal17439824507535267146/libsignal_jni_amd64.so)

Installiert habe ich nach dem Hinweis

Install system-wide on Linux
See latest version.

https://github.com/AsamK/signal-cli/releases

export VERSION=<latest version, format "0.13.15">
wget https://github.com/AsamK/signal-cli/releases/download/v"${VERSION}"/signal-cli-"${VERSION}".tar.gz
sudo tar xf signal-cli-"${VERSION}".tar.gz -C /opt
sudo ln -sf /opt/signal-cli-"${VERSION}"/bin/signal-cli /usr/local/bin/

Adimarantis

Ubuntu 20.04 ist zu alt - leider setzt signal-cli immer auf sehr neue Distributionen um die native Library zu übersetzen - daher wird glibc angemeckert.
Zur Abhilfe müsste man die Library auf dem alten System selbst übersetzen.

Edit: unter https://github.com/exquo/signal-libs-build gibt es die Library auch für ältere Systeme - ob das "alt genug" sind, hab ich jetzt nicht gecheckt.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Holzbein

Moin,


Zitat von: Adimarantis am 21 Mai 2025, 08:58:34Ubuntu 20.04 ist zu alt - leider setzt signal-cli immer auf sehr neue Distributionen um die native Library zu übersetzen - daher wird glibc angemeckert.
Zur Abhilfe müsste man die Library auf dem alten System selbst übersetzen.

ich habe den Rechenknecht jetzt auf 24.04.2 LTS hochgezogen und damit klappt es dann auch mit Signal.

Danke für deine Hilfe und Gruß
Erhardt

abc2006

Moin,

ich habe folgenden Bedarf:
Ich habe ein Grundstück mit Mülltonnen, die Abholtermine sind im Google-Kalender gepflegt. Der Kalender wird über ein Calendar und ABFALL-Modul extrahiert und dann in eine Signal-Gruppe geschickt. Da die Müll-Nachrichten die Gruppe ein bisschen zuspammen, hatte ich nach einer Lösung gesucht, ob der signalbot evtl. vor dem Senden die Ablaufzeit auf z.B. 2 Tage setzen kann, dann die Nachricht (mit Ablaufzeit) sendet und danach die Ablaufzeit wieder deaktiviert.

Andere Lösungsvorschläge willkommen, gerne mach ich auch nen eigenen Thread, aber eigentlich will ich nur wissen, ob ich irgendwo die Möglichkeit übersehen habe, die Ablaufzeit zu setzen.


Grüße,
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

Adimarantis

Über FHEM ist das nicht implementiert, aber ich weiss auch nicht ob das notwendig ist, denn du kannst das im Signal Client in den Gruppeneigenschaften konfigurieren ("verschwindende Nachrichten")
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

HarryT

Hi

I use an automatic install for my raspberry which includes install_signal.sh

Is it possible to include a quiet switch in the install_signal.sh for "all" and "restore" ?

In my procedure I now use to download the latest install_signal.sh and apply the patch below.

After that I use:
install_signal.sh all -y
install_signal.sh restore -y

This works fine for me as long as install_signal.sh is not changed.


Thanks


--- signal_install.sh 2025-04-29 09:09:57.000000000 +0200
+++ signal_install.t 2025-06-15 19:23:11.798898509 +0200
@@ -662,7 +662,10 @@
  echo "You chose the following option: $OPERATION"
 fi
 echo
-if [ -z "$OPERATION" ] || [ "$OPERATION" = "system" ] || [ "$OPERATION" = "install" ] || [ "$OPERATION" = "all" ]; then
+
+
+if ((( [ "$OPERATION" = "install" ] || [ "$OPERATION" = "all" ] ) && ( ! [ "$2" = '-y' ] )) ||
+     ( [ -z "$OPERATION" ] || [ "$OPERATION" = "system" ]  )); then
   echo -n "Proceed (Y/n)? "
   read REPLY
   if [ "$REPLY" = "n" ]; then
@@ -712,14 +715,16 @@
  echo "Make sure signal-backup.tar.gz is in current directory"
  exit
  fi
- echo "Are you sure you want to restore all signal-cli configuration files?"
- echo -n "Any existing configuration will be lost (y/N)? "
- read REPLY
- if ! [ "$REPLY" = "y" ]; then
+        if ! [ "$2" = '-y' ]; then 
  echo "Are you sure you want to restore all signal-cli configuration files?"
+   echo -n "Any existing configuration will be lost (y/N)? "
+   read REPLY
+   if ! [ "$REPLY" = "y" ]; then
  echo "Aborting..."
  exit
- fi
- stop_service
+   fi
+   stop_service
+        fi
  echo -n "Restoring backup..."
  tar xPf signal-backup.tar.gz
  chown -R $SIGNALUSER: $SIGNALVAR
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.

Adimarantis

Hi Harry,

could you just make a PR on https://github.com/bublath/FHEM-Signalbot ?
That's my "working" copy. After it was merged I will transfer it to FHEM SVN as well.

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

Hi Jörg

I am happy to assist, but i never used github. So a PR is a Pull Request?
I had a look at it but it is not clear to me what I am supposed to do.

Can you give more details?

Harry
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.

Adimarantis

Maybe you should consider learning how to use git/github  :)
For now I applied your patch there, but had to do some additional fixes, as you did not consider the case when no option and just "-y" is given. Please check
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)