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

adrian

Hallo zusammen,
Ich steige gerade von Telegrambot auf den Signalbot um. Ist sowieso mein Standard Messenger und sicher dazu. :-) Da macht es nur Sinn auch den Chatbot auf Signal um zubauen. siehe Thread https://forum.fhem.de/index.php/topic,51425.0.html
Grundsätzlich funktioniert das auch sehr gut, nur werden mir die Menüpunkte als Text angezeigt, sprich "/hauptmenu" steht als reiner Text bzw. Rückgabewert in der Signalnachricht. Was muß denn eingestellt oder angepasst werden, dass die Befehle auch als Shortcuts also klickbar übergeben werden?
danke und gruß
adrian

Adimarantis

Hi Adrian,

meines Wissens gibt es bei Signal keine Buttons so wie bei Telegram. Falls ich mich irre und mir jemand beschreiben kann, wie man Buttons in Messages einbettet werde ich das gerne in Signalbot einbauen.

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)

TomHB

Hallo!

Kleiner Fehler, welche mir aufgefallen ist:
Wenn der DBus nicht funktioniert (irgendwie will gerade der Dienst nicht starten (status=203/EXEC)) und der Hinweis des Moduls eingeblendet wird:

signal-cli v0.11.2+ required.
Please use installer to install or update
Note: The installer only supports Debian based Linux distributions like Ubuntu and Raspberry OS
and X86 or armv7l CPUs

You can download the installer here or your www/signal directory and run it with
sudo ./signal_install.sh


Dann funktioniert der Link des Installer-sh nicht. Er sieht beim Maus-über gut aus, läd aber dann nur die FHEM-Seite herunter.
Getestet mit Firefox & Chrome.

TomHB

Wenn schon beim Thema...
Ich habe es geschafft meine laufende Installation bei einer Aktualisierung zu zerschießen und komm nicht darauf wo das Problem liegt:

Beim Dienststart bekomme ich den Fehler

Jan 29 12:04:55 SVL01 systemd[1]: Starting Send secure messages to Signal clients...
Jan 29 12:05:05 SVL01 systemd[101895]: signal.service: Failed to execute /opt/fhem/signal/bin/signal-cli: Permission denied
Jan 29 12:05:05 SVL01 systemd[101895]: signal.service: Failed at step EXEC spawning /opt/fhem/signal/bin/signal-cli: Permission denied
Jan 29 12:05:05 SVL01 systemd[1]: signal.service: Main process exited, code=exited, status=203/EXEC
Jan 29 12:05:05 SVL01 systemd[1]: signal.service: Failed with result 'exit-code'.
Jan 29 12:05:05 SVL01 systemd[1]: Failed to start Send secure messages to Signal clients.



[Unit]
Description=Send secure messages to Signal clients
Requires=dbus.socket network-online.target
After=dbus.socket network-online.target
Wants=network-online.target

[Service]
Type=dbus
Environment="SIGNAL_CLI_OPTS=-Xms2m"
### Neu aus Skript
Environment="JAVA_HOME=$JAVA_HOME"
ExecStartPre=/bin/sleep 10
###
ExecStart=/opt/fhem/signal/bin/signal-cli --config /opt/fhem/.local/share daemon --system
User=fhem
BusName=org.asamk.Signal

[Install]
WantedBy=multi-user.target
Alias=dbus-org.asamk.Signal.service


$ ls -la /opt/fhem/signal/bin/
insgesamt 24
-rwxr-xr-x 1 fhem dialout 9236 Jan 29 11:51 signal-cli
-rw-r-xr-x 1 fhem dialout 3916 Jan 29 11:51 signal-cli.bat


Ich habe mir schon das Installationsskript angeschaut, aber konnte keine gravierende Abweichung sehen.
(SELinux habe ich nicht (wissendlich) aktiv, da der Dienst für FHEM ähnlich läuft. Kein audit.log, kein Befehl sestatus vorhanden.)

berniie


berniie

Könntest auch mal das versuchen

ExecStart=/opt/fhem/signal/bin/signal-cli --config /opt/fhem/.local/share daemon --system
User=root


Könnte sein, dass der User fhem keine Rechte am dbus subsystem hat

TomHB

Zitat von: berniie am 29 Januar 2023, 19:34:02
Was sagt denn ein

Ergebnis:
ls -l /opt/fhem/signal/bin/signal-cli

~$ ls -l /opt/fhem/signal/bin/signal-cli
-rwxr-xr-x 1 fhem dialout 9236 Jan 29 11:51 /opt/fhem/signal/bin/signal-cli




Zitat von: berniie am 29 Januar 2023, 19:37:50
Könntest auch mal das versuchen

ExecStart=/opt/fhem/signal/bin/signal-cli --config /opt/fhem/.local/share daemon --system
User=root


Könnte sein, dass der User fhem keine Rechte am dbus subsystem hat

Ergebnis:
Jan 29 20:39:16 SVL01 signal-cli[133001]: INFO  TransportBuilder - Using transport dbus-java-transport-native-unixsocket to connect to unix:path=/var/run/dbus/system_bus_socket
Jan 29 20:39:16 SVL01 signal-cli[133001]: Dbus command failed, maybe signal-cli dbus daemon is already running: org.freedesktop.dbus.errors.AccessDenied: Connection ":1.202" is not allowed to own the service "org.asamk.Signal">
Jan 29 20:39:16 SVL01 systemd[1]: signal.service: Main process exited, code=exited, status=2/INVALIDARGUMENT


root mag er auf andere Weise nicht...

Adimarantis

Gibt es einen speziellen Grund signal-cli unter "fhem" laufen zu lassen. Wahrscheinlich von SiSi umgestiegen?
Der Installer ist standardmässig dafür ausgerichtet eine komplett eigene signal-cli installation unter /opt/signal unter dem user signal-cli einzurichten.
Mein Rat wäre signal-cli komplett runterzuwerfen und mit dem Installer komplett neu zu installieren. Dann sollten alle Rechte, Verzeichnisse etc. optimal aufeinander abgestimmt sein.
Die Registrierung (wenn nicht schon vorhanden) nach /var/lib/signal-cli - aber sicherstellen, dass die Rechte passen (user/gruppe signal-cli).
Man kann deine abweichende Installation sicherlich hinbekommen, aber der Aufwand rentiert sich eher nicht.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

TomHB


TomHB

Läuft wieder - Danke
Habe den Rückbau gemacht und per Skript installiert. (Hatte aber keinen Unterschied zu meiner Installation gesehen)
Hatte es damals so gelassen, weil es nur den Kontext zu FHEM gab und dort auch die Anmeldedaten lagen.

Schaut noch einer auf den nicht funktionierenden lokalen Link?

Adimarantis

Da hat sich wohl irgendwas am Verhalten von FHEMWEB geändert. Jetzt muss noch ein fhem in die URL (vor www).
Ändere ich bei Gelegenheit. Ebenso wie die Fehlermeldung wenn Dbus nicht funktioniert.
Testversion auf Github: https://github.com/bublath/FHEM-Signalbot/blob/main/50_Signalbot.pm
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

TomHB

Ja, bei dieser Version läßt sich das Installationsskript herunterladen und man kann immer noch Nachrichten versenden ;)

fredje

Hallo, habe den Signalbot installiert und kann mir über die fhem Oberfläche Nachrichten senden.
Frage mich nun wie ich über 99_myutils eine Nachricht senden kann.

{fhem("set Signal send @+49xxxxxx test")}

funktioniert nicht ..

Adimarantis

{fhem("set Signal send @+49xxx test");;} ?

Die Telefonnummer solltest du in Posts übrigens möglichst unkenntlich machen.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)