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

  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Pushover + Command = Telegram

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

Pushover + Command = Telegram

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
137 Beiträge 23 Kommentatoren 33.2k 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.
  • BluefoxB Offline
    BluefoxB Offline
    Bluefox
    schrieb am zuletzt editiert von
    #101

    @dtp:

    Hi Bluefox,

    vielleicht könntest Du mir doch noch etwas helfen.

    1. Was muss in das Feld "Antwort ins ID:"? Kommt da die ChatID rein? `
    T2C (text2command) kennt die Existenz von Telegram nicht, deswegen da wird State ID erwartet.

    Mit deinem Antwortmodel brauchst du aber das Feld nicht.

    @dtp:

    2. Soweit mir bekannt, ist für die Verwendung von keyboard das Feld "text" zwingend erforderlich. Gleichzeitig muss aber auch mit setState der textProzessor gesetzt werden, um zu vermeiden, dass der text2command-Adapter "Ich verstehe 'xxx' nicht" sendet. Es wäre daher schön, wenn man irgendwie ein Flag setzen könnte, dass das Senden des Textes in textProzesser unterbindet. Mit setState(…, false) geht's leider nicht. Dann erhalte ich eine Fehlermeldung. `
    Willst du in dem Antwort die Tastatur einblenden?

    Ich verstehe nicht was du willst. Ich habe ausprobiert mit normalen Text und es geht.

    1 Antwort Letzte Antwort
    0
    • D Offline
      D Offline
      dtp
      schrieb am zuletzt editiert von
      #102

      @Bluefox:

      Willst du in dem Antwort die Tastatur einblenden?

      Ich verstehe nicht was du willst. Ich habe ausprobiert mit normalen Text und es geht. `

      Ja. Ich möchte die Tastatur einblenden, aber nur eine Aufforderung dazu erhalten. Ich mach mal Beispiele.

      1. Unter "sendTo" wird das Feld "text" weggelassen. Nach "sendTo" setze ich "textProzessor" mit "setState".

      ! ````
      createState("textProcessor", '', function () {
      // text2command writes the value with ack=false. Change "any" is important too, to process repeated commands.
      on({id: "javascript.0.textProcessor", ack: false, change: 'any'}, function (obj) {
      var task = JSON.parse(obj.state.val);
      //log (task.command);
      if (task.command === 'Test') {
      sendTo('telegram.0', {
      //text: 'Testnachricht empfangen.',
      reply_markup: {
      keyboard: [['Taste 1','Taste 2','Taste 3']],
      resize_keyboard: true,
      one_time_keyboard: true
      }
      });
      setState("javascript.0.textProcessor", 'OK', true);
      } else {
      // let it process with predefined rules
      setState("javascript.0.textProcessor", '', true);
      }
      });
      });

      
      So erhalte ich dann folgende Nachricht nach dem Senden von "Test":
      
       ![996_2016-09-10_14h06_28.png](/assets/uploads/files/996_2016-09-10_14h06_28.png) 
      
      Das gewünschte Keyboard fehlt, weil "text" ein Mussfeld ist.
      
      ****2\. Unter "sendTo" wird das Feld "text" genutzt. Auf "setState" wird jedoch verzichtet:****
      
      >! ````
      createState("textProcessor", '', function () {
        // text2command writes the value with ack=false. Change "any" is important too, to process repeated commands.
        on({id: "javascript.0.textProcessor", ack: false, change: 'any'}, function (obj) {
          var task = JSON.parse(obj.state.val);
          //log (task.command);
          if (task.command === 'Test') {
            sendTo('telegram.0', {
              text: 'Testnachricht empfangen.',
              reply_markup: {
                keyboard:   [['Taste 1','Taste 2','Taste 3']],
                resize_keyboard:   true,
                one_time_keyboard: true
              }
            });
            //setState("javascript.0.textProcessor", 'OK', true);
          } else {
            // let it process with predefined rules
            setState("javascript.0.textProcessor", '', true);
          }
        });
      });
      

      Nun erhalte ich folgende Push-Nachricht nach dem Senden von "Test":

      996_2016-09-10_14h08_50.png

      Zwar werden die Keyboard-Button angezeigt, aber text2command meldet, dass er "test" nicht versteht. Auch nicht das, was ich will.

      3. Ich nutze sowohl "text" als auch "setState".

      ! ````
      createState("textProcessor", '', function () {
      // text2command writes the value with ack=false. Change "any" is important too, to process repeated commands.
      on({id: "javascript.0.textProcessor", ack: false, change: 'any'}, function (obj) {
      var task = JSON.parse(obj.state.val);
      //log (task.command);
      if (task.command === 'Test') {
      sendTo('telegram.0', {
      text: 'Testnachricht empfangen.',
      reply_markup: {
      keyboard: [['Taste 1','Taste 2','Taste 3']],
      resize_keyboard: true,
      one_time_keyboard: true
      }
      });
      setState("javascript.0.textProcessor", 'OK', true);
      } else {
      // let it process with predefined rules
      setState("javascript.0.textProcessor", '', true);
      }
      });
      });

      
      Ergebnis:
      
       ![996_2016-09-10_14h11_50.png](/assets/uploads/files/996_2016-09-10_14h11_50.png) 
      
      Zwar ist nun eigentlich fast alles in Ordnung, aber ich möchte keine zwei Nachrichten ("Testnachricht empfangen" aus "text" und "OK" aus "setState") empfangen.
      
      Wie kann ich es erreichen, dass ich nur eine Nachricht empfange, aber der Sendebefehl trotzdem von text2command erkannt wird?
      
      Hoffe, nun ist es klarer geworden.
      
      Gruß,
      
      Thorsten

      ioBroker im Docker-Container auf Synology DiskStation DS718+, HomeMatic IP über CCU3, IKEA Dirigera inkl. Matter, Apple Homekit, Amazon Alexa.

      1 Antwort Letzte Antwort
      0
      • D Offline
        D Offline
        dtp
        schrieb am zuletzt editiert von
        #103

        Ach noch eine Kleinigkeit. Wenn man ein Kommando mit vorangestelltem Slash "/" sendet, meldet text2command immer, dass es den Befehl "#…" nicht kennt. Slash wird also immer in eine Raute konvertiert. Evtl. kannst Du das in einem der nächsten Updates von text2command noch fixen.

        Gruß,

        Thorsten

        ioBroker im Docker-Container auf Synology DiskStation DS718+, HomeMatic IP über CCU3, IKEA Dirigera inkl. Matter, Apple Homekit, Amazon Alexa.

        1 Antwort Letzte Antwort
        0
        • R Offline
          R Offline
          robsdobs
          schrieb am zuletzt editiert von
          #104

          Gibt es schon eine Lösung dafür, das der Befehl ausgeführt wird, aber immer noch "Ich verstehe … nicht?" kommt? Oder mache ich hier etwas Grundsätzliches falsch?

          1367_text2c.png

          Mein Code sieht so aus:

          // #####################################################
          // Telegramm Commandos abarbeiten
          createState("textProcessor", '', function () {
              // text2command writes the value with ack=false. Change "any" is important too, to process repeated commands.
              on({id: "javascript.0.textProcessor", ack: false, change: 'any'}, function (obj) {
                   var task = JSON.parse(obj.state.val);
                   // value looks like
                   // {
                   //     "command":      "text to process", // command that was received by text2command
                   //     "language":     "en",              // language in command or system language
                   //     "withLanguage": false              // indicator if language was defined in command (true) or used default language (false)
                   // }
                   // response to text2command with ack=true
                   //{"text":"ok","id":293581672,"user":"Robert","language":"de","command":"ok","withLanguage":false,"from":"system.adapter.telegram.0"}
                   var cmd = task.command.toLowerCase();
                   if  (cmd == "ug" || cmd == "#ug") {      
          
                     var eingangstuer = "hm-rpc.0.#######.1.STATE"/*K01_20_Haustuer.STATE*/     // Eingangstür
                     var eingangstuero = "hm-rpc.0.########.OPEN"/*K01_20_Haustuer.OPEN*/     // Eingangstür
                     var garage_tor   = "hm-rpc.0.############.STATE"/*Garage-Rolltor:1.STATE*/         // Garage Rolltor Status
                     var fenster_asr  = "hm-rpc.0.##########.STATE"/*K04_53_ASR-Fenster.STATE*/;     // Kellerfenster Abstellraum
                     var fenster_wrl  = "hm-rpc.0.###############.STATE"/*K02_55_Fenster-links.STATE*/;   // Kellerfenster links  Waschraum
                     var fenster_wrr  = "hm-rpc.0.#############.STATE"/*K02_54_Fenster-rechts.STATE*/;  // Kellerfenster rechts Waschraum
          
                     var eingangstuerV = getState(eingangstuer).val;
                     var eingangstueroV = getState(eingangstuero).val;
                     var garage_torV   = "unbekannt";
                     var fenster_asrV   = "unbekannt";
                     var fenster_wrlV   = "unbekannt";
                     var fenster_wrrV   = "unbekannt";
          
                     var eingangstuerS = "verriegelt";
                     if (eingangstuerV) { eingangstuerS = "entriegelt"; }
                     if (eingangstueroV) { eingangstuerS = "offen"; }
          
                     if (getState(garage_tor).val) { garage_torV = "offen";          } else { garage_torV = "geschlossen"; }
                     if (getState(fenster_asr).val) { fenster_asrV = "offen";        } else { fenster_asrV = "geschlossen"; }
                     if (getState(fenster_wrl).val) { fenster_wrlV = "links offen";  } else { fenster_wrlV = "links geschlossen"; }
                     if (getState(fenster_wrr).val) { fenster_wrrV = "rechts offen"; } else { fenster_wrrV = "rechts geschlossen"; }
          
                     sendTo('telegram', 'Hallo, der Status vom Untergeschoss ist:' +
          
                                       '\n' + '#Eingangstür   ' + eingangstuerS +        //   Zeilenumbruch: \n 
                                       '\n' + '#Rolltor ' + garage_torV + 
                                       '\n' + '#Fenster Waschraum   ' + fenster_wrlV + ' / ' + fenster_wrrV +
                                       '\n' + '#Fenster Abstellraum ' + fenster_asrV +
                                       '\n' + 
                                       '\n' + 'Kellerfenster ' +
                                       '\n' + '- schließen? /kellerfensterschliessen' +   // Neuer BEfehl wird angezeigt! Skript Kellerfensterschließen erforderlich!
                                       '\n' + '- öffnen? /kellerfensteroeffnen' +
                                       '\n' + 
                                       '\n' + 'Was noch?' +
                                       '\n' + '/verbrauchsdaten' +
                                       '\n' + '/torfoto'); 
                     setState("javascript.0.textProcessor", 'OK', true);
                   } else if (task.command === 'switch light on') {
                      setState("hm-rpc.0.light", true);
                      setState("javascript.0.textProcessor", 'light is on', true);
                   } else {
                      // let it process with predefined rules
                      setState("javascript.0.textProcessor", '', true);
                   }
              });
          });
          

          Scripte: http://forum.iobroker.net/viewtopic.php?f=23&t=2799&p=119565#p119565,

          1 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            Solear
            schrieb am zuletzt editiert von
            #105

            Da ist irgend etwas falsch eingestellt.

            Ich habe das Problem nicht (das hilft dir jetzt auch nicht weiter…) und ich steuere alle Kommandos mit den "/befehl". Drücke ich auf einen "#raute" dann zeigt er mir alle Nachrichten wo das #raute vorkommt.

            Wie sieht denn dein Code aus?

            iobroker als LXC unter Proxmox

            1 Antwort Letzte Antwort
            0
            • R Offline
              R Offline
              robsdobs
              schrieb am zuletzt editiert von
              #106

              Den Code hatte ich oben schon in einem Spoiler mit im Beitrag.

              Scripte: http://forum.iobroker.net/viewtopic.php?f=23&t=2799&p=119565#p119565,

              1 Antwort Letzte Antwort
              0
              • S Offline
                S Offline
                Solear
                schrieb am zuletzt editiert von
                #107

                Eben war es noch nicht da :lol:

                Mal als Test: lösche mal genau den Teil:

                || cmd == "#ug"
                

                iobroker als LXC unter Proxmox

                1 Antwort Letzte Antwort
                0
                • S Offline
                  S Offline
                  Solear
                  schrieb am zuletzt editiert von
                  #108

                  Der Text "Ich verstehe nicht…" kommt eigentlich von text2command.

                  Hast du da das #ug (nicht) hinterlegt?

                  Mein Telegram arbeitet ja komplett ohne text2command.

                  iobroker als LXC unter Proxmox

                  1 Antwort Letzte Antwort
                  0
                  • R Offline
                    R Offline
                    robsdobs
                    schrieb am zuletzt editiert von
                    #109

                    Danke für Deine Mühe!

                    Damit ändert sich nur, das er nicht mehr auf "/ug" reagiert, sondern nur auf "ug".

                    Ich habe es aber selber gefunden. :oops: Ich hatte im Javascript Adapter den Haken bei Debug drin. Damit wird das SetState nicht ausgeführt. Wenn man das rausnimmt, kommt kein "Ich verstehe nicht…" mehr, sondern das "ok". Mit "setState("javascript.0.textProcessor", ' ', true);" (also einfach auf einleerzeichen setzen) kann man sogar das unterdrücken, so das nur die gewünschte Antwort zurückkommt (dtp, solltest du auch bei dir ausprobieren):
                    1367_text2cb.png

                    Hier nochmal der Code:

                    // #####################################################
                    // Telegramm Commandos abarbeiten
                    createState("textProcessor", '', function () {
                        log("textprocessor...");
                        // text2command writes the value with ack=false. Change "any" is important too, to process repeated commands.
                        on({id: "javascript.0.textProcessor", ack: false, change: 'any'}, function (obj) {
                             log("OK, text ist da...");
                             var task = JSON.parse(obj.state.val);
                             //log (task.command);
                             // value looks like
                             // {
                             //     "command":      "text to process", // command that was received by text2command
                             //     "language":     "en",              // language in command or system language
                             //     "withLanguage": false              // indicator if language was defined in command (true) or used default language (false)
                             // }
                             // response to text2command with ack=true
                             //{"text":"ok","id":293581672,"user":"Robert","language":"de","command":"ok","withLanguage":false,"from":"system.adapter.telegram.0"}
                             log(cmd);
                             var cmd = task.command.toLowerCase();
                             if  (cmd == "ug" || cmd == "#ug") {      
                               log("OK, commando verstanden...");
                    
                               var eingangstuer = "hm-rpc.0.MEQ1113087.1.STATE"/*K01_20_Haustuer.STATE*/     // Eingangstür
                               var eingangstuero = "hm-rpc.0.MEQ1113087.1.OPEN"/*K01_20_Haustuer.OPEN*/     // Eingangstür
                               var garage_tor   = "hm-rpc.0.NEQ0629002.1.STATE"/*Garage-Rolltor:1.STATE*/         // Garage Rolltor Status
                               var fenster_asr  = "hm-rpc.0.NEQ0626198.1.STATE"/*K04_53_ASR-Fenster.STATE*/;     // Kellerfenster Abstellraum
                               var fenster_wrl  = "hm-rpc.0.NEQ0626635.1.STATE"/*K02_55_Fenster-links.STATE*/;   // Kellerfenster links  Waschraum
                               var fenster_wrr  = "hm-rpc.0.NEQ0626208.1.STATE"/*K02_54_Fenster-rechts.STATE*/;  // Kellerfenster rechts Waschraum
                    
                               var eingangstuerV = getState(eingangstuer).val;
                               var eingangstueroV = getState(eingangstuero).val;
                               var garage_torV   = "unbekannt";
                               var fenster_asrV   = "unbekannt";
                               var fenster_wrlV   = "unbekannt";
                               var fenster_wrrV   = "unbekannt";
                    
                               var eingangstuerS = "verriegelt";
                               if (eingangstuerV) { eingangstuerS = "entriegelt"; }
                               if (eingangstueroV) { eingangstuerS = "offen"; }
                    
                               if (getState(garage_tor).val) { garage_torV = "offen";          } else { garage_torV = "geschlossen"; }
                               if (getState(fenster_asr).val) { fenster_asrV = "offen";        } else { fenster_asrV = "geschlossen"; }
                               if (getState(fenster_wrl).val) { fenster_wrlV = "links offen";  } else { fenster_wrlV = "links geschlossen"; }
                               if (getState(fenster_wrr).val) { fenster_wrrV = "rechts offen"; } else { fenster_wrrV = "rechts geschlossen"; }
                    
                               sendTo('telegram', 'Hallo, der Status vom Untergeschoss ist:' +
                    
                                                 '\n' + '#Eingangstür   ' + eingangstuerS +        //   Zeilenumbruch: \n 
                                                 '\n' + '#Rolltor ' + garage_torV + 
                                                 '\n' + '#Fenster Waschraum   ' + fenster_wrlV + ' / ' + fenster_wrrV +
                                                 '\n' + '#Fenster Abstellraum ' + fenster_asrV +
                                                 '\n' + 
                                                 '\n' + 'Kellerfenster ' +
                                                 '\n' + '- schließen? /kellerfensterschliessen' +   // Neuer BEfehl wird angezeigt! Skript Kellerfensterschließen erforderlich!
                                                 '\n' + '- öffnen? /kellerfensteroeffnen' +
                                                 '\n' + 
                                                 '\n' + 'Was noch?' +
                                                 '\n' + '/verbrauchsdaten' +
                                                 '\n' + '/torfoto'); 
                               setState("javascript.0.textProcessor", '  ', true);
                               //setState("javascript.0.textProcessorAnswer"/*textProcessorAnswer*/, 'OK2', true);
                             } else if (task.command === 'switch light on') {
                                setState("hm-rpc.0.light", true);
                                setState("javascript.0.textProcessor", 'light is on', true);
                             } else {
                                // let it process with predefined rules
                                setState("javascript.0.textProcessor", '', true);
                             }
                        });
                    });
                    

                    Danke nochmal!

                    Scripte: http://forum.iobroker.net/viewtopic.php?f=23&t=2799&p=119565#p119565,

                    1 Antwort Letzte Antwort
                    0
                    • S Offline
                      S Offline
                      Solear
                      schrieb am zuletzt editiert von
                      #110

                      Schön, dass es geklappt hat!

                      Bei mir kommt auch nur die Antwort zurück, die ich erfrage, also ohne zusätzliche Bestätigungen.

                      Tipp:

                      Setzte ein / vor den Befehlen in den Antworten, dann sind sie direkt in Telegram anklickbar und man muss sie nicht per Hand eintippen. Bei deinem letzten Screenshot steht nur "ug" statt "/ug".

                      In die Antworten setze ich immer auch unten eine Liste der möglichen Kommandos, so kann man immer per einfachen Klick abfragen.
                      1145_bildschirmfoto_vom_2016-09-22_22-49-37.png

                      iobroker als LXC unter Proxmox

                      1 Antwort Letzte Antwort
                      0
                      • R Offline
                        R Offline
                        robsdobs
                        schrieb am zuletzt editiert von
                        #111

                        @Solear:

                        Schön, dass es geklappt hat!

                        Bei mir kommt auch nur die Antwort zurück, die ich erfrage, also ohne zusätzliche Bestätigungen.

                        Tipp:

                        Setzte ein / vor den Befehlen in den Antworten, dann sind sie direkt in Telegram anklickbar und man muss sie nicht per Hand eintippen. Bei deinem letzten Screenshot steht nur "ug" statt "/ug".

                        In die Antworten setze ich immer auch unten eine Liste der möglichen Kommandos, so kann man immer per einfachen Klick abfragen. `
                        Danke.

                        War nur ein erster Test. Das mache ich noch schön. [emoji6]

                        Gruß

                        Scripte: http://forum.iobroker.net/viewtopic.php?f=23&t=2799&p=119565#p119565,

                        1 Antwort Letzte Antwort
                        0
                        • D Offline
                          D Offline
                          dtp
                          schrieb am zuletzt editiert von
                          #112

                          @robsdobs:

                          Ich habe es aber selber gefunden. :oops: Ich hatte im Javascript Adapter den Haken bei Debug drin. Damit wird das SetState nicht ausgeführt. Wenn man das rausnimmt, kommt kein "Ich verstehe nicht…" mehr, sondern das "ok". Mit "setState("javascript.0.textProcessor", ' ', true);" (also einfach auf einleerzeichen setzen) kann man sogar das unterdrücken, so das nur die gewünschte Antwort zurückkommt (dtp, solltest du auch bei dir ausprobieren) `

                          Danke für den Tipp. Das werde ich mir heute Abend mal anschauen.

                          EDIT: Bei mir war leider kein Haken für das Debuggen gesetzt. Aber ich hatte ja auch nur "Probleme" mit setState in Verbindung mit dem Keyboard. Ansonsten läuft's eigentlich.

                          Gruß,

                          Thorsten

                          ioBroker im Docker-Container auf Synology DiskStation DS718+, HomeMatic IP über CCU3, IKEA Dirigera inkl. Matter, Apple Homekit, Amazon Alexa.

                          1 Antwort Letzte Antwort
                          0
                          • P Offline
                            P Offline
                            pix
                            schrieb am zuletzt editiert von
                            #113

                            Hallo,

                            ich bin nach wie vor begeistert von den Tasten. Damit macht es richtig Spaß. 261_img_9094_ergebnis.png 261_img_9095_ergebnis.png

                            Skript:

                            ! ````
                            ! var chatname = '[GEHEIM]'; // geheim
                            var idTelegramRequest = "telegram.1.communicate.request";
                            ! function beantworteAnfrage(befehl,taste1,taste2,taste3,taste4) {
                            sendTo('telegram.1', {
                            text: befehl,
                            reply_markup: {
                            keyboard: [[taste1,taste2],[taste3,taste4]],
                            resize_keyboard: true,
                            one_time_keyboard: true
                            }
                            });
                            }
                            ! on(idTelegramRequest, function (obj) {
                            // ++++++++++ Fenster
                            if (obj.state.val == chatname + "Fenster" || obj.state.val == chatname + "/fenster") {
                            var idStatusFenster = "javascript.0.zählen_Fenster.textFensteraufAnsage"/zählen_Fenster.textFensteraufAnsage/;
                            var fenster_status = getState(idStatusFenster).val;
                            beantworteAnfrage(fenster_status.replace(/<.*br>/g, '\n'),'Licht','Webcam','Fenster','TV');
                            }

                            // ++++++++++++++ TV
                            var idTV = "hm-rpc.0.HEQ0150124.1.STATE"/*TV Wohnzimmer.STATE*/;
                            var tv_status = (getState(idTV).val) ? 'Der Fernseher ist eingeschaltet' : 'Der Fernseher ist ausgeschaltet';
                            if  (obj.state.val == chatname + "TV" || obj.state.val == chatname + "/tv") {     
                                beantworteAnfrage(tv_status,'TV ein','TV aus','Status','');
                            }
                            if  (obj.state.val == chatname + "TVeinschalten" || obj.state.val == chatname + "/tveinschalten" || obj.state.val == chatname + "TV ein") {     
                                setState(idTV, true);
                                beantworteAnfrage('Fernseher wurde eingeschaltet.','Licht','Webcam','Fenster','TV aus');
                            }
                            if  (obj.state.val == chatname + "TVausschalten" || obj.state.val == chatname + "/tvausschalten" || obj.state.val == chatname + "TV aus") {     
                                setState(idTV, false);
                                beantworteAnfrage('Fernseher wurde ausgeschaltet.','Licht','Webcam','Fenster','TV ein');
                            }  
                            
                            // /licht
                            var idLichtAus = "scene.0.licht_alles_aus"/*0.licht_alles_aus*/,
                                idLichtAnzahl = "javascript.0.zählen_Lichter.anzahlLichterAn"/*zählen_Lichter.anzahlLichterAn*/,
                                idLichtStatus = "javascript.0.zählen_Lichter.textLichterAn"/*zählen_Lichter.textLichterAn*/;    
                            var lichtanbefehle = 'Alle Lichter in der Wohnung ausgeschaltet\n\n' 
                                               + 'Flur Licht ein? /flurlichtein\n'
                                               + 'Küche Licht ein? /kuechelichtein\n';
                                               // to be continued
                            var lichtausbefehle = 'Folgende Lichter in der Wohnung eingeschaltet:\n\n' 
                                               + getState(idLichtStatus).val + '\n\n'
                                               + 'Alle Lichter aus? /allelichteraus\n'
                                               + ( (getState("scene.0.licht_flur_alles_aus"/*0.licht_flur_alles_aus*/).val) ? 'Flur Licht ein? /flurlichtein\n' : 'Flur Licht aus? /flurlichtaus\n' )
                                               + ( (getState("scene.0.licht_kueche_alles_aus"/*0.licht_kueche_alles_aus*/).val) ? 'Küche Licht ein? /kuechelichtein\n' : 'Küche Licht aus? /kuechelichtaus\n' );    
                                               //tbc
                            
                            var licht_status = (getState(idLichtAnzahl).val === 0) ? lichtanbefehle : lichtausbefehle;
                            if  (obj.state.val == chatname + "Licht" || obj.state.val == chatname + "Lichter" || obj.state.val == chatname + "/licht" || obj.state.val == chatname + "/lichter") {     
                                beantworteAnfrage(licht_status.replace(/<.*br>/g, '\n'),'Licht','alle Lichter aus','Status','');
                            }
                            // Alle Lichter
                            if  (obj.state.val == chatname + "allelichteraus" || obj.state.val == chatname + "/allelichteraus" || obj.state.val == chatname + "alle Lichter aus") {     
                                setState("scene.0.licht_alles_aus"/*0.licht_alles_aus*/, true); // Alle Lichter aus
                                beantworteAnfrage('Alle Lichter in der Wohnung wurden ausgeschaltet.','Licht','Webcam','Fenster','TV');
                            }
                            // Flur
                            if  (obj.state.val == chatname + "flurlichtein" || obj.state.val == chatname + "/flurlichtein") {     
                                setState("hm-rpc.0.FEQ0069673.1.LEVEL"/*Lampe Flur Regal.LEVEL*/, 100); // Flur Lampe ein
                                sendTo('telegram.1', "Flur Licht wurde eingeschaltet.");
                            }
                            if  (obj.state.val == chatname + "flurlichtaus" || obj.state.val == chatname + "/flurlichtaus") {     
                                setState("hm-rpc.0.FEQ0069673.1.LEVEL"/*Lampe Flur Regal.LEVEL*/, 0); // Flur Lampe aus
                                sendTo('telegram.1', "Flur Licht wurde ausgeschaltet.");
                            }
                            // Küche
                            if  (obj.state.val == chatname + "kuechelichtein" || obj.state.val == chatname + "/kuechelichtein") {     
                                setState("hm-rpc.0.JEQ0734088.1.LEVEL"/*Licht Küche Kochzeile.LEVEL*/, 100); // Küche Kochzeile ein    
                                setState("hm-rpc.0.LEQ0269105.1.LEVEL"/*Licht Küche Eckschrank.LEVEL*/, 100); // Küche Eckschrank ein
                                sendTo('telegram.1', "Das Licht in der Küche wurde eingeschaltet.");
                            }
                            if  (obj.state.val == chatname + "kuechelichtaus" || obj.state.val == chatname + "/kuechelichtaus") {     
                                setState("scene.0.licht_kueche_alles_aus"/*0.licht_kueche_alles_aus*/, true); // Küche alles aus
                                sendTo('telegram.1', "In der Küche wurde alles ausgeschaltet.");
                            }
                            
                            // ++++++++++++ Webcam
                            var idScriptWebcam = "javascript.2.scriptEnabled.Test.TextKommandos.Bild_speichern_telegram_senden"/*scriptEnabled.Test.TextKommandos.Bild_speichern_telegram_senden*/;
                            if  (obj.state.val == chatname + "Kamera" || obj.state.val == chatname + "Webcam"|| obj.state.val == chatname + "/webcam") {     
                                beantworteAnfrage('Es wird ein Foto gesendet...','Licht','Webcam','Fenster','TV');
                                setState(idScriptWebcam, true); // Senden des Fotos starten
                            }
                            
                            // ++++++++++ Status
                            var zustand = ['aus','in Betrieb','fertig'];
                            var idWama = "javascript.0.Status.Waschmaschine"/*Status Waschmaschine*/,
                                idSpuema = "javascript.0.Status.Spuelmaschine"/*Status Spuelmaschine*/;
                            var status = ((getState(idWama).val > 0) ? 'Waschmaschine ist ' + zustand[getState(idWama).val] : 'Waschmaschine ist aus.') + '\n'
                                       + ((getState(idSpuema).val > 0) ? 'Spülmaschine ist ' + zustand[getState(idSpuema).val] : 'Spülmaschine ist aus.') + '\n'
                                       + 'Aussen: ' + getState("hm-rpc.0.HEQ0237599.1.TEMPERATURE"/*Temperatur Feuchte Sensoren Balkon.TEMPERATURE*/).val + '°C | '
                                                    + getState("hm-rpc.0.HEQ0237599.1.HUMIDITY"/*Temperatur Feuchte Sensoren Balkon.HUMIDITY*/).val + '%';
                                       // weitere Ausgabe von Daten geplant
                                      // Anwesenheit
                                      // 1\. Person Status
                                      // 2\. Person Status
                                      // Hunde Status
                                      // Alarmanlage
                            
                            /*log(getState(idWama).val);
                            log(getState(idSpuema).val);
                            log(status);
                            */
                            if  (obj.state.val == chatname + "Status" || obj.state.val == chatname + "/status") {     
                                 beantworteAnfrage(status,'Licht','Webcam','Fenster','TV');
                            }
                            
                            // folgende Zeile nicht löschen!
                            setState(idTelegramRequest,"leer");
                            

                            });

                            ! ````

                            Gruß

                            Pix

                            ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                            1 Antwort Letzte Antwort
                            0
                            • D Offline
                              D Offline
                              dtp
                              schrieb am zuletzt editiert von
                              #114

                              Hi Pix,

                              sehr schöne Lösung.

                              Verwendest Du parallel auch noch text2command für Telegram? Falls ja, kannst Du entweder die Antwort über "text" oder "setState" unterdrücken, um Mehrfachantworten zu vermeiden?

                              Gruß,

                              Thorsten

                              ioBroker im Docker-Container auf Synology DiskStation DS718+, HomeMatic IP über CCU3, IKEA Dirigera inkl. Matter, Apple Homekit, Amazon Alexa.

                              1 Antwort Letzte Antwort
                              0
                              • P Offline
                                P Offline
                                pix
                                schrieb am zuletzt editiert von
                                #115

                                Hallo Thorsten,

                                ich verwende für diesen Chat eine zweite Instanz von telegram, die nicht mit text2command verbunden ist.

                                Gruß

                                Pix

                                ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                                1 Antwort Letzte Antwort
                                0
                                • fischi87F Offline
                                  fischi87F Offline
                                  fischi87
                                  schrieb am zuletzt editiert von
                                  #116

                                  Servus, ich hab mich jetzt auch mit dem Push + command = Telegram beschäftigt und mir die Script angepasst, bekomme aber zurzeit diese Fehler Meldung im log:

                                  der textProcessor erkennt in Objekte was ich in Telegram als Anfrage schicke?!

                                  Ach du scheiße, danke für den Hinweis!!!!!!

                                  1 Antwort Letzte Antwort
                                  0
                                  • S Offline
                                    S Offline
                                    Solear
                                    schrieb am zuletzt editiert von
                                    #117

                                    Kann zum Problem nichts sagen, aber deine private iCal-URL würde ich rauslöschen :lol:

                                    iobroker als LXC unter Proxmox

                                    1 Antwort Letzte Antwort
                                    0
                                    • D Offline
                                      D Offline
                                      dtp
                                      schrieb am zuletzt editiert von
                                      #118

                                      Mal ne kurze Frage in eine etwas andere Richtung. Bekomme hoffentlich bald meine Apple Watch Series 2. Kann man da auch mit dem Keyboard der Telelgram-App arbeiten, oder geht das wegen des kleinen Screens nicht?

                                      Gruß,

                                      Thorsten

                                      ioBroker im Docker-Container auf Synology DiskStation DS718+, HomeMatic IP über CCU3, IKEA Dirigera inkl. Matter, Apple Homekit, Amazon Alexa.

                                      1 Antwort Letzte Antwort
                                      0
                                      • fischi87F Offline
                                        fischi87F Offline
                                        fischi87
                                        schrieb am zuletzt editiert von
                                        #119

                                        Servus,

                                        also nach stundenlangen probieren und selber eine Lösung zu finden muss ich mich doch an euch wenden weil ich es einfach nicht hin bekomme, wie kann ich das keyboard in mein script integrieren?

                                        createState("textProcessor", '', function () {
                                          on({id: "javascript.0.textProcessor", ack: false, change: 'any'}, function (obj) {
                                            var task = JSON.parse(obj.state.val);
                                            log (task.command);
                                            if (task.command === "System" || "/System") {
                                        
                                                var media_pi_memory = "rpi.0.memory.memory_free"/*rpi.0.memory.memory_free*/;
                                                var media_pi_temp = "rpi.0.temperature.soc_temp"/*rpi.0.temperature.soc_temp*/;
                                                var media_pi_ping = "ping.0.RaspberryPi.192_168_178_23"/*RaspberryPi*/;
                                                var magic_mirror_memory = "rpi.1.memory.memory_free"/*rpi.1.memory.memory_free*/;
                                                var magic_mirror_temp = "rpi.1.temperature.soc_temp"/*rpi.1.temperature.soc_temp*/;
                                                var magic_mirror_ping = "ping.0.RaspberryPi.192_168_178_24"/*Magic-Mirror*/;
                                                var radio_garage_memory = "rpi.2.memory.memory_free"/*rpi.2.memory.memory_free*/;
                                                var radio_garage_temp = "rpi.2.temperature.soc_temp"/*rpi.2.temperature.soc_temp*/;
                                                var radio_garage_ping = "ping.0.RaspberryPi.192_168_178_32"/*Radio-Garage*/;
                                        
                                                var mediapimemory = getState(media_pi_memory).val;
                                                var mediapitemp = getState(media_pi_temp).val;
                                                var mediapiping = getState(media_pi_ping).val;
                                                var magicmirrormemory = getState(magic_mirror_memory).val;
                                                var magicmirrortemp = getState(magic_mirror_temp).val;
                                                var magicmirrorping = getState(magic_mirror_ping).val;
                                                var radiogaragememory = getState(radio_garage_memory).val;
                                                var radiogaragetemp = getState(radio_garage_temp).val;
                                                var radiogarageping = getState(radio_garage_ping).val;
                                        
                                                if(mediapiping) mediapiping = "Online";
                                                else mediapiping = "Offline";
                                                if(magicmirrorping) magicmirrorping = "Online";
                                                else magicmirrorping = "Offline";
                                                if(radiogarageping) radiogarageping = "Online";
                                                else radiogarageping = "Offline";
                                        
                                              sendTo('telegram.0',
                                                  '\n' + 'Media-Pi: ' + ' Memory ' +  mediapimemory + ' MB  / ' + ' Temperatur ' + mediapitemp + ' °C  / ' + mediapiping +
                                                  '\n' + 'Magic-Mirror: ' + ' Memory ' + magicmirrormemory + ' MB  / ' + ' Temperatur ' + magicmirrortemp + ' °C  / ' + magicmirrorping +
                                                  '\n' + 'Radio-Garage: ' + ' Memory ' + radiogaragememory + ' MB  / ' + ' Temperatur ' + radiogaragetemp + ' °C  / ' + radiogarageping
                                                            );
                                        
                                              setState("javascript.0.textProcessor", ' ', true);
                                            } else {
                                                // let it process with predefined rules
                                                setState("javascript.0.textProcessor", '', true);
                                            }
                                          });
                                        });
                                        

                                        beziehungsweise wie kann ich es "sicher" machen? (nur meine chatid)

                                        kann mir jemand helfen???

                                        danke euch!

                                        1 Antwort Letzte Antwort
                                        0
                                        • N Offline
                                          N Offline
                                          nobob
                                          schrieb am zuletzt editiert von
                                          #120

                                          @Thorsten alias dtp:

                                          Du hast auf Seite 3 folgendes geschrieben:

                                          ` > …

                                          Ich nutze Telegram auf meiner CCU2, um mir in Abhängigkeit von einer definierten Priorität unterschiedliche Push-Nachrichten zusenden zu lassen. Dafür habe ich drei verschiedene Bots ("HomeMatic Info", "HomeMatic Warnung" und "HomeMatic Alarm") eingerichtet und in der Gruppe "HomeMatic" zusammengefasst.

                                          ... `

                                          Nun zu meiner Frage: Wie hast Du den diese 3 Bots zu einer Gruppe hinzufügen können. Irgendwie bekomme ich das nicht hin.

                                          Wenn ich bei Telegram eine Gruppe erstellen möchte, dann kann ich nur von meinen Kontakten jemanden auswählen und eine Gruppe erstellen.

                                          Anschließend ist es möglich die Bots der erstellten Gruppe hinzuzufügen, aber ich möchte nur eine Gruppe mit den Bots.

                                          Eine Gruppe nur mit Bots kann ich aber irgendwie nicht erstellen.

                                          Ich möchte noch erwähnen, dass ich ein Android System einsetze.

                                          Für eine kurze Antwort wäre ich dankbar.

                                          Ich wünsche dann noch einen schönen Samstag Abend und verbleibe mit

                                          Freundlichen Grüßen

                                          nobob

                                          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
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          809

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          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