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. Text2command + Telegrambot - "künstliche Intelligenz" scripten?

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

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

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
38 Beiträge 16 Kommentatoren 9.4k Aufrufe 2 Watching
  • Ä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.
  • T Offline
    T Offline
    tempestas
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • rantanplanR Offline
      rantanplanR Offline
      rantanplan
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      0
      • dslraserD Offline
        dslraserD Offline
        dslraser
        Forum Testing Most Active
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • rantanplanR Offline
          rantanplanR Offline
          rantanplan
          schrieb am zuletzt editiert von
          #20

          Hallo dslraser

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

          Grüße

          Rantanplan

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

          1 Antwort Letzte Antwort
          0
          • dslraserD Offline
            dslraserD Offline
            dslraser
            Forum Testing Most Active
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            0
            • UhulaU Offline
              UhulaU Offline
              Uhula
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              • T Offline
                T Offline
                tempestas
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                0
                • HomoranH Nicht stören
                  HomoranH Nicht stören
                  Homoran
                  Global Moderator Administrators
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  0
                  • rantanplanR Offline
                    rantanplanR Offline
                    rantanplan
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    0
                    • AlCalzoneA Offline
                      AlCalzoneA Offline
                      AlCalzone
                      Developer
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      0
                      • HomoranH Nicht stören
                        HomoranH Nicht stören
                        Homoran
                        Global Moderator Administrators
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        0
                        • lobomauL Offline
                          lobomauL Offline
                          lobomau
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          0
                          • dslraserD Offline
                            dslraserD Offline
                            dslraser
                            Forum Testing Most Active
                            schrieb am zuletzt editiert von
                            #29

                            Ich habe keinen Benutzer eingetragen

                            1 Antwort Letzte Antwort
                            0
                            • dslraserD Offline
                              dslraserD Offline
                              dslraser
                              Forum Testing Most Active
                              schrieb am zuletzt editiert von
                              #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 Antwort Letzte Antwort
                              0
                              • R Offline
                                R Offline
                                robsdobs
                                schrieb am zuletzt editiert von
                                #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 Antwort Letzte Antwort
                                0
                                • lobomauL Offline
                                  lobomauL Offline
                                  lobomau
                                  schrieb am zuletzt editiert von
                                  #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 Antwort Letzte Antwort
                                  0
                                  • dslraserD Offline
                                    dslraserD Offline
                                    dslraser
                                    Forum Testing Most Active
                                    schrieb am zuletzt editiert von
                                    #33

                                    @lobomau:

                                    @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. ` Ich bin gerade unterwegs, aber aus dem Kopf kann ich Dir sagen das ich keinen "Server" im Adapter konfiguriert habe. Im Moment nutze ich Telegram nur selbst und habe keinen weiteren Benutzer.

                                    1 Antwort Letzte Antwort
                                    0
                                    • B Offline
                                      B Offline
                                      Basti1234
                                      schrieb am zuletzt editiert von
                                      #34

                                      Danke für das Script, läuft super! Einzig die Fehlermeldung "ich verstehe xxx nicht" bekomme ich nicht raus. Hast du das gelöst?

                                      1 Antwort Letzte Antwort
                                      0
                                      • dslraserD Offline
                                        dslraserD Offline
                                        dslraser
                                        Forum Testing Most Active
                                        schrieb am zuletzt editiert von
                                        #35

                                        @Basti1234:

                                        Danke für das Script, läuft super! Einzig die Fehlermeldung "ich verstehe xxx nicht" bekomme ich nicht raus. Hast du das gelöst? ` nein, habe mich drann gewöhnt.

                                        1 Antwort Letzte Antwort
                                        0
                                        • E Offline
                                          E Offline
                                          erkenbrecht
                                          schrieb am zuletzt editiert von
                                          #36

                                          @BuZZy:

                                          Hab auch mal text2command außen vor gelassen und kurz & schnell ein Script erstellt womit man erstmal nur die Temperatur abfragen kann.

                                          Wenn man nicht genau definiert was man abfragen will dann kommt eine Rückfrage mit Vorschlägen.

                                          Beschäftige mich erst seit 2 Wochen mit Javascript.. Also bitte habt Verständnis falls es "komplizierter" Code ist.. :D

                                          Geht bestimmt noch einfacher aber wie gesagt, bin Javascript Neuling. :mrgreen:

                                          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
                                              var unbekannt = [                                                           // Array für Antworten bei unbekanntem Befehl
                                                  'Ich weiß leider nicht was du meinst.',
                                                  'Das habe ich leider nicht verstanden.',
                                                  'Tut mir leid. Ich verstehe das nicht.'
                                                              ];
                                              var zufall = Math.floor(Math.random()*unbekannt.length);                    // Setzt eine zufällige Zahl für Antworten bei unbekanntem Befehl
                                              
                                              //createState('Telegram.Bot.Menu' + benutzer, '');                          // EVENTUELL Datenpunkt für "Menüführung" erstellen
                                              //setState('Telegram.Bot.Menu' + benutzer, 'Ich bin hier');                 // EVENTUELL Schreiben in welchem Menü der Benutzer sich befindet.
                                          
                                          // Ab hier werden die zu beantwortenden Fragen definiert.
                                          // /(?=.*(\bTEMPERATUR\b|\bWARM\b|\bKALT\b))(?=.*(\bWOHNZIMMER\b|\bSTUBE\b)).+/ig
                                          // reagiert auf Sätze in denen die Wörter
                                          // (TEMPERATUR oder WARM oder KALT) UND (WOHNZIMMER oder STUBE) vorhanden sind.
                                          // Klar definierte Abfragen müssen logischerweise oben stehen (Wie ist die Temperatur im Wohnzimmer?),
                                          // damit das Script aufhört zu laufen wenn eine passende Antwort gefunden wurde.
                                          // Unklar definierte Abfragen wo der Bot nachfragen muss was gemeint ist müssen weiter unten definiert werden.
                                          // (Wie ist die Temperatur drin?) - Antwort vom Bot: "Welcher Raum ist gemeint? - Vorschlag 1, Vorschlag 2?"
                                          
                                              if (befehl.search(/(?=.*(\bTEMPERATUR\b|\bWARM\b|\bKALT\b))(?=.*(\bWOHNZIMMER\b|\bSTUBE\b)).+/ig) != -1) {
                                                  sendTo('telegram', {
                                                      user: benutzer,
                                                      text: 'Die Temperatur im Wohnzimmer beträgt ' + getState("hm-rpc.0.OEQ0295648.1.TEMPERATURE").val + '°C!',
                                                  });
                                              } 
                                              else if (befehl.search(/(?=.*(\bTEMPERATUR\b|\bWARM\b|\bKALT\b))(?=.*(\bSCHLAFZIMMER\b)).+/ig) != -1) {
                                                  sendTo('telegram', {
                                                      user: benutzer,
                                                      text: 'Die Temperatur im Schlafzimmer beträgt ' + getState("hm-rpc.0.OEQ0291234.1.TEMPERATURE").val + '°C!',
                                                  });
                                              } 
                                              else if (befehl.search(/(?=.*(\bTEMPERATUR\b|\bWARM\b|\bKALT\b))(?=.*(\bDRINNE\b|\bDRIN\b|\bIM\b|\bIN\b)).+/ig) != -1) {
                                                  sendTo('telegram', {
                                                      user: benutzer,
                                                      text: 'Für welchen Raum möchtest du die Temperatur abfragen?',
                                                      reply_markup: {
                                                          inline_keyboard: [
                                                              [{ text: 'Wohnzimmer', callback_data: '%TempWohnzimmer'}],
                                                              [{ text: 'Schlafzimmer', callback_data: '%TempSchlafzimmer'}]
                                                          ]
                                                       }
                                                  });
                                              }    
                                              
                                          // Ab hier werden die Reaktionen auf die returns zu "unklaren" Fragen definiert.
                                              
                                              else if (befehl === "%TempWohnzimmer") {
                                                  sendTo('telegram', {
                                                      user: benutzer,
                                                      text: "Wohnzimmertemperatur angefragt",
                                                      answerCallbackQuery: {
                                                          text: 'Die Temperatur im Wohnzimmer beträgt ' + getState("hm-rpc.0.OEQ0295648.1.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.OEQ0291234.1.TEMPERATURE").val + '°C!',
                                                          showAlert: true
                                                      }
                                                  });
                                              }
                                              
                                          // Wenn überhaupt kein Befehl erkannt wurde dann einen zufälligen Satz aus dem unbekannt Array senden
                                          
                                              else { 
                                                  sendTo('telegram', {user: benutzer, text: unbekannt[zufall]});
                                              }
                                          });
                                          ```` `  
                                          

                                          Top. Genau sowas habe ich gesucht. Vielen Dank.

                                          Was müsste ich in das Script noch reinschreiben, wenn ich über Telegram die Temperatur des Heizungsthermostates einstellen will? Also wenn ich dem Bot schreibe "Stelle Heizung im Wohnzimmer auf 22 Grad"

                                          Hab jetzt schon eine Weile erfolglos gesucht ob ich etwas in der Art finde. Leider hab ich von Javascript so gar keinen Plan. In Blockly bekomme ich auch nur die einfachsten Sachen hin. Bin erst ein paar Tage dabei.

                                          Beste Grüße

                                          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

                                          801

                                          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