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
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.
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?
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
...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
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
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
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
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)
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
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,
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?
Das ist das zweite Problem:
ich versuche ein signalbot Device anzulegen,
mit
define fhemSignal Signalbot
bekomme ich da aber immer
unavailable
Kannst du denn andere Devices definieren?
Steht was im fhem log?
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?
Schwer zu sagen.
Funktioniert leider anscheinend nicht immer zuverlässig (wobei ich irgendwie nie Probleme hatte).
Einfach mal später nochmal probieren oder per Kommandozeile wie im Wiki beschrieben
https://wiki.fhem.de/wiki/Signalbot
noch eine Frage, muss ich selbst das registerMethod attribut von sms auf voice stellen? oder macht das das Modul automatisch, wenn ich voise einstelle?
wenn ich einfach ein captcha hole (nicht auf dem pi, und eintrage kommt folgende Fehlermeldung
Error with captcha:Error in registerWithCaptcha:ExternalServiceFailureException StatusCode: 502
oder muss ich das captcha auf dem pi im Browser holen?
Hallo,
ich kann das im wiki nicht finden:
oder per Kommandozeile wie im Wiki beschrieben
matze1999
Wiki:
SMS: Hier sollte relativ zeitnah eine SMS mit einem 6-stelligen Code übermittelt werden
Voice: Die Registrierung per Sprachanruf ist mit einigen Hürden versehen. Man muss erst mit SMS registrieren, 1 Minute warten, dann mit Voice. Ab Signalbot V3.19 wird dieser Vorgang automatisiert. Dauert aber durch die zwingende Wartezeit von 1 Minute ein wenig.
Wiki - in der Troubleshooting Tabelle am Schluss:
Alternativ kann die Registrierung auch in der Kommandozeile vorgenommen werden
sudo service signal stop
cd /opt/signal/bin/
sudo -E -u signal-cli ./signal-cli --config /var/lib/signal-cli -u +4912456 register --voice --captcha signalcaptcha://03AG....
sudo -E -u signal-cli ./signal-cli --config /var/lib/signal-cli -u +4912456 verify 12345
sudo service signal start
wann muss ich den captcha holen, vor den o.g.Befehlen? Muss ich nicht erst per sms Methode registrieren (mit einem neuen captcha)?
ich bekomme immer invalid captcha given
Bei mir hat Folgendes geklappt:
Browser, open javascript console: preserve log!, then
https://signalcaptchas.org/registration/generate
Copy the captcha-string starting with signal-hcaptcha
./signal-cli0135_ubuntu2004_amd64 -u +49XXX register --captcha 'signal-hcaptcha....'
wait one minute
./signal-cli0135_ubuntu2004_amd64 -u +49XXX register --voice --captcha 'signal-hcaptcha....'
note the number
./signal-cli0135_ubuntu2004_amd64 -u +49XXX verify ...
Hallo,
ich habe es mit einer bestehenden Signal-Handynummer probiert, geht tadellos, per SMS ohne captcha, hab ich aber wieder gelöscht, da hoher Signal Verkehr.
Ich möchte es gern auf einer Festnetznummer probieren.
Ich bin nicht ganz sicher, ob ich die zeitlichen Abläufe richtig mache/verstanden habe:
Ich versuche es manuell, per ssh auf dem pi, nachdem ich den Signal.Service gestoppt habe:
1. welche Form hat der captcha (mit oder ohne: signalcaptcha://
), und vor allem, in welcher zeitlichen Abfolge muss er geholt werden, wie lange ist er gültig, und muss er auf dem gleichen rechner geholt werden oder reicht es wie bei mir der signal-cli läuft auf dem PI ich hole den captcha am PC.:
sudo -E -u signal-cli ./signal-cli --config /var/lib/signal-cli -u +49XXXXXXXXXXXXXX register --captcha signalcaptcha://signal-hcaptcha.XXXX...
2. muss man dann genau eine minute warten für --voice
oder kann es etwas mehr (wie viel max?) sein, mit dem gleichen captcha wie oben, oder muss ein neuer geholt werden?
Bei mir ist schon 1. nicht erfolgreich: Invalid captcha given.
matze1999
ähnliches gilt für meine Versuche in FHEM:
Muss ich hier auch selbsständig erst das sms und dann voice attribut ändern?
wann muss ich den captcha senden?
matze1999
Ist schon eine Weile her seit ich das zum letzten Mal probiert habe, aber der Ablauf ist so, dass Signalbot bei "voice" automatisch erst per SMS registriert. Da braucht er dann den Captcha Code, was mit dem Registry Hack unter Windows halb-automatisch ablaufen sollte.
Signalbot wartet dann 60s und sendet das selbe Captcha nochmal mit "voice" - zumindest früher war das Captcha wohl so lange gültig. Dann sollte der Anruf kommen.
was mit dem Registry Hack unter Windows halb-automatisch ablaufen sollte
und auf einem Linux PC?
matze1999
Unter Linux hat sich das nie richtig automatisieren lassen - je nach Browser etc. alles anders.
Erleichtert aber auch nur den copy&paste Schritt des Captcha - das war früher etwas komplizierter. Inzwischen nimmt das wahrscheinlich sowieso keiner mehr her.
Hallo,
es scheint ein Problem beim SMS nbieter auf signalseite zu sein, auch am Handy kann ich kiene Festnetznummer registrieren.
Hab jetzt eine andere Lösung mit Mobilnummer, funktioniert.
matze1999
noch eins, wie bekomme ich die ganzen Accounts der Fehlversuche wieder raus:
WARN MultiAccountManager - Ignoring +49XXXXXXXXXXXXX: User is not registered. (NotRegisteredException)
matze1999
Die einfachste Methode dürfte sein, die Nummern direkt in der signal-cli Registrierung (/var/lib/signal-cli/data/accounts.json) zu löschen.
Vorher natürlich den Service stoppen und als user "signal-cli" editieren.
Hi,
wenn ich mich als "signal-cli" einloggen will, verlangt er ein Passwort, wie lautet das?
matze1999
Wie wärs mit
sudo -u signal-cli bash
oder gleich
sudo -u signal-cli nano /var/lib/signal-cli/data/accounts.json
Hallo,
hat funktioniert, Danke.
Jetzt habe ich nur noch ein Problem, ich habe zwei Kontakte in fhem, beide in einer Gruppe, das senden per reply
funktioniert und auch an die Gruppe, aber direkt an den zweiten Kontakt geht nichts raus, immer sentMsgTimestamp pending
. Der zwite kontakt kann aber an FHEM senden.
matze1999
Eventuell "trust" herstellen?
Hall,
wenn ich set fhem_signal trust all
mache, kommt:
not implemented
ich kann nur all
auswählen, obwohl ich zwei Kontakte habe und mit get auch angezeigt bekomme.
matze1999
Hallo,
ich habe gerade herausgefunden, das die Sicherheitsummern des zweiten Kontaktes nicht übereinstimmen, aber ich kann sie auch nicht ändern, weder am Telefon noch in FHEM.
mit set signalFhem trustVerified
geht es nicht.
Wahrcheinlich fehlt mir hier ein grundsätzliches Versständnis, warum der erste Kontakt tadellos funktioniert und beim zweiten diese Probleme auftauchen.
matze199
Die unterschiedliche Sicherheitsnummer dürfte die Ursache sein.
Der Grund dafür und wie das zu beheben ist, ist eher eine Sache für den generellen Signal Support.
Ich würde mal probieren in FHEM ein "set contact delete" zu machen und dann erneut eine Nachricht an FHEM senden - vielleicht aktualisiert es dann.