Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst]Über Telegram Button ein Cron Script ausführen

    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]Über Telegram Button ein Cron Script ausführen

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

      Hi,

      ich führe einmal zweimal täglich folgendes Skript aus:

      schedule("25 7,19 * * *", function () {
          var tgmsg = '';
          const dps = $('javascript.0.isopen.*');
          dps.each(function(id, i) {
              var desc = getObject(id).common.desc;
              tgmsg = tgmsg + 'Der Sensor '+ desc +' ist offen.\n';
          });
      	sendTo('telegram.0',  tgmsg);
      });
      

      Wie kann ich das Skript zusätzlich auf Anforderung ausführen, wenn ich einen Telegram Adapter Button anwähle?

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

        Die anonyme Funktion in eine Funktion mit Namen packen und zusätzlich per Trigger auf den Telegram Button aufrufen.

        Etwa so:

        const idButton = '...';
        
        function sendeOffen() {
            var tgmsg = '';
            const dps = $('javascript.0.isopen.*');
            dps.each(function(id, i) {
                var desc = getObject(id).common.desc;
                tgmsg = tgmsg + 'Der Sensor '+ desc +' ist offen.\n';
            });
            sendTo('telegram.0',  tgmsg);
        }
        
        schedule("25 7,19 * * *", sendeOffen);
        
        on({id: idButton}, sendeOffen);
        
        
        1 Reply Last reply Reply Quote 0
        • M
          Mitch last edited by

          Hi,

          ich habe mein Skript so angepasst (nur die 1. Zeile angepasst):

          const idButton = 'Sensoren';
          
          function sendeOffen() {
              var tgmsg = '';
              const dps = $('javascript.0.isopen.*');
              dps.each(function(id, i) {
                  var desc = getObject(id).common.desc;
                  tgmsg = tgmsg + 'Der Sensor '+ desc +' ist offen.\n';
              });
              sendTo('telegram.0',  tgmsg);
          }
          
          schedule("25 7,19 * * *", sendeOffen);
          
          on({id: idButton}, sendeOffen);
          

          Den Button selbst habe ich Sensoren genannt.

          Der Telegram Adapter sagt mir nachdem ich den Button angeklickt habe: Ich verstehe "sensoren" nicht

          Muss ich noch ein Text-Kommando dazu anlegen. Das habe ich probiert und versucht das Skript aufzurufen. Er schaltet dann aber nur das Skript aus oder ein. Aber ausgeführt wird es nicht.

          1 Reply Last reply Reply Quote 0
          • M
            Mitch last edited by

            Jetzt habe ich den Button unter text2command angelegt und starte das Script.

            Die Fehlermeldung ist verschwunden.

            Ich glaube das Problem hängt mit idbutton zusammen. Was ist das genau? Die Beschriftung, wie ich sie oben verwendet habe.

            Oder was anderes?

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

              @Mitch:

              hängt mit idbutton zusammen. Was ist das genau? `
              Das ist die ID des Datenpunktes, der als Auslöse-Taste dient, z.B. "javascript.0.meinButton".

              1 Reply Last reply Reply Quote 0
              • M
                Mitch last edited by

                Warum stelle ich mich so blöd an. Das was du mir geschrieben hast, habe ich verstanden. Ich habe mal Screenshots angehängt, da ich es denke ich jetzt logisch gebaut habe, aber es noch nicht funktioniert.

                Der Auslöser wird auf yes (true) gesetzt, aber das Script wird nicht ausgeführt.

                Screenshots in umgekehrter Reihenfolge.
                8437_1.png
                8437_2.png
                8437_3.png
                8437_4.png

                1 Reply Last reply Reply Quote 0
                • M
                  Mitch last edited by

                  Peinlich, es funktioniert. Aber wenn kein Sensor offen ist, kann er auch nichts melden.

                  Vielen Dank für die Hilfe!

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  804
                  Online

                  31.7k
                  Users

                  79.9k
                  Topics

                  1.3m
                  Posts

                  2
                  7
                  545
                  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