Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Text2command + Telegrambot - "künstliche Intelligenz" scripten?

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    11
    2
    209

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

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

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

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

Scheduled Pinned Locked Moved ioBroker Allgemein
38 Posts 16 Posters 9.4k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • dslraserD Offline
    dslraserD Offline
    dslraser
    Forum Testing Most Active
    wrote on last edited by
    #13

    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
    0
    • UhulaU Offline
      UhulaU Offline
      Uhula
      wrote on last edited by
      #14

      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 ...

      Uhula - Leise und Weise
      Ex: ioBroker on Gigabyte NUC Proxmox

      BBTownB 1 Reply Last reply
      0
      • DutchmanD Offline
        DutchmanD Offline
        Dutchman
        Developer Most Active Administrators
        wrote on last edited by
        #15

        @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
        0
        • rantanplanR Offline
          rantanplanR Offline
          rantanplan
          wrote on last edited by
          #16

          @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

          Rantanplan

          CCU3 / MS Server 2019(VM) / Scripten mit Blockly

          1 Reply Last reply
          0
          • T Offline
            T Offline
            tempestas
            wrote on last edited by
            #17

            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?

            <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

            1 Reply Last reply
            0
            • rantanplanR Offline
              rantanplanR Offline
              rantanplan
              wrote on last edited by
              #18

              @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

              Rantanplan

              CCU3 / MS Server 2019(VM) / Scripten mit Blockly

              1 Reply Last reply
              0
              • dslraserD Offline
                dslraserD Offline
                dslraser
                Forum Testing Most Active
                wrote on last edited by
                #19

                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
                0
                • rantanplanR Offline
                  rantanplanR Offline
                  rantanplan
                  wrote on last edited by
                  #20

                  Hallo dslraser

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

                  Grüße

                  Rantanplan

                  CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                  1 Reply Last reply
                  0
                  • dslraserD Offline
                    dslraserD Offline
                    dslraser
                    Forum Testing Most Active
                    wrote on last edited by
                    #21

                    @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
                    0
                    • UhulaU Offline
                      UhulaU Offline
                      Uhula
                      wrote on last edited by
                      #22

                      @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.

                      Uhula - Leise und Weise
                      Ex: ioBroker on Gigabyte NUC Proxmox

                      1 Reply Last reply
                      0
                      • T Offline
                        T Offline
                        tempestas
                        wrote on last edited by
                        #23

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

                        Wäre schön, Alexa wieder einzumotten.

                        <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

                        1 Reply Last reply
                        0
                        • HomoranH Do not disturb
                          HomoranH Do not disturb
                          Homoran
                          Global Moderator Administrators
                          wrote on last edited by
                          #24

                          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

                          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                          1 Reply Last reply
                          0
                          • rantanplanR Offline
                            rantanplanR Offline
                            rantanplan
                            wrote on last edited by
                            #25

                            @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

                            Rantanplan

                            CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                            1 Reply Last reply
                            0
                            • AlCalzoneA Offline
                              AlCalzoneA Offline
                              AlCalzone
                              Developer
                              wrote on last edited by
                              #26

                              @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.

                              Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                              1 Reply Last reply
                              0
                              • HomoranH Do not disturb
                                HomoranH Do not disturb
                                Homoran
                                Global Moderator Administrators
                                wrote on last edited by
                                #27

                                Schon gelesen?

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

                                Gruß

                                Rainer

                                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                1 Reply Last reply
                                0
                                • lobomauL Offline
                                  lobomauL Offline
                                  lobomau
                                  wrote on last edited by
                                  #28

                                  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
                                              }
                                          });
                                      }
                                  });
                                  ```` ` 

                                  Host: NUC8i3 mit Proxmox:

                                  • ioBroker CT Debian 13, npm 10.9.3, nodejs 22.20.0
                                  • Slave: Pi4
                                  1 Reply Last reply
                                  0
                                  • dslraserD Offline
                                    dslraserD Offline
                                    dslraser
                                    Forum Testing Most Active
                                    wrote on last edited by
                                    #29

                                    Ich habe keinen Benutzer eingetragen

                                    1 Reply Last reply
                                    0
                                    • dslraserD Offline
                                      dslraserD Offline
                                      dslraser
                                      Forum Testing Most Active
                                      wrote on last edited by
                                      #30

                                      @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
                                      0
                                      • R Offline
                                        R Offline
                                        robsdobs
                                        wrote on last edited by
                                        #31

                                        @dslraser:

                                        Ich habe keinen Benutzer eingetragen `

                                        Wenn nur eine Person den Bot Nutzer geht das. Sobald mehrere Nutzer den Bot nutzen, gehen alle Nachrichten ohne user immer an alle die den Bot nutzen. Daher im Multi-User Betrieb ist die Angabe des Benutzers schon sinnvoll.

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

                                        1 Reply Last reply
                                        0
                                        • lobomauL Offline
                                          lobomauL Offline
                                          lobomau
                                          wrote on last edited by
                                          #32

                                          @dslraser:

                                          Ich habe keinen Benutzer eingetragen `
                                          Läuft bei dir telegram mit "ständig Abfragen" oder "Server"?

                                          Bei mir ständig Abfragen… ich suche noch nach der Ursache meiner Fehlermeldung.

                                          Host: NUC8i3 mit Proxmox:

                                          • ioBroker CT Debian 13, npm 10.9.3, nodejs 22.20.0
                                          • Slave: Pi4
                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

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

                                          93

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe