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

Che007

Danke Jörg für die Antwort.

Die 3 Sendetests funktionieren.

Ist wohl alles ein wenig seltsam. FHEM startet. Ich definiere Signalbot - FHEM stürzt mit der o.g. Fehlermeldung ab. FHEM startet neu. Signalbot wurde nicht angelegt. Definiere ich es noch einmal klappt es. Ich kann senden etc.
Nur nach einem Neustart kommt FHEM nicht hoch, wegen o.g. Fehler.
Auch das verzögerte Anlegen des Signalbots hilft nicht.

Leider habe ich keine Idee mehr wo ich ansetzen soll.

Adimarantis

Kannst du mal versuchen den FHEM start zu verzögern?
Eventuell ist irgendwas noch nicht bereit.
Allerdings müsste ich dann dringend den FHEM Absturz abfangen. Das sollte nicht sein. Schaue ich mir bei Gelegenheit mal an.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Che007

Ja hatte ich bereits versucht.
Hatte nach DBus und Signal-Cli start eine Pause von 5 Minuten eingebaut.
Wobei ich auch nach 1 Tag laufenden Diensten und FHEM mal den Signalbot angelegt habe und es trotzdem abgestürzt ist.
Es funktioniert nur, wenn das fhem/fhem Docker Image nach dem Absturz wieder hoch kommt und ich das Gerät dann anlegen. Weiß Gott wieso?!

BAfH

Morgen,
sorry für die späte Rückmeldung, die Arbeit hat mir keinen Freiraum gelassen.
Ich habe heute den FHEM Test Container:

  • gestoppt mit docker rm Containerid -f
  • Image gelöscht mit docker rmi Imageid -f
  • Conatiner start mit docker-compuse up -d
Das Script geändert auf Version 0.8.3 und über die signal_install.sh in der Console als root gestartet.

Alles wurde soweit installiert, das Install Log hänge ich an,  was mir aufgefallen.
Checking for Protocol::DBus...Can't locate Protocol/DBus.pm in @INC (you may need to install the Protocol::DBus module) (@INC contains: /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.28.1 /usr/local/share/perl/5.28.1 /usr/lib/arm-linux-gnueabihf/perl5/5.28 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.28 /usr/share/perl/5.28 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base) at /tmp/signal10137.tmp line 5.
BEGIN failed--compilation aborted at /tmp/signal10137.tmp line 5.
Installing latest Protocol::DBus...done
Checking user signal-cli ...Adding user `signal-cli' ...
Adding new group `signal-cli' (1001) ...
Adding new user `signal-cli' (1001) with group `signal-cli' ...
Creating home directory `/home/signal-cli' ...
Copying files from `/etc/skel' ...
created
Checking for /opt/fhem...found
Checking for /var/lib/signal-cli...created
Checking for existing signal-cli installation...not found
Proceed with signal cli installation
Downloading signal-cli 0.8.3...done
Unpacking ...
Downloading native armv7l libraries...
done
Updating native x86 since you're on Raspberry...updating: libzkgroup.so (deflated 55%)
updating: libsignal_jni.so (deflated 53%)
done
done
Changing file ownership ...done
No device configuration found, starting process for +493338703585
Continue (y) or skip (N)?y
You can either
(r) register a new device (if that device is already registered e.g. to a smartphone that will be removed)
(l) link to an already registered device (both device will get the messages)
It is recommended to register a new device e.g. a land-line for usage with FHEM
register or link (r/l)r
Registering for +49xxx

Receive registration code for +49xxx by (S)MS or (V)oice (s/v)? v
Registering +49xxx with Voice call
You should get a call or SMS now providing a 6 digit code
Enter this code here:^C

Nichts passiert also Abbruch

in der Signal TMP Log finde ich folgendes
./signal-cli: 39: cd: can't cd to ./..
./signal-cli: 41: cd: can't cd to /opt/fhem/signal/bin
Error: Could not find or load main class org.asamk.signal.Main
Caused by: java.lang.ClassNotFoundException: org.asamk.signal.Main

Der PI ist auf aktuellem Stand.
Hat noch jemand eine Idee, wo ich was suchen oder drehen kann.

Danke

Gruß Thorben
mit sonnige Grüße aus Schönow

Che007

Das Problem habe ich auch, wenn ich das Skript nicht als root laufen lassen, bzw. wenn der signal-cli User benutzt wird.
Ich habe das Skript angepasst, dass alles als root gemacht wird, also ohne extra User.

BAfH

Du hast ja so recht, machmal ist man auch noch blind... ::)
Danke für den Hinweis.
Zitat von: Che007 am 29 Juli 2021, 10:53:22
Das Problem habe ich auch, wenn ich das Skript nicht als root laufen lassen
Nur, was mir aufgefallen ist, signal-install.sh fragt nie nach einen Chapta
Ich habe anschließend das signal-cli manuell gestartet, das Chapta geholt
cd /opt/fhem/signal/bin
./signal-cli -u +49xxxx register --voice --captcha CHAPTA

Anruf erfolgte
./signal-cli -u +49xxx verify  CODE
okay, Test mittels
./opt/fhem/signal/bin/signal-cli -u +49xxx send -m "Test FHEM TEST" +49yyy

funktioniert auch, Nachricht empfangen
Anschließend des
./signal_install.sh test
You seem to run in a docker environment. Warning: This is experimental
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/fhem
Signal config storage:        /var/lib/signal-cli
Signal version:               0.8.3
System library path:          /usr/lib
Phone number to be used:      +49festnetz
You seem to be on a Raspberry pi with armv7l
Your chose the following option: test

Please enter the number (+49...) of somebody that you can send a test message to
Number:+49mobil
Sending a message from command line to +49mobil
If you get a 'in use, waiting' message, skip by pressing CTRL-C - this is normal when system service is already up and running
sudo: unknown user: signal-cli
sudo: unable to initialize policy plugin
Waiting for dbus to become ready..running
Starting signal-cli daemon for Docker
Waiting for signal-cli to become ready........................................

Nichts passiert..
Container restart. Keine Änderung.
Das wundert mich auch sudo: unknown user: signal-cli

Was habe ich übersehen oder vergessen....
Gruß Thorben
mit sonnige Grüße aus Schönow

BAfH

Zitat von: Che007 am 29 Juli 2021, 10:53:22
Das Problem habe ich auch, wenn ich das Skript nicht als root laufen lassen, bzw. wenn der signal-cli User benutzt wird.
Ich habe das Skript angepasst, dass alles als root gemacht wird, also ohne extra User.
Hast Du da nur im Script was geändert?
#!/bin/bash
SCRIPTVERSION="$Id:2.2$"
# Author: Adimarantis
# License: GPL
#Install script for signal-cli
if [ -z "$PHONE" ]; then
   PHONE="+49festnetz"
fi
SIGNALPATH=/opt
SIGNALUSER=signal-cli
LIBPATH=/usr/lib
SIGNALVERSION="0.8.3"
SIGNALVAR=/var/lib/$SIGNALUSER
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=0.17
OPERATION=$1


wie sieht dein Dockerfile aus?
Gruß Thorben
mit sonnige Grüße aus Schönow

SouzA

Hi,
mein Signalbot versendet noch Nachrichten.
Bei "get Signalbot contacts all" oder "get Signalbot groups all" kommt die Fehlermeldung

Signal-cli 0.8.1+ required for this functionality


Wie gesagt, Messages werden versendet.
Ich bitte um Hilfe.
Vielen Dank!

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

Zitat von: SouzA am 04 August 2021, 05:21:34

Signal-cli 0.8.1+ required for this functionality

SouzA

Dann ist entweder eine veraltete Signal-Cli version installiert oder der "Versionscheck" beim Start ist fehlgeschlagen.
Folgende Dinge kannst du probieren (jede für sich kann bereits helfen)

  • Einfach mal ein "set reinit" machen, dann sollte der Versioncheck wiederholt werden
  • FHEM restart
  • Install Script nochmal laufen lassen (mit Kommandozeilen Option "install" - und nochmal FHEM restart

Wenn das alles nichts hilft mal verbose level hoch und logfiles sammeln, ggf. auch vom syslog.

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

SouzA

Zitat von: Adimarantis am 04 August 2021, 13:08:20
Dann ist entweder eine veraltete Signal-Cli version installiert oder der "Versionscheck" beim Start ist fehlgeschlagen.
Folgende Dinge kannst du probieren (jede für sich kann bereits helfen)

  • Einfach mal ein "set reinit" machen, dann sollte der Versioncheck wiederholt werden
  • FHEM restart
  • Install Script nochmal laufen lassen (mit Kommandozeilen Option "install" - und nochmal FHEM restart

Wenn das alles nichts hilft mal verbose level hoch und logfiles sammeln, ggf. auch vom syslog.

Jörg

Moin,
danke für Antwort.

Punkt 1. "reinit" hat schon geholfen.

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

BAfH

Ich habe nochmal einiges probiert.
Vor jede Versuch habe ich immer das Image gelöscht und alles neu erstellen lassen.
Das signal_install.sh läuft jetzt so sauber durch. Das ich meine Rufnummer registrieren kann und eine , wirklich nur einen Testnachricht versenden kann.
Hier ein Auszug
root@e7a4044dfc19:/opt/fhem# ./signal_install.sh test
You seem to run in a docker environment. Warning: This is experimental
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:              root
Signal-cli Install directory: /opt/fhem
Signal config storage:        /var/lib/root
Signal version:               0.8.3
System library path:          /usr/lib
Phone number to be used:      +49festnetz
You seem to be on a Raspberry pi with armv7l
Your chose the following option: test

Please enter the number (+49...) of somebody that you can send a test message to
Number:+49mobil
Sending a message from command line to +49mobil
If you get a 'in use, waiting' message, skip by pressing CTRL-C - this is normal when system service is already up and running
1628080015204
Waiting for dbus to become ready..running
Starting signal-cli daemon for Docker
Waiting for signal-cli to become ready...................................................running
Sending a message via dbus-send command
Error org.freedesktop.DBus.Error.ServiceUnknown: The name org.asamk.Signal was not provided by any .service files
Sending a message via perl Protocol::DBus
Error getting message
If the recipient got all three messages, your setup looks healthy and you're ready to go to set up Signalbot in FHEM

Im FHEM sehe ich nur setstate Signal 2021-08-04 14:27:21 lastError Error in version:The name org.asamk.Signal was not provided by any .service files
Hat jemand eine Idee, was ich noch ändern kann. Danke
Gruß Thorben
mit sonnige Grüße aus Schönow

Adimarantis

Zitatsetstate Signal 2021-08-04 14:27:21 lastError Error in version:The name org.asamk.Signal was not provided by any .service files
Hat jemand eine Idee, was ich noch ändern kann. Danke
Steht was im syslog? Der Service oder Dbus läuft nicht.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

BAfH

das syslog im Docker habe ich nicht gefunden.
Starte ich den Container sehe ich im Log
2021.08.05 09:16:10.787 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/50_Signalbot.pm line 1256.
connect(unix:path=/var/run/dbus/system_bus_socket): Connection refused at /usr/local/share/perl/5.28.1/Protocol/DBus/Client.pm line 144.

Nach einem Restart ist kein Prozess DBUS zu sehen
root@e7a4044dfc19:/opt/fhem# service dbus status
[FAIL] dbus is not running ... failed!

gefunden in der /var/log/signal.err
root@e7a4044dfc19:/opt/fhem# more /var/log/signal.err
INFO DaemonCommand - Exported dbus object: /org/asamk/Signal
ERROR DaemonCommand - Dbus command failed
org.freedesktop.dbus.exceptions.DBusException: Connection ":1.9" is not allowed to own the service "org.asamk.Signal" due to security policies in the configuration file
        at org.freedesktop.dbus.connections.impl.DBusConnection.requestBusName(DBusConnection.java:469)
        at org.asamk.signal.commands.DaemonCommand.handleCommand(DaemonCommand.java:70)
        at org.asamk.signal.App.handleLocalCommand(App.java:211)
        at org.asamk.signal.App.init(App.java:171)
        at org.asamk.signal.Main.main(Main.java:51)
Dbus command failed
root@e7a4044dfc19:/opt/fhem#

Hilft das weiter.
Gruß Thorben
mit sonnige Grüße aus Schönow

Adimarantis

Zitat von: BAfH am 05 August 2021, 09:51:02
root@e7a4044dfc19:/opt/fhem# service dbus status
[FAIL] dbus is not running ... failed!

Dann ist es ja ziemlich eindeutig. Deine Docker Umgebung hat kein DBus - wahrscheinlich sind die erforderlichen Pakete nicht installiert.
Ich hänge mal mein Docker Install Script an - da kannst du abschauen welche Pakete ich installiere.
Da ich selbst keine Docker-Installation verwende, kann ich jetzt nicht garantieren, das das Script noch funktioniert. Das war nur mal ein Test - soweit ich mich erinnere aber ein erfolgreicher.

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

darkness

Guten Morgen.

Ich wollte mir gerade mal Signalbot installieren. Soweit haben alle Schritte geklappt und versenden von Nachrichten ausserhalb von FHEM klappt auch.
Jedoch bekomme ich vom Modul folgenden Fehler:

ZitatError in version:/org/asamk/Signal is not an object provided by this process


Installiert habe ich die Version 0.8.5 von signal-cli.

Anfangs hatte ich das Problem, das libsignal-client  nicht gefunden wurde. (https://github.com/AsamK/signal-cli/issues/643). Nach einem Update auf Bullseye läuft die signal-cli aber.

Edit:
Es scheint noch ein Fehler im Dbus vorzuliegen. Ich bekomme folgenden Fehler:

Zitatorg.freedesktop.dbus.exceptions.DBusException: Connection ":1.5" is not allowed to own the service "org.asamk.Signal" due to security policies in the configuration file
konnte ich schon lösen. Bei mir läuft signal-cli unter dem user fhem. Das musste ich in den Configdateien anpassen.