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

Hi Sany,

das schaut wirklich alles gut aus. Vor allem hätten da jetzt schon Fehlermeldungen drin sein müssen wegen V2groups etc. - schaut so aus als hätte er die Libraries zumindest im interaktiven Modus gefunden.
Schon mal rebooted?
Dann schau mal was nach dem Reboot und Versuchen etwas an Gruppen zu senden oder zu Empfangen in /var/log/syslog steht
grep signal-cli /var/log/syslog
Falls da nur was von "Binärdatei" kommt (war bei mir so - wahrscheinlich wegen Emojis oder Umlauten) dann workaround
strings /var/log/syslog | grep signal-cli

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

Sany

ZitatDann schau mal was nach dem Reboot und Versuchen etwas an Gruppen zu senden oder zu Empfangen in /var/log/syslog steht

So, rebootet und ausprobiert:
Erst mal das 2te handy vom ersten aus in die Gruppe eingefügt. Das ging. Dann der Versuch, von fhem aus an die Gruppe zu senden:
Im fhem-log:
2021.02.22 11:39:01.716 3: mySignalBot: Before parse:#StCpt Test7:

2021.02.22 11:39:01.716 5: mySignalBot: sendGroupMessage called for StCpt::Test7
2021.02.22 11:39:01.716 5: mySignalBot: getGroup StCpt
2021.02.22 11:39:35.404 5: mySignalBot: Read from Dbus done


im syslog steht davon gar nichts. Dort sind nur Einträge, wenn ich an einzelne Handys was schicke oder von denen nach fhem.

Ich habe dann eine neue Gruppe von einem Handy aus begonnen und das andere Handy und fhem eingeladen. Auch da kommt der Hinweis, dass fhem keine Nachrichten empfangen kann, solange es den Einladungslink nicht bestätigt hat. In der Gruppeninfo taucht es auch nicht auf.
Im Syslog steht dazu:
Feb 22 11:46:05 ZotacFHEM signal-cli[546]: Envelope from: unknown source
Feb 22 11:46:05 ZotacFHEM signal-cli[546]: Timestamp: 1613990762609 (2021-02-22T10:46:02.609Z)
Feb 22 11:46:05 ZotacFHEM signal-cli[546]: Sent by unidentified/sealed sender
Feb 22 11:46:05 ZotacFHEM signal-cli[546]: Sender: "S" +49yyyyyy (device: 1)
Feb 22 11:46:05 ZotacFHEM signal-cli[546]: Message timestamp: 1613990762609 (2021-02-22T10:46:02.609Z)
Feb 22 11:46:05 ZotacFHEM signal-cli[546]: Group info:
Feb 22 11:46:05 ZotacFHEM signal-cli[546]:   Id: eZQk9LmtNqXXXXXXXXXXXXXXXXXXXXXXXhmSPUHVpGA=
Feb 22 11:46:05 ZotacFHEM signal-cli[546]:   Name: CptSt
Feb 22 11:46:05 ZotacFHEM signal-cli[546]:   Revision: 1
Feb 22 11:46:05 ZotacFHEM signal-cli[546]:   Master key length: 32
Feb 22 11:46:05 ZotacFHEM signal-cli[546]:   Has signed group change: true


Dann habe ich das Installscript mit join gestartet und den Einladungslink übergeben. Das ergibt das Folgende:

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:      +49xxxxxxxxxx
Your configuration
Linux ZotacFHEM 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64 GNU/Linux
has not been tested, continue at own risk
Your chose the following option: join

Please enter the uri link (created share group link, looking like https://signal.group/......
Group:https://signal.group/#CjQzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzPreV7Ic (geändert)
Stopping signal-cli service
If you get a 'in use, waiting' message, then stopping of system Signal service did not succeed. Press Ctrl-C and try again
java.io.IOException: Cannot join a V2 group as self does not have a versioned profile
        at org.asamk.signal.manager.helper.GroupHelper.joinGroup(GroupHelper.java:274)
        at org.asamk.signal.manager.Manager.sendJoinGroupMessage(Manager.java:864)
        at org.asamk.signal.manager.Manager.joinGroup(Manager.java:856)
        at org.asamk.signal.commands.JoinGroupCommand.handleCommand(JoinGroupCommand.java:49)
        at org.asamk.signal.App.handleLocalCommand(App.java:211)
        at org.asamk.signal.App.init(App.java:169)
        at org.asamk.signal.Main.main(Main.java:43)
Failed to send message: Cannot join a V2 group as self does not have a versioned profile
Start signal-cli service
If the recipient got the messages, your setup looks healthy and you're ready to go to set up Signalbot in FHEM

Messages kamen keine....
Nach refreshGroups erscheint aber die neue Gruppe in fhem. Nur kann ich nicht dorthin senden (gleicher Fehler: Error sending message:org.asamk.Signal.Error.GroupNotFound: User is not a member in group: CptSt (eZQk9zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzHVpGA=)

fhem auf Zotac ZBox nano als LXC auf Proxmox, weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

Adimarantis

Hi Sany,

in der signal-cli Doku habe ich folgendes gefunden:
To be able to join a v2 group the account needs to have a profile (can be created with the updateProfile command

Probier mal den Installer mit dem "name" Argument zu starten und einen Namen für dein Profil zu definieren.

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

Sany

hat fast geklappt:
Your chose the following option: name

Please are name for your Signal User with number +49yyyyyyyyyy (You have to update the name if you want to set a picture!)
Name:abcdefgh
Please provide a filename to a picture to be used as avatar for your user (press return to keep unchanged)
File:
Stopping signal-cli service
If you get a 'in use, waiting' message, then stopping of system Signal service did not succeed. Press Ctrl-C and try again
Update profile error: /home/steff (Is a directory)
Stopping signal-cli service
Your profile has been updated


habe das script mit sudo im home-Verzeichnis gestartet.
fhem auf Zotac ZBox nano als LXC auf Proxmox, weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

Adimarantis

Hi Sany,

Ok. Da ist noch ein Bug im Script.
Nimm doch einfach mal
/opt/fhem/www/images/default/fhemicon.png
als File - dann kriegst das das nette FHEM logo also Avatarbild.

Bei leeren Eingaben stimmt meine Abfrage im Script nicht.

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

Sany

gibt noch nen Fehler...
Please provide a filename to a picture to be used as avatar for your user (press return to keep unchanged)
File:/opt/fhem/www/images/default/fhemicon.png
File /home/steff//opt/fhem/www/images/default/fhemicon.png was not found


irgendwie hängt er den home-Pfad davor
fhem auf Zotac ZBox nano als LXC auf Proxmox, weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

Adimarantis

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

Sany

Success!!

Script lief durch, konnte dann vom Handy aus den fhem in die Gruppe aufnehmen und dann von fhem Nachrichten in die Gruppe schicken.
Prima, das wars!

Gruß

Sany
fhem auf Zotac ZBox nano als LXC auf Proxmox, weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

Adimarantis

Prima, dann nehme ich das am Besten mal ins Wiki auf und das Setzen eines Namens sollte Teil des Standardablaufs nach der Registrierung im Script werden

P.S. Ein "updateProfile" aus FHEM ist in Vorbereitung. Dazu braucht man aktuell aber eine beta-version von signal-cli (also quasi 0.8.1)

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

rubinho

Hallo Jungs,

nachdem ich seitens Signal die Aufvorderung bekommen habe meine Smarthome Gruppe auf v2 hochzurüsten und mein Signal-Cli Client angeblich einer der Member ist, die nicht mit v2 Gruppen zurechtkommt, habe ich mein Signal-Cli auf 0.8.0 aktualisiert.

Im Zuge dessen musste ich heute feststellen, dass SiSi nicht mehr aktuell ist, sondern Signalbot.
Dieses Modul wollte ich natürlich gleich aktivieren und beginn damit net-dbus zu aktualisieren.
Allerdings brach mir die Installation mit folgender Fehlermeldung ab....
cpan install -f Net::DBus
Loading internal null logger. Install Log::Log4perl for logging messages
Reading '/root/.cpan/Metadata'
  Database was generated on Mon, 22 Feb 2021 12:29:03 GMT
Running install for module 'Net::DBus'
Checksum for /root/.cpan/sources/authors/id/D/DA/DANBERR/Net-DBus-1.2.0.tar.gz ok
Configuring D/DA/DANBERR/Net-DBus-1.2.0.tar.gz with Makefile.PL
DBus >= 1.3.0 is required
Warning: No success on command[/usr/bin/perl Makefile.PL INSTALLDIRS=site]
  DANBERR/Net-DBus-1.2.0.tar.gz
  /usr/bin/perl Makefile.PL INSTALLDIRS=site -- NOT OK


NAME="Ubuntu"
VERSION="18.04.5 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.5 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic


dbus/bionic-updates,bionic-security,now 1.12.2-1ubuntu1.2 amd64  [installiert]
libdbus-1-3/bionic-updates,bionic-security,now 1.12.2-1ubuntu1.2 amd64  [installiert]
libdbus-glib-1-2/bionic,now 0.110-2 amd64  [Installiert,automatisch]
libnet-dbus-perl/bionic,now 1.1.0-4build2 amd64  [installiert]
libqt5dbus5/bionic-updates,bionic-security,now 5.9.5+dfsg-0ubuntu2.5 amd64  [Installiert,automatisch]
python-dbus/bionic,now 1.2.6-1 amd64  [Installiert,automatisch]
python3-dbus/bionic,now 1.2.6-1 amd64  [installiert]


Mich macht vorallem fogendes stutzig ....
ZitatDBus >= 1.3.0 is required

Welche aktuelle Debian oder Ubuntu Version hat denn eine Dbus Version größer/gleich 1.3 ?

Oder jage ich irgendwelchen Geistern hinterher ?

Hat jemand eine Idee ?

Gruß
Rubinho
Fhem 5.9@Zotac Zbox Ci327 | HMCCU | Z-Wave@ZMEEUZB1 | HUE Bridge Gen2 | knxd over IP

Adimarantis

Hi Rubinho,

Das 1.3.0 hatte mich auch schon mal verwirrt. Das sind einfach Abhängigkeiten in der Installation.
Da kann ich wieder nur empfehlen mein Install Script zu verwenden, das alles auflöst - gibt extra eine Sektion im Wiki dazu wie man von SiSi umsteigt und seine Konfiguration behält.

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)

weini

Zitat von: Adimarantis am 21 Februar 2021, 20:15:08
Testversion mit GoogleAuth
Wer mag, bitte mal probieren.

So, habe jetzt erfolgreich die GoogleAuth Integration getestet, funktioniert super! Dabei habe ich jetzt auch das Prinzip verstanden. Finde ich soweit Klasse. Was mir noch fehlt, sollte via DOIF/notify machbar sein.

Meine Wunschliste wäre:

  • "commandKeywordUnauthorized": Analog zu commandKeyword, aber es wird kein GoogleAuth getriggert/verlangt (z. B. "#")
  • "commandPatternUnauthorized": Gibt eine Liste von Prefixen an, die über das obige Keyword ausgeführt werden dürfen (z. B. "trigger,get" bedeutet, dass "#trigger sendLichtStatus" zulässig ist)
  • "commandPattern": das selbe für die Befehle, die via GoogleAuth authorisiert werden müssen
Vorsicht, dass die Attributnamen nicht zu lang werden. Bin mir nicht sicher, wo da das Limit ist.

Irgendetwas scheint mit den Signal Gruppen gerade nicht optimal zu laufen. Mein erster Versuch, eine Gruppe "ABC" anzulegen hat dazu geführt, dass diese Gruppe nun zwar dem Bot User zugeordnet ist, aber mit "active: false". So kann ich sie nicht mehr löschen. Nun konnte ich sie zwar ein zeites mal mit gleichem Namen anlegen, dann kann ich sie aber nicht als "allowedPeer" nutzen. Ist aber nicht dramatisch, ich komme auch gut ohne die Gruppen aus.

VG,
weini

rubinho

Hi Adimarantis

Danke für die Info.

Nach änfänglichen Problemen, konnte ich mittels Script die notwenigen fehlenden Pakete installieren.
Nun läuft das Modul.

Eine Frage noch zum Script...  ich wollte in meine HomeAutomation Gruppe joinen, was nicht funktioniert hat, da ich meinem Profil keinen Namen verpasst hatte.
Darauf hin versuchte ich meinem Profil einen Namen zu verpassen, was allerdings auch nicht funktionierte und mit folgender Fehlermeldung terminierte...

ZitatUpdate profile error: /home/fhem (Is a directory)

SIGNALPATH=/opt/fhem
SIGNALUSER=fhem
LIBPATH=/usr/lib
SIGNALVERSION="0.8.0"
SIGNALVAR=/opt/fhem/.local/share
DBSYSTEMD=/etc/dbus-1/system.d
DBSYSTEMS=/usr/share/dbus-1/system-services
SYSTEMD=/etc/systemd/system
LOG=/tmp/signal_install.log
TMPFILE=/tmp/signal$$.tmp
VIEWER=eog
DBVER=1.2.0
OPERATION=$1


Was könnte das sein ?


---Edit---
Ich hab den Namen manuell direkt via signal-cli angelegt, danach hat das joinen funktioniert.
Fhem 5.9@Zotac Zbox Ci327 | HMCCU | Z-Wave@ZMEEUZB1 | HUE Bridge Gen2 | knxd over IP

weini

Zitat von: weini am 22 Februar 2021, 18:45:58
Irgendetwas scheint mit den Signal Gruppen gerade nicht optimal zu laufen. Mein erster Versuch, eine Gruppe "ABC" anzulegen hat dazu geführt, dass diese Gruppe nun zwar dem Bot User zugeordnet ist, aber mit "active: false". So kann ich sie nicht mehr löschen. Nun konnte ich sie zwar ein zeites mal mit gleichem Namen anlegen, dann kann ich sie aber nicht als "allowedPeer" nutzen. Ist aber nicht dramatisch, ich komme auch gut ohne die Gruppen aus.

Ist es korrekt, dass wenn ich die Gruppe als "allowedPeer" anlegen, dann Nachrichten zugelassen sind, die von der Gruppe aus versandt werden? Es werden aber keine Nachrichten akzeptiert, die von Mitgliedern der Gruppe an den Bot versandt werden. Das hätte ich anders erwartet, scheint aber so zu sein.

Adimarantis

Zitat von: rubinho am 22 Februar 2021, 18:46:45
Update profile error: /home/fhem (Is a directory)

Den Fehler hatten wir heute schon mal - war nur noch nicht dazu gekommen den Installer zu updaten. Ist jetzt geschehen (V1.6)

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