Hier möchte ich euch meinen Lösungsansatz zeigen, um über Scripts in ioBroker Nachrichten an den Signal Messenger zu senden.
Ziel: Signal Messages mittels dem ioBroker exec Befehl über das Kommandozeilentool signal-cli versenden
- Vorbereitung (Java wird benötigt)
sudo apt install openjdk-13-jre-headless
- Downloaden und Installieren
cd /home/iobroker/
sudo wget https://github.com/AsamK/signal-cli/releases/download/v0.6.7/signal-cli-0.6.7.tar.gz
sudo tar -xvf signal-cli-0.6.7.tar.gz
- Besitzer ändern (iobroker führt exec Befehle als Linux user iobroker aus.
sudo chown -R iobroker:iobroker ./signal-cli-0.6.7/
cd ./signal-cli-0.6.7/bin/
- Rufnummer registrieren. Es gibt 2 Möglichkeiten: SMS (Standard) oder Anruf (falls man eine VOIP Hausnummer verwenden möchte. Bei Angabe --voice erhält man wenige Sekunden später einen Anruf an die angegebene Nummer mit einer automatischen Computeransage eines 7-stelligen numerischen Aktivierungscodes auf Englisch. (P.s. der Code wird nochmal wiederholt)
SMS: sudo -u iobroker ./signal-cli -u +49111 register
VOICE: sudo -u iobroker ./signal-cli -u +49111 register --voice
- Signalnummer mit dem erhaltenen CODE aktivieren
sudo -u iobroker ./signal-cli -u +49111 verify CODE
Bemerkung: Falls sich jemand fragt warum ich alle Befehle als sudo -u iobroker ausführe: bei der Verifizierung der Signalnummer werden die Einstellungen im Homeverzeichnis des Benutzers gespeichert, der den Befehl ausführt. Sollte man als sudo die Verifizierung ausführen und später als iobroker eine Nachricht versenden wollen, antwortet das Signal-Skript mit „User is not registered“. Die Verifizierungsdaten werden dabei im HOME-Verzeichnis des Benutzers unter
.local/share/signal-cli gespeichert. Ein nachträgliches Verschieben der Daten in das Verzeichnis des iobroker Benutzers ist ebenso möglich. Das Ändern des Besitzerusers (chown) dabei nicht vergessen.
- Testen:
Sendernummer und Empfängernummer mit Ländervorwahl im Format +491111 eintragen
sudo -u iobroker ./signal-cli -u SENDERNUMMER send -m „Testtext“ EMPFÄNGERNUMMER
-
Exec Befehl unter INSTANZEN – Javascript -> Einstellungen freischalten
-
Nachrichten versenden in Blockly/Javascript mittels Exec Befehl testen
/home/iobroker/signal-cli-0.6.7/bin/signal-cli -u SENDERNR send -m “Mein Testtext” EMPFÄNGERNR
Bemerkung: Gebt den kompletten Pfad zum Script an und da die Javascript Instanz alle exec Befehle als User iobroker ausführt, OHNE sudo -u iobroker.
Als Erfolgs/Fehlersuche könnt Ihr euch 2 Variablen error und result anlegen. Geht der Befehl problemlos durch bekommt Ihr als result eine ca. 13-stellige Nummer zurück. Habt Ihr einen Fehler bleibt result leer und error wird gefüllt.