[TUTORIAL] SMS-Versand über Gladys

Hallo! :slight_smile:

Ich mache diesen kleinen Leitfaden, um euch eine der Möglichkeiten zu zeigen, wie ihr SMS von Gladys aus versenden könnt.

Warum SMS von Gladys versenden?

Gladys ist super und wenn man nicht vor dem Bildschirm sitzt, möchte man Benachrichtigungen haben, um bestimmte Dinge zu überwachen, aber es gibt ein Problem!
Gladys ist von Internet für Fernbenachrichtigungen abhängig!

Ein kleines Problem, das wir mit SMS lösen können :smiley:

========
Voraussetzungen

  • PC / VM mit einer Linux-Distribution (Debian buster (10) wird für die Installation am einfachsten sein)
  • Raspisms: Eine kostenlose und kostenlose Software, die ursprünglich für Raspberry PIs erstellt wurde, jetzt aber mit den meisten Linux-Distributionen kompatibel ist.
  • Ein USB-GSM-Stick, der mit Gammu kompatibel ist (Kompatibilitätsliste Base de connaissances Gammu)
    Ich verwende persönlich den « Huawei E8372 »
  • Eine SIM-Karte natürlich: Die, die Sie wollen, solange sie SMS versenden kann und in den gewählten GSM-Stick passt.

Raspisms hat eine kostenpflichtige Cloud-Version, die Sie von einem GSM-Stick und einer lokalen Installation befreit, aber Sie machen Sie von einer Internetverbindung abhängig.

PC / VM

Sie können entweder einen PC / Mini-PC haben, der Ihrem SMS-Server gewidmet ist, oder das verwenden, was Sie für Gladys verwenden.
*/!* Für VMs müssen Sie in der Lage sein, ein USB-Gerät an die VM anzuschließen (ich zeige diesen Teil nicht im Tutorial)

Raspisms

Das ist die Software, die uns als Web-Schnittstelle für unser virtuelles Telefon dienen wird, um Kontakte zu verwalten, geplante SMS zu erstellen usw..
Wir werden hauptsächlich die integrierte API verwenden, um Gladys Anweisungen an den GSM-Stick zu geben.

Gammu

Das ist die Software, die es ermöglicht, den GSM-Stick zu konfigurieren und in Raspisms zu verwenden.
Die Konfiguration kann von einem GSM-Stick zum anderen variieren, im Tutorial wird der « Huawei E8372 » verwendet.

========
Installation

Jetzt werden wir mit der Installation aller notwendigen Dinge fortfahren!

Wir beginnen mit Raspisms, Sie finden alle Installationsinformationen auf der offiziellen Website RaspiSMS | Téléchargement

Die Dokumentation umfasst auch die Installation von Gammu

/!\ Standardmäßig wird Raspisms auf Port 80 konfiguriert, wenn er bereits auf Ihrer Maschine verwendet wird, erhalten Sie einen Fehler am Ende der Installation, aber keine Panik!

Sie müssen den Apache-Port ändern:
nano /etc/apache2/ports.conf

Sie ersetzen den Port 80 durch einen freien, ich habe zum Beispiel 8080 verwendet, und Sie speichern.
Sie können Apache neu starten und wir sind fertig.
systemctl start apache2.service

========
Konfiguration des GSM-Sticks

Die Installation ist abgeschlossen, jetzt werden wir unseren GSM-Stick konfigurieren, um mit ihm zu kommunizieren.

Zuerst stecken wir den GSM-Stick in einen unserer USB-Ports :smiley:

In Ihrem Terminal führen Sie den Befehl aus: lsusb
Sie sehen Ihre USB-Geräte:

root@Gladys:~# lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 31b2:0010
Bus 001 Device 004: ID 8087:0a2a Intel Corp.
Bus 001 Device 003: ID 12d1:155e Huawei Technologies Co., Ltd.
Bus 001 Device 002: ID 0658:0200 Sigma Designs, Inc. Aeotec Z-Stick Gen5 (ZW090) - UZB
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Mein Stick ist da
Bus 001 Device 003: ID 12d1:155e Huawei Technologies Co., Ltd.

Wenn Sie denselben wie ich haben, wird der Name am Anfang anders sein, da der Stick standardmäßig im « Web Use »-Modus ist (das heißt, er muss über eine Web-Schnittstelle aktiviert werden, um ihn zu verwenden), was ohne grafische Oberfläche ein Problem darstellt.

Wir müssen also diesen Stick mit dem Befehl in den « Switch »-Modus versetzen:
usb_modeswitch -v 12d1 -p 155e --huawei-alt-mode
« -v » entspricht dem ersten Teil der ID Ihres Sticks und « -p » dem zweiten Teil (die ID erscheint im Ergebnis des Befehls lsusb)

Sobald das erledigt ist, sollten Sie sehen, dass der Name des Sticks, der im Befehl « lsusb » erscheint, leicht unterschiedlich ist, für diejenigen, die denselben wie ich haben: « Huawei Technologies Co., Ltd. »

Wenn Sie den Befehl ausführen:

ls /dev/ttyUSB*

Sollten Sie eine Liste von USB-Ports haben, das Problem ist, dass wir nicht wissen, welchen wir verwenden sollen, und sie sich beim Neustarten des PCs oder beim Ändern des Ports des Sticks ändern können.

Jetzt werden wir den Namen des Ports unseres GSM-Sticks festlegen!

Wir gehen in das Verzeichnis: /etc/udev/rules.d/

cd /etc/udev/rules.d/

Dann erstellen wir eine Datei, die den Befehl zum Festlegen des Namens ausführen wird, den wir wollen:

nano 70-huawei_e8372.rules

Sie setzen den Namen, den Sie wollen, mit der Endung .rules

In dieser Datei setzen wir:

SUBSYSTEM==« tty », ATTRS{idVendor}==« 12d1 », ATTRS{idProduct}==« 155e », ENV{ID_USB_INTERFACE_NUM}==« 00 », SYMLINK+=« sms », RUN+=« /usr/bin/killall -SIGHUP gammu-smsd »

  • ATTRS{idVendor}== (Erster Teil der ID Ihres Sticks)
  • ATTRS{idProduct}== (Zweiter Teil der ID Ihres Sticks)
  • SYMLINK+= (Name des Ports, den Sie haben möchten, « sms » in meinem Fall)

Sobald das erledigt ist, müssen Sie Ihren PC neu starten

Jetzt, nachdem der PC neu gestartet wurde, sollte Ihr GSM-Stick unter dem Namen « sms » in der Liste Ihrer Geräte über den Befehl erscheinen:

ls /dev/

Wir haben die Konfiguration des GSM-Sticks abgeschlossen, ja, das war ein bisschen lang ^^’

========
Konfiguration von Gammu

Jetzt werden wir Gammu konfigurieren, um mit unserem GSM-Stick zu kommunizieren

Sie können entweder die Konfigurationsdatei manuell erstellen oder den Befehl verwenden:

gammu-config

Sie wählen den Speicherort der Datei aus, dann gelangen Sie zu dieser Schnittstelle

Port: Der Port, den wir für unseren GSM-Stick erstellt haben
Verbindung: Sie können die Information in der Gammu-Dokumentation finden Base de connaissances Gammu oder es ausprobieren ^^
Protokolldatei: Wenn Sie die Protokolle irgendwo speichern möchten
Protokollformat: Die Arten von Protokollen, die Sie in der Protokolldatei speichern möchten

Sobald Sie fertig sind, klicken Sie auf « Ok », um zu bestätigen!

Testen des GSM-Sticks

Um zu testen, ob unsere Konfigurationsdatei gut ist, werden wir den Befehl ausführen:
gammu --identify

Wenn Sie die Informationen Ihres Sticks korrekt erhalten, ist das perfekt:

root@Gladys:~# gammu --identify
Gerät: /dev/sms
Hersteller: Huawei
Modell: unknown (E8372h-320)
Firmware: 11.0.2.1(H697SP2C983)
IMEI: 8621470XXXXXXXX
SIM IMSI: 2081501XXXXXXXX

Andernfalls, wenn die Informationen nicht hochgeladen werden, ist der Verbindungstyp in der Konfigurationsdatei nicht der richtige für Ihren Stick.

Führen Sie den Befehl « gammu-config » erneut aus und versuchen Sie einen anderen « Verbindung »-Typ.

Jetzt, wo unser Stick erkannt wird, werden wir versuchen, unsere erste SMS zu versenden!

echo "Testnachricht" | gammu --sendsms TEXT +33770XXXXXX
(Setzen Sie Ihre Nummer nach TEXT ein)

Wenn Sie die SMS nach Ausführung des Befehls erhalten, haben wir die Konfiguration von Gammu abgeschlossen.
Wenn es nicht funktioniert, müssen Sie die Protokolle in der Datei überprüfen, die in der zuvor erstellten Konfiguration angegeben ist.

========
Konfiguration von Raspisms

Es geht los, Raspisms und unseren GSM-Stick zu verbinden :smiley:
Wir treffen uns auf der Webseite von Raspisms über die URL

http://192.168.1.102:8080/raspisms/

Sie ersetzen natürlich die IP durch Ihre.

Um sich anzumelden, benötigen Sie die Logins :wink:
Sie führen den Befehl aus:

cat /usr/share/raspisms/.credentials

Und Sie erhalten Ihre Logins :stuck_out_tongue:

Sobald Sie angemeldet sind, gehen Sie zu « Telefone »

Klicken Sie auf « Telefon hinzufügen »

Telefonname: Was Sie wollen
Telefontyp: Gammu
Konfigurationsdatei: Die Gammu-Datei, die im Schritt « Konfiguration von Gammu » erstellt wurde
PIN-Code: Der PIN-Code Ihrer SIM-Karte, falls sie einen hat. Wenn das Senden von SMS anschließend nicht funktioniert, versuchen Sie die Konfiguration ohne PIN-Code

Dann « Telefon speichern »

Jetzt, da das Telefon in Raspisms deklariert ist, versuchen wir, eine SMS von Raspisms aus zu senden

Dann « Neue SMS erstellen »
Sie müssen dann Ihren Text in « SMS-Text » einfügen und Ihre Telefonnummer in « Zielnummern » angeben.
Zum Schluss → SMS speichern

Wenn Sie es erhalten, ist alles perfekt :slight_smile:

========
Gladys-Konfiguration

Wir kommen zum letzten Schritt und dem, der uns am meisten interessiert!
Wir werden über eine Gladys-Szene SMS senden

Sie müssen eine Aktion « HTTP-Anfrage » erstellen

Methode: POST
URL: http://127.0.0.1:8080/raspisms/api/scheduled/ (Ersetzen Sie die IP und den Port durch Ihre Informationen)
Headers: NAME: X-Api-Key und WERT: Ihr API-Schlüssel

API-Schlüssel abrufen: Auf Raspisms, oben rechts, klicken Sie auf Ihr Konto und dann « Profil ».
In « Meine Daten » klicken Sie auf « Klicken Sie, um den API-Schlüssel anzuzeigen »

Body: Er besteht aus 2 Variablen (text und numbers, die durch ein & getrennt sind)
text=Dies ist eine Testnachricht
numbers=+330770XXXXXX

Was uns ergibt:

text=Dies ist eine Testnachricht&numbers=%2B33770058702

Sie werden feststellen, dass das « + » der Nummer zu einem « %2B » geworden ist, es wird empfohlen, Sonderzeichen im URL-Format zu kodieren.
Sie können diese Website dafür verwenden: https://www.urlencoder.org/

Das war’s, wir haben das Tutorial endlich abgeschlossen!!! :smiley:
Bravo an Sie :wink:

Bonus: Dokumentation der Raspisms-API für weitere Funktionen Utiliser l’API HTTP

Top, danke für den Tutorial, der mir sehr vollständig erscheint!
Ich überlege, eine dedizierte SIM-Karte zu nehmen, um auch bei Stromausfall (USV) oder Internetausfall Nachrichten von Gladys zu erhalten.
Alternativ würde ich mich vertieft mit dem beschäftigen, was Twilio mit seiner API zum Versenden von SMS anbietet:

Der Vorteil einer dedizierten SIM-Karte ist, dass du unabhängig von Internet bist. Falls du externe APIs nutzt und dein Internet ausfällt, verlierst du auch die SMS-Benachrichtigungen.

Mein Ziel war es, elektrisch unabhängig (USV) und auch internetunabhängig durch SMS zu sein :slight_smile:

Danach muss man auch die Kosten für externe APIs oder die GSM-Karte plus SIM-Karte vergleichen.
Ich denke, dass externe APIs auf lange Sicht teurer werden, wenn du viele Benachrichtigungen hast.