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

xelawe

Zitat von: Deekay2000 am 06 Februar 2024, 17:45:06Folgendes hat bei mir sofort funktioniert:

1. in der signal_install.sh folgende Zeilen ändern:
SIGNALVERSION="0.12.8"
LIBRARYVERSION="0.36.1"

2. ./signal_install.sh install aufrufen

3. in FHEM ein Reconnect des Moduls

Anschließend konnte ich direkt wieder Nachrichten verschicken.

Achtung, beim Aktualisieren wird die signal_install.sh wieder mit den alten Werten überschrieben.

Ärgerlich ist es, wenn man dem augenscheinlichen Hinweis gefolgt ist und die Nummer versucht, neu zu registrieren und jetzt im Freischaltprozess hängt :-(


Hat bei mir perfekt funktioniert mit der aktuellen install.

LG
Alex

Kohle77

Hallo,
mir ist gestern aufgefallen das Signal bei mir auch nicht mehr funktioniert.
Nach der deinstallation mit dem script und installation + reboot des Raspi läuft der Service wieder.
Jetzt hänge ich wieder an der registrierung per Voice bzw dem Captacha weil ich ja under /var/lib/signal-cli/data die alter registrierung schon gelöscht habe.

Meldung nach dem einfügen Captacha (copy des links des Buttons "Signal Öffnen", hoffe das ist richtig):
Error with captcha:Error in registerWithCaptcha:MismatchedInputException No content to map due to end-of-input
 at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1]

Hat dazu vielleicht einer eine idee?
Danke

Adimarantis

Update installer 3.23: OpenJDK21 support

Nachdem signal-cli jetzt ja offiziell OpenJDK21 erfordert, holt sich der Installer jetzt entsprechende Binary Distributionen und installiert diese nach /opt/java
Für aarch64 (Raspberry mit 64 Bit OS), x86 and x64 ist die Quelle https://adoptium.net/temurin/releases/?arch=any&version=21
Für armv7l (Raspberry mit 32 Bit OS) gab es nirgends eine Binärdistribution. Ich habe jetzt über die letzten Tage eine eigene Version übersetzt. Da man dazu immer die aktuelle oder vorhergehende JDK version braucht und die letzte erhältliche Version JDK17 war, musste ich mich langsam hochhangeln -> JDK18 -> JDK19 -> JDK20 -> JDK21

Zumindest aarch64 (auf "bookworm") und armv7l (auf "buster") habe ich selbst getestet. Bitte die x86 Fraktion das auch mal probieren.

Jörg

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

Adimarantis

Zitat von: Kohle77 am 14 Februar 2024, 10:49:28weil ich ja under /var/lib/signal-cli/data die alter registrierung schon gelöscht habe.

Kein Backup? Sollte eigentlich immer noch funktionieren?
Sonst nur die Geschichte mit "erst SMS, 1-2 Minuten warten, dann Voice"

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

Kohle77

Hallo Jörg,
nach einem Backup müsste ich mal suchen.
Hab den Reg Key installiert, auf sms umgestellt, nummer registriert und auf den Captcha link geklickt.
Die Bilder angeklickt das ich ein Mensch bin und es öffnet sich auch die Powershell aber die Meldung in FHEM bleibt die gleiche.

Ich warte einfach mal noch ein Tag und versuche es dann nochmal.

Christian

Kohle77

Hallo,
nach einigem probieren hat das mit der erneuten Registrierung wieder funktioniert.
Woran es jetzt genau lag kann ich nicht mehr sagen. Hab es mit dem script deinstalliert, wieder installiert, mal mit dem user fhem gestartet usw.
Jetzt läuft es auf alle Fälle wieder.

Gruß
Christian

KyleK

@Adimarantis

Wie viele andere hier auch in den letzten Wochen habe ich heute erst bemerkt, dass der Signal-Bot nicht mehr verbunden war, vermutlich weil Version zu alt.
Ein Update via Install-Script hat ohne Probleme funktioniert, auch musste ich nicht neu registrieren, die alten Daten haben eindwandfrei funktioniert.

Was mich aber wundert: FHEM hat in den letzten Wochen definitiv versucht, Nachrichten via Signal zu versenden. Die sind natürlich nicht angekommen, weil der Service nicht verbunden war. Aber im FHEM Log gab es hierzu keine Einträge.
Ich habe das vorhin nochmal getestet, und verbose auf 5 gedreht, und dann mit einem nicht vergundenen Service versucht eine Nachrich aus FHEM an mein Handy zu senden.
Die kommt natürlich nicht an, aber im Log gibt's auch keine Fehlermeldung.

Ins FHEM-Log schau ich öfters rein (all 1-2 Tage), auf die einzelnen Module schau ich aber nicht so oft.
Wäre es nicht sinnvoll, im Falle eines Disconnects (beim Versenden einer Nachricht) eine entsprechende Fehlermeldung im Log auszugeben?
Dann wäre mir das Problem schon viel eher aufgefallen.

Viele Grüße,
Frank

FHEM on Raspberry Pi 3B+
CUL868
7x MAX! Thermostat, 8x MAX! Fensterkontakte
Conbee II + deConz, TradFri Lampen, Osram Smart+ Steckdosen

Adimarantis

Hallo Frank,

hier ist das Problem, dass die Verbindung zu Signal mehrstufig ist: FHEM -> signal-cli -> Signal
Die Verbindung von FHEM zu signal-cli hat immer funktioniert - nur dass alle Nachrichten "pending" (Reading sentMsgTimestamp) blieben, weil signal-cli sie nicht an Signal losbekommen hat. Fehler hierzu fanden sich dann nicht im FHEM log sondern im syslog.

Jetzt bin ich mir nicht sicher aus welchen Gründen eine Nachricht noch "pending" sein kann (Handy aus?) - sonst könnte man hier wohl mit einem Check ansetzen, der schaut wie alt das Reading ist, wenn es auf pending steht und nach einem Timeout vom Fehlerfall ausgehen.

Ich schicke mir täglich einen kleinen Report (Batteriesstatus), so dass mir relativ bald aufgefallen ist, dass diese Nachricht ausblieb.

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

KyleK

Ich kann's jetzt leider nicht mehr nachprüfen, da ich das Update eingespielt habe, und jetzt wieder alles geht.
Aber ich bin mir ziemlich sicher dass das FHEM-Device "Signalbot", das ich verwende, im Status "disconnected" war.

Und in dem Fall sollte doch das Modul einen Fehler-Log produzieren können, wenn dann "send message" ausgeführt wird, oder?
FHEM on Raspberry Pi 3B+
CUL868
7x MAX! Thermostat, 8x MAX! Fensterkontakte
Conbee II + deConz, TradFri Lampen, Osram Smart+ Steckdosen

sukram

So, den Urlaub mal sinnvoll genutzt. Auf meinem zweiten IPC habe ich jetzt Debian 12 eingespielt und Signal fast sofort zum laufen bekommen (die Registrierung in /var/lib/signal-cli... vom alten System einfach kopiert).

Danke! Funktioniert!

Pro Tipp: Der Aufruf über
~# sh signal-install.sh crasht mit einem Bash Fehler:

root@axiom:~# sh signal_install.sh
signal_install.sh: 44: [: unexpected operator
signal_install.sh: 55: source: not found
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.12.8 (libsignal-client v0.36.1)
System library path:          /usr/lib
System architecture:          amd64
System GLIBC version:         2.36
Using Java version:           /opt/java/bin/java
Native Java 21.0              no (current version:21.0)
signal_install.sh: 510: Syntax error: "(" unexpected (expecting "fi")

Das könnte man evtl. am Anfang abfangen und auf die richtige Syntax hinweisen.

Adimarantis

Ich denke ich könnte schon abtesten ob jemand das Script "illegaler Weise" mit der falschen Shell gestartet hat - wobei ja die erste Zeile
#!/bin/basheine starke Indikation ist, dass der Bug hier vor der Tastatur sitzt  :)
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

tavoc

Woran könnte es liegen das bei der Registrierung einer Festnetznummer Fehler 429 kommt? Einfach mehrmals probieren?

Danke für das install Skript

Es stand hier https://github.com/AsamK/signal-cli/wiki/Quickstart das man sich erst normal registieren soll und nach 60 Sekunden mit dem Attribut Voice. Ich erhalte auch eine PIN per Telefon, in FHEM ist dann jedoch das verify nicht mehr zu sehen.
Und per Kommandozeile bekomme ich beim verifiy ein 404

Adimarantis

Zitat von: tavoc am 22 Februar 2024, 14:39:11Ich erhalte auch eine PIN per Telefon, in FHEM ist dann jedoch das verify nicht mehr zu sehen
Dass verify weg ist sollte eigentlich nicht sein. Die Funktion ist aber höchstens ausgeblendet und ein 'set ... verify ...' sollte trotzdem gehen
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

sukram

Zitat von: Adimarantis am 22 Februar 2024, 09:11:31Ich denke ich könnte schon abtesten ob jemand das Script "illegaler Weise" mit der falschen Shell gestartet hat - wobei ja die erste Zeile
#!/bin/basheine starke Indikation ist, dass der Bug hier vor der Tastatur sitzt  :)

Mir war bis eben nicht bewusst, dass Debian gar nicht Bash sondern Dash als Standard für /bin/usr/sh benutzt :o Nach >10 Jahren ubuntu vergisst man dieses und jenes

Jamo

Hallo Adimirantis,
kann es sein, das die libsignal_jni.so von https://github.com/exquo/signal-libs-build/releases/download/libsignal_v0.39.2/libsignal_jni.so-v0.39.2-x86_64-unknown-linux-gnu.tar.gz noch mit Java 17 kompiliert ist?

Ich bekomme folgende Fehlermeldung, wenn ich die einzelnen Schritte händisch ausführe (Sorry, ich mache aus historischen Gründen immer alles manuell):

Feb 22 14:10:28 inuc systemd[1]: Stopping Send secure messages to Signal clients...
Feb 22 14:10:29 inuc systemd[1]: signal.service: Main process exited, code=exited, status=143/n/a
Feb 22 14:10:29 inuc systemd[1]: signal.service: Failed with result 'exit-code'.
Feb 22 14:10:29 inuc systemd[1]: Stopped Send secure messages to Signal clients.
Feb 22 14:10:29 inuc systemd[1]: signal.service: Consumed 4min 59.291s CPU time.
Feb 22 14:10:29 inuc systemd[1]: Starting Send secure messages to Signal clients...
Feb 22 14:10:29 inuc signal-cli[175600]: Error: LinkageError occurred while loading main class org.asamk.signal.Main
Feb 22 14:10:29 inuc signal-cli[175600]: #011java.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
Feb 22 14:10:29 inuc systemd[1]: signal.service: Main process exited, code=exited, status=1/FAILURE
Feb 22 14:10:29 inuc systemd[1]: signal.service: Failed with result 'exit-code'.
Feb 22 14:10:29 inuc systemd[1]: Failed to start Send secure messages to Signal clients.

Was habe ich gemacht:
die letzte  signal-cli 0.13.0 von hier:https://github.com/AsamK/signal-cli/releases/
Die passende libsignal 0.39.2 von hier: https://github.com/exquo/signal-libs-build/releases

also
https://github.com/AsamK/signal-cli/releases/download/v0.13.0/signal-cli-0.13.0.tar.gz
https://github.com/exquo/signal-libs-build/releases/download/libsignal_v0.39.2/libsignal_jni.so-v0.39.2-x86_64-unknown-linux-gnu.tar.gz ausgepackt, und dann nach /opt/fhem/signal-cli-0.13.0/lib verschoben

Dann in /opt/fhem/signal-cli-0.13.0/lib ein "sudo zip -uj libsignal-client-0.39.2.jar libsignal_jni.so" ausgeführt

Architektur und OS:
fhem@inuc:~$ lsb_release -d && uname -r
Description:    Debian GNU/Linux 11 (bullseye)
5.10.0-28-amd64
fhem@inuc:~$ arch
x86_64
fhem@inuc:~$

Java    Major class file version
22    66
21    65
20    64
19    63
18    62
17    61
16    60
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack