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

Nighthawk

Es handelt sich um ei e komplette Neuinstallation, das einzige was mit rübergenommen wurde war der fhem Ordner.
Registrierung wurde neu durchgeführt, ich schrieb ja, ohne dbus klappt das Senden und Empfangen ja.
Die Fehlermeldung im FHEM ist die gleiche:
Error in sendMessage:/org/asamk/Signal/_xxxxxxxxs not an object provided by this process.

Gruß
Alex

Adimarantis

Hi Alex,

Steht in /var/log/syslog irgendwas davon, dass er Probleme mit den native libraries hat?
Was kannst du in FHEM machen (wenn die Registrierung geklappt hat, muss ja grundsätzlich was gehen)?
Was kommt bei get accounts, get contacts, get groups und so?
Hat die Registrierung wirklich geklappt? Du könntest mal den service stoppen und dann nur über Kommandozeile mit
sudo -u signal-cli /opt/signal/bin/signal-cli --verbose --config /var/lib/signal-cli -u +49<regnummer> send +49<Empfänger> -m Hallo
probieren ob alles passt, bzw. was du dann für Fehlermeldungen siehst.

Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Nighthawk

Hallo Jörg,

im Syslog ist leider nicht all zu viel drin:

Dec 26 08:47:17 fhem systemd[1]: Stopping Send secure messages to Signal clients...
Dec 26 08:47:17 fhem systemd[1]: signal.service: Main process exited, code=exited, status=143/n/a
Dec 26 08:47:17 fhem systemd[1]: signal.service: Failed with result 'exit-code'.
Dec 26 08:47:17 fhem systemd[1]: Stopped Send secure messages to Signal clients.
Dec 26 08:47:17 fhem systemd[1]: signal.service: Consumed 3min 42.014s CPU time.
.Dec 26 08:47:31 fhem dbus-daemon[714]: Unknown group "power" in message bus configuration file
Dec 26 08:47:31 fhem dbus-daemon[714]: [system] Reloaded configuration
Dec 26 08:47:35 fhem dbus-daemon[714]: Unknown group "power" in message bus configuration file
Dec 26 08:47:35 fhem dbus-daemon[714]: [system] Reloaded configuration
Dec 26 08:47:56 fhem dbus-daemon[714]: Unknown group "power" in message bus configuration file
Dec 26 08:47:56 fhem dbus-daemon[714]: [system] Reloaded configuration
Dec 26 08:48:01 fhem dbus-daemon[714]: Unknown group "power" in message bus configuration file
Dec 26 08:48:02 fhem systemd[1]: Reloading D-Bus System Message Bus.
Dec 26 08:48:02 fhem dbus-daemon[714]: [system] Reloaded configuration
Dec 26 08:48:02 fhem dbus-daemon[714]: Unknown group "power" in message bus configuration file
Dec 26 08:48:02 fhem dbus-daemon[714]: [system] Reloaded configuration
Dec 26 08:48:02 fhem dbus-send[757363]: method return time=1640504882.464535 sender=org.freedesktop.DBus -> destination=:1.24051 serial=3 reply_serial=2
Dec 26 08:48:02 fhem systemd[1]: Reloaded D-Bus System Message Bus.
Dec 26 08:48:03 fhem systemd[1]: Starting Send secure messages to Signal clients...
.
.
Dec 26 08:48:25 fhem systemd[1]: Started Send secure messages to Signal clients.


Diese Meldungen kommen bei neustarten des DBus Services bzw bei neustarten des Signal Services.

Das Senden ohne DBus geht fehlerfrei durch :
signal-cli --config /var/lib/signal-cli -u +49XXXXXXXXXXX send -m "Hallo Signal ;-)" +49************
1640523826275


Das mit DBus endet wie gehabt in der Fehlermeldung:

signal-cli -c /var/lib/signal-cli -u +49XXXXXXXXXXX --dbus-system send +49************ -m "Signal-CLI funktioniert mit DBus"
/org/asamk/Signal/_49XXXXXXXXXXX is not an object provided by this process.


Gruß
Alex

Adimarantis

Zitat von: Adimarantis am 26 Dezember 2021, 12:43:00
Was kannst du in FHEM machen (wenn die Registrierung geklappt hat, muss ja grundsätzlich was gehen)?
Was kommt bei get accounts, get contacts, get groups und so?
Sonst deutet das Fehlerbild eigentlich darauf hin, dass der service falsch gestartet wurde (mit -u Parameter statt ohne).

Was kommt denn bei
dbus-send --system --type=method_call --print-reply --dest=org.asamk.Signal /org/asamk/Signal org.asamk.Signal.sendMessage string:Hallo array:string: string:+49YYYYYYYYYYY
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Nighthawk

Error org.freedesktop.dbus.errors.UnknownMethod: The method `org.asamk.Signal.sendMessage' does not exist on this object.

Adimarantis

Schick mal die Ausgabe von
dbus-send --system --dest=org.asamk.Signal --type=method_call --print-reply /org/asamk/Signal org.freedesktop.DBus.Introspectable.Introspect
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Nighthawk

method return time=1640543407.921723 sender=:1.24834 -> destination=:1.25655 serial=14 reply_serial=2
   string "<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node name="/org/asamk/Signal">
<interface name="org.asamk.SignalControl">
  <method name="version" >
   <arg type="s" direction="out"/>
  </method>
  <method name="register" >
   <annotation name="org.freedesktop.DBus.Method.Error" value="org.asamk.SignalControl.Error.Failure" />
   <annotation name="org.freedesktop.DBus.Method.Error" value="org.asamk.SignalControl.Error.InvalidNumber" />
   <annotation name="org.freedesktop.DBus.Method.Error" value="org.asamk.SignalControl.Error.RequiresCaptcha" />
   <arg type="s" direction="in"/>
   <arg type="b" direction="in"/>
  </method>
  <method name="verify" >
   <annotation name="org.freedesktop.DBus.Method.Error" value="org.asamk.SignalControl.Error.Failure" />
   <annotation name="org.freedesktop.DBus.Method.Error" value="org.asamk.SignalControl.Error.InvalidNumber" />
   <arg type="s" direction="in"/>
   <arg type="s" direction="in"/>
  </method>
  <method name="link" >
   <annotation name="org.freedesktop.DBus.Method.Error" value="org.asamk.SignalControl.Error.Failure" />
   <arg type="s" direction="in"/>
   <arg type="s" direction="out"/>
  </method>
  <method name="registerWithCaptcha" >
   <annotation name="org.freedesktop.DBus.Method.Error" value="org.asamk.SignalControl.Error.Failure" />
   <annotation name="org.freedesktop.DBus.Method.Error" value="org.asamk.SignalControl.Error.InvalidNumber" />
   <annotation name="org.freedesktop.DBus.Method.Error" value="org.asamk.SignalControl.Error.RequiresCaptcha" />
   <arg type="s" direction="in"/>
   <arg type="b" direction="in"/>
   <arg type="s" direction="in"/>
  </method>
  <method name="verifyWithPin" >
   <annotation name="org.freedesktop.DBus.Method.Error" value="org.asamk.SignalControl.Error.Failure" />
   <annotation name="org.freedesktop.DBus.Method.Error" value="org.asamk.SignalControl.Error.InvalidNumber" />
   <arg type="s" direction="in"/>
   <arg type="s" direction="in"/>
   <arg type="s" direction="in"/>
  </method>
  <method name="listAccounts" >
   <arg type="ao" direction="out"/>
  </method>
</interface>
<interface name="org.freedesktop.DBus.Introspectable">
  <method name="Introspect" >
   <arg type="s" direction="out"/>
  </method>
</interface>
<interface name="org.freedesktop.DBus.Peer">
  <method name="Ping" >
  </method>
  <method name="GetMachineId" >
   <arg type="s" direction="out"/>
  </method>
</interface>
</node>"

Adimarantis

Dann hast du anscheinend keine Nummer registriert (zumindest nicht vollständig) sonst würde da am Schluss sowas kommen:
</interface>
<node name="_49xxxxxxxxx"/>
</node>"

Entsprechend dürften dir auch in FHEM mit "get accounts" keine Nummern angezeigt werden.
Was kommt denn bei
sudo ls /var/lib/signal-cli/data
?
Wenn es da für deine registrierte Nummer kein Verzeichnis gibt, dann kennt DBus/FHEM sie auch nicht.
Du hast mal gesagt das send ohne DBus geht - hast du die Nummer direkt mit signal-cli manuell registriert und diese mit dem lokalen User statt mit signal-cli und --config /var/lib/signal-cli registriert?
Dann stünde die Registrierung in ~/.local/share/signal-cli/data
Das kannst du dann mit sudo signal-cli ins richtige Verzeichnis kopieren, dann Neustart vom Service und es müsste gehen.

Jörg

Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Nighthawk

Hallo Jörg,

als erstes mal danke für deine aufopferungsvolle Hilfsbereitschaft, erst Recht an soch einem Tag!
Die Registrierung habe ich mit dem FHEM Ordner mitgesichert (war vorher auch das Homeverzeichnis des Users fhem).
Die Daten habe ich natürlich rüberkopiert nach /var/lib/signal-cli/data.

der Ausagbe ist erwartungsgemäß:
+49XXXXXXXX  +49XXXXXXXX.d


Gruß
Alex

Adimarantis

Stimmen die Zugriffrechte (Besitzer signal-cli)?
Fakt ist dass er die Registrierung irgendwie nicht findet.
Im Zweifelsfall löschen und neu registrieren.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Nighthawk

Ich werde morgen nochmal versuchen neu zu registrieren.
Danke Dir.

Gruß
Alex

Adimarantis

Bevor du das machst, versuch wirklich erstmal die Rechte zu korrigieren:
cd /var/lib/signal-cli
sudo chown -R signal-cli *
sudo chmod -R 700 *
sudo service signal restart

Die Verzeichnisse müssen (1) für signal-cli lesbar sein, aber (2) nicht für andere.

Jörg

Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

andies

Vielen Dank für die hilfreiche Anleitung, hat alles out-of-the-box bei einem Raspberry (Linux raspfhem 5.10.63-v7+ #1459) geklappt, inklusive Festnetz-Anruf und Captcha.

Eine Sache war komisch. Als ich "update" gemacht habe, wurde 50_Signalbot.pm bei mir nicht hinzugefügt. Das kann aber auch an meiner lokalen Installation liegen, die ist ziemlich alt. Ich habe das dann händisch eingefügt, aus dem SVN.
FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Nighthawk

Hallo Jörg,

nach der Neuregistrierung läuft es nun, vielen Dank für deinen Support!

Gruß
Alex

fettgu

Guten Abend,

der Signalbot funktioniert wirklich gut. Ich habe allerdings ein Problem bei Versenden von attachments (gplot) bei Verwendung der configdb. Er findet das File nicht (das ja in der configdb liegt). Ist das nicht implementiert oder mache ich etwas falsch?

Viele Grüße
Guido