Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Konversation mit dem BOT via Telegram

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    459

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    380

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    972

Konversation mit dem BOT via Telegram

Geplant Angeheftet Gesperrt Verschoben Blockly
12 Beiträge 2 Kommentatoren 664 Aufrufe 4 Beobachtet
  • Ä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.
  • F fliegema

    Hallo in die Runde,

    da ich aufgrund der baulichen Begebenheiten kein permanentes Auslesen des Stromzählers automatisieren kann, würde ich dies gerne während des wöchentlichen Waschgangs machen.

    Bis jetzt notiere ich mir den Zählerstand und schreibe diesen manuell in einen Datenpunkt welcher von sourceanalytics aufbereitet wird.

    Bislang habe ich es nur fertig gebracht, entweder:

    • Werte vom iobroker via Telegram zu erhalten (Waschmaschine fertig, Post ist da, usw...)
    • Kommandos zusenden (schalte Licht an, usw.)

    Jetzt würde ich gerne eine halbe Konversation mit dem iobroker via Telegram starten.

    Zum Beispiel:

    • Ich sende Strom2048 --> In diesem Fall wäre 2048 der Zählerstand
    • lasse im Text nach Strom suchen und lass den Rest in den Datenpunkt schreiben
    • iobroker rechnet und schickt mir meinen aktuellen Verbrauch, Kosten, usw.

    Leider komme ich im Blockly, mit dem nach Text suchen, nicht weiter.

    Ich kann zwar nach Strom filtern, habe aber noch nicht verstanden, wie ich den Zählerstand rausnehmen kann. Das in abspeichern in den Datenpunkt und Übersendung der Verbräuche ist klar.

    Hat Jemand eine Idee, wie man dies umsetzen kann?

    Gruss

    bahnuhrB Online
    bahnuhrB Online
    bahnuhr
    Forum Testing Most Active
    schrieb am zuletzt editiert von bahnuhr
    #2

    @fliegema

    anbei ein kleines Script:

        var vEingabe = getState("telegram.0.communicate.request").val;   // Test Eingabe per telegram auf dem Handy
        var vUser = vEingabe.substring(1, vEingabe.indexOf("]"));
        vEingabe = vEingabe.substring(vEingabe.indexOf("]") + 1, vEingabe.length);
        vEingabe = vEingabe.replace("Strom", ''); 
        log (vEingabe);
    

    Unter vUser hast du zusätzlich noch den User der es gesendet hat.
    Und vEingabe hast du dann den Wert mit dem du weiterarbeiten kannst.

    Bei Blocky bin ich raus.


    Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
    Danke.
    gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
    ScreenToGif :https://www.screentogif.com/downloads.html

    F 1 Antwort Letzte Antwort
    1
    • bahnuhrB bahnuhr

      @fliegema

      anbei ein kleines Script:

          var vEingabe = getState("telegram.0.communicate.request").val;   // Test Eingabe per telegram auf dem Handy
          var vUser = vEingabe.substring(1, vEingabe.indexOf("]"));
          vEingabe = vEingabe.substring(vEingabe.indexOf("]") + 1, vEingabe.length);
          vEingabe = vEingabe.replace("Strom", ''); 
          log (vEingabe);
      

      Unter vUser hast du zusätzlich noch den User der es gesendet hat.
      Und vEingabe hast du dann den Wert mit dem du weiterarbeiten kannst.

      Bei Blocky bin ich raus.

      F Offline
      F Offline
      fliegema
      schrieb am zuletzt editiert von
      #3

      @bahnuhr Super Danke Dir, habe es testweise mit meinen 10min JavaScript google Kenntnissen sogar fertig gebracht, es in einem Datenpunkt zu schreiben.

          var vEingabe = getState('telegram.0.communicate.request'/*Last received request*/).val;   // Test Eingabe per telegram auf dem Handy
          var vUser = vEingabe.substring(1, vEingabe.indexOf("]"));
          vEingabe = vEingabe.substring(vEingabe.indexOf("]") + 1, vEingabe.length);
          vEingabe = vEingabe.replace("Strom", ''); 
          setState('0_userdata.0.00_Powertest'/*00 Powertest*/,vEingabe);
          log (vEingabe);
          console.log (vEingabe);
      

      Leider schreibt er in den Datenpunkt alles was bei Telegram rein kommt. Somit müsste ich erst noch eine If Abfrage rein basteln müssen, dass er nur Werte übernimmt, wenn die lastrequest "Stom" war.

      Da es funktioniert markiere ich es als gelöst, sollte Jemand jedoch bei der Blockly Weise weiterhelfen können, gerne her damit.

      Werde mich dann wohl mal mit Java auseinandersetzen :)

      Cheers

      bahnuhrB 2 Antworten Letzte Antwort
      0
      • F fliegema

        @bahnuhr Super Danke Dir, habe es testweise mit meinen 10min JavaScript google Kenntnissen sogar fertig gebracht, es in einem Datenpunkt zu schreiben.

            var vEingabe = getState('telegram.0.communicate.request'/*Last received request*/).val;   // Test Eingabe per telegram auf dem Handy
            var vUser = vEingabe.substring(1, vEingabe.indexOf("]"));
            vEingabe = vEingabe.substring(vEingabe.indexOf("]") + 1, vEingabe.length);
            vEingabe = vEingabe.replace("Strom", ''); 
            setState('0_userdata.0.00_Powertest'/*00 Powertest*/,vEingabe);
            log (vEingabe);
            console.log (vEingabe);
        

        Leider schreibt er in den Datenpunkt alles was bei Telegram rein kommt. Somit müsste ich erst noch eine If Abfrage rein basteln müssen, dass er nur Werte übernimmt, wenn die lastrequest "Stom" war.

        Da es funktioniert markiere ich es als gelöst, sollte Jemand jedoch bei der Blockly Weise weiterhelfen können, gerne her damit.

        Werde mich dann wohl mal mit Java auseinandersetzen :)

        bahnuhrB Online
        bahnuhrB Online
        bahnuhr
        Forum Testing Most Active
        schrieb am zuletzt editiert von
        #4

        @fliegema

        dann so:

            var vEingabe = getState('telegram.0.communicate.request'/*Last received request*/).val;   // Test Eingabe per telegram auf dem Handy
            var vUser = vEingabe.substring(1, vEingabe.indexOf("]"));
            vEingabe = vEingabe.substring(vEingabe.indexOf("]") + 1, vEingabe.length);
            if (vEingabe.indexOf('Strom') > -1) {
               vEingabe = vEingabe.replace("Strom", ''); 
               setState('0_userdata.0.00_Powertest'/*00 Powertest*/,vEingabe);
               log (vEingabe);
               console.log (vEingabe);
            }
        

        Jetzt wird der Wert nur eingetragen, wenn "Strom" im Text enthalten ist !


        Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
        Danke.
        gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
        ScreenToGif :https://www.screentogif.com/downloads.html

        1 Antwort Letzte Antwort
        1
        • F fliegema

          @bahnuhr Super Danke Dir, habe es testweise mit meinen 10min JavaScript google Kenntnissen sogar fertig gebracht, es in einem Datenpunkt zu schreiben.

              var vEingabe = getState('telegram.0.communicate.request'/*Last received request*/).val;   // Test Eingabe per telegram auf dem Handy
              var vUser = vEingabe.substring(1, vEingabe.indexOf("]"));
              vEingabe = vEingabe.substring(vEingabe.indexOf("]") + 1, vEingabe.length);
              vEingabe = vEingabe.replace("Strom", ''); 
              setState('0_userdata.0.00_Powertest'/*00 Powertest*/,vEingabe);
              log (vEingabe);
              console.log (vEingabe);
          

          Leider schreibt er in den Datenpunkt alles was bei Telegram rein kommt. Somit müsste ich erst noch eine If Abfrage rein basteln müssen, dass er nur Werte übernimmt, wenn die lastrequest "Stom" war.

          Da es funktioniert markiere ich es als gelöst, sollte Jemand jedoch bei der Blockly Weise weiterhelfen können, gerne her damit.

          Werde mich dann wohl mal mit Java auseinandersetzen :)

          bahnuhrB Online
          bahnuhrB Online
          bahnuhr
          Forum Testing Most Active
          schrieb am zuletzt editiert von
          #5

          @fliegema

          auch wichtig;
          ae6dc418-04ac-42e7-a903-a2ca62df9e0c-image.png


          Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
          Danke.
          gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
          ScreenToGif :https://www.screentogif.com/downloads.html

          1 Antwort Letzte Antwort
          1
          • F Offline
            F Offline
            fliegema
            schrieb am zuletzt editiert von
            #6

            @bahnuhr , Geiler Typ!

            Habe noch einen Trigger hinzugefügt, dass er das immer prüft.

            Läuft!

            on('telegram.0.communicate.request'/*Last received request*/, function (obj) {
                var vEingabe = getState('telegram.0.communicate.request'/*Last received request*/).val;   // Test Eingabe per telegram auf dem Handy
                var vUser = vEingabe.substring(1, vEingabe.indexOf("]"));
                vEingabe = vEingabe.substring(vEingabe.indexOf("]") + 1, vEingabe.length);
                if (vEingabe.indexOf('Strom') > -1) {
                   vEingabe = vEingabe.replace("Strom", ''); 
                   setState('0_userdata.0.00_Powertest'/*00 Powertest*/,vEingabe);
                   log (vEingabe);
                   console.log (vEingabe);
                }
            });
            

            Darf ich Dich noch belästigen, wie ich diese Warnung zu verstehen habe?

            20:58:11.507	warn	javascript.0 (20713) at Object.<anonymous> (script.js.common.Telegram.00_PowerMeter:7:8)
            

            Cheers

            bahnuhrB 1 Antwort Letzte Antwort
            0
            • F fliegema

              @bahnuhr , Geiler Typ!

              Habe noch einen Trigger hinzugefügt, dass er das immer prüft.

              Läuft!

              on('telegram.0.communicate.request'/*Last received request*/, function (obj) {
                  var vEingabe = getState('telegram.0.communicate.request'/*Last received request*/).val;   // Test Eingabe per telegram auf dem Handy
                  var vUser = vEingabe.substring(1, vEingabe.indexOf("]"));
                  vEingabe = vEingabe.substring(vEingabe.indexOf("]") + 1, vEingabe.length);
                  if (vEingabe.indexOf('Strom') > -1) {
                     vEingabe = vEingabe.replace("Strom", ''); 
                     setState('0_userdata.0.00_Powertest'/*00 Powertest*/,vEingabe);
                     log (vEingabe);
                     console.log (vEingabe);
                  }
              });
              

              Darf ich Dich noch belästigen, wie ich diese Warnung zu verstehen habe?

              20:58:11.507	warn	javascript.0 (20713) at Object.<anonymous> (script.js.common.Telegram.00_PowerMeter:7:8)
              
              bahnuhrB Online
              bahnuhrB Online
              bahnuhr
              Forum Testing Most Active
              schrieb am zuletzt editiert von
              #7

              @fliegema sagte in Konversation mit dem BOT via Telegram:

              20:58:11.507 warn javascript.0 (20713) at Object.<anonymous> (script.js.common.Telegram.00_PowerMeter:7:8)

              Wie hast du den DP angelegt?
              number oder string ?

              vEingabe ist ja ein string.
              Evtl. musst du diesen noch wandeln in eine number !


              Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
              Danke.
              gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
              ScreenToGif :https://www.screentogif.com/downloads.html

              F 1 Antwort Letzte Antwort
              1
              • bahnuhrB bahnuhr

                @fliegema sagte in Konversation mit dem BOT via Telegram:

                20:58:11.507 warn javascript.0 (20713) at Object.<anonymous> (script.js.common.Telegram.00_PowerMeter:7:8)

                Wie hast du den DP angelegt?
                number oder string ?

                vEingabe ist ja ein string.
                Evtl. musst du diesen noch wandeln in eine number !

                F Offline
                F Offline
                fliegema
                schrieb am zuletzt editiert von
                #8

                @bahnuhr said in Konversation mit dem BOT via Telegram:

                @fliegema sagte in Konversation mit dem BOT via Telegram:

                20:58:11.507 warn javascript.0 (20713) at Object.<anonymous> (script.js.common.Telegram.00_PowerMeter:7:8)

                Wie hast du den DP angelegt?
                number oder string ?

                vEingabe ist ja ein string.
                Evtl. musst du diesen noch wandeln in eine number !

                Habe es gepackt, es klappt! Geil!.

                Jetzt wäre es aber noch super, wenn man den Input prüft, ob dieser größer ist als vorher. Daher dachte ich mir, dass ich eine neue Variable anlegen und gegen diese prüfe, klappt aber scheinbar nicht. Bekomme leider auch keine Fehlermeldung. Denke ich hier zusehr blockly? If AlterWert < vEingabe --> mache weiter. Könntest Du hier bitte nochmal drüber gucken?

                on('telegram.0.communicate.request'/*Last received request*/, function (obj) {
                    var vEingabe = getState('telegram.0.communicate.request'/*Last received request*/).val;   // Test Eingabe per telegram auf dem Handy
                    var vUser = vEingabe.substring(1, vEingabe.indexOf("]"));
                    var vAlterWert;
                    vEingabe = vEingabe.substring(vEingabe.indexOf("]") + 1, vEingabe.length);
                    if (vAlterWert < vEingabe) {
                        if (vEingabe.indexOf('Strom') > -1) {
                            vEingabe = vEingabe.replace("Strom", ''); 
                            setObject('0_userdata.0.00_Powertest'/*00 Powertest*/,vEingabe);
                            vAlterWert = vEingabe;
                            // log (vEingabe);
                            console.log ("Aktueller Wert: "+ vEingabe);
                            console.log ("Alter Wert: "+ vAlterWert);
                            }
                        }
                });
                

                Cheers

                bahnuhrB 1 Antwort Letzte Antwort
                0
                • F fliegema

                  @bahnuhr said in Konversation mit dem BOT via Telegram:

                  @fliegema sagte in Konversation mit dem BOT via Telegram:

                  20:58:11.507 warn javascript.0 (20713) at Object.<anonymous> (script.js.common.Telegram.00_PowerMeter:7:8)

                  Wie hast du den DP angelegt?
                  number oder string ?

                  vEingabe ist ja ein string.
                  Evtl. musst du diesen noch wandeln in eine number !

                  Habe es gepackt, es klappt! Geil!.

                  Jetzt wäre es aber noch super, wenn man den Input prüft, ob dieser größer ist als vorher. Daher dachte ich mir, dass ich eine neue Variable anlegen und gegen diese prüfe, klappt aber scheinbar nicht. Bekomme leider auch keine Fehlermeldung. Denke ich hier zusehr blockly? If AlterWert < vEingabe --> mache weiter. Könntest Du hier bitte nochmal drüber gucken?

                  on('telegram.0.communicate.request'/*Last received request*/, function (obj) {
                      var vEingabe = getState('telegram.0.communicate.request'/*Last received request*/).val;   // Test Eingabe per telegram auf dem Handy
                      var vUser = vEingabe.substring(1, vEingabe.indexOf("]"));
                      var vAlterWert;
                      vEingabe = vEingabe.substring(vEingabe.indexOf("]") + 1, vEingabe.length);
                      if (vAlterWert < vEingabe) {
                          if (vEingabe.indexOf('Strom') > -1) {
                              vEingabe = vEingabe.replace("Strom", ''); 
                              setObject('0_userdata.0.00_Powertest'/*00 Powertest*/,vEingabe);
                              vAlterWert = vEingabe;
                              // log (vEingabe);
                              console.log ("Aktueller Wert: "+ vEingabe);
                              console.log ("Alter Wert: "+ vAlterWert);
                              }
                          }
                  });
                  
                  bahnuhrB Online
                  bahnuhrB Online
                  bahnuhr
                  Forum Testing Most Active
                  schrieb am zuletzt editiert von bahnuhr
                  #9

                  @fliegema

                  Du hast vAlterWert zugewiesen wenn der neue Wert geschrieben werden soll. Dieser wird aber nicht behalten.
                  Heißt: Beim nächsten Durchlauf ist valter... = 0

                  du musst den alten Wert am Anfang holen per getState.
                  Also so:

                  on('telegram.0.communicate.request'/*Last received request*/, function (obj) {
                      var vAlterWert =  getState('0_userdata.0.00_Powertest').val;
                      var vUser = vEingabe.substring(1, vEingabe.indexOf("]"));    
                      var vEingabe = obj.state.val;    //ist einfacher als der alte Text !
                      vEingabe = vEingabe.substring(vEingabe.indexOf("]") + 1, vEingabe.length);
                      vEingabe_wert = vEingabe.replace("Strom", ''); 
                          if (vEingabe.indexOf('Strom') > -1  && vEingabe_wert > vAlterWert) {
                              setObject('0_userdata.0.00_Powertest'/*00 Powertest*/,vEingabe_wert);
                              log ("Aktueller Wert: "+ vEingabe_wert);
                              log ("Alter Wert: "+ vAlterWert);
                              }
                  });
                  

                  Jetzt wird der neue Wert nur geschrieben wenn er größer ist als der alte gespeicherte!


                  Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                  Danke.
                  gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                  ScreenToGif :https://www.screentogif.com/downloads.html

                  F 1 Antwort Letzte Antwort
                  1
                  • bahnuhrB bahnuhr

                    @fliegema

                    Du hast vAlterWert zugewiesen wenn der neue Wert geschrieben werden soll. Dieser wird aber nicht behalten.
                    Heißt: Beim nächsten Durchlauf ist valter... = 0

                    du musst den alten Wert am Anfang holen per getState.
                    Also so:

                    on('telegram.0.communicate.request'/*Last received request*/, function (obj) {
                        var vAlterWert =  getState('0_userdata.0.00_Powertest').val;
                        var vUser = vEingabe.substring(1, vEingabe.indexOf("]"));    
                        var vEingabe = obj.state.val;    //ist einfacher als der alte Text !
                        vEingabe = vEingabe.substring(vEingabe.indexOf("]") + 1, vEingabe.length);
                        vEingabe_wert = vEingabe.replace("Strom", ''); 
                            if (vEingabe.indexOf('Strom') > -1  && vEingabe_wert > vAlterWert) {
                                setObject('0_userdata.0.00_Powertest'/*00 Powertest*/,vEingabe_wert);
                                log ("Aktueller Wert: "+ vEingabe_wert);
                                log ("Alter Wert: "+ vAlterWert);
                                }
                    });
                    

                    Jetzt wird der neue Wert nur geschrieben wenn er größer ist als der alte gespeicherte!

                    F Offline
                    F Offline
                    fliegema
                    schrieb am zuletzt editiert von
                    #10

                    @bahnuhr said in Konversation mit dem BOT via Telegram:

                    @fliegema

                    Du hast vAlterWert zugewiesen wenn der neue Wert geschrieben werden soll. Dieser wird aber nicht behalten.
                    Heißt: Beim nächsten Durchlauf ist valter... = 0

                    du musst den alten Wert am Anfang holen per getState.
                    Also so:

                    on('telegram.0.communicate.request'/*Last received request*/, function (obj) {
                        var vAlterWert =  getState('0_userdata.0.00_Powertest').val;
                        var vUser = vEingabe.substring(1, vEingabe.indexOf("]"));    
                        var vEingabe = obj.state.val;    //ist einfacher als der alte Text !
                        vEingabe = vEingabe.substring(vEingabe.indexOf("]") + 1, vEingabe.length);
                        vEingabe_wert = vEingabe.replace("Strom", ''); 
                            if (vEingabe.indexOf('Strom') > -1  && vEingabe_wert > vAlterWert) {
                                setObject('0_userdata.0.00_Powertest'/*00 Powertest*/,vEingabe_wert);
                                log ("Aktueller Wert: "+ vEingabe_wert);
                                log ("Alter Wert: "+ vAlterWert);
                                }
                    });
                    

                    Jetzt wird der neue Wert nur geschrieben wenn er größer ist als der alte gespeicherte!

                    Guten Morgen,

                    leider haut das nicht hin.

                    Kann es sein, dass die Variable vEingabe_wert nicht initialisiert ist?

                    Selbst wenn ich diese aber in Zeile 6 erstelle, klappt es nicht. Bekomme als Fehler nur den Number/String Fehler:

                    on('telegram.0.communicate.request'/*Last received request*/, function (obj) {
                        var vAlterWert =  getState('0_userdata.0.00_Powertest'/*00 Powertest*/).val;
                        var vUser = vEingabe.substring(1, vEingabe.indexOf("]"));    
                        var vEingabe = obj.state.val;    //ist einfacher als der alte Text !
                        vEingabe = vEingabe.substring(vEingabe.indexOf("]") + 1, vEingabe.length);
                        var vEingabe_wert = vEingabe.replace("Strom", ''); 
                            if (vEingabe.indexOf('Strom') > -1  && vEingabe_wert > vAlterWert) {
                                setObject('0_userdata.0.00_Powertest'/*00 Powertest*/,vEingabe_wert);
                                log ("Aktueller Wert: "+ vEingabe_wert);
                                log ("Alter Wert: "+ vAlterWert);
                                }
                    });
                    
                    09:52:22.065	error	javascript.0 (5205) at Object.<anonymous> (script.js.common.Telegram.00_PowerMeter:3:26)
                    

                    Selbst wenn ich in Zeile 2 get State auf getObject ändere klappt es nicht:

                    var vAlterWert =  getObject('0_userdata.0.00_Powertest'/*00 Powertest*/).val;
                    

                    Im datenpunkt ist gerade der Wert manuell gesetzt: 2580, per Telegram sende ich 3000

                    Komme leider nicht weiter.

                    Cheers

                    bahnuhrB 1 Antwort Letzte Antwort
                    0
                    • F fliegema

                      @bahnuhr said in Konversation mit dem BOT via Telegram:

                      @fliegema

                      Du hast vAlterWert zugewiesen wenn der neue Wert geschrieben werden soll. Dieser wird aber nicht behalten.
                      Heißt: Beim nächsten Durchlauf ist valter... = 0

                      du musst den alten Wert am Anfang holen per getState.
                      Also so:

                      on('telegram.0.communicate.request'/*Last received request*/, function (obj) {
                          var vAlterWert =  getState('0_userdata.0.00_Powertest').val;
                          var vUser = vEingabe.substring(1, vEingabe.indexOf("]"));    
                          var vEingabe = obj.state.val;    //ist einfacher als der alte Text !
                          vEingabe = vEingabe.substring(vEingabe.indexOf("]") + 1, vEingabe.length);
                          vEingabe_wert = vEingabe.replace("Strom", ''); 
                              if (vEingabe.indexOf('Strom') > -1  && vEingabe_wert > vAlterWert) {
                                  setObject('0_userdata.0.00_Powertest'/*00 Powertest*/,vEingabe_wert);
                                  log ("Aktueller Wert: "+ vEingabe_wert);
                                  log ("Alter Wert: "+ vAlterWert);
                                  }
                      });
                      

                      Jetzt wird der neue Wert nur geschrieben wenn er größer ist als der alte gespeicherte!

                      Guten Morgen,

                      leider haut das nicht hin.

                      Kann es sein, dass die Variable vEingabe_wert nicht initialisiert ist?

                      Selbst wenn ich diese aber in Zeile 6 erstelle, klappt es nicht. Bekomme als Fehler nur den Number/String Fehler:

                      on('telegram.0.communicate.request'/*Last received request*/, function (obj) {
                          var vAlterWert =  getState('0_userdata.0.00_Powertest'/*00 Powertest*/).val;
                          var vUser = vEingabe.substring(1, vEingabe.indexOf("]"));    
                          var vEingabe = obj.state.val;    //ist einfacher als der alte Text !
                          vEingabe = vEingabe.substring(vEingabe.indexOf("]") + 1, vEingabe.length);
                          var vEingabe_wert = vEingabe.replace("Strom", ''); 
                              if (vEingabe.indexOf('Strom') > -1  && vEingabe_wert > vAlterWert) {
                                  setObject('0_userdata.0.00_Powertest'/*00 Powertest*/,vEingabe_wert);
                                  log ("Aktueller Wert: "+ vEingabe_wert);
                                  log ("Alter Wert: "+ vAlterWert);
                                  }
                      });
                      
                      09:52:22.065	error	javascript.0 (5205) at Object.<anonymous> (script.js.common.Telegram.00_PowerMeter:3:26)
                      

                      Selbst wenn ich in Zeile 2 get State auf getObject ändere klappt es nicht:

                      var vAlterWert =  getObject('0_userdata.0.00_Powertest'/*00 Powertest*/).val;
                      

                      Im datenpunkt ist gerade der Wert manuell gesetzt: 2580, per Telegram sende ich 3000

                      Komme leider nicht weiter.

                      bahnuhrB Online
                      bahnuhrB Online
                      bahnuhr
                      Forum Testing Most Active
                      schrieb am zuletzt editiert von
                      #11

                      @fliegema

                      Anydesk ?


                      Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                      Danke.
                      gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                      ScreenToGif :https://www.screentogif.com/downloads.html

                      F 1 Antwort Letzte Antwort
                      1
                      • bahnuhrB bahnuhr

                        @fliegema

                        Anydesk ?

                        F Offline
                        F Offline
                        fliegema
                        schrieb am zuletzt editiert von
                        #12

                        @bahnuhr said in Konversation mit dem BOT via Telegram:

                        @fliegema

                        Anydesk ?

                        Ich versuche erst nochmal mit Google die Java Kenntnisse zu erweitern, und melde mich nochmal. Danke Dir schon mal fürs Angebot.

                        Cheers

                        1 Antwort Letzte Antwort
                        0

                        Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                        Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                        Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                        Registrieren Anmelden
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        485

                        Online

                        32.8k

                        Benutzer

                        82.8k

                        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