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

mbruehl

Nur der Vollständigkeit halber:
Ich habe hier https://github.com/agileek/hassio-addons/tree/master/signal/root/ext/libraries/libsignal-client/v0.20.0  noch jemanden gefunden der die Libs bereitstellt - die am64 Version geht auf meinen armbian (aarch64) ...
FHEM 5.6 auf Banapi mit SSD
HM-Lan mit vielen HM-Devices für Licht/Rolladen/Heizung
VDR und XBMC mit FHEM Anbindung, Denon AVR und Logitec Harmony Hub im Dachboden

Kohle77

Hi,
ok kannst du mir auch sagen was man damit macht?

Danke
Christian

Adimarantis

Die Frage ist mit welcher glibc das gebaut ist. Wahrscheinlich mit 2.31, was auch bei der bullseye Variante von kroman der Fall sein dürfte.
Da aber "buster" auf 2.28 ist, vermute ich, dass diese libraries nicht funktionieren.
@Kohle77: Ich kann den Installer zwar dafür anpassen, aber ich fürchte das bringt dir nur was, wenn du auf bullseye updatest.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

kroman

Zitat von: Kohle77 am 13 Oktober 2022, 12:35:03
ok kannst du mir auch sagen was man damit macht?

Wenn du das skript verwendest, kann ich dir das nicht sagen.
Ich habe signal-cli manuell installiert, da das skript ja nicht funktioniert hat.

Ich habe die lib an 2 Stellen gebraucht:

1. hier ausgetauscht:

zip -d /opt/fhem/signal-cli/signal-cli-0.11.2/lib/libsignal-client-0.20.0.jar libsignal_jni.so
zip /opt/fhem/signal-cli/signal-cli-0.11.2/lib/libsignal-client-0.20.0.jar libsignal_jni.so


2. und hierhin kopiert wo java sie findet:

sudo cp libsignal_jni.so /usr/lib


Zitat von: Adimarantis am 13 Oktober 2022, 14:01:52
Die Frage ist mit welcher glibc das gebaut ist.

Wenn ich nur wüßte, wie man das nachschaut.

Adimarantis

Ich habe mir die lib von kroman mal angeschaut und laut objdump sind keine Abhängigkeiten >glibc2.28 drin - vielleicht geht das ja.
Anbei eine angepasste Installerversion, die die Library von kroman einbaut.
Außerdem verwendet sie die für aarch64 passende Java Version (bitte /opt/java vor der Installation löschen)

Bitte mal testen ob das funktioniert.

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

Kohle77

Hi,
habe mit:

cd /opt/
sudo rm -r java


das Verzeichnis gelöscht und das neue script vorbereitet (chmod etc.)

Ergebnis:
- Im install log steht nichts was einen Fehler betrifft
- In der SSH Session sehe ich das
ZitatChecking user signal-cli ...found
Downloading Java from adoptium...successful
Unpacking ...done
./new_signal_install.sh: Zeile 309: /opt/java/bin/java: Datei oder Verzeichnis nicht gefunden
./new_signal_install.sh: Zeile 334: /opt/java/bin/java: Datei oder Verzeichnis nicht gefunden
Error: Java  found, but Java 17.0 required
Something went wrong that this script cannot resolved - please fix manually

Gruß
Christian

enno

Moin Jörg,

attr global encoding unicode

bringt mein FHEM zum Erliegen. Da die gesendeten SVG durch Signal die einzigen Probleme bei mir mit Umlauten sind lasse ich es erstmal bei den Standardeinstellungen in "global". Stellt sich mir die Frage, warum plotAsPng mit Signal die Umlaute in SVG zerstückelt und die gleichen SVG als RSS Download richtig angezeigt werden. Gibt es im Modul irgendwo eine Einstellung, mit der ich "rumspielen" kann? @charset "UTF-8"; im CSS bringt nichts.

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC

Adimarantis

Einstellen kannst du da nicht viel.
Man könnte damit rumspielen eine zusätzliche Konvertierung im Modul zu machen.
Zeile 2171:
$svg=plotAsPng($sname,@special);

Danach noch ein
$svg=encode_utf8($svg)
oder
$svg=decode_utf8($svg)
Je nachdem in welche Richtung es "falsch" ist.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Sailor

Hallo Adimrantis

Zitat von: Adimarantis am 13 Oktober 2022, 14:22:11
Anbei eine angepasste Installerversion, die die Library von kroman einbaut.
Bitte mal testen ob das funktioniert.

Habe dieses Installationsscript verwendet und es funzt grandios!

Text senden, Gruppe einrichten habe ich getestet
Durch den Rest muss ich mich noch durchkauen...  ;D

Gruß
    Sailor
******************************
Man wird immer besser...

andies

Zitat von: Adimarantis am 12 Dezember 2021, 09:53:45
sudo service signal stop
sudo -u signal-cli /opt/signal/bin/signal-cli --config /var/lib/signal-cli -u +49<Eigene Nummer> trust -a +49<zu vertrauende Nummer>
sudo service signal start

Hallo Jörg, das klappt bei mir nicht:
Fehler: Beim Laden der Klasse org.asamk.signal.Main ist ein LinkageError aufgetreten
java.lang.UnsupportedClassVersionError: org/asamk/signal/Main has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0

Ich habe schon gelesen, dass anscheinend die Java-Versionen unterschiedlich sind. Ich habe derzeit
java --version
openjdk 17.0.1 2021-10-19 LTS
OpenJDK Runtime Environment (build 17.0.1+12-LTS)
OpenJDK Server VM (build 17.0.1+12-LTS, mixed mode)

sowie
apt list --installed | grep jre

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

default-jre-headless/oldstable,now 2:1.11-71+b1 armhf  [Installiert,automatisch]
default-jre/oldstable,now 2:1.11-71+b1 armhf  [installiert]
openjdk-11-jre-headless/oldstable,now 11.0.16+8-1~deb10u1 armhf  [Installiert,automatisch]
openjdk-11-jre/oldstable,now 11.0.16+8-1~deb10u1 armhf  [Installiert,automatisch]

Anscheinend muss man eine Umgebungsvariable setzen, ich habe etwas von
echo $JAVA_HOME
/home/pi/.sdkman/candidates/java/current

gelesen, kam aber da nicht weiter. Hat jemand eine Idee?
FHEM 6.1 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

Adimarantis

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

Sailor

Ein herzerfrischendes Moin vom "achtern Diek" vorweg

Mal eine blöde Frage

{fhem "set SignalBot send \@Empfaenger Erste Zeile\nZweite Zeile\nDritte Zeile"}

sorgt auf dem Handy ganz brav für:

Erste Zeile
Zweite Zeile
Dritte Zeile

Gibt es noch Codes wie man Fettdruck, Kursiv, Unterstrichen, Durchgestrichen oder gar mittig zentriert hinbekommt?

Die Standard - Verfahren wie
*FETT* = FETT
_Kursiv_ - Kursiv
~Durchgestrichen~ = Durchgestrichen
'''MONO''' = MONO

funktionieren leider nicht.

NACHTRAG: Wer lesen kann ist klar im Vorteil: https://fhem.de/commandref.html#Signalbot Atribute formating




attr SignalBot formatting html
{fhem "set SignalBot send \@Empfaenger <b>Bold</b>\n<u>Underlined</u>\n<s>Strikethrough</s>\n<i>Italic</i>"}


Gruß
    Sailor
******************************
Man wird immer besser...

Sailor

Ein herzerfrischendes Moin vom "achtern Diek" vorweg.

Ich habe mir wiederholt vom Mobiltelefon aus an den SignalBot das Feuer-Emoticon zu gesendet und jedes mal startet sich fhem neu.
Ist das ein Bug oder ein Feature?  :o

Gruß
    Sailor

******************************
Man wird immer besser...

Sailor

Ein herzerfrischendes Moin vom "achtern Diek" vorweg.

Ich habe mir wiederholt vom Mobiltelefon aus an den SignalBot das Feuer-Emoticon zu gesendet und jedes mal startet sich fhem neu.
Ist das ein Bug oder ein Feature?  :o

Kann auch sein, dass dies mit DbLog in Verbindung steht weil es dort das Zeichen nicht mag.
Wide character in subroutine entry at .//FHEM/93_DbLog.pm line 2438.
Ist der letzte Eintrag im Log


Gruß
    Sailor
******************************
Man wird immer besser...

enno

Moin Sailor,

ich bekomme wenn ich :fire: vom Mobile zu FHEM sende nur die Meldung:

PERL WARNING: Wide character in print at fhem.pl line 1641.
PERL WARNING: Wide character in print at ./FHEM/95_Babble.pm line 1254.
weil mein DOIF als letzten Versuch alles was nicht sofort erkannt wird dort hin schickt. Einen Absturz schaffe ich damit aber nicht. Ich habe aber auch kein DBLog im Einsatz.

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC