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

kroman

ZitatDas msgAuth gehört ja zu Message und kann für verschiedene Sender unabhängig sein. Es zeigt also nicht den Zustand "gerade authorisiert" an, sondern ob zum Zeitpunkt als die letzte Message empfangen wurde, der jeweilige Absender authorisiert war, daher wäre ein Event bei Ablauf nicht korrekt

Alles klar

ZitatThat's a feature: Die Favoriten können ja durch Befehlsverkettung etc. sehr lang werden - daher schneide ich sie so ab, dass es auf dem Handy lesbar bleibt. Vollständig sieht man es über get favorites

Okay

ZitatDas kann ich zumindest in meiner aktuellen Version (und da hab ich länger nichts mehr geändert) nicht nachvollziehen. Nur zur Sicherheit: Das greift nur für die Auflistung ("/fav")

Komisch, jetzt funktioniert es mit "/" auf, k.A. was ich da vorher gemacht habe.

ZitatHier ist der Fehler ein anderer: Du hast Leerzeichen vor dem "-" womit sie unwirksam und als Teil des Befehls geparsed werden. Ich zeige das "-" eigentlich gar nicht an.
Das wird auch mit "get favorites" klar dargestellt und funktioniert auch nicht. Aktuell findet keinerlei Überprüfung des Attributs statt - aber "get favorites" zeigt ganz gut, ob alles richtig interpretiert wird. Eine Fehlerprüfung wäre evtl. noch ein ToDo

Okay, das war das Leerzeichen, alles klar.

Basti-K

Ich versuche gerade signatbot ans laufen zu bekommen.
Unter FHEM ist es installiert.
Der Dienst läuft.
Den QR Code habe ich abgescannt. Meine Nummer ist registriert.
Ich hänge bei dem letzten Schritt mit dem Capture.
Der reg Hack ist ausgeführt. Die Powershell CLI kommt hoch, ich löse das capture.
aber FHEM meldet nur zurück:
Incorrect captcha - e.g. needs to start with signalcaptcha://

Aber das stimmt nicht der string beginnt damit.
Es kommt immer der selbe string auch wenn ich fhem neustarte bzw. warte.

Gibt's da noch eine Trick?

Kohle77

@Basti-K
Hast du es mal im mit einem Browser versucht und mit F12 den Entwickler Modus geschaltet und dort in die Console geschaut (benutze chrome)?
Habe allerdings kein reg hack installiert.

Gruß
Christian

Adimarantis

Den "link" Flow habe ich schon länger nicht mehr getested. Da ist ein Fehler in der Benutzerführung.
Du brauchst nämlich gar kein Captcha dafür.

Workaround:
1. QR Code abscannnen
2. set reinit
3. set signalAccount <Handynummer>

Falls die Handynummer bei "set signalAccount" nicht auftaucht ggf. FHEM neu starten. In meiner aktuellen Testversion geht das, aber da hab ich dran geschraubt.

Dann sollte es klappen, dass du Nachrichten sowohl mit dem Handy als auch FHEM empfängst und "als Handy" Nachrichten versenden kannst.

Allerdings ist die empfohlende Variante für produktive Nutzung der Weg eine neue Nummer über "register" zu registrieren.

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)

Basti-K

Wenn ich den QR Code it dem Handy (und bestätige) bekomme ich die Rückmeldung Netzwerkfehler.
Auf dem Handy ist kein Gerät verknüpft. (Android 10)
In fehm steht in den Readings aber meine Handynummer.
Reinit
Erzeugt:
lastError   Error in listNumbers:/org/asamk/Signal/_491726259061 is not an object provided by this process.   

. set signalAccount wird mir gar nicht angeboten.

Fhem bzw. den ganzen Pi hab ich schon neu gestartet. Automatisch startet signal-cli nicht. da muss man nachhelfen. ist das normal?

edit: Ich hab das device noch mal gelöscht und neu angelegt.
dann den QR Code gescannt. Eine Kurze Rückmeldung: Gerät freigeschaltet, aber unter gekoppelte Geräte erscheint nichts auf dem Handy/app.
Unter fehm kommt auch nichts wenn man auf get accounts klicke.
Will ich noch mal den QR Code scannen erscheint gerät nicht gefunden.

Adimarantis

ZitatAutomatisch startet signal-cli nicht. da muss man nachhelfen. ist das normal?
Schau dazu bitte mal ins Wiki -> Troubleshooting: https://wiki.fhem.de/wiki/Signalbot#Troubleshooting_.2F_FAQ
Wenn signal-cli nicht läuft sind deine Fehlermeldungen normal. Auch hier sollte nachdem signal-cli manuell nachgestartet wurde ein "set reinit" helfen.

Wer liefert "Netzwerkfehler"?

Ich habe den Flow jetzt mal ein wenig verbessert. Bitte probier mal die aktuelle Testversion auf https://github.com/bublath/FHEM-Signalbot
Leider gibt es derzeit keinen "Trigger" bei einem erfolgreichen Link. Es hilft also immer nur kurz warten und set reinit.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Basti-K

Guten Morgen.
,,Netzwerkfehler" erscheint auf dem Handy. Nachdem man den QR Code ein zweites mal scannt.
Ich habe mit das aktuelle Git Repo gezogen und install neu gestartet. (die pm hat das datum von heute, sollte die richtige sein)
Das Modul wurde auch in fhem ausgetauscht. 
Aber leider das gleiche in grün.
Nun bekomme ich nicht mal mehr meine Nummer unter Accounts angezeigt.
QR Code wird erkannt, aber es kommt dennoch keine Verknüpfung zu Stande.
Wo finde ich mehr debungs infos die ich anliefern kann?
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...V0.19 found
Checking user signal-cli ...found
Checking system Java version ... 11.0
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
Checking installation via dbus-send command...success
Sending a message via perl Protocol::DBus...reply received

Adimarantis

Deine Installation schaut erstmal gut aus.

Um alles sauber zu haben (du hast ja sonst nichts registriert, oder?) evtl. noch
sudo rm -r /var/lib/signal-cli/data
service signal restart

und FHEM "shutdown restart"
Bei mir klappt dann
- link
- qrcode scannen
- im Handy approven
- 1 Minute warten
- set reinit
einwandfrei. Die Nummer wird dann mit der Github Version automatisch erkannt.

Weitere logs:
Im Signalbot verbose=5 setzen und schauen was im fhem log kommt
Fehlermeldungen von signal-cli könnten in
sudo grep signal-cli /var/log/syslog
stehen
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Basti-K

danke für deine Antwort und besonders für deine Arbeit.
ich bin dahinter gekommen. Bzw. hab's geschafft.
ich hab das Verzeichnis  /var/lib/signal-cli/data manuell gelöscht,
./signalinstall.h remove bzw danach install durchgeführt.

vielleicht war der der erste Schritt überflüssig und remove hatte es auch erledigt. falls nicht würde ich vorschlagen das dies mit in die Routine kommt.

weini

Zitat von: Adimarantis am 15 Januar 2022, 18:35:33
Außerdem, habe ich mir gedacht, dass die Rückgabe von Werten sicher ein häufiger Use Case sein könnte.
Daher geht jetzt auch sowas:

[temp]print Im Wohnzimmer sind es [dht11_5:temperature] °C;

oder auch als Perl
[temp]{my $var=ReadingsVal("dht11_5","temperature",0);;return $var;;}

Ist aber noch nicht gut durchgetestet.

Habe das jetzt bei mir umgestellt: Sehr cool, spart mir einen Sack notifies und dummies.
Beim Auflisten der Favoriten sind mir dabei noch zwei Kleinigkeiten aufgefallen:

  • Umlaute im Aliastext werden nicht korrekt dargestellt. Wobei die Frage ist, ob man das braucht...
  • Wenn die Perl-Variante wie oben beschrieben genutzt wird, dann wird der Aliastext nicht angezeigt, da passt wohl die Regex nicht mehr.

Gisbert

Hallo Adimarantis,

ich hab das Update per SVN auf die Version 3.3 durchgeführt; alles lief anscheinend glatt, ohne dass ich etwas davon bemerkt habe. Das Modul funktioniert anstandslos.

TYPE Signalbot
VERSION Signalbot:3.3 signal-cli:0.9.2 Protocol::DBus:0.19
model Debian GNU/Linux 11 (bullseye)


Viele​ Grüße​ und vielen Dank
Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Adimarantis

Zitat von: weini am 17 Januar 2022, 12:22:16

  • Umlaute im Aliastext werden nicht korrekt dargestellt. Wobei die Frage ist, ob man das braucht...
  • Wenn die Perl-Variante wie oben beschrieben genutzt wird, dann wird der Aliastext nicht angezeigt, da passt wohl die Regex nicht mehr.
Danke - das ist trivial zum fixen - kommt dann im release
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Basti-K

Leider war meine Freude von kurzer Dauer. Nach einem Test reboot kommt der service nicht mehr hoch.
pi@FHEM:~/FHEM-Signalbot $ sudo systemctl status signal.service status
Unit status.service could not be found.
● signal.service - Send secure messages to Signal clients
   Loaded: loaded (/etc/systemd/system/signal.service; enabled; vendor preset: enabled)
   Active: failed (Result: timeout) since Mon 2022-01-17 14:11:40 CET; 18min ago
  Process: 12276 ExecStart=/opt/signal/bin/signal-cli --config /var/lib/signal-cli daemon --system (code=exited, status=143)
Main PID: 12276 (code=exited, status=143)

Jan 17 14:10:10 FHEM systemd[1]: Starting Send secure messages to Signal clients...
Jan 17 14:11:40 FHEM systemd[1]: signal.service: Start operation timed out. Terminating.
Jan 17 14:11:40 FHEM systemd[1]: signal.service: Main process exited, code=exited, status=143/n/a
Jan 17 14:11:40 FHEM systemd[1]: signal.service: Failed with result 'timeout'.
Jan 17 14:11:40 FHEM systemd[1]: Failed to start Send secure messages to Signal clients.


Den Timeout hatte ich schon höher gestellt aber ich glaube das scheint nichts damit zu tun zu haben?!

Adimarantis

Schau mal bitte ob dir der Tipp mit dem Timeout in signal.service aus dem Wiki etwas hilft.
Ich hatte das selber zwar noch nicht, aber es gibt Hinweise, dass der Start von signal-cli nach einem Reboot manchmal länger dauert als systemd zu Warten gewillt ist.

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

Basti-K

Leider nein, hab ich probiert.
Ich hab etwas gegooglet.

https://qastack.com.de/server/695849/services-remain-in-failed-state-after-stopped-with-systemctl
l
ZitatSie sollten dies unterdrücken können, indem Sie den Beendigungscode als Beendigungsstatus "Erfolgreich" in die Unit-Datei einfügen:

[Service]
SuccessExitStatus=143

Wo soll die die Unit Datei sein? oder ich das die falsche Spur?


edit: Versuch macht Klug.
Ich hab das File gefunden.
der dienst läßt sich nun wieder manuell starten über:
sudo ./signal_install.sh start