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

Zitat von: KarlHeinz2000 am 07 März 2024, 08:11:25Wichtig war dann noch das Anlegen eines Profils (set updateProfile ...)!
Sonst ging mit der aktuellen Version keine Message raus. In der Vergangenheit (bis Januar) brauchte ich das Profil nicht.
Danke - das mit dem updateProfile habe ich noch im Wiki ergänzt.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

ironalf

Zitat von: ironalf am 06 März 2024, 13:11:20Ich benutze Linux und Chromium.
Du darfst diesen Dateianhang nicht ansehen.
Du hast recht, es scheint ein anderes Problem zu sein.

Habe das Problem gefunden. Bei dieser FHEM-Installation hatte ich featurelevel noch auf 5.6 gesetzt :( 

matkoh

Hallo,

ich versuche gerade, Signalbot zum ersten Mal zu installieren.
signal-cli ist auf raspberrypi4 erfolgreich installiert.
Register mit Rufnummer habe ich gestartet.
Ich scheitere beim Captcha. Ich kann es im Browser erfolgreich ausführen und bekomme als Link signalcaptcha://signal-hcaptcha.5fad97ac-7xxxxxx
Füge ich diesen Link in
set Signalbot captcha
ein, bekomme ich die Fehlermeldung
Error in registerWithCaptcha:VerificationMethoNotAvailableException Invalid verification method

Das passiert bei Ausführen des Captcha in Firefox und Brave unter Linux und in Firefox und Edge in Windows.

Ich habe in diesem Artikel und auch sonst keinen Hinweis zu diesem Fehler gefunden. Daher hoffe ich, dass mir jemand einen Tipp geben kann, was die Ursache des Fehlers ist.

Vielen Dank im voraus

Matthias

Adimarantis

Nachdem sich Probleme bei der Registrierung in letzter Zeit häufen, habe ich selbst mal wieder versucht eine Festnetznummer zu registrieren.

Der Fehler "registerWithCaptcha:VerificationMethoNotAvailableException Invalid verification method" scheint jetzt immer zu kommen, wenn man versucht sich sofort mit "Voice" zu registrieren. Man muss erst "SMS" nehmen und dann ca. 1 Minute später ist "Voice" auch möglich. Mal sehen ob ich hier die Benutzerführung in Signalbot verbessern kann, damit da keiner mehr reinstolpert.

Soweit aber die Theorie, ich bekomme selbst immer eine "invalid captcha" Meldung - egal ob aus SignalBot heraus oder direkt in der Kommandozeile.
Daher habe ich jetzt mal ein Issue bei signal-cli aufgemacht.

Signal befindet sich in der ständigen Weiterentwicklung und signal-cli ist kein offizieller Bestandteil. Daher kommt es leider immer wieder vor, dass Änderungen in Signal Probleme in signal-cli verursachen. Möglicherweise ist dies so ein Fall und wir müssen aktuell auf ein Update von signal-cli warten.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

matkoh

Ich habe zunächst mal ein Update von FHEM gemacht, es gibt aber keine neuere Version vom Signalbot-Modul.

Dann habe ich auf registerMethod SMS umgestellt und eine neue Registrierung versucht. Bei Eintragung des Captcha-Links kommt jetzt eine etwas andere Fehlermeldung:
Error with captcha:Error in registerWithCaptcha:ExternalServiceFailureException StatusCode: 502

Könnte es evtl. daran liegen, dass ein signal-hcaptcha erzeugt wird, während das Beispiel im Registrierungsassistenten signal-recaptcha-v2.6 aufführt? Evtl. hat Signal ja die Captcha-Methode geändert und signal-cli kennt das noch nicht?

Matthias

Adimarantis

Zitat von: matkoh am 16 März 2024, 12:12:27Ich habe zunächst mal ein Update von FHEM gemacht, es gibt aber keine neuere Version vom Signalbot-Modul.
In Signalbot sind meistens keine Änderungen notwendig, da das Interface zu signal-cli recht stabil bleibt.
ZitatError with captcha:Error in registerWithCaptcha:ExternalServiceFailureException StatusCode: 502
Das schaut jetzt mehr nach einem Verbindungfehler aus. Evtl. später nochmal probieren.
ZitatKönnte es evtl. daran liegen, dass ein signal-hcaptcha erzeugt wird, während das Beispiel im Registrierungsassistenten signal-recaptcha-v2.6 aufführt? Evtl. hat Signal ja die Captcha-Methode geändert und signal-cli kennt das noch nicht?
Nein. Mein Beispiel im Hilfstext ist veraltet. Das Captcha wird direkt an Signal weitergereicht - und was Signal erwartet sollte ja mit der Signal-eigenen Captcha Seite übereinstimmen. Das wird m.E. (im Hintergrund) auch von der Mobile App so verwendet.

Wichtig ist noch dass die aktuelle signal-cli version (0.13.1) verwendet wird.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Adimarantis

Also, ich habe gerade nochmal die Registrierung mit der aktuellen Development Version (0.13.2-SNAPSHOT) probiert und es hat jetzt geklappt.
Allerdings sahen die Captchas auch etwas anders aus (signal-hcaptcha.5fad97ac-7d06-4e44-b18a-b950b20148ff.challenge...) (gestern stand statt "challenge" der String "registration") - was ja nichts mit der installierten Version zu tun hat.
@matkoh: Kannst du es nochmal probieren um festzustellen ob es ein Versionsproblem ist (dann musst du wohl auf das 0.13.2 update warten) oder nur ein temporäres Problem mit den Captchas war.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

matkoh

Es scheint ein temporäres Problem gewesen zu sein. Ich konnte jetzt den Captcha eingeben und bekam keine Fehlermeldung.

Allerdings scheint sich jetzt etwas verhakt zu haben:

Ich hatte zuletzt registerMethod = SMS gewählt, habe nach Eingabe des Captcha aber keine SMS erhalten. Ich habe als Festnetznummer eine Sipgate-Nummer angegeben, vielleicht liegt es daran. Ich habe es gerade auch mit meiner normalen Telekom-Festnetznummer versucht, da kommt auch keine SMS.

Dann habe ich die registerMethod auf Voice geändert und ein neues register durchgeführt. Dann bekomme ich direkt einen Anruf mit Durchgabe des Codes ohne Captcha. Allerdings habe ich dann keine Möglichkeit verify zu wählen, das steht nicht zur Verfügung.

Wie kann ich die Registrierung mit Voice komplett durchführen?

Matthias

Adimarantis

War dein Ablauf: set register, set captcha - und dann gab es kein verifiy?
Sollte eigentlich nicht sein, aber dass verify ausgeblendet wird, ist rein zur Übersichtlichkeit.
Du kannst trotzdem ein "set Signalbot verify <pin>" oben in der Kommandozeile durchführen.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

matkoh

Der Ablauf unterscheidet sich je nach registerMethod:
SMS:
set register
set captcha
- nichts mehr, keine SMS

Voice:
set register
Anruf mit Durchsage PIN
kein verify möglich, set Signalbot verify funktioniert auch nicht.

Gerade habe ich es nochmal versucht mit Voice:
set register
set captcha -> Error with captcha:Error in registerWithCaptcha:VerificationMethoNotAvailableException Invalid verification method

Jetzt scheint wieder Captcha nicht zu gehen. Ich versuche es weiter.

Matthias

Adimarantis

Dass ein erneutest Register mit "voice" dann gleich einen Anruf zur Folge hat, hätte ich jetzt nicht erwartet.
Wie lange hast du zwischen SMS und Voice gewartet?
Bietet evtl. die Möglichkeit das im Hintergrund zu automatisieren.
Fürs erste wird dadurch wohl der Ablauf in Signalbot durcheinandergebracht.
Als Quick Fix, versuche es mit der angehängten Version. Die macht bei "register" keinen Aufruf von signal-cli mehr, so das du zwingend "set captcha" machen musst, womit der Ablauf wieder passen sollte, und "set verify" verfügbar sein sollte. (so hat es bei mir zumindest geklappt)

Wenn ich mehr Zeit habe, könnte ich vielleicht den Ablauf so abändern, dass bei "Voice" automatisch erstmal "SMS" gemacht wird, dann muss man das Captcha eingeben und als nächstes wartet dann Signalbot 60s und triggert dann den Anruf (ohne Captcha, welches anscheinend dann irgendwie noch gültig ist). Mal sehen...
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

matkoh

Mit der angehängten Version hat die Registrierung funktioniert:
registerMethod = SMS
set register
set captcha
1 Minute warten
registerMethon = Voice
set register
set captcha
Anruf mit Durchgabe PIN
set verify
- Connected to /org/asamk/Signal/_49xxxxx

Seltsamerweise kommen aus FHEM gesandte Nachrichten auf dem Smartphone nicht an. Vom Smartphone an FHEM gesandte Nachrichten werden im Signalbot aber angezeigt.

Kann mir da auch noch jemand einen Tipp geben?

Matthias

Adimarantis

Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

matkoh

Es scheint ein Problem mit meiner Installation von signal-cli zu geben:
/opt/signal/bin $ ./signal-cli
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

Die Java-Version 21 ist installiert:
/opt/java/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, sharing)

wird aber nicht verwendet:
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

Ich vermute, dass das die Ursache für die Sendeprobleme sind. Seltsamerweise kann der Signalbot Nachrichten vom Smartphone empfangen und mit reply auch antworten. Aber Senden an @+49xxxxx geht nicht.

Wenn ich
set Signalbot trust all
eingebe, kommt
not implemented

Ich gehe davon aus, dass ich zunächst die neu installierte Java-Version für signal-cli zuordnen muss. Aber bisher gelingt mir das nicht.

Matthias

matkoh

Das Senden von Nachrichten funktioniert jetzt!

Ich habe in diesem Post ein paar Seiten zurückgeblättert und bin auf ähnliche Probleme gestoßen. Mit
set Signalbot trust +49xxxx
in der FHEM-Kommandozeile kann der Trust hergestellt werden, was mit
set Signalbot trust all
nicht funktioniert. Danach kann ich Nachrichten von Signalbot an das Smartphone senden.

In /etc/systemd/system/signal.service ist übrigens
Environment="JAVA_HOME=/opt/java"
gesetzt, der Fehler zur Java-Version kommt beim Aufruf von signal-cli trotzdem - hat aber scheinbar nichts mit dem Sendeproblem zu tun.

Matthias