Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Text2command + Telegrambot - "künstliche Intelligenz" scripten?

    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

    Text2command + Telegrambot - "künstliche Intelligenz" scripten?

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

      moin,

      ne ganz doofe Frage:

      Ich Sende via Telegram:

      "Temperaturen alle"

      Und bekomme als Antwort:

      Wohnzimmer X °C

      Büro X°C

      usw….

      wie bekomme ich so etwas hin?

      hab schon versucht den Code von BuZZy zu verändern aber da verzweifele ich am Zeilenumbruch. Hier mein Versuch:

      if (befehl.search(/(?=.*(\bTEMP\b|\bTEMPERATUR\b|\bWARM\b|\bKALT\b))(?=.*(\ALL\b|\bÜBERALL\b|\bALLE\b)).+/ig) != -1) {
              sendTo('telegram', {
                  user: benutzer,
                  text: 'Wohnzimmer ' + getState("hm-rpc.0.OEQ0295648.1.TEMPERATURE").val + '°C!' +
                    'Büro ' + getState("hm-rpc.0.OEQ0295648.1.TEMPERATURE").val + '°C!',
                        });
          } 
      
      

      hab überhaupt keine Ahnung vom Scripten also entschuldigt meine Unwissenheit.

      Danke für Eure Hilfe.

      P.S. Ansonsten klappt Buzzy's Script bei mir wunderbar, nur möchte ich diese Funktion noch haben damit ich auf mal alle Temp. sehe.

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

        @anubiss1337:

        Wie bekomme ich so etwas hin?

        hab überhaupt keine Ahnung vom Scripten also entschuldigt meine Unwissenheit. `
        Kein Problem - brauchst dich nicht zu entschuldigen. 🙂

        Zur Frage:

        \n = Zeilenumbruch

        Also um ein Zeilenumbruch zwischen "°C!" und "Büro" einzufügen musst du es so machen:

        if (befehl.search(/(?=.*(\bTEMP\b|\bTEMPERATUR\b|\bWARM\b|\bKALT\b))(?=.*(\bALL\b|\bÜBERALL\b|\bALLE\b)).+/ig) != -1) {
                sendTo('telegram', {
                    user: benutzer,
                    text: 'Wohnzimmer ' + getState("hm-rpc.0.OEQ0295648.1.TEMPERATURE").val + '°C!\nBüro ' + getState("hm-rpc.0.OEQ0295648.1.TEMPERATURE").val + '°C!',
                          });
            } 
        
        

        P.s.: In der Abfrage (?=.*(\bALL\b|\bÜBERALL\b|\bALLE\b)).+/ig) hast du bei "ALL" das \b vorne (bestimmt aus versehen) gelöscht. Hab es mal wieder eingefügt für dich.. 😉

        Gruß

        1 Reply Last reply Reply Quote 0
        • dslraser
          dslraser Forum Testing Most Active last edited by

          Ich habe das mal für mich umgebaut. Ob es korrekt ist (bin Anfänger) weiß ich nicht, aber es funktioniert.

          Die Abfrage in Telegram habe ich auf ein Wort gekürzt. Geht mit dem Wort Temperatur oder warm oder kalt.

          Vielleicht braucht/will das Jemand so nutzen

          on({id: 'telegram.0.communicate.request', change: 'any'}, function (obj) {
              var stateval = getState('telegram.0.communicate.request').val;              // Statevalue in Variable schreiben
              var benutzer = stateval.substring(1,stateval.indexOf("]"));                 // Benutzer aus Statevalue extrahieren
              var befehl = stateval.substring(stateval.indexOf("]")+1,stateval.length);   // Befehl/Text aus Statevalue extrahieren
          
               if (befehl.search(/(?=.*(\bTEMPERATUR\b|\bWARM\b|\bKALT\b)).+/ig) != -1) {
                  sendTo('telegram', {
                      user: benutzer,
                      text: 'Für welchen Raum möchtest du die Temperatur abfragen?',
                      reply_markup: {
                          inline_keyboard: [
                              [{ text: 'alle Räume', callback_data: '%Tempalle'}],
                              [{ text: 'Flur', callback_data: '%TempFlur'}],
                              [{ text: 'Wohnzimmer', callback_data: '%TempWohnzimmer'}],
                              [{ text: 'Badezimmer', callback_data: '%TempBadezimmer'}], 
                              [{ text: 'Gästezimmer', callback_data: '%TempGaestezimmer'}],
                              [{ text: 'Schlafzimmer', callback_data: '%TempSchlafzimmer'}],
                          ]
                       }
                  });
              }    
          
          // Auswahl alle Räume oder einzeln.
              else if (befehl === "%Tempalle") {
                      sendTo('telegram', {
                      user: benutzer,
                      text: "Temperatur alle Räume angefragt",
                      answerCallbackQuery: {
                      text: 'Flur ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C\nWonzimmer ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C\nBadezimmer ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C\nGästezimmer ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C\nSchlafzimmer ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C',
                      showAlert: true
                      }
                  });
              } 
              else if (befehl === "%TempFlur") {
                      sendTo('telegram', {
                      user: benutzer,
                      text: "Flurtemperatur angefragt",
                      answerCallbackQuery: {
                      text: 'Die Temperatur im im Flur beträgt ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C',
                      showAlert: true
                      }
                  });
              } 
              else if (befehl === "%TempSchlafzimmer") {
                      sendTo('telegram', {
                      user: benutzer,
                      text: "Schlafzimmertemperatur angefragt",
                      answerCallbackQuery: {
                      text: 'Die Temperatur im Schlafzimmer beträgt ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C',
                      showAlert: true
                      }
                  });
              }
              else if (befehl === "%TempGaestezimmer") {
                      sendTo('telegram', {
                      user: benutzer,
                      text: "Gästezimmertemperatur angefragt",
                      answerCallbackQuery: {
                      text: 'Die Temperatur im Gästezimmer beträgt ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C',
                      showAlert: true
                      }
                  });
              }
              else if (befehl === "%TempWohnzimmer") {
                      sendTo('telegram', {
                      user: benutzer,
                      text: "Wohnzimmertemperatur angefragt",
                      answerCallbackQuery: {
                      text: 'Die Temperatur im Wohnzimmer beträgt ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C',
                      showAlert: true
                      }
                  });
              }
              else if (befehl === "%TempBadezimmer") {
                      sendTo('telegram', {
                      user: benutzer,
                      text: "Badezimmertemperatur angefragt",
                      answerCallbackQuery: {
                      text: 'Die Temperatur im Badezimmer beträgt ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C',
                      showAlert: true
                      }
                  });
              }
          });
          

          3822_temp.jpg
          3822_tempalle.jpg
          3822_raum.jpg

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

            Da die Möglichkeiten von text2command nicht ausreichen um eine Konversation stattfinden zu lassen, kommt man um die Realisierung mit einem Script nicht herum. Ich bin gerade dabei eine ioBroker-AI/KI zu schreiben, mit der man, ähnlich dem Google-Assistenten, kommunizieren kann. Soll heißen, die sich Kontexte merkt und auch Nachfragen zu Befehlen stellt.

            Bsp:

            Sofalicht

            < Was soll mit dem Sofalicht gemacht werden? Einschalten, ausschalten, ist es eingeschaltet, ist es ausgeschaltet

            Einschalten

            < Das Sofalicht wurde eingeschaltet

            Das Licht im Flur dimmen

            < Gerne, auf welchen Wert im Bereich 0 bis 100?

            Auf 40

            < Das Licht im Flur wurde auf 40 gedimmt

            usw.

            Der AI ist es dabei egal, ob die Anfragen/Antworten via Spracherkennung/Sprachausgabe oder Telegram-Chat erfolgen, sie untersucht lediglich die eingehenden Textphrasen und interpretiert sie. Damit es nicht zu langweilig wird, sind natürlich Antwortvarianten implementiert.

            Bsp:

            Schalte bitte das Sofalicht ein

            < Das Sofalicht wurde eingeschaltet.

            oder < Jo, habs eingeschaltet

            oder < Sofalicht ist an

            oder < ….

            Die Steuerung erfolgt über RegEx-Keyworte und weiteren Angaben, die je ioBroker-State individuell vergeben werden können. Ich nutze absichtlich nicht die vorhandenen Aufzählungen um flexibel zu bleiben. Nichts ist eintöniger als immer die gleiche Antwort zu erhalten. Natürlich gibt es auch Konversations-Objekte ohne ioBroker-States dahinter - um das Gefühl zu haben, ioBroker könne wirklich kommunizieren.

            Bsp:

            Hallo

            < Hallo, was kann ich für dich tun?

            Wie heißt du?

            < Man nennt mich Haus!

            Wie spät ist es?

            < Es ist 20 Uhr 13

            Schalte das Licht aus?

            < Gerne, aber wo? Wohnzimmer, Flur, Küche, überall

            Überall

            < Nun ist es dunkel.

            Medienabghängig sind auch erweiterte Antworten möglich. So wird beim Telegram-Chat z.B. auch die Möglichkeit der Inline- und/oder Static-Buttons als Antwort möglich sein.

            Wie weit ich bin? Erst am Anfang 😉

            Aber, WENN es mal sinnvoll anwendbar ist, erfahrt ihr es zuerst ...

            BBTown 1 Reply Last reply Reply Quote 0
            • Dutchman
              Dutchman Developer Most Active Administrators last edited by

              @Uhula:

              Wie weit ich bin? Erst am Anfang [emoji6]

              Aber, WENN es mal sinnvoll anwendbar ist, erfahrt ihr es zuerst … `

              Da bin ich aber sehr gespannt das klinkt ja super was du da vor hast !

              –-----------------------

              Send from mobile device

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

                @Uhula:

                Da die Möglichkeiten von text2command nicht ausreichen um eine Konversation stattfinden zu lassen, kommt man um die Realisierung mit einem Script nicht herum. Ich bin gerade dabei eine ioBroker-AI/KI zu schreiben, mit der man, ähnlich dem Google-Assistenten, kommunizieren kann. Soll heißen, die sich Kontexte merkt und auch Nachfragen zu Befehlen stellt. `
                Und alles OHNE Cloud :!: :!:

                Ich muss mal in meinen alten Unterlagen schauen. Da gab es mal etwas (vor ca. 30 Jahren :shock: ).

                Grüße

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

                  klingt sehr spannend.

                  Bzgl. rantanplans > Und alles OHNE Cloud :!: :!:
                  wäre meine Frage, ob das so stimmt? Ich dachte, eine (Amazon-)Cloud bzw die dahinter stehende Rechenpower sei zwingend notwendig, um Sprache in Befehle zu wandeln?

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

                    @tempestas:

                    wäre meine Frage, ob das so stimmt? Ich dachte, eine (Amazon-)Cloud bzw die dahinter stehende Rechenpower sei zwingend notwendig, um Sprache in Befehle zu wandeln? `
                    Hier geht es, glaub ich, nicht um eine Sprachsteuerung.

                    Ehr eine text basierte "Unterhaltung" wie z.B. mit Telegram.

                    Grüße

                    1 Reply Last reply Reply Quote 0
                    • dslraser
                      dslraser Forum Testing Most Active last edited by

                      Hallo,

                      eine Frage an die Profis. Ich möchte das gleiche Script

                      ! on({id: 'telegram.0.communicate.request', change: 'any'}, function (obj) {
                      ! var stateval = getState('telegram.0.communicate.request').val; // Statevalue in Variable schreiben
                      ! var benutzer = stateval.substring(1,stateval.indexOf("]")); // Benutzer aus Statevalue extrahieren
                      ! var befehl = stateval.substring(stateval.indexOf("]")+1,stateval.length); // Befehl/Text aus Statevalue extrahieren
                      ! if (befehl.search(/(?=.*(\bTEMPERATUR\b|\bWARM\b|\bKALT\b)).+/ig) != -1) {
                      ! sendTo('telegram', {
                      ! user: benutzer,
                      ! text: 'Für welchen Raum möchtest du die Temperatur abfragen?',
                      ! reply_markup: {
                      ! inline_keyboard: [
                      ! [{ text: 'alle Räume', callback_data: '%Tempalle'}],
                      ! [{ text: 'Flur', callback_data: '%TempFlur'}],
                      ! [{ text: 'Wohnzimmer', callback_data: '%TempWohnzimmer'}],
                      ! [{ text: 'Badezimmer', callback_data: '%TempBadezimmer'}],
                      ! [{ text: 'Gästezimmer', callback_data: '%TempGaestezimmer'}],
                      ! [{ text: 'Schlafzimmer', callback_data: '%TempSchlafzimmer'}],
                      ! ]
                      ! }
                      ! });
                      ! }
                      ! // Auswahl alle Räume oder einzeln.
                      ! else if (befehl === "%Tempalle") {
                      ! sendTo('telegram', {
                      ! user: benutzer,
                      ! text: "Temperatur alle Räume angefragt",
                      ! answerCallbackQuery: {
                      ! text: 'Flur ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C\nWonzimmer ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C\nBadezimmer ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C\nGästezimmer ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C\nSchlafzimmer ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C',
                      ! showAlert: true
                      ! }
                      ! });
                      ! }
                      ! else if (befehl === "%TempFlur") {
                      ! sendTo('telegram', {
                      ! user: benutzer,
                      ! text: "Flurtemperatur angefragt",
                      ! answerCallbackQuery: {
                      ! text: 'Die Temperatur im im Flur beträgt ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C',
                      ! showAlert: true
                      ! }
                      ! });
                      ! }
                      ! else if (befehl === "%TempSchlafzimmer") {
                      ! sendTo('telegram', {
                      ! user: benutzer,
                      ! text: "Schlafzimmertemperatur angefragt",
                      ! answerCallbackQuery: {
                      ! text: 'Die Temperatur im Schlafzimmer beträgt ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C',
                      ! showAlert: true
                      ! }
                      ! });
                      ! }
                      ! else if (befehl === "%TempGaestezimmer") {
                      ! sendTo('telegram', {
                      ! user: benutzer,
                      ! text: "Gästezimmertemperatur angefragt",
                      ! answerCallbackQuery: {
                      ! text: 'Die Temperatur im Gästezimmer beträgt ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C',
                      ! showAlert: true
                      ! }
                      ! });
                      ! }
                      ! else if (befehl === "%TempWohnzimmer") {
                      ! sendTo('telegram', {
                      ! user: benutzer,
                      ! text: "Wohnzimmertemperatur angefragt",
                      ! answerCallbackQuery: {
                      ! text: 'Die Temperatur im Wohnzimmer beträgt ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C',
                      ! showAlert: true
                      ! }
                      ! });
                      ! }
                      ! else if (befehl === "%TempBadezimmer") {
                      ! sendTo('telegram', {
                      ! user: benutzer,
                      ! text: "Badezimmertemperatur angefragt",
                      ! answerCallbackQuery: {
                      ! text: 'Die Temperatur im Badezimmer beträgt ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C',
                      ! showAlert: true
                      ! }
                      ! });
                      ! }
                      ! }); nutzen um mir den Status der Batterien meiner Geräte anzeigen zu lassen. Der Status wird mit 0/1 - (voll/leer) angezeigt. Was muß ich ändern das mir bei 0 = voll und bei 1 = leer auch die Worte/Text und nicht 0/1 angezeigt wird ?

                      Den Volt Zustand bzw die tatsächlich Volt Anzeige wäre ja genauso wie bei Temperatur, halt nur die Begriffe austauschen.

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

                        Hallo dslraser

                        Das würde besser in die Rubrik "scripten" passen.

                        Grüße

                        1 Reply Last reply Reply Quote 0
                        • dslraser
                          dslraser Forum Testing Most Active last edited by

                          @rantanplan:

                          Hallo dslraser

                          Das würde besser in die Rubrik "scripten" passen.

                          Grüße `
                          soll ich die Frage dort nochmal stellen ? (Ich wollte nix doppelt fragen)

                          Aber hast Recht, da passt es besser hin, dann stelle ich es da auch noch rein.

                          LG

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

                            @tempestas:

                            Ich dachte, eine (Amazon-)Cloud bzw die dahinter stehende Rechenpower sei zwingend notwendig, um Sprache in Befehle zu wandeln? `
                            Das schon. Aber es macht für mich einen deutlichen Unterschied ob ich die Cloud lediglich dazu nutze um aus einer Sound Datei einen Text zu machen, oder ob ich in der Cloud "erlaube" meine Geräte zu steuern (also diese dort bekannt zu machen). Letzeres gefällt mir gar nicht. Noch besser wäre ein offline-Sprach2Text - gibt es bestimmt bald als Hardware-Plug für den Pi 😉

                            Meiner ioBroker-AI wird es egal sein, es reagiert mit Textantworten auf Textfragen/-befehle, egal aus welcher Quelle diese auch kommen. Selbst die Spracherkennung der ioBroker-App sollte dann funktionieren.

                            • Sprache > Sprache2Text > AI > Text2Sprache > Sprache

                            • Telegram-Chat > AI > Telegram-Chat

                            • vis-Textinput > AI > vis-Textoutput

                            Sorry für off topic - ich halte mich hier nun raus.

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

                              wieso raushalten? ist doch genau richtig hier. Klingt alles sehr spannend (und meilenweit über meinem Können 🙂

                              Wäre schön, Alexa wieder einzumotten.

                              1 Reply Last reply Reply Quote 0
                              • Homoran
                                Homoran Global Moderator Administrators last edited by

                                Ich erinnere mich noch an mein erstes Handy mit Sprachsteuerung. Ich glaube da wurde ein Sample mit dem anzurufenden Namen abgelegt und anschließend als Vergleich genutzt.

                                Ein paar Schlüsselworte müsste man doch so auch abspeichern können.

                                Und was tts angeht, kann das auch jedes kleine Navi im offline modus.

                                Gruß

                                Rainer

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

                                  @Uhula:

                                  Sorry für off topic - ich halte mich hier nun raus. `

                                  Wie Homoran schon sagte, passt doch hier rein.

                                  Und wenn Du dieses Projekt genau so professionell angehst wie Dein "Material Design" kann man wirklich gespannt sein.

                                  Grüße

                                  1 Reply Last reply Reply Quote 0
                                  • AlCalzone
                                    AlCalzone Developer last edited by

                                    @Uhula:

                                    Meiner ioBroker-AI wird es egal sein, es reagiert mit Textantworten auf Textfragen/-befehle, egal aus welcher Quelle diese auch kommen. Selbst die Spracherkennung der ioBroker-App sollte dann funktionieren. `
                                    Ööööhhh, bitte halte uns hier unbedingt auf dem Laufenden! Klingt hoch interessant!

                                    Das würde sich übrigens ziemlich genial als Adapter machen.

                                    1 Reply Last reply Reply Quote 0
                                    • Homoran
                                      Homoran Global Moderator Administrators last edited by

                                      Schon gelesen?

                                      https://www.heise.de/newsticker/meldung … 04454.html

                                      Gruß

                                      Rainer

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

                                        Das Script gefällt mir, habe ich eingebaut. Funktioniert korrekt, gibt bei mir aber einen error, der aber nicht die Funktion beeinträchtigt!? Vielleicht muss ich den user manuell eintragen?

                                        telegram.1	2017-11-29 23:00:05.879	error	Cannot send answerCallbackQuery [user - undefined]: Error: ETELEGRAM: 400 Bad Request: QUERY_ID_INVALID
                                        

                                        @dslraser:

                                        Ich habe das mal für mich umgebaut. Ob es korrekt ist (bin Anfänger) weiß ich nicht, aber es funktioniert.

                                        Die Abfrage in Telegram habe ich auf ein Wort gekürzt. Geht mit dem Wort Temperatur oder warm oder kalt.

                                        Vielleicht braucht/will das Jemand so nutzen

                                        on({id: 'telegram.0.communicate.request', change: 'any'}, function (obj) {
                                            var stateval = getState('telegram.0.communicate.request').val;              // Statevalue in Variable schreiben
                                            var benutzer = stateval.substring(1,stateval.indexOf("]"));                 // Benutzer aus Statevalue extrahieren
                                            var befehl = stateval.substring(stateval.indexOf("]")+1,stateval.length);   // Befehl/Text aus Statevalue extrahieren
                                        
                                             if (befehl.search(/(?=.*(\bTEMPERATUR\b|\bWARM\b|\bKALT\b)).+/ig) != -1) {
                                                sendTo('telegram', {
                                                    user: benutzer,
                                                    text: 'Für welchen Raum möchtest du die Temperatur abfragen?',
                                                    reply_markup: {
                                                        inline_keyboard: [
                                                            [{ text: 'alle Räume', callback_data: '%Tempalle'}],
                                                            [{ text: 'Flur', callback_data: '%TempFlur'}],
                                                            [{ text: 'Wohnzimmer', callback_data: '%TempWohnzimmer'}],
                                                            [{ text: 'Badezimmer', callback_data: '%TempBadezimmer'}], 
                                                            [{ text: 'Gästezimmer', callback_data: '%TempGaestezimmer'}],
                                                            [{ text: 'Schlafzimmer', callback_data: '%TempSchlafzimmer'}],
                                                        ]
                                                     }
                                                });
                                            }    
                                            
                                        // Auswahl alle Räume oder einzeln.
                                            else if (befehl === "%Tempalle") {
                                                    sendTo('telegram', {
                                                    user: benutzer,
                                                    text: "Temperatur alle Räume angefragt",
                                                    answerCallbackQuery: {
                                                    text: 'Flur ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C\nWonzimmer ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C\nBadezimmer ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C\nGästezimmer ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C\nSchlafzimmer ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C',
                                                    showAlert: true
                                                    }
                                                });
                                            } 
                                            else if (befehl === "%TempFlur") {
                                                    sendTo('telegram', {
                                                    user: benutzer,
                                                    text: "Flurtemperatur angefragt",
                                                    answerCallbackQuery: {
                                                    text: 'Die Temperatur im im Flur beträgt ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C',
                                                    showAlert: true
                                                    }
                                                });
                                            } 
                                            else if (befehl === "%TempSchlafzimmer") {
                                                    sendTo('telegram', {
                                                    user: benutzer,
                                                    text: "Schlafzimmertemperatur angefragt",
                                                    answerCallbackQuery: {
                                                    text: 'Die Temperatur im Schlafzimmer beträgt ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C',
                                                    showAlert: true
                                                    }
                                                });
                                            }
                                            else if (befehl === "%TempGaestezimmer") {
                                                    sendTo('telegram', {
                                                    user: benutzer,
                                                    text: "Gästezimmertemperatur angefragt",
                                                    answerCallbackQuery: {
                                                    text: 'Die Temperatur im Gästezimmer beträgt ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C',
                                                    showAlert: true
                                                    }
                                                });
                                            }
                                            else if (befehl === "%TempWohnzimmer") {
                                                    sendTo('telegram', {
                                                    user: benutzer,
                                                    text: "Wohnzimmertemperatur angefragt",
                                                    answerCallbackQuery: {
                                                    text: 'Die Temperatur im Wohnzimmer beträgt ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C',
                                                    showAlert: true
                                                    }
                                                });
                                            }
                                            else if (befehl === "%TempBadezimmer") {
                                                    sendTo('telegram', {
                                                    user: benutzer,
                                                    text: "Badezimmertemperatur angefragt",
                                                    answerCallbackQuery: {
                                                    text: 'Die Temperatur im Badezimmer beträgt ' + getState("hm-rpc.0..1.ACTUAL_TEMPERATURE").val + '°C',
                                                    showAlert: true
                                                    }
                                                });
                                            }
                                        });
                                        ```` ` 
                                        1 Reply Last reply Reply Quote 0
                                        • dslraser
                                          dslraser Forum Testing Most Active last edited by

                                          Ich habe keinen Benutzer eingetragen

                                          1 Reply Last reply Reply Quote 0
                                          • dslraser
                                            dslraser Forum Testing Most Active last edited by

                                            @lobomau:

                                            Das Script gefällt mir, habe ich eingebaut. `
                                            Ich habe für mich für die Batteriegeräte noch das gleiche Script gemacht, allerdings geht da nicht die komplette Abfrage für alle Geräte, dann kommt bei mir auch ne Fehlermeldung im Log (Sinngemäß: Nachricht zu lang) Hier sind die Wörter Batterie/voll/leer/Volt.

                                            ! ````
                                            on({id: 'telegram.0.communicate.request', change: 'any'}, function (obj) {
                                            var stateval = getState('telegram.0.communicate.request').val; // Statevalue in Variable schreiben
                                            var benutzer = stateval.substring(1,stateval.indexOf("]")); // Benutzer aus Statevalue extrahieren
                                            var befehl = stateval.substring(stateval.indexOf("]")+1,stateval.length); // Befehl/Text aus Statevalue extrahieren
                                            ! if (befehl.search(/(?=.*(\bBATTERIE\b|\bVOLL\b|\bLEER\b|\bVOLT\b)).+/ig) != -1) {
                                            sendTo('telegram', {
                                            user: benutzer,
                                            text: 'Für welchen Raum möchtest du die Batterie abfragen?',
                                            reply_markup: {
                                            inline_keyboard: [
                                            // [{ text: 'alle Räume', callback_data: '%Batalle'}],
                                            [{ text: 'Flur', callback_data: '%BatFlur'}],
                                            [{ text: 'Wohnzimmer', callback_data: '%BatWohnzimmer'}],
                                            [{ text: 'Badezimmer', callback_data: '%BatBadezimmer'}],
                                            [{ text: 'Gästezimmer', callback_data: '%BatGaestezimmer'}],
                                            [{ text: 'Schlafzimmer', callback_data: '%BatSchlafzimmer'}],
                                            ]
                                            }
                                            });
                                            }

                                            // Auswahl alle Räume oder einzeln.Alle Räume ist für Telegramm zu lang = Fehler im log
                                            /* else if (befehl === "%Batalle") {
                                            sendTo('telegram', {
                                            user: benutzer,
                                            text: "Batterien alle Räume angefragt",
                                            answerCallbackQuery: {
                                            text: 'Flur\nFlur Haustür ' + getState("hm-rpc.0..0.OPERATING_VOLTAGE").val +
                                            ' Volt\nFlur Wandthermostat ' + getState("hm-rpc.0..0.OPERATING_VOLTAGE").val +
                                            ' Volt\nFlur Heizkörper ' + getState("hm-rpc.0..0.OPERATING_VOLTAGE").val +
                                            'Wohnzimme\nWohnzimmer Fenster links ' + getState("hm-rpc.0..0.OPERATING_VOLTAGE").val +
                                            ' Volt\nWohnzimmer Fenster rechts ' + getState("hm-rpc.0..0.OPERATING_VOLTAGE").val +
                                            ' Volt\nWohnzimmer Wandthermostat ' + getState("hm-rpc.0..0.OPERATING_VOLTAGE").val +
                                            ' Volt\nWohnzimmer Heizkörper ' + getState("hm-rpc.0..0.OPERATING_VOLTAGE").val +
                                            ' Volt',
                                            showAlert: true
                                            }
                                            });
                                            }*/
                                            else if (befehl === "%BatFlur") {
                                            sendTo('telegram', {
                                            user: benutzer,
                                            text: "Flur Batterie angefragt",
                                            answerCallbackQuery: {
                                            text:
                                            'Flur Haustür ' + getState("hm-rpc.0..0.OPERATING_VOLTAGE").val +
                                            ' Volt\nFlur Wandthermostat ' + getState("hm-rpc.0..0.OPERATING_VOLTAGE").val +
                                            ' Volt\nFlur Heizkörper ' + getState("hm-rpc.0..0.OPERATING_VOLTAGE").val +
                                            ' Volt',
                                            showAlert: true
                                            }
                                            });
                                            }
                                            else if (befehl === "%BatSchlafzimmer") {
                                            sendTo('telegram', {
                                            user: benutzer,
                                            text: "Schlafzimmer Batterie angefragt",
                                            answerCallbackQuery: {
                                            text:
                                            'Schlafzimmer Fenster links ' + getState("hm-rpc.0..0.OPERATING_VOLTAGE").val +
                                            ' Volt\nSchlafzimmer Fenster rechts ' + getState("hm-rpc.0..0.OPERATING_VOLTAGE").val +
                                            ' Volt\nSchlafzimmer Wandthermostat ' + getState("hm-rpc.0.000A97099C2232.0.OPERATING_VOLTAGE").val +
                                            ' Volt\nSchlafzimmer Heizkörper links ' + getState("hm-rpc.0..0.OPERATING_VOLTAGE").val +
                                            ' Volt\nSchlafzimmer Heizkörper rechts ' + getState("hm-rpc.0.000A1709A1EBD5.0.OPERATING_VOLTAGE").val +
                                            ' Volt',
                                            showAlert: true
                                            }
                                            });
                                            }
                                            else if (befehl === "%BatGaestezimmer") {
                                            sendTo('telegram', {
                                            user: benutzer,
                                            text: "Gästezimmer Batterie angefragt",
                                            answerCallbackQuery: {
                                            text:
                                            'Gästezimmer Fenster links ' + getState("hm-rpc.0..0.OPERATING_VOLTAGE").val +
                                            ' Volt\nGästezimmer Fenster rechts ' + getState("hm-rpc.0..0.OPERATING_VOLTAGE").val +
                                            ' Volt\nGästezimmer Wandthermostat ' + getState("hm-rpc.0..0.OPERATING_VOLTAGE").val +
                                            ' Volt\nGästezimmer Heizkörper ' + getState("hm-rpc.0..0.OPERATING_VOLTAGE").val +
                                            ' Volt',
                                            showAlert: true
                                            }
                                            });
                                            }
                                            else if (befehl === "%BatWohnzimmer") {
                                            sendTo('telegram', {
                                            user: benutzer,
                                            text: "Wohnzimmer Batterie angefragt",
                                            answerCallbackQuery: {
                                            text:
                                            'Wohnzimmer Fenster links ' + getState("hm-rpc.0..0.OPERATING_VOLTAGE").val +
                                            ' Volt\nWohnzimmer Fenster rechts ' + getState("hm-rpc.0..0.OPERATING_VOLTAGE").val +
                                            ' Volt\nWohnzimmer Wandthermostat ' + getState("hm-rpc.0..0.OPERATING_VOLTAGE").val +
                                            ' Volt\nWohnzimmer Heizkörper ' + getState("hm-rpc.0..0.OPERATING_VOLTAGE").val +
                                            ' Volt',
                                            showAlert: true
                                            }
                                            });
                                            }
                                            else if (befehl === "%BatBadezimmer") {
                                            sendTo('telegram', {
                                            user: benutzer,
                                            text: "Badezimmer Batterie angefragt",
                                            answerCallbackQuery: {
                                            text:
                                            'Bad Fenster links ' + getState("hm-rpc.0..0.OPERATING_VOLTAGE").val +
                                            ' Volt\nBad Fenster rechts ' + getState("hm-rpc.0..0.OPERATING_VOLTAGE").val +
                                            ' Volt\nBad Wandthermostat ' + getState("hm-rpc.0..0.OPERATING_VOLTAGE").val +
                                            ' Volt\nBad Heizkörper ' + getState("hm-rpc.0..0.OPERATING_VOLTAGE").val + ' Volt',
                                            showAlert: true
                                            }
                                            });
                                            }
                                            });

                                            [3822_bat.jpg](/assets/uploads/files/3822_bat.jpg)
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            866
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            16
                                            38
                                            8367
                                            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