SMS-Integration

Hallo!

Ich wollte dir etwas mitteilen. Ich habe mich in Gladys V4 eingearbeitet (die übrigens toll ist, ich kann es kaum erwarten, sie bei mir in Produktion zu setzen), und ich habe damit begonnen, einige Integrationen, die ich in V3 hatte, neu zu schreiben. Eine davon war das Free SMS-Modul, ich glaube nicht, dass es von mir war.. naja..

Also, ich habe darüber nachgedacht, wie man es machen könnte, und mir die Telegram-Integration angesehen. Ich wollte dir also zeigen, was ich am vergangenen Wochenende bei mir geschrieben habe..

Grundsätzlich ist Telegram gut, aber für mich zum Beispiel, wenn ich im Urlaub bin und eine Sicherheitsbenachrichtigung (Einbruch, Feuer..) erhalten möchte und ich kein Internet habe, brauche ich SMS.

Also, als ich die Lib message.sendToUser.js angesehen habe, habe ich gesehen, dass der Aufruf der Telegram-Integration hier hart codiert ist. Ich habe also versucht/eine kleine Änderung in diesem Stil vorgenommen:


// Wir senden die Nachricht an den bevorzugten Dienst
  const smsService = this.service.getService('sms');
  const telegramService = this.service.getService('telegram');
  try{
    // versuchen, per SMS zu senden
    await smsService.message.send(user.id, messageCreated);
  }catch(err) {
    // es könnte scheitern, weil der Dienst nicht existiert oder nicht konfiguriert ist
    // wenn der Dienst existiert und der Benutzer Telegram konfiguriert hat
    if (telegramService && user.telegram_user_id) {
    // Wir senden die Nachricht an den Telegram-Dienst
      await telegramService.message.send(user.telegram_user_id, messageCreated);
    }

(man könnte auch per SMS UND per Telegram senden..)

Und ich habe eine SMS-Integration geschrieben.
Da ich keine spezifische FreeSms-Integration für Free (und dann eine für Orange.. usw.) machen wollte, habe ich etwas entwickelt, das langfristig mehrere Anbieter verwalten kann, wobei der Benutzer sein Land und seinen Anbieter auswählen muss.

Natürlich habe ich nichts an der Diskussion mit Gladys geändert, da SMS dies nicht zulässt.

Ich wollte deine Meinung hören, ob du nicht schon an einer anderen Methode gedacht hast..
Ich werde meinen Code so schnell wie möglich in meinem Branch pushen, und wenn du einen Blick darauf werfen möchtest .. :wink:

Edit: mein Branch GitHub - Jean-PhilippeD/Gladys at sms · GitHub

Hallo!

Cool! Das freut mich! :slight_smile:

Toll! :slight_smile:

Tatsächlich, da die Telegram-Integration bisher die einzige war, habe ich das Verhalten hart codiert.

In deinem Fall, wenn ich das richtig verstehe, möchtest du eine SMS nur in sehr speziellen Fällen erhalten, oder?

In diesem Fall, warum nicht einfach eine SMS-Integration haben, die eine Aktion in den Szenen „SMS senden“ hat (eine Aktion, die sich von der Aktion „Nachricht senden“ unterscheidet)?

Das würde es ermöglichen, ein spezielles Verhalten für SMS nur in den Fällen zu haben, in denen der Benutzer eine SMS erhalten möchte, oder?

Ich denke, der Fall der SMS ist ziemlich unterschiedlich zum Use-Case von Telegram, das eine bidirektionale Kommunikation ist, während SMS wirklich nur für Alerts gedacht ist.

Was denkst du?

PS: Stört es dich, wenn ich diesen Beitrag öffentlich mache? Ich denke, es ist immer besser, wenn Diskussionen öffentlich sind und andere Entwickler eingreifen können. Ich bin nicht der einzige Maintainer. :smiley:

Kein Problem, es öffentlich zu machen.

Was meinen Bedarf angeht, wäre es interessant, eine Option SMS senden hinzuzufügen, ABER nicht immer optimal.

Genau in meinem Fall hat meine Frau einen Free-Account, also möchte ich, dass sie eine SMS erhält, ich bin bei Orange, und ich habe keine/keine API mehr, um eine SMS zu erhalten, also möchte ich eine Telegram-Benachrichtigung erhalten (das ist das Verhalten auf meiner aktuellen V3).

Ah.. oder hätte ich SMS an Benutzer XXX senden + Nachricht an Benutzer YYY senden? Würde das funktionieren?

Genau :slight_smile: Da jeder unterschiedliche Bedürfnisse hat, geht es darum, etwas Superflexibles zu erstellen.

Das ist erledigt und auf meinem Branch gepusht.

Wie sieht’s mit deiner Integration aus? Läuft alles gut? :slight_smile:

Zögere nicht, deine PR zu erstellen, wenn du bereit bist, und mich für eine Code-Rezension zu taggen!

Ja, das funktioniert, ich muss die Tests vorher schreiben.

Hallo @Jean-Philippe,

Ich bin sehr an deiner SMS-Integration interessiert, aus denselben Gründen wie du.
Ich richte eine Hausalarmanlage ein und möchte bei einem Einbruch eine SMS senden.
Wird sie bald verfügbar sein?
Vielen Dank.

Hallo,

Aktuell unterstützt es nur Free.
Es funktioniert, aber ich hatte keine Zeit, die Tests zu schreiben oder einen Pull Request zu erstellen.

Dafür fehlt mir die Zeit :frowning:

Danke @Jean-Philippe. Lass mich wissen, falls etwas ist.

Hallo,

genau das hätte ich auch gebraucht :slight_smile:

Aktuell schaffe ich es mit der kostenlosen API, mir Nachrichten zu senden, indem ich die Adresse https://smsapi.free-mobile.fr/sendmsg?user=XXX&pass=YYY&msg=ZZZ verwende.
Aber es wäre toll, ein kleines Modul zum Senden einer SMS zu haben!

Ich hoffe, du findest die Zeit, es zu finalisieren…

Ach Mist, das habe ich nicht gesehen.
Ich wollte mich heute Abend darum kümmern und habe angefangen, einen Freesms-Dienst zu erstellen: MAJ page : Développement sous Windows

@Jean-Philippe: Deiner scheint generischer und daher vorzuziehen. Falls du keine Zeit hast, kann ich ihn gerne ergänzen/testen und den Pull Request einreichen, wenn du einverstanden bist :slight_smile:

Hallo,

Kein Problem, dass du die Arbeit am SMS-Dienst übernimmst, den ich angefangen habe zu schreiben. Derzeit habe ich überhaupt keine Zeit, an Gladys zu arbeiten :frowning:

Danke, Jean-Philippe!
Sobald ich es geschafft habe, eine funktionierende Entwicklungsumgebung einzurichten, kümmere ich mich darum und halte dich auf dem Laufenden :wink: