SiSi: Unterschied zwischen den Versionen
(kat) |
Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
Diese Seite beschreibt, wie man das Signal Messenger Command Line Interface (CLI) unter Raspbian installiert. | Diese Seite beschreibt, wie man das Signal Messenger Command Line Interface (CLI) unter Raspbian installiert. | ||
Wir lassen '''signal-cli''' unter dem Benutzer '''fhem''' laufen, abweichend von der Dokumentation auf GitHub. Das Home-Verzeichnis dieses Users ist bei mir '''/opt/fhem/home'''. Dies muss im Folgenden angepasst werden, wenn Du ein anderes Home-Verzeichnis für den Benutzer '''fhem''' hast. | |||
Was man alles mit dem Signal Messenger CLI machen kann, ist auf der o.g. Github-Seite beschrieben. Sobald ich Signal in FHEM eingebunden habe, wird diese Anleitung erweitert. | |||
== Installation von signal-cli == | |||
Es werden die Pakete '''haveged''' und '''openjdk-9-jre-headless''' benötigt. | Es werden die Pakete '''haveged''' und '''openjdk-9-jre-headless''' benötigt. | ||
Zeile 7: | Zeile 13: | ||
Als nächstes lädt man '''signal-cli-0.6.0.tar.gz''' von https://github.com/AsamK/signal-cli herunter. Im Abschnitt Installation der Beschreibung findet man einen Link zu den Binaries. Zum Zeitpunkt, an dem dieser Text verfasst wurde (12.11.2018) ist die aktuelle Version 0.6.0. Das Archiv wird ins Home-Verzeichnis von FHEM entpackt. | Als nächstes lädt man '''signal-cli-0.6.0.tar.gz''' von https://github.com/AsamK/signal-cli herunter. Im Abschnitt Installation der Beschreibung findet man einen Link zu den Binaries. Zum Zeitpunkt, an dem dieser Text verfasst wurde (12.11.2018) ist die aktuelle Version 0.6.0. Das Archiv wird ins Home-Verzeichnis von FHEM entpackt. | ||
Das folgende wird als Benutzer '''fhem''' ausgeführt, damit die Konfiguration im Home-Verzeichnis von '''fhem''' landet, und zwar in '''/opt/fhem/home/.config/signal'''. | |||
Man registriert man seine Festnetznummer (im Beispiel: +49xxxxxxxxxx) mittels '''signal-cli''' in einer Shell, um davon Signal-Nachrichten zu versenden: | |||
<source lang="bash">signal-cli-0.6.0/bin/signal-cli -u +49xxxxxxxxxx register --voice</source> | <source lang="bash">signal-cli-0.6.0/bin/signal-cli -u +49xxxxxxxxxx register --voice</source> | ||
Zeile 26: | Zeile 34: | ||
Ich hatte das Problem, dass die Sprachanrufe erst mit Stunden oder Tagen Verzögerung kamen (siehe [https://community.signalusers.org/t/call-verification-takes-forever/4479/11 Thread im Signal-Forum]). Dabei handelte es sich um einen vorübergehenden serverseitigen Fehler, der einige Tage bestand. | Ich hatte das Problem, dass die Sprachanrufe erst mit Stunden oder Tagen Verzögerung kamen (siehe [https://community.signalusers.org/t/call-verification-takes-forever/4479/11 Thread im Signal-Forum]). Dabei handelte es sich um einen vorübergehenden serverseitigen Fehler, der einige Tage bestand. | ||
Um bei Updates von '''signal-cli''' nicht die Pfade anpassen zu müssen, kann man noch im Home-Verzeichnis von '''fhem''' einen symbolischen Link anlegen: | |||
<source lang="bash">ln -s signal-cli-0.6.0 signal-cli</source> | |||
== Einrichten der Kommunikation über DBus == | |||
Es werden die Pakete '''libunixsocket-java''', '''dbus''' und '''dbus-x11''' benötigt. | |||
Es müssen als Benutzer '''root''' die folgenden Dateien angelegt werden: | |||
'''/etc/dbus-1/system.d/org.asamk.Signal.conf''' | |||
<pre> | |||
<?xml version="1.0"?> <!--*-nxml-*--> | |||
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" | |||
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> | |||
<busconfig> | |||
<policy user="fhem"> | |||
<allow own="org.asamk.Signal"/> | |||
<allow send_destination="org.asamk.Signal"/> | |||
<allow receive_sender="org.asamk.Signal"/> | |||
</policy> | |||
<policy context="default"> | |||
<allow send_destination="org.asamk.Signal"/> | |||
<allow receive_sender="org.asamk.Signal"/> | |||
</policy> | |||
</busconfig> | |||
</pre> | |||
'''/usr/share/dbus-1/system-services/org.asamk.Signal.service''' | |||
<pre> | |||
[D-BUS Service] | |||
Name=org.asamk.Signal | |||
Exec=/bin/false | |||
SystemdService=dbus-org.asamk.Signal.service | |||
</pre> | |||
'''/etc/systemd/system/signal.service''' | |||
<pre> | |||
[Unit] | |||
Description=Send secure messages to Signal clients | |||
Requires=dbus.socket | |||
After=dbus.socket | |||
Wants=network-online.target | |||
After=network-online.target | |||
[Service] | |||
Type=dbus | |||
Environment="SIGNAL_CLI_OPTS=-Xms2m" | |||
ExecStart=/opt/fhem/signal-cli/bin/signal-cli -u +49xxxxxxxxxx --config /opt/fhem/home/.config/signal daemon --system | |||
User=fhem | |||
BusName=org.asamk.Signal | |||
[Install] | |||
Alias=dbus-org.asamk.Signal.service | |||
</pre> | |||
Aktiviert wird das alles mit | |||
<source lang="bash"> | |||
systemctl daemon-reload | |||
systemctl enable signal.service | |||
systemctl reload dbus.service | |||
</source> | |||
Ob es funktioniert, kann man mit | |||
<source lang="bash">signal-cli/bin/signal-cli --dbus-system send -m "dbus working" +49170zzzzzzzz</source> | |||
austesten. | |||
[[Kategorie:Signal]] | [[Kategorie:Signal]] |
Version vom 24. November 2018, 22:05 Uhr
Diese Seite beschreibt, wie man das Signal Messenger Command Line Interface (CLI) unter Raspbian installiert.
Wir lassen signal-cli unter dem Benutzer fhem laufen, abweichend von der Dokumentation auf GitHub. Das Home-Verzeichnis dieses Users ist bei mir /opt/fhem/home. Dies muss im Folgenden angepasst werden, wenn Du ein anderes Home-Verzeichnis für den Benutzer fhem hast.
Was man alles mit dem Signal Messenger CLI machen kann, ist auf der o.g. Github-Seite beschrieben. Sobald ich Signal in FHEM eingebunden habe, wird diese Anleitung erweitert.
Installation von signal-cli
Es werden die Pakete haveged und openjdk-9-jre-headless benötigt.
haveged dient dazu, genügend Entropie für den Zufallszahlengenerator zu erzeugen. Das Java-9-Runtime-Environment bringt schon die unbeschränkten kryptographischen Funktionen vorkonfiguriert mit, die in älteren Version mühsam nachinstalliert werden müssten. Ältere Java-Versionen müssen zuvor deinstalliert werden.
Als nächstes lädt man signal-cli-0.6.0.tar.gz von https://github.com/AsamK/signal-cli herunter. Im Abschnitt Installation der Beschreibung findet man einen Link zu den Binaries. Zum Zeitpunkt, an dem dieser Text verfasst wurde (12.11.2018) ist die aktuelle Version 0.6.0. Das Archiv wird ins Home-Verzeichnis von FHEM entpackt.
Das folgende wird als Benutzer fhem ausgeführt, damit die Konfiguration im Home-Verzeichnis von fhem landet, und zwar in /opt/fhem/home/.config/signal.
Man registriert man seine Festnetznummer (im Beispiel: +49xxxxxxxxxx) mittels signal-cli in einer Shell, um davon Signal-Nachrichten zu versenden:
signal-cli-0.6.0/bin/signal-cli -u +49xxxxxxxxxx register --voice
Wenn alles in Ordnung ist, erhält man keine Rückmeldung. Wenn es lange dauert, hat man nicht genug Entropie. Kurz darauf erhält man einen Sprachanruf auf Englisch, mit dem einem der sechsstellige Registrierungscode yyyyyy mitgeteilt wird. Um die Registrierung abzuschließen, führt man
signal-cli-0.6.0/bin/signal-cli -u +49xxxxxxxxxx verify yyyyyy
in der Shell aus. Wenn alles in Ordnung ist, erhält man keine Rückmeldung.
Dann kann man Nachrichten an einen Signal Messenger auf dem Mobiltelefon mit der Nummer 49170zzzzzzzz mittels
signal-cli-0.6.0/bin/signal-cli -u +49xxxxxxxxxx send -m "Greetings from FHEM!" +49170zzzzzzzz
senden. Wenn die Schlüssellänge bemängelt wird, hat man nicht die Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files installiert oder konfiguriert. Das sollte bei Java 9 aber nicht vorkommen.
Ich hatte das Problem, dass die Sprachanrufe erst mit Stunden oder Tagen Verzögerung kamen (siehe Thread im Signal-Forum). Dabei handelte es sich um einen vorübergehenden serverseitigen Fehler, der einige Tage bestand.
Um bei Updates von signal-cli nicht die Pfade anpassen zu müssen, kann man noch im Home-Verzeichnis von fhem einen symbolischen Link anlegen:
ln -s signal-cli-0.6.0 signal-cli
Einrichten der Kommunikation über DBus
Es werden die Pakete libunixsocket-java, dbus und dbus-x11 benötigt.
Es müssen als Benutzer root die folgenden Dateien angelegt werden:
/etc/dbus-1/system.d/org.asamk.Signal.conf
<?xml version="1.0"?> <!--*-nxml-*--> <!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> <busconfig> <policy user="fhem"> <allow own="org.asamk.Signal"/> <allow send_destination="org.asamk.Signal"/> <allow receive_sender="org.asamk.Signal"/> </policy> <policy context="default"> <allow send_destination="org.asamk.Signal"/> <allow receive_sender="org.asamk.Signal"/> </policy> </busconfig>
/usr/share/dbus-1/system-services/org.asamk.Signal.service
[D-BUS Service] Name=org.asamk.Signal Exec=/bin/false SystemdService=dbus-org.asamk.Signal.service
/etc/systemd/system/signal.service
[Unit] Description=Send secure messages to Signal clients Requires=dbus.socket After=dbus.socket Wants=network-online.target After=network-online.target [Service] Type=dbus Environment="SIGNAL_CLI_OPTS=-Xms2m" ExecStart=/opt/fhem/signal-cli/bin/signal-cli -u +49xxxxxxxxxx --config /opt/fhem/home/.config/signal daemon --system User=fhem BusName=org.asamk.Signal [Install] Alias=dbus-org.asamk.Signal.service
Aktiviert wird das alles mit
systemctl daemon-reload
systemctl enable signal.service
systemctl reload dbus.service
Ob es funktioniert, kann man mit
signal-cli/bin/signal-cli --dbus-system send -m "dbus working" +49170zzzzzzzz
austesten.