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

Alles was ich zum Thema Docker probiert habe, war immer mal wieder ein "trial and error".
Das Problem ist, dass die Kommnunikation zwischen FHEM Signalbot und signal-cli über DBUS erfolgt. DBUS verwendet filesystem unix sockets. Ich habe keine Ahnung ob es möglich ist so einen socket zwischen Containern nutzbar zu machen. Denn die Beste Lösung wäre eigentlich einen reinen signal-cli Container zu machen, anstatt das alles mit in den FHEM Container reinzupfrimeln (was mangels besserem Wissen mein Ansatz war). Ein kurzes googlen zeigt, das es da schon Möglichkeiten gibt, die ich aber auf Anhieb auch nicht wirklich verstehe. Ich bin kein so grosser Freund davon Applikationen in einzelne Container zu verpacken und habe mich daher damit auch wirklich nur mal am Rande beschäftigt.

Wenn du also wirklich Signalbot mit in einen FHEM Container packen willst, dann müssen da einfach alle Pakete rein die das signal_install.sh script installiert plus eine eigene Instanz von Dbus.
Die native Library die du suchst hole ich inzwischen von einer automatisch aktualierten Seite (siehe auch signal_install.sh oder direkt auf https://github.com/exquo/signal-libs-build). Das Docker install habe ich dahingehend (mangels Verwendung) nie angepasst.

Eleganter würde es wenn man das mal von Dbus auf RPC umstellt. Diese Option gab es noch nicht, als ich mit Signalbot angefangen habe, aber dafür gibt es sogar ein eigenes signal-cli Docker Projekt: https://github.com/bbernhard/signal-cli-rest-api
Ich habe mir aber noch nicht angeschaut, ob RPC alles abbildet und wie aufwändig eine Umstellung wäre. RPC zwischen Containern sollte eigentlich kein Problem sein - dann kann man wirklich einfach einen signal-cli Container machen.

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

Das Update auf signal-cli 0.12.3 ist verfügbar.
Dazu mit "set reinit" den Installer unter www/signal aktualisieren und mit
sudo -E ./signal_install.shausführen.

Das Update dürfte nicht zwingend notwendig sein, bei Problemen aber bitte erst updaten, dann posten.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

stratege-0815

Ich muss für meinen Messenger bei Null anfangen, weil ich mich vom Telegram Bot verabschiedet habe. Das Wiki ist für den Signalbot nach wie vor aktuell und vollständig oder gibts ein anderes HowTo Schritt für Schritt Anleitung oder ähnliches?

Adimarantis

Das Wiki sollte aktuell sein (Installation in Kapitel 2). Sollte etwas unklar oder falsch sein, lass es mich wissen.
Grundsätzlich übernimmt die Installation der 3rd Party Komponenten ein Shell Script - im Idealfall muss du nur dieses ausführen und alles wird korrekt eingerichtet.
In FHEM dann nur das Device eirichten, und der restliche Prozess wird im Modul interaktiv geführt.

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

Edi77

Hallo,

Habe auch etwas Probleme mit dem Signalbot, länger nicht genutzt mal alles auf den aktuellen Stand gebracht, aber ich bekomme meine Festnetznummer nicht registiert.
Ich bleib immer beim Captcher hengen "Error with captcha:Error in registerWithCaptcha:RegistrationRetryException StatusCode: 429"

root@ubuntu-FHEM:/home/user# systemctl status signal.service
● signal.service - Send secure messages to Signal clients
     Loaded: loaded (/etc/systemd/system/signal.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2023-10-25 23:34:48 CEST; 8min ago
    Process: 885 ExecStartPre=/bin/sleep 10 (code=exited, status=0/SUCCESS)
   Main PID: 1075 (java)
      Tasks: 30 (limit: 9426)
     Memory: 202.9M
     CGroup: /system.slice/signal.service
             └─1075 java -Xms2m -classpath /opt/signal/lib/signal-cli-0.12.3.jar:/opt/signal/lib/lib.jar:/opt/signal/lib/bcprov-jdk15on-1.70.jar:/opt/signal/lib/signal-service-java-2.15.3_unoffic>

Okt 25 23:34:37 ubuntu-FHEM systemd[1]: Starting Send secure messages to Signal clients...
Okt 25 23:34:48 ubuntu-FHEM signal-cli[1075]: WARN  MultiAccountManager - Ignoring +49xxxxxxxx: User is not registered. (NotRegisteredException)
Okt 25 23:34:48 ubuntu-FHEM signal-cli[1075]: INFO  DaemonCommand - Starting daemon in multi-account mode
Okt 25 23:34:48 ubuntu-FHEM systemd[1]: Started Send secure messages to Signal clients.
Okt 25 23:34:48 ubuntu-FHEM signal-cli[1075]: INFO  DaemonCommand - DBus daemon running on SYSTEM bus: org.asamk.Signal


Habe es jetzt mal mir einem anderen Handy über QR Code gekoppelt, das ging.
Wie kann ich das wieder entkoppeln und es die Tage dann noch mal mit Festnetz testen?
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

Adimarantis

Es gibt die (versteckte) Option "set unregister <nummer>"
Die habe ich aber soweit abgesichtert, dass sie nur funktioniert, wenn <nummer> mit dem aktuellen Account (reading account) übereinstimmt.
Musst du also evtl. mit "setreading" tricksen.

Ich bin mir aber nicht sicher ob das nötig ist. Normalerweise kann man eine Nummer jederzeit erneut registrieren. Probleme beim Captcha wurden allerdings schon häufiger berichtet (meist mit RateLimitExceeded).
Hier wird vielfach empfohlen erstmal mit SMS zu registrieren (auch wenn das beim Festnetz ins Leere geht) und dann ein paar Minuten später nochmal mit Voice.

Es gibt auch wieder eine neue signal-cli version. Werde schauen das ich den Installer entsprechend aktualisiere.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

BAfH

Guten Abend,
kurzes Feedback, ich bekomme es nicht zum laufen. Habe soweit alles versucht, nur ohne Erfolg.
Zitat von: Adimarantis am 20 Oktober 2023, 15:08:50Wenn du also wirklich Signalbot mit in einen FHEM Container packen willst, dann müssen da einfach alle Pakete rein die das signal_install.sh script installiert plus eine eigene Instanz von Dbus.
Die native Library die du suchst hole ich inzwischen von einer automatisch aktualierten Seite (siehe auch signal_install.sh oder direkt auf https://github.com/exquo/signal-libs-build). Das Docker install habe ich dahingehend (mangels Verwendung) nie angepasst.
Ich bekomme immer den Fehler
connect(unix:path=/var/run/dbus/system_bus_socket): No such file or directory at /usr/local/share/perl/5.32.1/Protocol/DBus/Client.pm line 144.Ich breche jetzt mal, ab. Habe ich halt kein Signal-Cli ging ja bis jetzt auch.
Habe mir einen Signal Docker Container installiert mit dem Image bbernhard/signal-cli-rest-apiwerden mal versuchen, mir aktiv Nachrichten mittels REST-API zu senden.
Danke Jörg für Deine Hilfe und deine Arbeit
Gruß Thorben
mit sonnige Grüße aus Schönow

SouzA

Hallo,

ich hatte seit einem halben Monat das Problem, dass SignalBot zwar connected ist, aber keine Nachrichten mehr beim Empfänger ankamen.
Jetzt habe ich mal das update mit
sudo -E ./signal_install.shdurchgeführt. Danach kein connect mehr.
Danach stand im Device in fhem:
signal-cli v0.11.2+ required.
Please use installer to install or update
Note: The installer only supports Debian based Linux distributions like Ubuntu and Raspberry OS
and X86 or armv7l CPUs

You can download the installer here or your www/signal directory and run it with
sudo ./signal_install.sh

sudo ./signal_install.sh
./signal_install.sh: Zeile 22: [: =: Einstelliger (unärer) Operator erwartet.
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.9.2
System library path:          /usr/lib
System architecture:          armhf
System GLIBC version:        2.31
This will update system packages, install or uninstall signal-cli

system  : prepare required system package (except signal-cli)
install  : install signal-cli and setup as dbus system service
test    : run a basic test if everything is installed and registered correctly
remove  : Remove signal-cli and all configurations (will be archived)
start    : Start the signal-cli service (or respective docker processes)
all      : Run system, install, start and test (default)

!!! Everything needs to run with sudo/root !!!

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 /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...Installing latest Protocol::DBus...done
Checking user signal-cli ...found
Checking system Java version ... 17.0
Checking for Java in /opt/java ... 17.0
Java version mismatch - version 11.0 required
Download from adoptium.net (this can take a while) ...successful
Unpacking ...done
Checking for /opt...found
Checking for /var/lib/signal-cli...found
Checking for existing signal-cli installation...found
Checking signal-cli version...signal-cli 0.9.2
signal-cli matches target version...ok
Checking for /etc/dbus-1/system.d/org.asamk.Signal.conf...found
Checking for /usr/share/dbus-1/system-services/org.asamk.Signal.service...found
Checking for /etc/systemd/system/signal.service...found
Start signal-cli service
Job for signal.service failed because the control process exited with error code.
See "systemctl status signal.service" and "journalctl -xe" for details.
Checking installation via dbus-send command...Error org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
unexpected reply

Sending a message via perl Protocol::DBus...Error getting reply

Jetzt habe ich nur noch ein disconnected vom SignalBot.
Kann mir da jemand helfen?

Thx und bis denn
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

Adimarantis

Welches Installerscript verwendest du? Ich befürchte das ist uralt, da es allein schon in Bezug auf die Java Versionen falsch arbeitet und scheinbar eine uralte signal-cli Version installieren will.
Aktuell ist Version 3.22
Wird eigentlich bei jedem Neustart/set reinit in www/signal aktualisiert.
Findest du im Zweifelsfall auch im svn:
https://svn.fhem.de/fhem/trunk/fhem/contrib/signal/signal_install.sh

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

SouzA

Hi,
Danke für die Antwort.
Wie finde ich heraus, welche Version des installer-scripts das ist?

Thx und bis denn
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

Ralli

Gruß,
Ralli

Proxmox 8.2 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.3 dev, virtualisierte RaspberryMatic (3.75.7.20240420) 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

SouzA

Zitat von: Ralli am 06 November 2023, 11:55:18cat /opt/fhem/www/signal/signal_install.sh | grep SCRIPTVERSION

Das ist jetzt ein wenig komisch...
pi@fhemRasPi4:~ $ cat /opt/fhem/www/signal/signal_install.sh | grep SCRIPTVERSIO                                      N
SCRIPTVERSION="3.22"
pi@fhemRasPi4:~ $

Und nu?
Bis denn
SouzA

@Ralli
Sorry hab ich voll vergessen:
Vielen Dank für Deine Antwort! :D
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

Adimarantis

Dann führst du das falsche Script aus.
Bevor du
sudo -E ./signal_install.shausführst, solltest natürlich
cd /opt/fhem/www/signalmachen.
Wahrscheinlich führst du ein uraltes Script aus, dass zufällig in deinem aktuellen Verzeichnis liegt
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

SouzA

Zitat von: Adimarantis am 07 November 2023, 07:50:07Dann führst du das falsche Script aus.
Bevor du
sudo -E ./signal_install.shausführst, solltest natürlich
cd /opt/fhem/www/signalmachen.
Wahrscheinlich führst du ein uraltes Script aus, dass zufällig in deinem aktuellen Verzeichnis liegt

Hi,
 ::) Ok, so hat das Update funktioniert. Sorry, das hatte ich verpeilt.

Allerdings kommen immer noch keine Nachrichten bei mir an. Keine direkten und auch keine in eine Gruppe.
Die Contacts sind vorhanden und über get contacts werden die Angezeigt. Bei den Gruppen ebenso.
Von meinem Handy aus an fhem passiert auch nichts. Obwohl connected!

Im folgenden Reading steht allerdings immer folgendes:
sentMsgTimestamp pending
Die Namensänderung des Accounts funktioniert und wird direkt am Account und in der Gruppe dargestellt (sichtbar auf meinem Handy).
Neue Gruppen erstellen scheint zu funktionieren, das wird zumindest im Device dargestellt. Einladen in die neue Gruppe geht aber nicht.

Hat jemand eine Idee, warum das von einen auf den anderen Tag nicht mehr funktioniert?

Thx und bis denn
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

Adimarantis

Schau mal ob sich die Kontakte gegenseitig vertrauen. Also sowohl dein Handy dem FHEM als auch umgekehrt.
Am Handy in die Details des FHEM Kontakts, Sicherheitsnummer anzeigen und als verifiziert markieren.
In FHEM set trustVerified für die Handynummer und mit dessen Sicherheitsnummer.
Damit man die Sicherheitsnummer nicht abtippgen muss, kann man diese auch mit get identityDetails anzeigen lassen,  grob vergleichen und per copy&paste in den set Befehl übernehmen.

Ich habe das Gefühl Signal wird immer anspruchsvoller wenn es darum geht sicherzustellen, das der Kommunikationspartner auch der ist, für den er sich ausgibt. Zumindest hatte ich mit einzelnen Kontakten auch schon das Problem, dass Nachrichten nur einseitig versendet/empfangen wurden und konnte das Problem dann mit der vollständigen Herstellung des gegenseitigen Vertrauens beheben.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)