Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Auf Telegram Nachricht reagieren

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    958

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Auf Telegram Nachricht reagieren

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
2 Beiträge 2 Kommentatoren 843 Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • M Offline
    M Offline
    MrSnatz
    schrieb am zuletzt editiert von
    #1

    Hallo,

    Ich komme nicht weiter und vllt kann mir jemand einen Tipp geben.

    Ich möchte via Telegram eine Uhrzeit z.B. 04:00 Uhr an meinen Raspberry schicken. Dieser soll dann das nächste mal wenn es vier Uhr Morgens ist etwas ausführen z.b. Lampe an.

    In FHEM konnte ich das ganz gut mit einem notify machen aber wie geht es beim ioBroker und Blockly???

    Ich muss doch auf das object „request“ von „Telegram.0“ reagieren, oder?

    Also:

    Falls object (Last Received request) Text = 04:00 Uhr

    Schalte Lampe an um 04:00 Uhr.

    Was muss ich in Text to Command einstellen? Und wie bekomme ich die Zeit ( wenn das nächste mal 04:00 Uhr) rein?

    Wäre schön für Ansätze oder gute Links hilfreich. Habe in der suche nur etwas über versenden von Nachrichten oder zeitverzögert gefunden.

    Vielen Dank für eure Hilfe

    1 Antwort Letzte Antwort
    0
    • D Offline
      D Offline
      dpt
      schrieb am zuletzt editiert von
      #2

      ich habe es in zwei Schritten gemacht:

      1. die Telegram Meldung im iobroker zerlegen in User und "Befehl"

      var input;
      var field;
      var user;
      on({id: 'telegram.0.communicate.request'}, function (obj) {
      input = getState('telegram.0.communicate.request').val;
      fields = input.split(']');
      user = fields[0];
      setState('variablen.0.telegram.befehl', fields[1]);
      fields = user.split('[');
      user = fields[1];
      setState('variablen.0.telegram.user', user);
      });
      
      

      variablen.0.telegram.befehl

      variablen.0.telegram.user

      Sind zwei variablen wo ich unter Objekte erstellt habe, dass sie von jedem Program aus zugänglich sind.

      2. auf Befehle reagieren

      var Datensetzen = 0; // Punkt für 2 Antwort / 1 Abwesenheit / 2 Programm an aus / 3 Weihnachstbeleuchtung / 4 Storen
      
      on({id: 'variablen.0.telegram.user'}, function (obj) {
      switch (getState('variablen.0.telegram.befehl').val) {
      //Abwesenheit 
      case 'Abwesenheit':
          sendTo('telegram', {user: getState('variablen.0.telegram.user').val, text: 'Tage?'});
          setTimeout(function (obj){Datensetzen=0;}, 20000);
          setTimeout(function (obj){Datensetzen=1;}, 500);
      break; 
      // ander case Brak einfügen
      default:
      //Abwesenheit Eingabe Zeit
      if (Datensetzen==1){                    //1 steht bei mir für abwesenheit !! musst bei jedem anpassen                          
          setState('variablen.0.Abwesenheit', Number(getState('variablen.0.telegram.befehl').val));
          sendTo('telegram', {user: getState('variablen.0.telegram.user').val, text: 'Die Abwesenheit ist ' + getState('variablen.0.telegram.befehl').val + ' Tage'});
      Datensetzen = 0;}
      }});
      
      

      var Datensetzen -> dort mit der Zahl, definierst du welche "if" abfrage du aktivierst als 2 Meldung für 20 Sekunden. Am ende der Abfrage wird es wieder auf 0 gesetzt.

      Dort kannst mit:

      case… ..... break;

      noch x Grundabfragen einstellen

      if

      dort gibst du dann z.Bsp. die Zeit ein, hast 20 Sekunden zeit, danach wird Datensetzen wieder auf 0 gesetzt

      also, Beispiel läuft so

      du gibst ein -> Abwesenheit

      er antwortet -> Tage?

      danach gibst du innert 20 Sekunden die gewünschten Tage ein -> z. Bsp. 2

      er bestätigt das er die Variable Tag in Objekte auf "z. Bsp" 2 tage eingestellt hat.

      Es gibt wahrscheinlich eleganter Versionen, bin jedoch kein Programmierer.

      1 Antwort Letzte Antwort
      0
      Antworten
      • In einem neuen Thema antworten
      Anmelden zum Antworten
      • Älteste zuerst
      • Neuste zuerst
      • Meiste Stimmen


      Support us

      ioBroker
      Community Adapters
      Donate

      766

      Online

      32.6k

      Benutzer

      82.2k

      Themen

      1.3m

      Beiträge
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
      ioBroker Community 2014-2025
      logo
      • Anmelden

      • Du hast noch kein Konto? Registrieren

      • Anmelden oder registrieren, um zu suchen
      • Erster Beitrag
        Letzter Beitrag
      0
      • Home
      • Aktuell
      • Tags
      • Ungelesen 0
      • Kategorien
      • Unreplied
      • Beliebt
      • GitHub
      • Docu
      • Hilfe