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 Offline
    F Offline
    fliegema
    schrieb am zuletzt editiert von
    #1

    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

    Cheers

    bahnuhrB 1 Antwort Letzte Antwort
    0
    • 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

                          479

                          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