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

SouzA

Zitat von: Adimarantis am 08 November 2023, 08:59:26Schau 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.

Omg!
Das war's! Da wär ich jetzt im Leben nicht drauf gekommen.
Vielen Dank für den Tip und Deine Unterstützung.

Beidseitig das vertrauen hergestellt und es läuft wieder!

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

Wunderbar. Dazu stand zwar schon ein Hinweis im Wiki, aber der war nicht sonderlich ausführlich und war für deinen Fall evtl. nicht klar genug.
Ich habe das Wiki jetzt etwas ausführlicher ergänzt.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Mikka

Hallo zusammen,

ich hätte da eine Verständnis Frage. Signalbot und Fhem laufen soweit, das Modul ist betriebsbereit und im disconnected state.

Eine Nummer kann ich auch über das Modul erfolgreich in aktivieren.

Nun würde ich gerne auf einer anderen Fhem Installation, keine Nummer registrieren, sondern nur ein bereits Registriertes Handy verknüpfen (link).
Mit
/opt/signal/bin/signal-cli --config /var/lib/signal-cli link -n NAME > /tmp/signal.txt&kann ich auch ein bereits Registriertes Handy mit signal-cli verknüpfen.

cat /var/lib/signal-cli/data/accounts.json
{
  "accounts" : [ {
    "path" : "123456",
    "environment" : "LIVE",
    "number" : "+491234567890",
    "uuid" : "f54..."
  } ],
  "version" : 2


Kann ich nun Signalbot ohne Registrierung einer anderen Nummer verwenden?
Mache ich evtl. etwas falsch?

VG,
Mikka

PS.: Von der Kommandozeile kann ich Nachrichten mit signal-cli an andere Signal Nutzer senden.

Adimarantis

Du kannst entweder dein Handy oder schlicht und ergreifend die bereits bestehende FHEM Instanz verküpfen.
Lies dazu mal
https://wiki.fhem.de/wiki/Signalbot#link_%3CName%3E
bzw.
https://wiki.fhem.de/wiki/Signalbot#addDevice_%3Cdevice_URI%3E

das brauchst du nicht von der Kommandozeile aus zu tun, sondern geht alles direkt aus Signalbot.

Hab das schon lange nicht mehr verwendet und daher kurz mal getestet.

Der Versuch mein Handy zu registrieren, ist erst fehlgeschlagen (Signal meldete nach dem Scannen des QR-Codes erfolg, aber FHEM war weder in Signal als gekoppeltes Gerät eingetragen, noch war das Handy für Signalbot sichtbar)
Lag aber anscheinend daran, dass ich das früher schon mal gekoppelt hatte, und die Nummer noch unter /var/lib/signal-cli/data eingetragen war. Nachdem ich diese Überreste entfernt und signal-cli neugestartet hatte, ging es dann.

Was auf Anhieb geklappt hat, war die zweite FHEM Instanz zur ersten hinzufügen.

Schaut mal ob du mit der Beschreibung zurecht kommt - muss man vielleicht noch etwas ausbauen und meinen Fehlerfall erwähnen.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Mikka

Hi Adimarantis,

hatte zunächst von Fhem aus mit link probiert, wollte irgendwie nicht. Dann von der Kommandozeile wo es anschließend geklappt hat.

Habe nun /var/lib/signal-cli/data gelöscht und erneut aus Fhem probiert, siehe da es klappt nun *juppie*.

Vielen dank für deine schnelle Antwort und den Support hier!

Evtl. war ich zu ungeduldig nachdem ich die Neue Handynummer mit der Signalapp registriert habe und dann mit Fhem verknüpfen wollte.

Werde das ganze die Tage mit einer weiteren Nummer ausprobieren und mich erneut melden ob es auf Anhieb klappt mit ein wenig warten zwischendurch.

Schönes Wochenende!

Adimarantis

Der Author von signal-cli hat gestern signal-cli 0.12.5 veröffentlicht.

Dazu folgender Hinweis: Diese Version benötigt jetzt Java 21, welches meines Wissen auf keinem der gängigen RaspberryOS/Debian/Ubuntu Systemem per "apt" Installation verfügbar ist. Leider wurden die Proteste meinerseits (und anderer Anwender) ignoriert (siehe https://github.com/AsamK/signal-cli/issues/1365 )

Ich werde daher bis auf weiteres die signal-cli Version nicht mehr updaten.
Es kommt sicher die Zeit wenn entweder Java 21 auf den meisten Systemen standardmässig vorhanden ist, oder aber signal-cli 0.12.4 nicht mehr ordnungsgemäß mit den Signal Servern kommunizieren kann. Dann plane ich wieder (wie schon für Java 17 auf älternen Systemen) eine Downloadfunktion für eine Java 21 Binärdistribution.
Aktuell sehe ich dafür aber keinen Anlass

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

HarryT

Hi
   
I have Signalbot:3.16 signal-cli:0.12.4 Protocol::DBus:0.22 in FHEM on a Raspberry 3B.
With TOP I can see that the user signal-bot with java uses a lot of cpu. Something between 24% and 75%
This looks unusual high to me when nothing is send or received in signal.

Is this normal?
 
{HT}
FHEM 6.2 auf Raspberry Pi3  (1,2 Ghz)
RFXTRX433XL, ZWave, KFL200 and ConBeeIII
Raspberry Pi1 (0,7 Ghz) and Raspberry Pi4 for testing
German reading skills are good.

HarryT

It might be that the problem starts on my android device which reports that the signal app crashes often.

Also I reduced the time the messages should be kept in signal on my android phone.
At least signal-bot is now a lot less cpu consuming.

A known issue?

{HT}

FHEM 6.2 auf Raspberry Pi3  (1,2 Ghz)
RFXTRX433XL, ZWave, KFL200 and ConBeeIII
Raspberry Pi1 (0,7 Ghz) and Raspberry Pi4 for testing
German reading skills are good.

Adimarantis

I'm not aware of any specific issue. My Raspberry mostly idles though I have a lot more things on it than signal-cli.
One thing you might want to watch is the memory consumption. One reason I switched to a Raspberry 4 was that it has the 4GB RAM version.
With all the tools I had on it, it started swapping on my Raspi3, which can easily cause performance issues. And signal-cli (Java) is not very memory friendly - when I just checked htop showed 372M of memory for signal-cli alone.

If memory is the issue, you could start restricting the memory the Java VM is allowed to use. For that edit /etc/systemd/system/signal.service
change the line with the SIGNAL OPTS and add a -Xmx option
Environment="SIGNAL_CLI_OPTS=-Xms2m -Xmx256M"
After changing the file you should probably make the systemctrl daemon reload the file and restart the service
sudo systemctl daemon-reload
sudo systemctl restart signal

I can't exactly tell you how low you can go without impacting signal-cli's functionalty. 256M like in my example should probably be ok, but still too high for your system, while I probably would not go below 128M (and that might already be too low).
Restricting the memory will force Java to invoke its garbage collector more often, but that should still take less performance than swapping.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

BAfH

Gesundes neues Jahr für Euch,
ich habe es einfach nicht hinbekommen, Signal im FHEM Docker Container zu installieren.
Ist auch egal, bin ja flexibel.
Also ich habe eine Eigene VM nur mit FHEM auf gesetzt:
* Ubuntu 20.04.6 LTS
* Signal Version 0.12.4
Wo ist mein Problem???
Ich habe alles soweit sauber installiert, wenn ich im FHEM meine Rufnummer registrieren möchte kommt der Fehler:
Error with captcha:Error in registerWithCaptcha:RegistrationRetryException StatusCode: 429Registriere ich ohne FHEM, läuft der Prozess sauber durch.
Habe anschließend das Script ./signal_install.sh remove und alle Verzeichniss von Signal gelöscht.
Anschließend ./signal_install.sh und der Versuch im FHEM zu registriert immer dieser Fehler...
Hab hier Error 429 was gefunden.
Hat jemand eine Idee?
Danke
Gruß Thorben
mit sonnige Grüße aus Schönow

Adimarantis

Verstehe ich leider auch nicht. Im Prinzip werden über FHEM die selben API-Funktionen aufgerufen wie von dir geschildert. Nur eben nicht über die REST-API, sondern über DBus.
Das hat historische Gründe, da es die REST-API noch nicht gab, als ich mit Signalbot gestartet bin. Ich habe auch noch nicht geprüft ob die REST-API alle Funktionen zur Verfügung stellt, die ich aktuell verwende.

Ich hatte schon mal überlegt, ob man Signalbot nicht auf REST-API umstellen sollte. Dann wäre das Thema Docker deutlich einfach zu handhaben, da es ja schon ein Docker Image gibt, das signal-cli mit REST-API zur Verfügung stellt. Wäre auch geschickt für das aktuelle Problem mit Java 21 - das könnte man dann einfach mit ins Docker Image packen.
Leider wäre das ein ziemlicher Aufwand und würde erfordern Signalbot in Teilen komplett umzuschreiben.

Bei DBus ist das leider nicht so trivial, weil die Kommunikation nicht über einen TCP/IP Socket läuft wie bei REST, sondern über ein file handle - und wie man das aus einem Docker Image raus exportiert übersteigt mein Know How.
 
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

BAfH

Danke für die schnelle Antwort.
Was mich nur wundert, das der Error 429 eigentlich immer auf "Too Many Requests " hindeutet...
Kann es sein, das hier während der Registrierung was geblockt wird?
Dieser Fehler 429 nutzt die REST-API und hat auch das Problem.
Gruß Thorben
mit sonnige Grüße aus Schönow

Mad-at

Hallo!
Ich muss nach einem System Umzug nun meine Signal Nummer neu einrichten. Signal-cli läuft. Aber wenn ich die captcha Adresse nach dem Lösen in FHEM paste, bekomme ich eine leere Webpage geliefert mit "Error 400".
Leider lässt er sich trotz Verbose 5 auch nicht weiter dazu aus, die letzte Meldung im Log ist dass ein Captcha gelöst werden muss.

Wie könnte ich die Problemlösung angehen?

Adimarantis

Schwer zu sagen. Weitere Infos werden eventuell von signal-cli ins syslog geschrieben.
Alternativ zu der geführten Registrierung in FHEM könntest du noch die Registrierung manuell in der Kommandozeile vornehmen, wie sie im Wiki unter Troubleshooting beschrieben ist.
Wenn es dort Fehler gibt, dann ist klar, dass es rein mit signal-cli zu tun hat, und du kannst schauen ob es auf deren github Seite Lösungen gibt.

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

Mad-at

Hallo! Vielen lieben Dank! Ich habe die Lösung schließlich gefunden. Ich hatte initial auf eigene Faust die Java 21 abhängige neueste signal-cli installiert. Die hatte ich nicht deinstalliert bevor ich das mit dem Modul mitgelieferte installations script laufen hab lassen, weil ich mir gedacht hab der räumt ja eh auf. Ende vom Lied: alles runter inklusive purge und dann sauber das install script laufen gelassen, bingo. Sorry for the mess...