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

E-J-D

Hallo zusammen,

ich bin angetan vom SignalBot Modul :D. Herzlichen Dank dafür!

Die Installation und Registrierung hat direkt geklappt und ich habe keine Fehler bekommen.

Zitat
FHEM auf dem aktuellen Stand fhem.pl:v6.1-s26096/2022-05-29
Signalbot:3.8 signal-cli:0.10.5 Protocol::DBus:0.22
Debian GNU/Linux 11 (bullseye)

Grundsätzlich funktioniert das Modul auch. Nur habe ich die Unschönheit, dass nach einem FHEM Neustart kein Nachrichtenversand möglich ist, da das Modul keine Contacts mehr kennt. Ein "list SignalBot" zeigt auch, dass scheinbar keine Contacts mehr da sind. Erst ein "get SignalBot contacts all" macht die vorher hinzugefügten Kontakte wieder bekannt und SignalBot funktioniert wieder einwandfrei.

Im Log bekomme ich beim Neustart diese Fehler...
Zitat
2022.05.31 10:48:38 1: PERL WARNING: Use of uninitialized value $version in numeric lt (<) at ./FHEM/50_Signalbot.pm line 169.
2022.05.31 10:48:38 1: PERL WARNING: Use of uninitialized value $version in numeric ge (>=) at ./FHEM/50_Signalbot.pm line 177.

Ob das mit dem Problem zu tun hat kann ich nicht einschätzen.

Weder hier im Forum noch im Wiki habe ich etwas zu diesem Problem gefunden. Daher bin ich für Ideen oder Ratschläge dankbar.

Grüße,
E-J-D

andies

Ich habe dieselbe Beobachtung gemacht. Allerdings habe ich die Kontakte immer manuell nachgetragen.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
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

LuGu

FHEM mit RPi3 (Visu über FTUI)
HMCCU mit piVCCU3 / MQTT2 mit zigbee2mqtt

Adimarantis

Ich denke das ist eine race-condition mit dem Start des signal-cli service.
Das Abfragen der Versionsnummer geht schief, wenn FHEM schneller oben ist als signal-cli.
Ein "set reinit" sollte dann eigentlich auch helfen.

Allerdings hatte ich für den Fall eigentlich was eingebaut (retry mit Verzögerung), aber das scheint wohl nicht wie geplant zu funktionieren.
Muss ich mir bei Gelegenheit mal anschauen.

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

E-J-D

Nope... "set SignalBot reinit" reicht zumindest bei mir nicht aus. Habe es zweimal mit einem "FHEM restart" probiert. Den Rechner selbst habe ich nicht neugestartet. Der SignalBot konnte immer erst wieder senden nachdem ich "get SignalBot contacts all" ausgeführt habe. Dafür habe ich eben beim Neustart im Log noch diese Fehler bekommen:

Zitat
2022.05.31 14:02:55 1: PERL WARNING: Use of uninitialized value $args[0] in join or string at ./FHEM/50_Signalbot.pm line 214.
2022.05.31 14:02:55 1: PERL WARNING: Use of uninitialized value $groupname in pattern match (m//) at ./FHEM/50_Signalbot.pm line 1397.
2022.05.31 14:02:55 1: PERL WARNING: Use of uninitialized value $rec in concatenation (.) or string at ./FHEM/50_Signalbot.pm line 1613.
2022.05.31 14:02:55 1: PERL WARNING: Use of uninitialized value $rec in pattern match (m//) at ./FHEM/50_Signalbot.pm line 1614.
2022.05.31 14:02:55 1: PERL WARNING: Use of uninitialized value $rec in string eq at ./FHEM/50_Signalbot.pm line 1625.
2022.05.31 14:02:55 1: PERL WARNING: Use of uninitialized value $rec in concatenation (.) or string at ./FHEM/50_Signalbot.pm line 1627.
2022.05.31 14:02:55 1: PERL WARNING: Use of uninitialized value $groupname in concatenation (.) or string at ./FHEM/50_Signalbot.pm line 1433.
2022.05.31 14:02:55 1: PERL WARNING: Use of uninitialized value $args[0] in join or string at ./FHEM/50_Signalbot.pm line 1238.

Im Vergleich zu vorhin habe ich den SignalBot Accountnamen gesetzt und eine Empfängergruppe erstellt. Die Fehler könnten auch damit zusammenhängen.

Wie vorhin aber schon, läuft alles wunderbar, wenn die Contacts wieder mit "get SignalBot contacts all" in Erinnerung gerufen wurden.

LuGu

Kann ich bestätigen ein "set SignalBot reinit" hilft nicht, ein "get SignalBot contacts all" schon.

Gruß LuGu
FHEM mit RPi3 (Visu über FTUI)
HMCCU mit piVCCU3 / MQTT2 mit zigbee2mqtt

Adimarantis

Kriege ich nicht reproduziert. Sogar wenn ich signal-cli beende (service stop signal) und einen "shutdown restart" von FHEM mache, dann kommt alles (mit Verzögerung) sauber hoch.
Etwas irritiert bin ich allerdings davon, dass die Fehler z.B. im "set" command passieren.
Kann es sein, dass ihr bereits unmittelbar beim FHEM Start schon "set" Befehle mit Signalbot macht - zu einer Zeit da die Initialisierung möglicherweise noch gar nicht abgeschlossen ist?

Da liegt möglicherweise die Schwachstelle. Sowas müsste ich wohl blockieren.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Adimarantis

Mal ein schneller Hack um zu sehen ob dass das Problem ist.
Bitte mal ausprobieren. "set" und "get" funktionieren jetzt erst wenn erfolgreich eine Versionsnummer eingelesen wurde.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

E-J-D

Nope, leider das gleiche Ergebnis.

Vielleicht hilft ein "list Signal" mit den Details weiter? Dies ist ein List nach dem FHEM restart ohne "get contacts all".

Zitat
Internals:
   FD         52
   FUUID      61a90d5e-f33f-3c07-c2ec-acbba20f6f0ab3c9
   FVERSION   50_Signalbot.pm:?/2022-05-31 UNSTABLE
   NAME       Signal
   NOTIFYDEV  global
   NR         654
   NTFY_ORDER 50-Signal
   STATE      Connected to /org/asamk/Signal/_49xxxxxxxxxxxxx
   TYPE       Signalbot
   VERSION    Signalbot:3.8 signal-cli:0.10.5 Protocol::DBus:0.22
   eventCount 1
   model      Debian GNU/Linux 11 (bullseye)
   READINGS:
     2022-05-31 22:38:55   account         +49xxxxxxxxxxxxx
     2022-05-31 22:38:55   accountName     FHEM-XXXX
     2022-05-31 16:11:09   joinedGroups    FHEM-XXXX
     2022-05-31 22:38:55   lastError       ok
     2022-05-30 09:58:23   msgAttachment   
     2022-05-30 09:58:23   msgAuth         0
     2022-05-30 09:58:23   msgGroupName   
     2022-05-30 09:58:23   msgSender       XXXX
     2022-05-30 09:58:23   msgText         XXXX
     2022-05-30 09:58:23   msgTimestamp    30-05-2022 09:58:23
     2022-05-30 09:58:23   prevMsgAttachment
     2022-05-30 09:58:23   prevMsgGroupName
     2022-05-30 09:58:23   prevMsgSender   XXXX
     2022-05-30 09:58:23   prevMsgText     XXXX
     2022-05-30 09:58:23   prevMsgTimestamp 01-04-2022 17:31:35
     2022-05-31 22:19:43   sentMsg         xxxx
     2022-05-31 22:20:48   sentMsgRecipient xxxx
     2022-05-31 22:20:48   sentMsgTimestamp 31-05-2022 22:19:43
   helper:
     accounts   1
     init       1
     multi      1
     signalpath /org/asamk/Signal/_49xxxxxxxxxxx
     version    1005
     accountlist:
       +49xxxxxxxxxxxxx
     attachments:
Attributes:
   defaultPeer xxxxx
   devStateIcon Connected.*to.*49xxxxxxxxxxxxx:control_on_off@green
   group      Gateway
   icon       message_mail
   registerMethod Voice
   room       91_Gateways

Dies ist ein "list Signal" nach dem FHEM restart MIT "get contacts all".
Zitat
Internals:
   FD         52
   FUUID      61a90d5e-f33f-3c07-c2ec-acbba20f6f0ab3c9
   FVERSION   50_Signalbot.pm:?/2022-05-31 UNSTABLE
   NAME       Signal
   NOTIFYDEV  global
   NR         654
   NTFY_ORDER 50-Signal
   STATE      Connected to /org/asamk/Signal/_49xxxxxxxxxxxxx
   TYPE       Signalbot
   VERSION    Signalbot:3.8 signal-cli:0.10.5 Protocol::DBus:0.22
   eventCount 1
   model      Debian GNU/Linux 11 (bullseye)
   READINGS:
     2022-05-31 22:38:55   account         +49xxxxxxxxxxxxx
     2022-05-31 22:38:55   accountName     FHEM-XXXX
     2022-05-31 16:11:09   joinedGroups    FHEM-XXXX
     2022-05-31 22:38:55   lastError       ok
     2022-05-30 09:58:23   msgAttachment   
     2022-05-30 09:58:23   msgAuth         0
     2022-05-30 09:58:23   msgGroupName   
     2022-05-30 09:58:23   msgSender       XXXX
     2022-05-30 09:58:23   msgText         XXXX
     2022-05-30 09:58:23   msgTimestamp    30-05-2022 09:58:23
     2022-05-30 09:58:23   prevMsgAttachment
     2022-05-30 09:58:23   prevMsgGroupName
     2022-05-30 09:58:23   prevMsgSender   XXXX
     2022-05-30 09:58:23   prevMsgText     XXXX
     2022-05-30 09:58:23   prevMsgTimestamp 01-04-2022 17:31:35
     2022-05-31 22:19:43   sentMsg         xxxx
     2022-05-31 22:20:48   sentMsgRecipient xxxx
     2022-05-31 22:20:48   sentMsgTimestamp 31-05-2022 22:19:43
   helper:
     accounts   1
     init       1
     multi      1
     signalpath /org/asamk/Signal/_49xxxxxxxxxxx
     version    1005
     accountlist:
       +49xxxxxxxxxxxxx
     attachments:
     contacts:
       +49XXXXXXXXXX YYYYY
       +49XXXXXXXXXX ZZZZZ
       +49XXXXXXXXXX CCCCC
       +49XXXXXXXXXX WWWWW
       +49xxxxxxxxxxxxx FHEM-XXXX
Attributes:
   defaultPeer XXXX
  devStateIcon Connected.*to.*49xxxxxxxxxxxxx:control_on_off@green
   group      Gateway
   icon       message_mail
   registerMethod Voice
   room       91_Gateways

Der Fehler sieht übrigens so (schlicht) aus:
Zitat
Unknown recipient XXX
Nach wie vor muss ein "get Signal contacts all" her. Dann geht wieder alles.

Adimarantis

Im "list" kann ich erstmal (außer dass die contacts fehlen) nichts auffälliges entdecken.
Ist jetzt wenigstens das
2022.05.31 10:48:38 1: PERL WARNING: Use of uninitialized value $version in numeric lt (<) at ./FHEM/50_Signalbot.pm line 169.
2022.05.31 10:48:38 1: PERL WARNING: Use of uninitialized value $version in numeric ge (>=) at ./FHEM/50_Signalbot.pm line 177.

weg?

An dieser Stelle wäre ein verbose=5 und der entsprechende Logfile Auszug hilfreich. Muss irgendwas mit dem Ablauf zu tun haben.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

LuGu

Zitat von: Adimarantis am 01 Juni 2022, 07:22:57
Im "list" kann ich erstmal (außer dass die contacts fehlen) nichts auffälliges entdecken.

Aber das ist ja genau das Problem. Nach einem fehm restart hat signal keine contacts mehr. Die muss man erst wieder mit get contacts all reinholen.
Vielleicht liegt es daran, wo die contacts abgelegt werden, so dass sie bei fhem restart verloren gehen?

Gruß LuGu
FHEM mit RPi3 (Visu über FTUI)
HMCCU mit piVCCU3 / MQTT2 mit zigbee2mqtt

Adimarantis

Es ist richtig, dass FHEM die contacts nicht speichert, da diese von signal-cli bereits gespeichert werden.
Beim Neustart sollten diese eigentlich geholt werden, was aber augenscheinlich nicht (mehr) passiert.
Muss ich mir in Ruhe anschauen. Ich hab da einen Verdacht (hatte in den letzten Version was umgebaut).
Ich hatte mich jetzt erstmal auf die Fehlermeldungen fokussiert.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

LuGu

@Adimarantis
Danke, kein Steress. Man hat ja im Moment ein workaround.
Hauptsache das Problem ist erkannt.

Gruß LuGu
FHEM mit RPi3 (Visu über FTUI)
HMCCU mit piVCCU3 / MQTT2 mit zigbee2mqtt

surfi

Hallo zusammen,

ich habe heute versucht eine andere Rufnummer zu registrieren aber scheitere irgendwie immer wieder.

Jedes mal wenn ich den captcha Link einfüge erscheint in fhem die Fehlermeldung "Incorrect captcha - e.g. needs to start with signalcaptcha:// " Er beginnt aber mit signalcaptcha....allerdings sieht der Link nun irgendwie anders aus als gewohnt und beginnt so signalcaptcha://signal-recaptcha-v2.6....

In den Readings steht unter last error "Error in registerWithCaptcha:MismatchedInputException No content to map due to end-of-input
at [Source: (FileInputStream); line: 1, column: 0]"

(Signalbot:3.8 signal-cli:0.9.0 Protocol::DBus:0.19)

Hat irgendjemand eine Idee?

Grüße Thomas


Adimarantis

Zitatbeginnt so signalcaptcha://signal-recaptcha-v2.6....
Interessant. Da hat sich wohl irgendetwas geändert.
Mir fällt auf, dass du auf einer recht alten signal-cli version (0.9.0) bist.
Zumindest 0.9.2 ist auch ohne Java Update möglichlich.
Ich kann das aktuell nicht ausprobieren, aber wenn sich da bei Signal etwas geändert hat, befürchte ich fast, dass eine neuere Version von signal-cli benötigt wird.
Eventuell kannst du auf signal-cli 0.10.5 updaten (braucht halt Java 17) und sehen ob es dort unterstützt wird.
Es gibt inzwischen sogar signal-cli 0.10.7 aber dafür müsste ich erst die libraries übersetzten, also hoffe ich das 0.10.5 damit geht.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)