Anfängerprobleme Signalbot

Begonnen von matze1999, 09 Februar 2025, 13:17:38

Vorheriges Thema - Nächstes Thema

matze1999

Hallo, ich versuche ein signalbot Device anzulegen,

mit define fhemSignal Signalbot
bekomme da aber immer

unavailable
Das Install script habe ich ausgeführt, da kommt zwar immer ein Fehler:

Sending a message via perl Protocol::DBus...Can't locate Protocol/DBus/Client.pm in @INC (you may need to install the Protocol::DBus::Client module) (@INC contains: /etc/perl /usr/local/lib/aarch64-linux-gnu/perl/5.36.0 /usr/local/share/perl/5.36.0 /usr/lib/aarch64-linux-gnu/perl5/5.36 /usr/share/perl5 /usr/lib/aarch64-linux-gnu/perl-base /usr/lib/aarch64-linux-gnu/perl/5.36 /usr/share/perl/5.36 /usr/local/lib/site_perl) at /tmp/signal1862029.tmp line 5.
BEGIN failed--compilation aborted at /tmp/signal1862029.tmp line 5.
und ich werde nie nach einem Chapta  gefragt.

manuell geht auch nicht:

./signal-cli -u +49XXXXXXXXXXXXXX register --voice --captcha CHAPTA
Fehler: Beim Laden der Klasse org.asamk.signal.Main ist ein LinkageError aufgetreten
java.lang.UnsupportedClassVersionError: org/asamk/signal/Main has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up to 61.0

Kann man da was tun?

matze1999

rudolfkoenig

#1
Ich hatte mit aehnlichen Problemen zu kaempfen, und dann ein ausfuehrbares Programm gefunden (signal-cli0135_ubuntu2004_amd64), was das java-Programm samt Java Interpreter enthaelt: eine Datei, 103MB.
Funktioniert, auch wenn ich mich damit nicht wohl fuehle.

Etwas off-topic: damit signal die Endstelle nicht als verwaist deklariert, wird in einer Schleife stuendlich  "./signal-cli0135_ubuntu2004_amd64 receive" ausgefuehrt.

Nachtrag: das FHEM Modul verwende ich nicht, ich rufe das externe Programm (s.o.) direkt auf.

Adimarantis

Auf welchem OS bist du?
Das Problem ist, dass signal-cli nicht reines Java ist, sondern auch eine executable library beinhaltet die zum OS passen muss - und da wird nicht jedes unterstützt.
Das zweite Problem ist, dass der Autor von signal-cli etwas übereifrig ist ein aktuelles Java zu verwenden - aktuell mindestens Java 21 - und das ist für ältere OS nicht per Paket Installer verfügbar.

Das Install Script versucht hier einige Workarounds und sollte eigentlich auch warnen, wenn etwas nicht passt. Was hast du da für Output?
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

matze1999

Hallo,

ein Pi

PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

und

openjdk version "17.0.14" 2025-01-21
OpenJDK Runtime Environment (build 17.0.14+7-Debian-1deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.14+7-Debian-1deb12u1, mixed mode, sharing)

matze1999

matze1999

...vergessen:

Fehler: Beim Laden der Klasse org.asamk.signal.Main ist ein LinkageError aufgetreten
java.lang.UnsupportedClassVersionError: org/asamk/signal/Main has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up to 61.0

Adimarantis

Ja, der Fehler liegt an Java 17.
Die selbe Konfiguration hab ich auch am Laufen.
Daher verstehe ich jetzt nicht ganz, warum der Installer das bei dir nicht schafft.
Der sollte eigentlich eine Java 21 Distro holen und nach /opt/java installieren.

Was gibt das Installer Script aus?
Was steht in /tmp/signal_install.log
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

matze1999

Hallo,

sudo /tmp/signal_install.sh system
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.11 (libsignal-client v0.64.1)
System library path:          /usr/lib
System architecture:          aarch64
System GLIBC version:         2.36
Using Java version:           /opt/java/bin/java
Native Java 21.0              no (current version:21.0)
You chose the following option: system

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

matze1999

jetzt,, nach einem remove und neuem install:

sudo systemctl status signal.service
● signal.service - Send secure messages to Signal clients
     Loaded: loaded (/etc/systemd/system/signal.service; enabled; preset: enabled)
     Active: active (running) since Sun 2025-02-09 16:48:03 CET; 8s ago
    Process: 34907 ExecStartPre=/bin/sleep 10 (code=exited, status=0/SUCCESS)
   Main PID: 34917 (java)
      Tasks: 25 (limit: 9559)
        CPU: 3.843s
     CGroup: /system.slice/signal.service
             └─34917 /opt/java/bin/java -Xms2m -classpath /opt/signal/lib/signal-cli-0.13.11.jar:/opt/signal/lib/lib.jar:/opt/signal/lib/bcprov-jdk18on-1.79.jar:/opt/signal/lib/signal-service-java-2.15.3_unofficial_114.jar:/opt/signal>

Feb 09 16:47:51 fhem systemd[1]: Starting signal.service - Send secure messages to Signal clients...
Feb 09 16:48:03 fhem signal-cli[34917]: INFO  DaemonCommand - Starting daemon in multi-account mode
Feb 09 16:48:03 fhem systemd[1]: Started signal.service - Send secure messages to Signal clients.
Feb 09 16:48:03 fhem signal-cli[34917]: INFO  DbusHandler - Started DBus server on SYSTEM bus: org.asamk.Signal

Adimarantis

Ok, das schaut doch gut aus.
Die normale Installation als Service sollte dann gehen.
Wenn du selber aus der Kommandozeile signal-cli starten willst, musst du allerdings sicherstellen, dass er Java21 nimmt:
export JAVA_HOME=/opt/java
export PATH=/opt/java/bin:$PATH
Dann sollte folgendes funktionieren:
java --version
openjdk 21.0.2 2024-01-16 LTS
OpenJDK Runtime Environment Temurin-21.0.2+13 (build 21.0.2+13-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.2+13 (build 21.0.2+13-LTS, mixed mode, sharing)
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

matze1999

das ist verrückt:

matze@fhem:/opt/signal/bin $ java --version
openjdk 21.0.2 2024-01-16 LTS
OpenJDK Runtime Environment Temurin-21.0.2+13 (build 21.0.2+13-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.2+13 (build 21.0.2+13-LTS, mixed mode)
matze@fhem:/opt/signal/bin $ sudo ./signal-cli -u +49XXXXXXXXXXX register -voice -captcha CHAPTA
Fehler: Beim Laden der Klasse org.asamk.signal.Main ist ein LinkageError aufgetreten
    java.lang.UnsupportedClassVersionError: org/asamk/signal/Main has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up to 61.0

matze1999

noch was:

sudo update-alternatives --config java
Es gibt 1 Auswahlmöglichkeit für die Alternative java (welche /usr/bin/java bereitstellt).

  Auswahl      Pfad                                         Priorität Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-17-openjdk-arm64/bin/java   1711      automatischer Modus
  1            /usr/lib/jvm/java-17-openjdk-arm64/bin/java   1711      manueller Modus

Drücken Sie die Eingabetaste, um die aktuelle Wahl[*] beizubehalten,

Adimarantis

Das ist normal. Die Java Installation ist separat und nicht in die "alternatives" integriert. Ich weiss nur nicht ganz was du da eigentlich probierst. Selbst wenn da kein Fehler käme, würde die Kommandozeile nichts bringen.
Über die FHEM GUI geht's nicht?
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

matze1999

Das ist das zweite Problem:

ich versuche ein signalbot Device anzulegen,

mit

define fhemSignal Signalbot
bekomme ich da aber immer
unavailable

Adimarantis

Kannst du denn andere Devices definieren?
Steht was im fhem log?
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

matze1999

das ging jetzt,

nach einem reload des Signalbot modules konnte ich ein device anlegen, jetzt scheitere ich and der Registrierung, die ich gern mit voice an einer Festnetznummer machen möchte. Ich  registriere mich also it sms, dann warte ich min 60s und dann mit voice, aber da passiert nichts?