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

Die Fehlermeldung ist normal. Das ist etwas von der Funktionalität für die nächste signal-cli Version, die schon eingebaut ist. Wird aber ignoriert und sollte trotzdem normal funktionieren.

Geht es denn jetzt?

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

Leider nein, gleiche Fehlermeldung.


Error sending message:org.freedesktop.dbus.exceptions.DBusExecutionException: Error Executing Method org.asamk.Signal.sendMessage: Unknown version: 0
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

weini

Zitat von: Adimarantis am 28 Februar 2021, 08:09:15
In der Version ist auch dein msgAuth Feature drin.

Vielen Dank dir!
Leider scheint es bei mir noch nicht wie geplant zu funktionieren. Ich habe für meine allowedPeers jeweils Contacts/Nicknames definiert.
Habe mir deinen Code angesehen: Kann es sein, dass der Vergleich aktuell nur funktioniert, wenn der msgSender die Telefonnummer und nicht den Kontaktnamen enthält?

Ich würde gerne mit der Telefonnummer testen, aber wie bekomme ich eigentlich die via "setContact" erstellte Zuordnung des Nicknames wieder entfernt?

VG,
weini

PS: also bei mir bleibt msgAuth grundsätzlich 0, auch wenn ich mich erfolgreich authentifiziert habe

weini

Jetzt ist mir bei der Durchsicht deines Codes noch etwas aufgefallen:
Für das Handling von "Commands" (via Signalbot_command) berücksichtigst du die allowedPeers nicht. Das hatte ich eigentlich nicht so gedacht. "allowedPeer" sollte erst einmal generell den Zugriff regeln.

Denkst du, du könntest das noch anpassen?

VG,
weini

Adimarantis

Hi Weini,

Du hast erstmal recht - da wird falsch geprüft wenn Contacts Namen haben. Wenn du schon im Code bist:
Zeile 457 ändern: ($sender -> $source)
if (defined $hash->{helper}{auth}{$source}) { $auth=$hash->{helper}{auth}{$source}; }

Ich hatte das alllowedPeer vs. GoogleAuth als alternative gesehen. Wer für GoogleAuth authentifiziert ist, sollte doch keine weitere Einschränkung brauchen.
Da befürchte ich auch Missverständnisse von Users ("bei mir geht GoogleAuth nicht! - Ach, da muss ich allowedPeer auch noch setzen?....")

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

weini

Hi Jörg!

Auch mit der Änderung bleibt msgAuth bei mir immer auf 0. Reload habe ich natürlich gemacht.

Ich hatte GoogleAuth nicht als Alternative sondern als Zusatz zu allowedPeer gesehen. Ohne allowedPeer würde ich ein Messenger Modul nicht betreiben. Wenn jeder Nachrichten schicken kann und irgendwo ein Sicherheitsabfrage im Modul ausgetrickst werden kann, dann ist alles offen. Für mich bringt GoogleAuth die erweiterte Sicherheit, wo ich dem Messenger Service nicht vertraue. Wenn bei Signal jemand durch welchen Umstand auch immer z. b. die Sender-Telefonnummer faken könnte, dafür will ich dann GoogleAuth zur erweiterten Absicherung.

VG,
weini

weini

Kurzes Update zu msgAuth:
Es wird jetzt korrekt aktualisiert, wenn ich eine normale Nachrich (kein Command) sende, nachdem vorher via Command und Token authentifiziert wurde.

Was aber aus meiner Sicht sinnvoller wäre ist, wenn msgAuth schon aut 1 gehen würde, wenn man z. B. via "=934943" den GoogleAuth Code übermittelt.

VG,
weini

PS: Jetzt hab ich etwas zu schnell geschossen, im Prinzip passt das ja so. Ich muss erst wissen, ob eine Authentifizierung aktiv ist, wenn ein normaler Text geschickt wird. So hatten wir es vor ein paar Tagen ja auch diskutiert. Mea culpa, das passt also wunderbar.

Adimarantis

Zitat von: weini am 28 Februar 2021, 20:43:25
Ich hatte GoogleAuth nicht als Alternative sondern als Zusatz zu allowedPeer gesehen. Ohne allowedPeer würde ich ein Messenger Modul nicht betreiben. Wenn jeder Nachrichten schicken kann und irgendwo ein Sicherheitsabfrage im Modul ausgetrickst werden kann, dann ist alles offen. Für mich bringt GoogleAuth die erweiterte Sicherheit, wo ich dem Messenger Service nicht vertraue. Wenn bei Signal jemand durch welchen Umstand auch immer z. b. die Sender-Telefonnummer faken könnte, dafür will ich dann GoogleAuth zur erweiterten Absicherung.
Muss ich mir nochmal überlegen. Grundsätzlich ja kein Problem - man müsste nur den test auf das Kommando in den Zweig nach allowedPeer Test verschieben.
Ich würde übrigens als allowedPeer möglichst nur Telefonnummern nehmen. Es kommt nämlich demnächst eine Änderung die den Profilnamen als Klarnamen liefert wenn kein Kontakt gesetzt ist. Der Kontakt hat zwar Vorrang, aber wenn man vergisst einen Kontaktnamen zu setzen, dann könnte jemand einfach seinen Profilnamen so ändern wie dein allowedPeer und schon ist er drin.

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

Hallo zusammen,
zuerst von mir ein Dankeschön für das Entwickeln von Signalbot.

Ich habe mir über den Link auf dem ersten Post von dem Thema die Files gezogen und Signalbot auch installiert bekommen.
Jedoch bekomme ich keine Verifizierung meiner Rufnummer hin.
Weder SMS/Voice noch Handy/Festnetznummer funktionieren.
Die CLI sagt mir, ich würde den Code per Sprache/SMS bekommen, jedoch kommt bei mir nicht an.

Hier der Output:
=======================================================
pi@raspberrypi:~ $ sudo -E ./signal_install.sh register
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 settigns are correct:
Signal-cli User:              signal-cli
Signal-cli Install directory: /opt
Signal config storage:        /var/lib/signal-cli
Signal version:               0.8.0
System library path:          /usr/lib
Phone number to be used:      +49722xxx
You seem to be on a Raspberry pi with armv7l
Your chose the following option: register

Registering for +49722xxx

Receive registration code for +49722xxx by (S)MS or (V)oice (s/v)? v
Registering +49722xxxx with Voice call
Stopping signal-cli service
You should get a call or SMS now providing a 6 digit code
===================================================

Beim Googeln bin ich auf folgenden Eintrage gestoßen:
https://github.com/AsamK/signal-cli/issues/300

Kennt ihr das Problem?
Im Syslog finde ich auch keine Einträge wenn ich ein Grap auf singal-cli mache.


Viele Grüße

Adimarantis

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
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

binford6000

Hallo Jörg,
vielen Dank für das tolle Modul und das dazugehörige Install-Skript!
Es hat alles auf Anhieb funktioniert.  ;)

Jetzt brauche ich den Telegram-Bot nur noch für Dialoge einspannen...

Da ich vieles mit msg push [...] umgesetzt habe hier noch meine Anpassungen an ROOMMATE
und im globalMsg-Device:

ROOMMATE:
msgContactPush   signalbot:@Sebastian

globalMsg:
msgCmdPush    set %DEVICE% send %MSG%

Ich weiß das ist nur sehr rudimentär - aber für meinen Anwendungsfall ausreichend.
Vielleicht setzt du dich mal mit loredo (Maintainer von globalMsg) in Verbindung. Die Vorbereitungen sind laut
get routeCmd push
bereits vorhanden:
Signalbot
    Priority Normal:
     
      Default Values:
    Priority High:
     
    Priority Low:
     

  SiSi
    Priority Normal:
      set %DEVICE% %SiSi_MTYPE% @%RECIPIENT% %MSG%
      Default Values:
        RECIPIENT = [EMPTY]
        SiSi_MTYPE = message
    Priority High:
      set %DEVICE% %SiSi_MTYPE% @%RECIPIENT% %MSG%
      Default Values:
        SiSi_MTYPE = message
        RECIPIENT = [EMPTY]
    Priority Low:
      set %DEVICE% %SiSi_MTYPE% @%RECIPIENT% %MSG%
      Default Values:
        SiSi_MTYPE = message
        RECIPIENT = [EMPTY]


VG Sebastian

Adimarantis

Hi Sebastian,

ich hab mal einen Post dazu im Thread von Loredo losgelassen.
Ich meine das ich da gar nichts machen muß, aber so richtig hab ich mich nicht damit beschäftigt. Ich muss mir das msg Modul auch nochmal genauer ansehen. Hab selber viele DOIFs mit Benachrichtigungen und auch eine rudimentäre Anwesenheitserkennung über "Presence" via Handy MAC Adressen auf der Fritzbox. Kannst du mir (evtl. per PM) mal ein paar Beispiele geben, welche Anwendungsfälle du da konfiguriert hast und wie? Gerade geht alle Zeit in die Komplettüberarbeitung von Signalbot inkl. pull requests für signal-cli drauf, da will ich mich gerade nicht mühsam einlesen :)

Jörg

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

binford6000

Zitat von: Adimarantis am 01 März 2021, 08:53:20
Hi Sebastian,

ich hab mal einen Post dazu im Thread von Loredo losgelassen.
Ich meine das ich da gar nichts machen muß, aber so richtig hab ich mich nicht damit beschäftigt. Ich muss mir das msg Modul auch nochmal genauer ansehen. Hab selber viele DOIFs mit Benachrichtigungen und auch eine rudimentäre Anwesenheitserkennung über "Presence" via Handy MAC Adressen auf der Fritzbox. Kannst du mir (evtl. per PM) mal ein paar Beispiele geben, welche Anwendungsfälle du da konfiguriert hast und wie? Gerade geht alle Zeit in die Komplettüberarbeitung von Signalbot inkl. pull requests für signal-cli drauf, da will ich mich gerade nicht mühsam einlesen :)

Jörg

Ja gerne. PN geht gleich raus...
VG Sebastian

weini

Hi Jörg!

Bin gerade nochmal über etwas gestolpert:
Über die "Commands" löse ich bei mir via "trigger" ein Notify aus. Aus diesem möchte ich nun z. B. das Bild einer Webcam zurückschicken. Dafür brauche ich aber den Zugriff auf auf das "msgSender" Reading, um das Bild zurücksenden zu können.
Da wäre es schon wichtig, wenn die Readings auch aktualisiert werden, wenn ein "Command" reinkommt.

VG, weini

PS: Wenn du das
Zitat von: Adimarantis am 28 Februar 2021, 21:32:15
Muss ich mir nochmal überlegen. Grundsätzlich ja kein Problem - man müsste nur den test auf das Kommando in den Zweig nach allowedPeer Test verschieben.
umsetzen würdest, dann wäre die Aktualisierung der Readings quasi ein Abfallprodukt...   ;)

Hausautomat

Hab die letzten Fehlermeldungen nicht verfolgt - bei mir steigt signal-cli (0.8.0) seit heute früh immer aus.


Error sending message:org.asamk.Signal.Error.Failure: java.util.concurrent.ExecutionExcep
tion: java.lang.AssertionError: Unknown version: 0



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

Scheint ein Problem zu geben. Kann's selbst aber gerade nicht mit dem Master-Branch testen.

Just for your information...