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

Dr. Boris Neubert

Zitat von: Adimarantis am 01 Juli 2023, 18:19:38Mit welcher signal-cli Version wurde deine Konfiguration denn zum letzten mal erfolgreich verwendet?
signal-cli hat irgendwann (ab 0.10.x glaube ich) von eine Textdatei basierten Konfiguration auf eine Datenbank umgestellt.
Gut möglich, dass ein zu großer Versionsschritt die Config nicht mehr ordnungsgemäß migrieren kann.

Danke für die Info. Ich hatte signal-cli letzten Sommer/Herbst noch am Laufen. Da war die aktuelle Version schon 0.10.x.

ZitatDu könntest dann mühselig versuchen Zwischenversionen zu installieren um die Config zu migrieren.
Ich schätze aber, dass es schneller und sicherer ist, alles unter /var/lib/signal-cli zu löschen und die Telefonnummer sauber neu zu registrieren.
Man verliert dabei eigentlich nichts wichtiges.

Am besten registriere ich neu. Allerdings muss ich dafür erstmal wieder ein Haustelefon aktivieren - wir haben zwar noch eine Telefonnummer aber die wird nicht mehr benutzt.

Bei meiner Hausautomation komme ich immer vom Hundertsten ins Tausendste  :(
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Nighthawk

@ Boris

nur zur Info, seit Kurzem muss man bei Festnetz erst mit SMS registrieren, dann ~1min warten und erst dann mit voice.

Dr. Boris Neubert

Danke @nighthawk.

Ich scheitere derzeit mit einem Rate Limit exceeded beim Captcha.

Ich versuche es morgen wieder.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Dr. Boris Neubert

Hallo,

ich habe soeben wieder versucht, einen Code für ein gelöstes Captcha zu erhalten. Ich ende wieder mit

Error with captcha:Error in registerWithCaptcha:RateLimitException [429] Rate limit exceeded: 429
Ich habe es sowohl im FHEM-Webinterface unter Linux als auch unter Windows, jeweils mit Firefox, und auch durch Eingabe des signal-captcha-Links auf der Console per


./signal-cli -u +49........ register --captcha signal-hcaptcha......

versucht. Ich bekomme immer wieder nur diese Meldung.

Wie komme ich jetzt noch weiter?

Viele Grüße
Boris

Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Adimarantis

Probierst du es mit "Voice"?
Es gibt wohl ein Problem, dass man Nummern erst mit SMS anfragen muss (auch wenn das bei Festnetz meist keinen Sinn macht).
Wenn man dann 1 Minute später Voice probiert geht es üblicherweise
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Dr. Boris Neubert

Zitat von: Adimarantis am 03 Juli 2023, 17:32:26Probierst du es mit "Voice"?
Es gibt wohl ein Problem, dass man Nummern erst mit SMS anfragen muss (auch wenn das bei Festnetz meist keinen Sinn macht).
Wenn man dann 1 Minute später Voice probiert geht es üblicherweise

Ich habe den data-Ordner gelöscht, den Service und FHEM neu gestartet, und die Registrierung mit Methode SMS versucht. Ich benutze die Browserintegration unter Windows, löse das Captcha, lasse den Befehl in FHEM (set ... captcha) ausführen, und... nix passiert, weißes Browser-Fenster. FHEM sagt weiterhin, dass ich ein Captcha lösen soll.

Mittlerweile bekomme ich auf ein nacktes

root@vserver:/opt/signal/bin#  ./signal-cli -u +49.......register
auf der Konsole schon die Rate-Limit-Exceeded-Meldung.

Der Signal-Captcha-Link enthält hinten ein
&fwcsrf=csrf_10265255619415.... Wird das bei der Automation weggeschnippelt?
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Adimarantis

Die Automatisierung hängt das csrf extra an - das sollte von FHEM eigentlich korrekt interpretiert (also auch wieder entfernt) werden.
Du kannst im "list" vom Device nachsehen wie er es empfangen hat. Da gibt es eine helper variable die das Captcha speichert.

Auf der Konsole solltest es ja wirklich dann gehen. Eben erst mit SMS, dann mit Voice. Hast du evtl. alternative Nummern die du probieren kannst?
Wenn das da schon fehlschlägt, evtl. mal bei signal-cli nachfragen: https://github.com/AsamK/signal-cli/issues
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Dr. Boris Neubert

Danke für die Ermutigung. Ich habe die erste Hürde genommen.

Zunächst habe ich den Signal-Dienst gestoppt, mit dem Script www/signal/signall_install.sh remove die Installation entfernt, /var/lib/signal-cli ist leer, das Signal-Device in FHEM gelöscht, die Konfiguration gespeichert, und FHEM neugestartet. Danach habe ich mit dem Script Signal wieder installiert. Das war wahrscheinlich nicht nötig, aber ich wollte ausgehend von einem sauberen Stand der Anleitung folgen.

Der Weg über Anlage eines SignalBot-Device in FHEM mit Captcha-Automation (Windows) hat viele Fehlerquellen. Nach einer Registrierung und Lösen des Captchas wird die Firefoxseite aufgerufen mit dem cmd in der URL. Auch wenn ich diese Zeile nochmal mit Enter abschicke, wird das Captcha nicht in FHEM übernommen (Helper-Variable captcha unbelegt). In der URL steht &fwcsrf=csrf_10265255619415... Ich bin dann auf Chrome als Standardbrowser ausgewichen und habe das Captcha erneut gelöst. Die Ausführung des cmd im URL gibt einen Fehler (vergessen, invalid URL oder so). Das Captcha kommt in FHEM nicht an.

Ich habe daher den Weg über die Kommandozeile gewählt wie in der signal-cli-Anleitung auf Github beschrieben. Das Captcha habe ich in Chrome gelöst, die automatische Übergabe per cmd an FHEM abgebrochen und die URL hinter dem Link "Signal öffnen" kopiert. Diese enthält übrigens nicht &fwcsrf=csrf_10265255619415.... Das Captcha habe ich dann an signal-cli übergeben. Ich habe dasselbe Captcha gleich danach nochmal an signal-cli übergeben mit --voice zusätzlich. Der Anruf kam, hat den Verification Code vorgelesen, ich konnte per signal-cli erfolgreich verifizieren. Das ganze habe ich aber auch zweimal machen müssen, bis es ohne Status 504 oder rate limit exceeded durchlief.

Ich kann jetzt per signal-cli erfolgreich Nachrichten senden.

FHEM erkennt die Registrierung aber nicht, auch nicht nach Neustart des Signal-Service. Ich meine, dass es an der DBUS-Integration hängt.

# systemctl status signal
● signal.service - Send secure messages to Signal clients
     Loaded: loaded (/etc/systemd/system/signal.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2023-07-06 18:56:45 CEST; 12s ago
    Process: 965558 ExecStartPre=/bin/sleep 10 (code=exited, status=0/SUCCESS)
   Main PID: 965564 (java)
      Tasks: 31 (limit: 4684)
     Memory: 89.9M
        CPU: 2.618s
     CGroup: /system.slice/signal.service
             └─965564 java -Xms2m -classpath /opt/signal/lib/signal-cli-0.11.10.jar:/opt/signal/lib/lib.jar:/opt/signal/lib/bcprov-jdk15on-1.70.jar:/opt/signal/>

Jul 06 18:56:34 vserver systemd[1]: Starting Send secure messages to Signal clients...
Jul 06 18:56:45 vserver signal-cli[965564]: WARN  MultiAccountManager - Ignoring +49MEINENUMMER: User is not registered. (NotRegisteredException)
Jul 06 18:56:45 vserver signal-cli[965564]: INFO  DaemonCommand - Starting daemon in multi-account mode
Jul 06 18:56:45 vserver signal-cli[965564]: INFO  TransportBuilder - Using transport dbus-java-transport-native-unixsocket for address unix:path=/var/run/dbus/s>
Jul 06 18:56:45 vserver systemd[1]: Started Send secure messages to Signal clients.
Jul 06 18:56:45 vserver signal-cli[965564]: INFO  DaemonCommand - DBus daemon running on SYSTEM bus: org.asamk.Signal

NotRegisteredException wird gemeldet und ein Neustart des Dienstes behebt das nicht.

Das Problem habe ich im Troubleshooting-Abschnitt im Wiki nicht gesehen.

Der dbus-send-Befehl im Wiki läuft auf eine Fehlermeldung. Dazu habe ich noch eine Frage:

Kommt in
dbus-send --system --type=method_call --print-reply --dest=org.asamk.Signal /org/asamk/Signal/_xxxxxx org.asamk.Signal.sendMessage string:Hallo array:string: string:+49yyyy der Unterstrich hin und sieht der Mittelteil dann so
/org/asamk/Signal/_+49MEINENUMMER aus? Das connected to in FHEM kann ich ja nicht ablesen, weil nichts connected ist.

Ich bräuchte hier bitte nochmal Hilfe.

Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

berniie

Ich bekomme folgenden log Eintrag:

Unknown callback ReceiptReceivedV2
Hat jemand einen Tip für mich?

Adimarantis

@Boris:
Statt die Automatisierung zu verwenden (muss ich mal wieder testen, vieleicht klemmt es da), wäre es wohl am Besten gewesen das Captcha per Copy&Paste in den "set captcha" Befehl zu kopieren. Das csrf token wird wie gesagt nur für die Automatierung angehängt, sofern du das in deiner FHEM Instanz nutzt. Daher muss das .reg File auch immer aktuell neu eingespielt werden.

Als du das mit der Kommandozeile gemacht hat, was hast du als Speicherort für die Config angegeben? (--config Parameter)
Wenn du nichts angibts landet die Config nämlich in
$HOME/.local/share/signal-cliwogegen die FHEM installation sie unter
/var/lib/signal-cliIn dem Fall kopiere das "data" Verzeichnis einfach an die richtige Stelle (vorher den signal service stoppen).
Wichtig auch noch, dass noch die Zugriffsrechte anpasst:
chown -R signal-cli:signal-cli /var/lib/signal-cli
Dann sollte es eigentlich funktionieren. Wenn du jetzt den signal service wieder startest und in FHEM ein "reinit" machst (evtl. noch ein get accounts), dann solltest du in "set signalAccount" deine Nummer auswählen können.

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: berniie am 07 Juli 2023, 12:24:02Unknown callback ReceiptReceivedV2
Alles gut, das ist einfach nicht implementiert - wird aber auch nicht benötigt.
Du solltest vielleicht verbose runtersetzen. Solange es keine Probleme gibt, sollte 1 - allerhöchstens 3 reichen. Diese Nachricht kommt bei 4.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Dr. Boris Neubert

Zitat von: Adimarantis am 07 Juli 2023, 13:23:57@Boris:
Statt die Automatisierung zu verwenden (muss ich mal wieder testen, vieleicht klemmt es da), wäre es wohl am Besten gewesen das Captcha per Copy&Paste in den "set captcha" Befehl zu kopieren. Das csrf token wird wie gesagt nur für die Automatierung angehängt, sofern du das in deiner FHEM Instanz nutzt. Daher muss das .reg File auch immer aktuell neu eingespielt werden.

...
In dem Fall kopiere das "data" Verzeichnis einfach an die richtige Stelle (vorher den signal service stoppen).

Ich tat wie mir geheißen wurde. Und es funktioniert. Vielen Dank, Jörg.

Jetzt kann ich mich mit den Benachrichtigungen über MSG-Modul herumschlagen :-)

Ich finde den Ansatz über das FHEMWEB-GUI und die Automatisierung den Hausautomatisierern einen einfachen Zugang zu verschaffen, sehr gut. Allein, ich bin über vielfältige Hürden gestrauchelt:
- Dass man Festnetztelefone erst mit SMS und dann erst mit Voice registrieren muss.
- Dass die Automation nicht das Captcha setzt.
- Dass möglicherweise(!) Firefox aktuell nicht geht aber Chrome.
- Dass man bei manueller Registrierung noch an die Verschiebung der Konfiguration vom Verzeichnis des verwendeten Users auf /var/lib/signal-cli denken muss, wobei die bei mir existierenden Verzeichnisse /home/signal-cli und /opt/signal die Möglichkeiten, sich zu verirren, noch vergrößeren.
- An Neustart vom Service und reinit zu denken, war mir jederzeit bewusst, kann aber für andere eine Hürde sein.
- Irritiert hat mich noch die Medung im FHEMWEB-GUI, dass Signalbot unbedingt signal-cli v0.11.. erwartet, obwohl ich das installiert hatte.

Das ist keine Kritik an Deiner Arbeit oder an Signalbot. Ich wüsste auch nicht, wie ich es besser machen kann. Allenfalls noch an der Doku im Wiki arbeiten und den Ablauf und die Stolperfallen ausführlich beschreiben.


Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Dr. Boris Neubert

Zitat von: Dr. Boris Neubert am 06 Juli 2023, 19:20:42Kommt in
dbus-send --system --type=method_call --print-reply --dest=org.asamk.Signal /org/asamk/Signal/_xxxxxx org.asamk.Signal.sendMessage string:Hallo array:string: string:+49yyyy der Unterstrich hin und sieht der Mittelteil dann so
/org/asamk/Signal/_+49MEINENUMMER aus? Das connected to in FHEM kann ich ja nicht ablesen, weil nichts connected ist.


Das beantworte ich jetzt selbst: das _ ersetzt das +

Es sieht im Mittelteil also so aus:

/org/asamk/Signal/_49MEINENUMMER
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Adimarantis

Hallo Boris,

danke für dein Feedback. Ich habe ein paar Updates im Wiki gemacht. Die "-c" Option für die Config stand eigentlich schon drin :)
Wie gesagt muss ich die Automatisierung nochmal testen. Leider ist halt der Grund für die Captchas ja genau "bösartige" Automatierungen auszubremsen, was es jetzt nicht unbedingt trivial macht eine "gutartige" Automatierung zu realisieren.
Freut mich zumindest, dass du letztendlich Erfolg hattest.

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

reibuehl

Hallo!

Ich versuche gerade meine Signal Anbindung wieder zum laufen zu bringen. Ich hatte eine zu alte signal-cli Version. Diese habe ich jetzt auf 0.11.11 upgedatet und dann versucht, meine (Festnetz-)Nummer wieder zu registrieren. Mit signal-cli -u <+49...> register --voice hat es nicht geklappt, da ein Captcha nötig war. Dieses habe ich über https://signalcaptchas.org/registration/generate generiert und dann mit signal-cli -u <+49...> register --voice --captcha 'signal-hcaptcha.5f...' verwendet. Leider bekomme ich dann nur die Fehlermeldung "Failed to register: [429] Rate limit exceeded: 429 (RateLimitException)". Ich hab es bisher zwar ein paar Mal probiert, das letze mal aber mehrere Stunden pause zwischen zwei Versuchen gelassen. Was könnte ich noch machen?

Gruß,
Reiner
Reiner.