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

kaufi88

Zitat von: Adimarantis am 28 Februar 2021, 23:21:40
Hi Kaufi,

Brich mal an der Stelle ab und schau ob du unter /tmp/signal*.tmp logdateien findest.
Was steht da drin?
Wenn soweit alles installiert ist, kannst du auch mal
sudo -u signal-cli /opt/signal/bin/signal-cli --config /var/lib/signal-cli -u +49xxxx register --voice
direkt ausführen (was anderes macht das Script auch nicht). Dann siehst du eventuelle Fehlermeldungen die das Script versteckt.

Jörg

Hi Jörg,
Danke für den Tipp.
Ich habe gesehen, dass meine Java-Version zu alt war. Habe dann mittels wget http://download.bell-sw.com/java/14+36/bellsoft-jdk14+36-linux-arm32-vfp-hflt-full.deb und sudo apt-get install ./bellsoft-jdk14+36-linux-arm32-vfp-hflt-full.deb eine neue Version installiert. Nun läuft: openjdk version "14" 2020-03-16

Nun bekomme ich leider folgenden Fehler:
WARN App - WARNING: Support for new group V2 is disabled, because the required native library dependency is missing: libzkgroup
ERROR App - Error loading or creating state file: Incorrect file format: expected parameter password not found

Hast Du das schonmal gesehen?

Viele Grüße
Kaufi

Adimarantis

Hi Kaufi,

Der V2 Fehler ist im Wiki dokumentiert, aber evtl. liegt das an deiner Java Installation. Standardmässig nehme ich eine andere Version.
Ich würde vorschlagen, dass du alle Java Pakete mal entfernst und dann Java nochmal über das Script installierst. Das Script checkt nur ob Java da ist, aber evtl. haben manche Versionen Probleme. Am Besten auch das /opt/signal Verzeichnis vorher auch nochmal löschen und neu installieren lassen.

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: Hausautomat am 01 März 2021, 22:12:44
Scheint ein Problem zu geben. Kann's selbst aber gerade nicht mit dem Master-Branch testen.

Ich hatte das auch als einer meiner Kontakte Signal neu installiert hatte. Schau mal in diesen (geschlossenen) Bug - da steht wie man es auch mit der aktuellen Version wieder hinkriegt falls es das ist.

https://github.com/AsamK/signal-cli/issues/530

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

kaufi88

Zitat von: Adimarantis am 02 März 2021, 09:11:23
Hi Kaufi,

Der V2 Fehler ist im Wiki dokumentiert, aber evtl. liegt das an deiner Java Installation. Standardmässig nehme ich eine andere Version.
Ich würde vorschlagen, dass du alle Java Pakete mal entfernst und dann Java nochmal über das Script installierst. Das Script checkt nur ob Java da ist, aber evtl. haben manche Versionen Probleme. Am Besten auch das /opt/signal Verzeichnis vorher auch nochmal löschen und neu installieren lassen.

Jörg


Hallo Jörg,
vielen Dank für den Hinweis.
Ich habe neben /opt/signal auch  /var/lib/signal-cli gelöscht und damit hat sich das Problem mit dem Statefile erledigt.
Das mit den libzkgroup habe ich leider immer noch, obwohl ich /opt/signal bereits mehrfach gelöscht habe.

Hier die Ausgaben gemäßt dem Wiki:
sudo ldconfig -v | grep libzkgroup.so
ldconfig: Path `/lib/arm-linux-gnueabihf' given more than once
ldconfig: Path `/usr/lib/arm-linux-gnueabihf' given more than once
ldconfig: /lib/arm-linux-gnueabihf/ld-2.24.so is the dynamic linker, ignoring

ldconfig: /lib/ld-linux.so.3 is the dynamic linker, ignoring

==> Was genau soll mir diese Ausgabe sagen? ;)

sudo find / -name libzkgroup.so 2>/dev/null
/tmp/libzkgroup.so
=> Diese Datei habe ich in libzkgroup.so.bak umbenannt, kam jedoch wieder nach dem ich das Installfile erneut habe laufen lassen.

Selbiges gilt für:
sudo find / -name zkgroup-java-*.jar 2>/dev/null
/opt/signal/lib/zkgroup-java-0.7.0.jar

Was könnte ich hier falsch machen?

Adimarantis

Schaut das bei dir auch so aus? (bis aufs Datum natürlich)?

unzip -v zkgroup-java-0.7.0.jar | grep libzkgroup.so
  681524  Defl:N   303713  55% 2021-02-12 22:17 f8690f9d  libzkgroup.so


ls -l zkgroup-java-0.7.0.jar
-rw-r--r-- 1 signal-cli signal-cli 338549 Feb 21 12:04 zkgroup-java-0.7.0.jar
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

kaufi88

Zitat von: Adimarantis am 02 März 2021, 21:51:53
Schaut das bei dir auch so aus? (bis aufs Datum natürlich)?

unzip -v zkgroup-java-0.7.0.jar | grep libzkgroup.so
  681524  Defl:N   303713  55% 2021-02-12 22:17 f8690f9d  libzkgroup.so


ls -l zkgroup-java-0.7.0.jar
-rw-r--r-- 1 signal-cli signal-cli 338549 Feb 21 12:04 zkgroup-java-0.7.0.jar


Hi Jörg,
die erste Zeile ja:
pi@raspberrypi:/opt/signal/lib $ unzip -v zkgroup-java-0.7.0.jar | grep libzkgroup.so
  681524  Defl:N   303713  55% 2021-02-12 22:17 f8690f9d  libzkgroup.so


Bei der zweiten Abfrage habe ich jedoch eine andere Dateigröße
pi@raspberrypi:/opt/signal/lib $ ls -l zkgroup-java-0.7.0.jar
-rw-r--r-- 1 signal-cli signal-cli 338593 Mar  2 21:25 zkgroup-java-0.7.0.jar


Viele Grüße

Adimarantis

Signalbot V2 Beta Test, Update zu signal-cli 0.8.1

Warum gibt es nach so kurzer Zeit schon eine V2?

  • Durch ein Problem mit Net::DBus habe ich mich entschieden auf Protocol::DBus umzustellen
  • Dadurch musste fast die Hälfte des bisherigen Codes umgeschrieben werden
  • Parallel dazu habe ich ein wenig beim signal-cli Projekt mitgearbeitet und einige neue Funktionen eingebracht, die gestern mit der Version 0.8.1 released wurden
  • Durch die Masse an Änderungen suche ich erstmal Beta-Tester bevor ich die Version freigebe. Sie ist schon recht gut getestet und läuft seit gestern auch in meiner Produktivumgebung, hat aber sicher noch Bugs.

Welche Vorteile habe ich von dieser Version?

  • Es sind viele neue Funktionen bezüglich Handhabung von Gruppen und Kontakten hinzugekommen
  • Die ganze Kommunikation läuft jetzt weitgehend asynchron, d.h. FHEM wird nicht blockiert während es auf die Bestätigung wartet, dass z.B. ein "send" korrekt rausgegangen ist (die Rückantwort war schon immer asynchron)
  • Dadurch werden die Fehler meistens nicht mehr direkt ausgegeben sondern stehen im "lastError" reading
  • Die GoogleAuth Erweiterungen sind natürlich auch mit drin
  • Gruppen und Kontakte werden gleich am Anfang aktualisiert. Sollte ein refresh nötig sein, wird dies jetzt immer in den neuen "get" Funktionen gemacht.
  • Und natürlich ganz zuletzt: Der potentielle Fehler der das "send" auf manchen System kaputt gemacht hat, ist damit gefixed
  • Wer Probleme mit der bisherigen Version hat, sollte es auch wagen diese zu probieren
Details zu den neuen Funktionen in der inline Doku.

Wie steige ich um?

  • Einfach den neuen Installer laufen lassen und das neue 50_Signalbot.pm in FHEM kopieren
  • Im Installer kann dann die Registrierung natürlich übersprungen werden, ich würde aber auf jeden Fall mal den Test laufenlassen
  • Das alte Device in FHEM kann bestehen bleiben, sauberer wäre aber es neu anzulegen (hauptsächlich weil es ein paar Readings nicht mehr gibt, die kann man aber natürlich per deletereading auch von Hand löschen)
  • In FHEM auf jeden Fall ein "shutdown restart"

Kann ich wieder zurück wenn es nicht klappt?

  • Ja, das sollte grundsätzlich möglich sein. Das alte Net::DBus wird aktuell nicht de-installiert, so dass man eigentlich nur das 50_Signalbot.pm austauschen muss.
  • Auf signal-cli 0.8.1 kann man auch mit der alten Version bleiben, es enthält hauptsächlich Erweiterungen und Fixes, ist aber kompatibel

Known issues:
Der Fehler: "Error in getContactName:Error Executing Method org.asamk.Signal.getContactName: null" kann ignoriert werden. Er tritt auf wenn mit Profilen ohne Namen (bei Kommunikationspartnern) gearbeitet wird. Ein Fix wird es wohl erst mit der nächsten signal-cli Version geben. Am Besten dafür sorgen dass alle Kontakte auch in ihrem Profil (das ist nicht setContact!) einen Namen gesetzt haben.

7.3.21: Update 2.02-beta (einige Signalbot enhancements, Installer testet jetzt korrekt mit Protocol::DBus)

Gruß,
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: kaufi88 am 03 März 2021, 09:38:26
Bei der zweiten Abfrage habe ich jedoch eine andere Dateigröße
Das besorgt mich jetzt nicht sehr, aber vielleicht kannst du die mal irgendwo hochladen, damit ich die vergleichen (oder sogar mal auf meinem Testsystem einspielen) kann. Bisher sehe ich nicht warum es nicht funktionieren sollte.

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

Ralli

Ich habe signal-cli 0.8.1 und die Signalbot V2 beta nun installiert - auf den ersten Blick klappt es.

Meine Sendeproblematik war auch mit der vorherigen Signalbot-Version aber mit der signal-cli 0.8.1 schon behoben.


2021.03.03 12:37:09.075 5: Signal: Init:
2021.03.03 12:37:09.075 4: Signal: Protocol::DBus version found 0.16
2021.03.03 12:37:09.786 5: Signal: ASync Dbus Call: version Args:empty
2021.03.03 12:37:09.798 5: Signal: My Dbus Name is :1.51
2021.03.03 12:37:09.819 5: Signal: ASync Calling: version Args:0.8.1
2021.03.03 12:37:09.820 5: Signal: ASync Dbus Call: listNumbers Args:empty
2021.03.03 12:37:09.831 5: Signal: ASync Calling: listNumbers Args:Protocol::DBus::Type::Array=ARRAY(0x5612ad48c658)
2021.03.03 12:37:09.831 5: Signal: Sync Dbus Call: getContactName Args:+49x1
2021.03.03 12:37:09.838 4: Signal: Sync Error for: getContactName
2021.03.03 12:37:09.846 5: Signal: Sync Dbus Call: getContactName Args:+49x2
2021.03.03 12:37:09.848 5: Signal: Sync Dbus Call: getContactName Args:+49x3
2021.03.03 12:37:59.760 3: Signal: Before parse:Test:

2021.03.03 12:37:59.761 4: Signal: sendMessage called for +49123456789::Test
2021.03.03 12:37:59.761 5: Signal: ASync Dbus Call: sendMessage Args:Test,ARRAY(0x5612ad4f2160),ARRAY(0x5612ad4f2208)
2021.03.03 12:38:01.246 5: Signal: ASync Calling: sendMessage Args:1614771479778
2021.03.03 12:38:02.588 5: Signal: Sync Callback: ReceiptReceived Args:1614771479778,+49123456789
2021.03.03 12:38:02.588 5: Signal: Signalbot_receive_callback 1614771479778 +49123456789
Gruß,
Ralli

Proxmox 8.1 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.3 dev, virtualisierte RaspberryMatic (3.75.6.20240316) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.57), FBDECT, Siri und Alexa

Adimarantis

Zitat von: Ralli am 03 März 2021, 12:42:46
Ich habe signal-cli 0.8.1 und die Signalbot V2 beta nun installiert - auf den ersten Blick klappt es.

Schon zu hören.
Vielleicht noch ein Nachtrag zum Thema Logging/verbose. Das habe ich jetzt ein wenig systematischer abgestuft
verbose = 5: Internes logging (Funktionsaufrufe und Parameter) - braucht man normalerweise nicht oder nur bei Bedarf (debugging) einschalten
verbose = 4: Warnings und besonders wichtige Funktionsaufrufe - In der Betaphase sicher gut
verbose = 3: Fehlermeldungen , wichtige Meldungen (nicht nicht zwangsläufig fatal sind) - Auch im Normalbetrieb manchmal hilfreich
verbose = 1: Schwerwiegende Fehler - Reicht für den produktiven Betrieb

Gruß,
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

Den ersten Bug habe ich schon selber gefunden  :)
Durch den asynchronen Mechanismus hatte ich Bilder schneller gelöscht als verschickt.
Update im oberen Post.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Adimarantis

Jetzt hatte sich in dem Fix für die Bilder doch glatt ein böser Fehler eingeschlichen der zu einem FHEM restart führen kann.
Dafür ist im update oben auch noch enthalten, dass die interne Gruppenliste (und das joinedGroups) bei einer Änderung der Gruppe (join,leave,rename..) aktualisiert wird.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Jamo

Guten morgen Jörg,
bin jetzt auch auf die v2 Beta gegangen, funktioniert soweit, ich habe auch das versenden von Bildern getestet. Danke für das Modul.
2 Fragen:
- Kannst Du evtl eine Versionsnummer mit in die Internals mit aufnehmen? Dann weiss man ob man wirklich mit der 2.0 Beta spricht oder nicht doch mit der alten version
- Kann man das NET:DBUS auch wieder löschen, ohne sich irgendwas kaputtzuschiessen, und wenn ja - wie?

Beste Gruesse, Jamo!
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Adimarantis

Hi Jamo,

Perl Module lassen sich wohl nur mit dem "cpanminus" Befehl deinstallieren. Das müsstest du dann möglicherweise erst installieren (sudo apt-get install cpanminus)
Dann sollte das mit
sudo cpanm --uninstall Net::DBus
gehen. Das deinstalliert aber nur den inhalt der Verzeichnisse
/usr/local/lib/arm-linux-gnueabihf/perl/5.28.1/Net/DBus*
/usr/local/man/man3/Net::DBus*


Wenn du cpanm nicht sowieso auf deinem System hast, musst du dafür so viele neue Pakete installieren, dass das sicher nicht lohnt. Da ist ein "rm" wahrscheinlich besser

Desweiteren braucht man wohl diese Pakete nicht mehr:
sudo apt remove libexpat1-dev libxml-parser-perl libtemplate-perl libxml-xpath-perl xml-twig-tools
sudo apt autoremove

Außerdem wird "gcc" für die Net::DBus installation installiert. Wer den nicht braucht, kann den auch gefahrlos entfernen.

Eventuell noch weitere, aber da muss ich noch Experimente mit der Dockerumgebung machen.

Versionsnummer: Ja, macht Sinn. Signal-Cli ist da ja auch inzwischen drin - wobei das dann beides wohl eher in die internal readings gehört. Vielleicht einfach ein String mit allen Versionsnummer damits nicht so viele Zeilen gibt.


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

Jamo

Hallo Jörg,
danke, ich habe die Verzeichnisse jetzt manuell entfernt. Das "sudo apt remove libexpat1-dev libxml-parser-perl libtemplate-perl libxml-xpath-perl xml-twig-tools" entferne dann doch noch einige andere Pakete, die woanders gebraucht werden.

Versionsnummer: Danke, das ist prima und würde Dir wahrscheinlich auch helfen, wenn einer einen Fehler meldet.
Beste Grüsse, Jamo
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack