Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] JS sicherstellen, dass Telegram Nachricht gesendet hat

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] JS sicherstellen, dass Telegram Nachricht gesendet hat

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      TramMcK last edited by

      Hallo zusammen,

      ich verfolge das Projekt ioBroker schon länger und bin wirklich begeistert, was hier auf die Beine gestellt wurde.

      Nun zu meiner Frage:

      Wie kann ich in einem JS-Skript sicherstellen, dass Code nur weiter ausgeführt wird, wenn Telegram "richtig" gearbeitet hat (Adapter hat gesendet)?

      Oder auch andersrum: Wie kann ich einen möglichen Fehler von Telegram in JS abfangen?

      Vielen Dank,

      Tram

      1 Reply Last reply Reply Quote 0
      • apollon77
        apollon77 last edited by

        Hi,

        Telegram sendest DU per einer Message die Du an den Telegram Adapter sendest.

        sendTo('telegram', {user: 'UserName', text: 'Test message'}, function (res) {
            console.log('Sent to ' + res + ' users');
        });
        

        Der Callback wird mit einem "res" Parameter aufgerufen.

        Jetzt müsste man mal schauen was da zurückkommt wenn Es nicht gesendet werden kann … wenn 0 dann cool wenn ne andere Zahl dann blöd 😞

        Kannst ja mal experimentieren. Die Ergebnisse sind bestimmt interessant

        1 Reply Last reply Reply Quote 0
        • T
          TramMcK last edited by

          Danke für die flotte Antwort.

          sendTo hatte ich eingebaut, mir fehlte ein Callback zum Auswerten.

          Hatte zwar auf Github mir den Adapter angesehen, hab den Wald aber vor lauter Bäumen nicht gesehen…

          Hintergrund: Es soll eine tägliche Meldung abgesetzt werden. Wenn die Meldung abgesetzt wurde, dann Variablen auf 0. Leider hatte ich von gestern auf heute das Problem, dass Telegram nichts angezeigt hat, aber die Variablen zurückgesetzt wurden.

          Werde ich heute Abend gleich mal einbauen und schauen, was passiert.

          Bist du sicher, dass 0 der Callbackwert für Okay ist? Liest sich eher so, dass er die Anzahl der Empfänger zurückgibt...

          1 Reply Last reply Reply Quote 0
          • apollon77
            apollon77 last edited by

            habe nicht geschrieben das 0 für OK steht 🙂

            Die Frage die man rausfinden müsste ist ob die Zahl anders ist in Erfolgs vs Fehlerfall. Baue es doch mal ein und Logge es, dann siehst Du ob die Zahl ne andere ist und damit weisst Du ob das reicht 🙂

            1 Reply Last reply Reply Quote 0
            • T
              TramMcK last edited by

              Dann hatte ich dich falsch verstanden.

              Aber egal, was ich an Telegram sende, bekomme ich keinen Callbackwert. Nachricht geht durch, die Callbackfunction liefert aber nichts…

              1 Reply Last reply Reply Quote 0
              • T
                TramMcK last edited by

                Wenn ich nur den folgenden Code als Skript unter Common laufen lasse, bekomme ich eine Nachricht auf Telegram aber keine Ausgabe im Log.

                sendTo('telegram', 'Test message', 
                    function(res) {
                        log('Testeintrag!');
                        log('------------------------' + res);
                    }
                );
                

                Woran kann das liegen?

                1 Reply Last reply Reply Quote 0
                • F
                  Fitti last edited by

                  Bei mir funktioniert das bestens.

                  Gebe mal folgenden Code unverändert in einem neuen Skript ein:

                  sendTo('telegram.0', {
                        text:   'Kannst Du das lesen?'}, function (err) {
                            console.log('Fehlercode: ' + err );
                        });
                  
                  

                  Dann starte das Skript und schaue unten auf die Log-Ausgabe (Du musst auch nichts weiter aktivieren, wie z. B. die Debug oder Hilfeausgabe).

                  Bei mir kommt dann sofort:
                  ` > 20:37:27.948 [info] javascript.1 script.js._Test.TelegramTest: registered 0 subscriptions and 0 schedules

                  20:37:27.957 [info] javascript.1 script.js._Test.TelegramTest: Fehlercode: 0 `
                  Wenn Du die erste Zeile auch nicht siehst mit dem subscription, dann machst Du vermutlich noch irgendwo was falsch.

                  Kommt das Telegram bei Dir an?

                  Es gibt noch eine zweite Möglichkeit:

                  Schaue auf die SentMessageID, ob diese sich ändert.

                  Diese findest Du unter telegram.0.communicate.botSendMessageId

                  Nachdem ich eine Nachricht verschicke, ändert diese sich immer.

                  So long,

                  Fitti

                  1 Reply Last reply Reply Quote 0
                  • T
                    TramMcK last edited by

                    Danke dir.

                    Auf deine Frage: Message über Telegram kam an.

                    Habe den Fehler gefunden:

                    SendTo in meinem Beispiel oben versendet zwar die Nachricht, braucht aber für den Callback anscheinend die Instanznummer, um zu funktionieren.

                    sendTo('telegram.0', 'Test message', 
                    ````funktioniert jetzt und ich bekomme eine Antwort.
                    
                    Danke,
                    
                    Tram
                    1 Reply Last reply Reply Quote 0
                    • F
                      Fitti last edited by

                      Ist es damit deine Frage gelöst?

                      1 Reply Last reply Reply Quote 0
                      • T
                        TramMcK last edited by

                        Ja. Vielen Dank.

                        1 Reply Last reply Reply Quote 0
                        • Jeeper.at
                          Jeeper.at last edited by

                          Dann bitte dem Threadtitel ein [gelöst] voranstellen. Vielen Dank.

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          527
                          Online

                          31.9k
                          Users

                          80.2k
                          Topics

                          1.3m
                          Posts

                          4
                          11
                          558
                          Loading More Posts
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes
                          Reply
                          • Reply as topic
                          Log in to reply
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                          The ioBroker Community 2014-2023
                          logo