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

MarcoE

Hallo,
Zitat von: Adimarantis am 22 März 2021, 18:12:11
Beta release ist hier: https://forum.fhem.de/index.php/topic,118370.msg1136873.html#msg1136873
Sobald ich dazu komme es endgültig zu releasen, kommt die in den ersten Post.

Das Script hat eine Option "name" mit der man von dort den Namen setzen kann.

Danke! Habe nun auf die beta umgestellt. Jetzt im Moment funktioniert es- ich hoffe es bleibt so.

Viele Grüße
Marco

Nighthawk

Hallo Joerg,

leider bekomme ich keinen Hacken an das Problem.
Vor der Umstellung auf Beta 2 und 0.8.1 hat Signalbot klaglos seinen Dienst verrichtet.
Ich würde gerne testen ob es tatsächlich an der Umstellung liegt und nicht an einer potentiell veränderten Netzwerkstruktur.
Was müsste ich genau tun (neben dem zurückkopieren der 50_Signalbot.pm) um auf NET::DBUS zurückzukehren ?

Gruß
Alex

Adimarantis

Hi Alex,

der Fehler liegt eindeutig auf der Ebene signal-cli/signal - wenn Signalbot oder das Net::DBus/Protocol::Dbus schon ein Problem hätte, würdest du nichts im syslog finden.
Ich kann jetzt nur vaage vermuten, dass irgendwas mit der Registrierung nicht stimmt.
Eventuell mal komplett den Inhalt von /var/lib/signal-cli löschen und mit dem Installer die Nummer neu registrieren.

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

Nighthawk

Hallo Jörg,

eine falsche, oder defekte Registrierung würde doch dazu führen dass es gar nicht funktioniert, in meinem Fall funktioniert es immer mal wieder für einige Stunden und dann wieder nicht.
Ich fürchte das wird an der "brutalen" NAT liegen hinter der ich sitze, leider habe ich auf diese absolut keinen Einfluss :-(


Gruß
Alex

kaufi88

Zitat von: Adimarantis am 03 März 2021, 12:25:26
Das besorgt mich jetzt nicht sehr, aber vielleicht kannst du die mal irgendwo hochladen, damit ich die vergleichen (oder sogar mal auf meinem Testsystem einspielen) kann. Bisher sehe ich nicht warum es nicht funktionieren sollte.

Jörg

Hallo Jörg,
ich hatte die letzten Tagen viel um die Ohren und konnte jetzt die Feiertage nutzen.
Heute habe ich dann die neuste Version von Dir installiert, habe auch gesehen dass er Singal-CLI 0.81 herunterladen hat.
Jedoch habe ich das selbige Problem.
Die Datei zkgroup-java-0.7.0.jar wurde auch angefasst. Du findest diese hier: http://www.intespa.de/zkgroup-java-0.7.0.jar

Hier noch die Ausgabe vom Install-Skript:

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.1
System library path:          /usr/lib
Phone number to be used:      +49xxxx
You seem to be on a Raspberry pi with armv7l
This will update system packages, install signal-cli and help to register with Signal service
[....]
Checking for /usr/lib...found
Checking for /etc/dbus-1...found
Checking for /etc/dbus-1/system.d...found
Checking for /usr/share/dbus-1...found
Checking for /usr/share/dbus-1/system-services...found
Checking for /etc/systemd/system...found
Checking for /run/dbus...found
Checking for apt-ftparchive...available
Checking for wget...available
Checking for sudo...available
Checking for haveged...available
Checking for java...available
Checking for diff...available
Checking for dbus-send...available
Checking for cpan...available
Checking for qrencode...available
Checking for zip...available
Checking for /usr/include/dbus-1.0/dbus/dbus.h...available
Checking for /usr/share/build-essential/essential-packages-list...available
Checking for /usr/share/doc/libimage-librsvg-perl...available
Checking for Protocol::DBus...V0.16 found
Checking user signal-cli ...found
Checking for /opt...found
Checking for /var/lib/signal-cli...found
Checking for existing signal-cli installation...found
Checking signal-cli version...signal-cli 0.8.0
Update to current version (y/N)? y
Proceed with signal cli installation
Downloading signal-cli 0.8.1...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
Checking for /etc/dbus-1/system.d/org.asamk.Signal.conf...found
Checking for /usr/share/dbus-1/system-services/org.asamk.Signal.service...found
Checking for /etc/systemd/system/signal.service...found
11c11
< ExecStart=/opt/signal/bin/signal-cli --config /var/lib/signal-cli -u "+49zzzzzzzzz" daemon --system
---
> ExecStart=/opt/signal/bin/signal-cli --config /var/lib/signal-cli -u "+49xxxx" daemon --system
/etc/systemd/system/signal.service differs, update (Y/n)?
n
/etc/systemd/system/signal.service left untouched
You already seem to have a device configured, add +49xxxx additionally?
Continue (y) or skip (N)?N
Please enter the number (+49...) of somebody that you can send a test message to
Number:+49174yyyyyyyyyyyyy
Sending a message from command line to +49174yyyyyyyyyyyyyyy
Stopping signal-cli service
If you get a 'in use, waiting' message, skip by pressing CTRL-C - this is normal when system service is already up and running
WARN App - WARNING: Support for new group V2 is disabled, because the required native library dependency is missing: libzkgroup
Invalid username (phone number), make sure you include the country code.
Start signal-cli service
Sending a message via dbus-send command
method return time=1617526008.746986 sender=:1.2620 -> destination=:1.2621 serial=5 reply_serial=2
   int64 1617526007446
Sending a message via perl Protocol::DBus
Message received
If the recipient got all three messages, your setup looks healthy and you're ready to go to set up Signalbot in FHEM
pi@raspberrypi:/tmp $ cd /opt/signal/lib

Folgende Datei habe ich Dir hochgeladen:
pi@raspberrypi:/tmp $ sudo find / -name zkgroup-java-*.jar 2>/dev/null
/opt/signal/lib/zkgroup-java-0.7.0.jar

Viele Grüße & Danke
Kaufi

Adimarantis

Hi Kaufi,

Inhaltlich ist dein .jar mit meinem identisch. Seltsamerweise stimmt die Dateigröße des komprimierten .jar nicht überein, was jetzt aber nicht unbedingt was heißen muss. (evtl. verhält sich ja "zip" beim re-pack nicht deterministisch)
Ich hänge mal meine Version an. Probiere die mal aus.

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)

kaufi88

Zitat von: Adimarantis am 04 April 2021, 21:01:27
Hi Kaufi,

Inhaltlich ist dein .jar mit meinem identisch. Seltsamerweise stimmt die Dateigröße des komprimierten .jar nicht überein, was jetzt aber nicht unbedingt was heißen muss. (evtl. verhält sich ja "zip" beim re-pack nicht deterministisch)
Ich hänge mal meine Version an. Probiere die mal aus.

Gruß,
Jörg

Hallo Jörg,
vielen Dank für Dein File.
Hat leider auch nicht zum Erfolg geführt.
Kann es evtl. an der Java-Version liegen?

Diese hier hab ich installiert:
pi@raspberrypi:/tmp $ java -version
openjdk version "11.0.3" 2019-04-16 LTS
OpenJDK Runtime Environment Zulu11.31+16-CA (build 11.0.3+7-LTS)
OpenJDK Client VM Zulu11.31+16-CA (build 11.0.3+7-LTS, mixed mode)


Grüße
Kaufi

Adimarantis

Hi Kaufi,

kann natürlich grundsätzlich an Java liegen. Bei mir ist folgendes installiert:
pi@raspberrypi4:~ $ java --version
openjdk 11.0.9.1 2020-11-04
OpenJDK Runtime Environment (build 11.0.9.1+1-post-Raspbian-1deb10u2)
OpenJDK Server VM (build 11.0.9.1+1-post-Raspbian-1deb10u2, mixed mode)


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

Adimarantis

Ich habe jetzt das Wiki entsprechend der V2 überarbeitet: https://wiki.fhem.de/wiki/Signalbot
Verbesserungsvorschläge willkommen (oder wer Schreibrechte hat, darf kleine Korrekturen gerne selbst vornehmen).

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

Jamo

Hi Jörg,
fhem stürzt reproduzierbar wegen Signal bei mir ab, mit folgendem Eintrag im Log (verbose 5):
Ich hatte mal Babble benutzt, habe aber babble bei mir vor 2 Tagen wieder gelöscht. Die attribute im Signal hatte ich aber stehen lassen, liegts daran?
Dann müsste evtl noch ein check rein, ob es das babble device wirklich gibt, falls die Attribute gesetzt sind.

PS: Nach Löschen der babble attribute stürzt fhem nicht mehr ab, also lag es daran.

2021.04.08 09:38:57 5: Starting notify loop for Signal, 1 event(s), first is msgText: L
2021.04.08 09:38:57 5: BatterieWechsel: not on any display, ignoring notify
2021.04.08 09:38:57 5: Batteriestatus: not on any display, ignoring notify
2021.04.08 09:38:57 5: Triggering Signal_n
2021.04.08 09:38:57 4: Signal_n exec {mySignal_n($NAME,$EVENT)}
2021.04.08 09:38:57 5: Cmd: >{mySignal_n($NAME,$EVENT)}<
2021.04.08 09:38:57 3: [mySignal_n] N=Signal, E=msgText: L, input=l, sender=+4915123456789, words=1
2021.04.08 09:38:57 5: Cmd: >set Signal send @+4915123456789 Usage: \"Cxx 2FAToken\"<
2021.04.08 09:38:57 5: End notify loop for Signal
Undefined subroutine &main::Babble_DoIt called at ./FHEM/50_Signalbot.pm line 565.
2021.04.08 09:38:57 0: SONOS0: Das Lauschen auf der Schnittstelle wurde beendet. Prozess endet nun auch...
2021.04.08 09:40:28 1: Including fhem.cfg


List:
Internals:
   FD         54
   NAME       Signal
   NOTIFYDEV  global
   NR         3290
   NTFY_ORDER 50-Signal
   STATE      Connected
   TYPE       Signalbot
   VERSION    Signalbot:2.1 signal-cli:0.8.1 Protocol::DBus:0.16
   READINGS:
     2021-03-04 18:13:01   joinedGroups   
     2021-04-08 09:40:40   lastError       Error in getContactName:Error Executing Method org.asamk.Signal.getContactName: null
     2021-03-23 12:55:52   msgAttachment   
     2021-03-23 12:55:52   msgAuth         0
     2021-03-23 12:55:52   msgGroupName   
     2021-03-23 12:55:52   msgSender       Hans Jamo
     2021-03-23 12:55:52   msgText         RR123456789DE
     2021-03-23 12:55:52   msgTimestamp    23-03-2021 12:55:50
     2021-03-23 12:55:52   prevMsgAttachment
     2021-03-23 12:55:52   prevMsgGroupName
     2021-03-23 12:55:52   prevMsgSender   Hans Jamo
     2021-03-23 12:55:52   prevMsgText     C02
     2021-03-23 12:55:52   prevMsgTimestamp 14-03-2021 21:58:20
     2021-04-02 11:43:52   sentMsg         wall_e: Docked
     2021-04-05 20:15:07   sentMsgRecipient Hans Jamo
     2021-04-05 20:15:07   sentMsgTimestamp 02-04-2021 11:43:52
   helper:
     init       :1.6445
     signalpath /org/asamk/Signal
     version    801
     contacts:
       +4915123456789  Hans Jamo
Attributes:
   allowedPeer +4915123456789
   babbleDev  Babble
   babbleExclude ^p$|^P$|^c|^C
   babblePeer +4915123456789
   defaultPeer +4915123456789
   doLog      1
   event-on-update-reading msgText
   room       Messages
   userattr   doLog:0,1
   verbose    0
   webCmd     reconnect

Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Adimarantis

Hi Jamo,

Zitat von: Jamo am 08 April 2021, 09:44:09
Dann müsste evtl noch ein check rein, ob es das babble device wirklich gibt, falls die Attribute gesetzt sind.

PS: Nach Löschen der babble attribute stürzt fhem nicht mehr ab, also lag es daran.

ja, das ist nachvollziehbar. Perl mag das gar nicht wenn man eine nicht-existierende Funktion aufruft.
Check habe ich eingefügt, aber da das eher ein "corner case" ist, werde ich erstmal weitere Änderungen aufsammeln bevor ich ein Update poste.

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

Deekay2000

Ich habe gerade auf die neueste Version aktualisiert (Austausch des Moduls). Nach dem FHEM-Neustart wurde ich aufgefordert, Protocol::Dbus zu installieren, was ich dann mit cpan install Protocol::DBus gemacht habe. Die Funktionalität ist weiterhin gegeben, allerdings habe ich nun folgenden Fehler in den Device Readings:

lastError: Error in version:The method `org.asamk.Signal.version' does not exist on this object.

Sobald ich z. B. ein "get contacts all" eingebe, erscheint ein Popup: Signal-cli 0.8.1+ required for this functionality.

Das Versenden von Nachrichten funktioniert aber weiterhin. Habe ich etwas falsch gemacht, oder ist das eventuell ein Bug in der neuesten Version?

Viele Grüße,
Daniel

Adimarantis

Hast du auch den aktuellen Installer laufen lassen um signal-cli zu updaten?

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

Deekay2000

Stimmt, das habe ich glatt vergessen - ich hatte die FHEM-Instant komplett aktualisiert und dabei "mal eben" das Modul aktualisiert. Ich habe jetzt den aktuellen Installer heruntergeladen und die Funktionen "system" und "install" genutzt. Danach wurde die Meldung in FHEM nicht mehr angezeigt. Meine bestehende Config wurde vom Installer einwandfrei übernommen.  :D

Viele Grüße,
Daniel

dkreutz

Erst einmal ein großes Danke für die Entwicklung dieses Moduls!

Ich hatte Schwierigkeiten bei Installation auf einem RPI3 mit Raspbian/Debian "Stretch" (ja ich weiß, das ist nicht mehr aktuell):
Die signal-cli Installation mit dem Installationsskript signal_install.sh hat nicht vollständig funktioniert. Ich habe mir letztendlich damit geholfen, dass ich von https://github.com/DutchForeigner/signal-cli_rpi das für den RPI fertig gebaute Signal-cli v0.8.1 (zkgroup-java-0.7.1.jar ist bereits integriert) über die fehlgeschlagene Installation kopiert habe. Vielleicht ist das für das Installationsskript interessant?
Raspberry Pi3B+ (Bullseye) / JeeLink868v3c (LaCrosse), nanoCUL433 (a-culfw V1.24.02), HM-MOD-UART (1.4.1), TEK603, MapleCUL / diverse Sensoren/Sender/Aktoren von Technoline, Intertechno, Shelly, Homematic und MAX!, Froggit Wetterstation, Luftdaten.info / Autor des fhem-skill für Mycroft.ai