Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Tankerkönig und Telegram

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    265

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.6k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

Tankerkönig und Telegram

Scheduled Pinned Locked Moved JavaScript
35 Posts 16 Posters 6.1k Views 8 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    shrike
    wrote on last edited by
    #11

    Sodele, ich hab gestern mal was ganz verwegenes gemacht und die JavaScript-Instanz einmal neu starten lassen..und siehe da, auf einmal funktionierte sogar das Script.

    Trotz allem, was ich mit ungültig meinte: Weder im Systemlog noch im Log des Scripts (auch im Debug-Modus) wurde ein Fehler ausgegeben. Von daher sollte das Script ja richtig sein. Wenn ich dann aber bei Telegram nachgefragt habe, kam als Antwort nur "ja"…einmal sogar "nein".

    Aber auf jeden Fall vielen Dank für die Hilfe und Geduld !!!! (als Anfänger kommt man sich manchmal sooo unendlich dumm vor)

    1 Reply Last reply
    0
    • A Offline
      A Offline
      Ace-k
      wrote on last edited by
      #12

      Moin,

      finde das Script cool. :!:

      Ich habe das ganze "Diesel" und "Super" genannt.

      wenn ich nun allerdings Diesel schreibe, kommt

      Ich verstehe "diesel" nicht

      aber Zeigt danach dennoch die Tankstellen an.

      –---

      Muss mich korrigieren.

      kommen doch keine Werte mehr.

      nur "Ich verstehe "diesel" nicht"

      ! var idPreis1 = "tankerkoenig.0.stations.0.diesel.short";
      ! var idName1 = "tankerkoenig.0.stations.0.name";
      ! var idPreis2 = "tankerkoenig.0.stations.1.diesel.short";
      ! var idName2 = "tankerkoenig.0.stations.1.name";
      ! var idPreis3 = "tankerkoenig.0.stations.2.diesel.short";
      ! var idName3 = "tankerkoenig.0.stations.2.name";
      ! var idPreis4 = "tankerkoenig.0.stations.3.diesel.short";
      ! var idName4 = "tankerkoenig.0.stations.3.name";
      ! var idPreis5 = "tankerkoenig.0.stations.4.diesel.short";
      ! var idName5 = "tankerkoenig.0.stations.4.name";
      ! var idPreis6 = "tankerkoenig.0.stations.5.diesel.short";
      ! var idName6 = "tankerkoenig.0.stations.5.name";
      ! var idPreis7 = "tankerkoenig.0.stations.6.diesel.short";
      ! var idName7 = "tankerkoenig.0.stations.6.name";
      ! var idPreis8 = "tankerkoenig.0.stations.7.diesel.short";
      ! var idName8 = "tankerkoenig.0.stations.7.name";
      ! 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(/(?=.*(\Diesel\b|\bTanken\b)).+/ig) != -1) {
      ! var preis1 = "Bei " + getState(idName1).val + " : " + getState(idPreis1).val.replace(/
      /g , "\n")+"9\n";
      ! var preis2 = "Bei " + getState(idName2).val + " : " + getState(idPreis2).val.replace(/
      /g , "\n")+"9\n";
      ! var preis3 = "Bei " + getState(idName3).val + " : " + getState(idPreis3).val.replace(/
      /g , "\n")+"9\n";
      ! var preis4 = "Bei " + getState(idName4).val + " : " + getState(idPreis4).val.replace(/
      /g , "\n")+"9\n";
      ! var preis5 = "Bei " + getState(idName5).val + " : " + getState(idPreis5).val.replace(/
      /g , "\n")+"9\n";
      ! var preis6 = "Bei " + getState(idName6).val + " : " + getState(idPreis6).val.replace(/
      /g , "\n")+"9\n";
      ! var preis7 = "Bei " + getState(idName7).val + " : " + getState(idPreis7).val.replace(/
      /g , "\n")+"9\n";
      ! var preis8 = "Bei " + getState(idName8).val + " : " + getState(idPreis8).val.replace(/
      /g , "\n")+"9\n";
      ! var preis=preis1+preis2+preis3+preis4+preis5+preis6+preis7+preis8;
      ! sendTo('telegram', {
      ! user: benutzer,
      ! text: preis
      ! });
      ! }
      ! });

      1 Reply Last reply
      0
      • StabilostickS Offline
        StabilostickS Offline
        Stabilostick
        wrote on last edited by
        #13

        Ich kenne mich regex nicht aus, aber fehlt da nicht ein „b“ vor Diesel im Suchausdruck?

        1 Reply Last reply
        0
        • StabilostickS Offline
          StabilostickS Offline
          Stabilostick
          wrote on last edited by
          #14

          Jau, das sollte es sein. Im Beispiel steht /Benzin, da suche er das Wort „enzin“. :D

          1 Reply Last reply
          0
          • A Offline
            A Offline
            Ace-k
            wrote on last edited by
            #15

            vielen dank.

            das brachte jetzt allerdings nur den erfolg das wieder die Daten kommen.

            leider sagt er immernoch "Diesel" nicht verstanden :roll:

            1 Reply Last reply
            0
            • M Offline
              M Offline
              michael_klatt
              wrote on last edited by
              #16

              Hy. Bin newbie und find es total toll. Wo trage ich denn genau sowas ein? Das ist für mich als newbie nicht nach zu vollziehen.

              Vielen Dank und Sorry wegen der Frage.

              1 Reply Last reply
              0
              • M Offline
                M Offline
                michael_klatt
                wrote on last edited by
                #17

                Kann keiner helfen?

                1 Reply Last reply
                0
                • F Offline
                  F Offline
                  Fitti
                  wrote on last edited by
                  #18

                  @michael_klatt:

                  Kann keiner helfen? `
                  Doch bestimmt, aber es sind sehr wenig Infos, die Du uns gibst.

                  Was möchtest Du denn genau erreichen?

                  Was hast Du schon probiert?

                  An welcher Stelle genau kommst Du nicht klar?

                  Du weißt nicht, wie man ein Skript irgendwo einträgt und zum Laufen bekommt?

                  Läuft denn Tankerkönig schon bei Dir, oder ist der gesamte Ansatz unbekannt?

                  So long,

                  Fitti

                  "Es wird die Zeit kommen, da ihr euch entscheiden müsst zwischen dem, was richtig ist, und dem, was bequem ist."
                  Plural von Status ist auch Status!

                  1 Reply Last reply
                  0
                  • M Offline
                    M Offline
                    michael_klatt
                    wrote on last edited by
                    #19

                    Hy,

                    Tankerkönig ist installiert.

                    Api eingetragen und die Tankstellen auch.

                    Möchte nun gerne wissen, wie ich mit Telegram und dem Java Eintrag zurecht komme. Liebe Grüsse und vielen dank

                    Auch gerne per Mail erreichbar.

                    1 Reply Last reply
                    0
                    • S Offline
                      S Offline
                      Schweiz
                      wrote on last edited by
                      #20

                      Hi Forum,

                      Tankerkönig ist in der Instanz tankerkoenig.0 vorhanden!

                      Wenn ich Tanken oder Benzin sende, kann ich sehen unter telegram.0.communicate.request das der Request ankommt

                      Leider erhalte ich jedoch keine Antwort obwohl Cheapest

                      var idPreis1 = "tankerkoenig.0.stations.cheapest.e5.short";
                      var idName1 = "tankerkoenig.0.stations.cheapest.e5.name";
                      var idPreis2 = "tankerkoenig.0.stations.cheapest.e10.short";
                      var idName2 = "tankerkoenig.0.stations.cheapest.e10.name";
                      var idPreis3 = "tankerkoenig.0.stations.cheapest.diesel.short";
                      var idName3 = "tankerkoenig.0.stations.cheapest.diesel.name";
                      

                      gefüllt ist… anbei mal das komplette Skript welches ich verwende...

                      ! var idPreis1 = "tankerkoenig.0.stations.cheapest.e5.short";
                      ! var idName1 = "tankerkoenig.0.stations.cheapest.e5.name";
                      ! var idPreis2 = "tankerkoenig.0.stations.cheapest.e10.short";
                      ! var idName2 = "tankerkoenig.0.stations.cheapest.e10.name";
                      ! var idPreis3 = "tankerkoenig.0.stations.cheapest.diesel.short";
                      ! var idName3 = "tankerkoenig.0.stations.cheapest.diesel.name";
                      ! 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(/(?=.*(\Benzin\b|\bTanken\b)).+/ig) != -1) {
                      ! var preis1 = "E5 ist am günstigsten bei " + getState(idName1).val + " für " + getState(idPreis1).val.replace('
                      ',"\n")+"9\n\n";
                      ! var preis2 = "E10 ist am günstigsten bei " + getState(idName2).val + " für " + getState(idPreis2).val.replace(/
                      /g , "\n")+"9\n\n";
                      ! var preis3 = "Diesel ist am günstigsten bei " + getState(idName3).val + " für " + getState(idPreis3).val.replace(/
                      /g , "\n")+"9\n\n";
                      ! var preis=preis1+preis2+preis3;
                      ! sendTo('telegram', {
                      ! user: benutzer,
                      ! text: preis
                      ! });
                      ! }
                      ! });

                      Grüsse Schweiz

                      1 Reply Last reply
                      0
                      • S Offline
                        S Offline
                        Schweiz
                        wrote on last edited by
                        #21

                        Danke Forum für eure mithilfe zur Lösung meines Problems!

                        Eine Neuinstallation des Telegram Adapter brachte mich dann schlussendlich zum erfolg!!!

                        Grüsse Schweiz

                        1 Reply Last reply
                        0
                        • W Offline
                          W Offline
                          W0RSCHD
                          wrote on last edited by W0RSCHD
                          #22

                          Ich hab das jetzt mal angepasst auf meine Bedürfnisse, ich muss dazu sagen ich habe keine Ahnung von Javascript.
                          Dementsprechend läuft das irgendwie auch nicht, wäre klasse wenn jemand mal drüber schauen könnte und mir sagen was ich falsch gemacht habe?

                          [EDIT] Fehler gefunden und auch hier korrigiert. Folgendes Skript läuft so wie gepostet und spuckt dann von 4 verschiedenen Tankstellen die Preise aus per Telegram :)

                          var idPreis1 = "tankerkoenig.0.stations.0.diesel.short";
                          var idName1 = "tankerkoenig.0.stations.0.name";
                          var idPreis2 = "tankerkoenig.0.stations.1.diesel.short";
                          var idName2 = "tankerkoenig.0.stations.1.name";
                          var idPreis3 = "tankerkoenig.0.stations.2.diesel.short";
                          var idName3 = "tankerkoenig.0.stations.2.name";
                          var idPreis4 = "tankerkoenig.0.stations.3.diesel.short";
                          var idName4 = "tankerkoenig.0.stations.3.name";
                          
                          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(/(?=.*(b\Benzin\b|\bSpritpreise\b)).+/ig) != -1) {
                          var preis1 = "Der aktuelle Preis für Diesel bei " + getState(idName1).val + " beträgt: " + getState(idPreis1).val.replace(/ /g , "\n")+"9€\n\n";
                          var preis2 = "Der aktuelle Preis für Diesel bei " + getState(idName2).val + " beträgt: " + getState(idPreis2).val.replace(/ /g , "\n")+"9€\n\n";
                          var preis3 = "Der aktuelle Preis für Diesel bei " + getState(idName3).val + " beträgt: " + getState(idPreis3).val.replace(/ /g , "\n")+"9€\n\n";
                          var preis4 = "Der aktuelle Preis für Diesel bei " + getState(idName4).val + " beträgt: " + getState(idPreis4).val.replace(/ /g , "\n")+"9€\n\n";
                          var preis=preis1+preis2+preis3+preis4; 
                          sendTo('telegram', {
                          user: benutzer,
                          text: preis
                          });
                          }        
                          });        
                          
                          D 1 Reply Last reply
                          0
                          • W W0RSCHD

                            Ich hab das jetzt mal angepasst auf meine Bedürfnisse, ich muss dazu sagen ich habe keine Ahnung von Javascript.
                            Dementsprechend läuft das irgendwie auch nicht, wäre klasse wenn jemand mal drüber schauen könnte und mir sagen was ich falsch gemacht habe?

                            [EDIT] Fehler gefunden und auch hier korrigiert. Folgendes Skript läuft so wie gepostet und spuckt dann von 4 verschiedenen Tankstellen die Preise aus per Telegram :)

                            var idPreis1 = "tankerkoenig.0.stations.0.diesel.short";
                            var idName1 = "tankerkoenig.0.stations.0.name";
                            var idPreis2 = "tankerkoenig.0.stations.1.diesel.short";
                            var idName2 = "tankerkoenig.0.stations.1.name";
                            var idPreis3 = "tankerkoenig.0.stations.2.diesel.short";
                            var idName3 = "tankerkoenig.0.stations.2.name";
                            var idPreis4 = "tankerkoenig.0.stations.3.diesel.short";
                            var idName4 = "tankerkoenig.0.stations.3.name";
                            
                            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(/(?=.*(b\Benzin\b|\bSpritpreise\b)).+/ig) != -1) {
                            var preis1 = "Der aktuelle Preis für Diesel bei " + getState(idName1).val + " beträgt: " + getState(idPreis1).val.replace(/ /g , "\n")+"9€\n\n";
                            var preis2 = "Der aktuelle Preis für Diesel bei " + getState(idName2).val + " beträgt: " + getState(idPreis2).val.replace(/ /g , "\n")+"9€\n\n";
                            var preis3 = "Der aktuelle Preis für Diesel bei " + getState(idName3).val + " beträgt: " + getState(idPreis3).val.replace(/ /g , "\n")+"9€\n\n";
                            var preis4 = "Der aktuelle Preis für Diesel bei " + getState(idName4).val + " beträgt: " + getState(idPreis4).val.replace(/ /g , "\n")+"9€\n\n";
                            var preis=preis1+preis2+preis3+preis4; 
                            sendTo('telegram', {
                            user: benutzer,
                            text: preis
                            });
                            }        
                            });        
                            
                            D Offline
                            D Offline
                            dulles
                            wrote on last edited by dulles
                            #23

                            @W0RSCHD
                            Hey,

                            muss noch einmal nachfragen, was zu machen ist. Ich bin mir nicht sicher, ob ich alles richtig gemacht habe.
                            Im Text2Command habe ich die Regel "Fragen über irgendwas" ausgewählt und das Script oben ausgewählt.
                            Wenn ich jetzt Telegram abfrage, bekomme ich nichts. Es wird auch keine Fehler angezeigt.

                            Was mache ich nun falsch

                            dulles

                            1 Reply Last reply
                            0
                            • D Offline
                              D Offline
                              darkiop
                              Most Active
                              wrote on last edited by
                              #24

                              Habe es bei mir ebenfalls eingebunden und um die günstigste Tankstelle erweitert (läuft insgesamt zweimal, je für Benzin und Diesel):

                              // https://forum.iobroker.net/topic/10974/tankerkönig-und-telegram/23
                              
                              var idPreis0 = "tankerkoenig.0.stations.0.diesel.short";
                              var idName0 = "tankerkoenig.0.stations.0.name";
                              var idPreis1 = "tankerkoenig.0.stations.1.diesel.short";
                              var idName1 = "tankerkoenig.0.stations.1.name";
                              var idPreis2 = "tankerkoenig.0.stations.2.diesel.short";
                              var idName2 = "tankerkoenig.0.stations.2.name";
                              var idPreis3 = "tankerkoenig.0.stations.3.diesel.short";
                              var idName3 = "tankerkoenig.0.stations.3.name";
                              var idPreis4 = "tankerkoenig.0.stations.4.diesel.short";
                              var idName4 = "tankerkoenig.0.stations.4.name";
                              var idPreisCheapest = "tankerkoenig.0.stations.cheapest.diesel.short";
                              var idNameCheapest = "tankerkoenig.0.stations.cheapest.diesel.name";
                              
                              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(/(?=.*(\Diesel\b)).+/ig) != -1) {
                                  var station0 = "Diesel in " + getState(idName0).val + " kostet: " + getState(idPreis0).val.replace(/ /g , "\n")+"9€\n\n";
                                  var station1 = "Diesel bei der " + getState(idName1).val + " kostet: " + getState(idPreis1).val.replace(/ /g , "\n")+"9€\n\n";
                                  var station2 = "Diesel bei der " + getState(idName2).val + " kostet: " + getState(idPreis2).val.replace(/ /g , "\n")+"9€\n\n";
                                  var station3 = "Diesel bei der " + getState(idName3).val + " kostet: " + getState(idPreis3).val.replace(/ /g , "\n")+"9€\n\n";
                                  var station4 = "Diesel in " + getState(idName4).val + " kostet: " + getState(idPreis4).val.replace(/ /g , "\n")+"9€\n\n";
                                  
                                  var cheapest = "Die günstigste ist "+ getState(idNameCheapest).val + " für " + getState(idPreis4).val.replace(/ /g , "\n")+"9€\n\n";
                                  
                                  var stationen=station0+station1+station2+station3+station4+cheapest;
                                
                                  sendTo('telegram', {
                                    user: benutzer,
                                    text: stationen
                                  });
                                } // endif
                              });
                              

                              Proxmox-ioBroker-Redis-HA Doku: https://forum.iobroker.net/topic/47478/dokumentation-einer-proxmox-iobroker-redis-ha-umgebung

                              1 Reply Last reply
                              0
                              • 4 Offline
                                4 Offline
                                4-Real
                                wrote on last edited by 4-Real
                                #25

                                Hallo Jungs, will auch gerne Ab und An mal den preis von den Tanken abfragen. Will gerne das der Preis bei mir in Dicker bzw Fetter Schrift erscheint, aber auch nur der Preis. Mein Script sieht momentan so aus:

                                var idPreis1 = "tankerkoenig.0.stations.0.e5.short";
                                var idName1 = "tankerkoenig.0.stations.0.name";
                                var idPreis2 = "tankerkoenig.0.stations.1.e5.short";
                                var idName2 = "tankerkoenig.0.stations.1.name";
                                var idPreis3 = "tankerkoenig.0.stations.2.e5.short";
                                var idName3 = "tankerkoenig.0.stations.2.name";
                                
                                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(/(?=.*(\Benzinpreise\b|\bTanken\b)).+/ig) != -1) {
                                         
                                        var preis1 = "Der aktuelle Preis für SUPER bei " + getState(idName1).val + " beträgt:\n\n" + getState(idPreis1).val.replace(/<br>/g,"\n")+"€\n\n";
                                        var preis2 = "Der aktuelle Preis für SUPER bei " + getState(idName2).val + " beträgt:\n\n" + getState(idPreis2).val.replace(/<br>/g,"\n")+"€\n\n";
                                        var preis3 = "Der aktuelle Preis für SUPER bei " + getState(idName3).val + " beträgt:\n\n" + getState(idPreis3).val.replace(/<br>/g,"\n")+"€";
                                        var preis=preis1+preis2+preis3; 
                                     
                                        
                                        sendTo('telegram', {
                                            user: benutzer,
                                            text: preis
                                            });
                                     }        
                                });      
                                

                                Wie kann ich jetzt ändern, das der Preis im Telegram als Dick / Fett angezeigt wird?
                                Bin leider in Java überhaupt nicht Fit und daher frage ich mal hier nach..

                                Danke schonmals!

                                I 1 Reply Last reply
                                0
                                • 4 4-Real

                                  Hallo Jungs, will auch gerne Ab und An mal den preis von den Tanken abfragen. Will gerne das der Preis bei mir in Dicker bzw Fetter Schrift erscheint, aber auch nur der Preis. Mein Script sieht momentan so aus:

                                  var idPreis1 = "tankerkoenig.0.stations.0.e5.short";
                                  var idName1 = "tankerkoenig.0.stations.0.name";
                                  var idPreis2 = "tankerkoenig.0.stations.1.e5.short";
                                  var idName2 = "tankerkoenig.0.stations.1.name";
                                  var idPreis3 = "tankerkoenig.0.stations.2.e5.short";
                                  var idName3 = "tankerkoenig.0.stations.2.name";
                                  
                                  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(/(?=.*(\Benzinpreise\b|\bTanken\b)).+/ig) != -1) {
                                           
                                          var preis1 = "Der aktuelle Preis für SUPER bei " + getState(idName1).val + " beträgt:\n\n" + getState(idPreis1).val.replace(/<br>/g,"\n")+"€\n\n";
                                          var preis2 = "Der aktuelle Preis für SUPER bei " + getState(idName2).val + " beträgt:\n\n" + getState(idPreis2).val.replace(/<br>/g,"\n")+"€\n\n";
                                          var preis3 = "Der aktuelle Preis für SUPER bei " + getState(idName3).val + " beträgt:\n\n" + getState(idPreis3).val.replace(/<br>/g,"\n")+"€";
                                          var preis=preis1+preis2+preis3; 
                                       
                                          
                                          sendTo('telegram', {
                                              user: benutzer,
                                              text: preis
                                              });
                                       }        
                                  });      
                                  

                                  Wie kann ich jetzt ändern, das der Preis im Telegram als Dick / Fett angezeigt wird?
                                  Bin leider in Java überhaupt nicht Fit und daher frage ich mal hier nach..

                                  Danke schonmals!

                                  I Offline
                                  I Offline
                                  ignis-draco
                                  wrote on last edited by ignis-draco
                                  #26

                                  @4-Real said in Tankerkönig und Telegram:

                                  Wie kann ich jetzt ändern, das der Preis im Telegram als Dick / Fett angezeigt wird?

                                  Das geht entweder mittel HTML :

                                  output += "<b>Aktuelle Spritpreise:</b>\n\n"
                                  

                                  oder mit der Markdown Syntax

                                  **this is in bold**  and __so is this__
                                  

                                  wichtig ist das du beim sendTo den "parse_mode" passend einstellst. API.

                                  Übrigens du kannst mittels Schleifen und Arrays das ganze Skript deutlich kürzer fassen. Hier mal als Beispiel mein Script.
                                  Dort wird nicht nur einfach jeder Eintrag genommen der im tankerkoenig Adapter steht sonder auch noch nach dem Preis sortiert.

                                  on({ id: 'telegram.0.communicate.request', change: 'any' }, function (obj) {
                                      var stateval = getState('telegram.0.communicate.request').val;
                                      if (stateval.match(/tanken/i)) {
                                          var user_to_send = stateval.substring(1, stateval.indexOf("]"));
                                          var command = stateval.substring(stateval.indexOf("]") + 1, stateval.length).toLowerCase();
                                          var output = "";
                                          var list = new Array();
                                          for (var i = 0; i < 10; i++) {
                                              if (getState("tankerkoenig.0.stations." + i + ".status").val == "open") {
                                                  list.push(new Array(getState("tankerkoenig.0.stations." + i + ".name").val,
                                                      getState("tankerkoenig.0.stations." + i + ".e5.short").val));
                                              }
                                          }
                                          list = list.sort(function (a, b) {
                                              return a[1] - b[1];
                                          });
                                          if (list.length == 0) {
                                              output += "Alle Tankstellen in der Liste sind aktuell geschlossen";
                                          } else {
                                              output += "<b>Aktuelle Spritpreise:</b>\n\n"
                                              list.forEach(function (item) {
                                                  output += item[0] + " : " + item[1] + "€\n";
                                              });
                                          }
                                          sendTo('telegram', {
                                              user: user_to_send,
                                              text: output,
                                              parse_mode: "HTML"
                                          });
                                      }
                                  });
                                  
                                  

                                  Gruß
                                  Arne

                                  Proxmox [DMAF5] = LXC [Debian 12]
                                  ioBroker – apt-cacher – Semaphore – NGINX Proxy Manager – gitolite – LMS – tandoor – DokuWiki - paperless-ngx - unifi - mumble - wireguard - heimdall - planka - rustDesk - adguard

                                  Stephan SchleichS Kay PoslovskyK 2 Replies Last reply
                                  0
                                  • E Offline
                                    E Offline
                                    ErazorVIP
                                    wrote on last edited by
                                    #27

                                    Hallo,
                                    ich bekomme jetzt leider nachdem letzten Update immer folgenden Fehler:


                                    javascript.0 2019-10-09 02:47:25.967 error at Manager.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20)
                                    javascript.0 2019-10-09 02:47:25.967 error at Manager.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
                                    javascript.0 2019-10-09 02:47:25.967 error at Socket.onpacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:228:12)
                                    javascript.0 2019-10-09 02:47:25.966 error at Socket.onevent (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:270:10)
                                    javascript.0 2019-10-09 02:47:25.966 error at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20)
                                    javascript.0 2019-10-09 02:47:25.966 error at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:52:30)
                                    javascript.0 2019-10-09 02:47:25.966 error at Object.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3706:37)
                                    javascript.0 2019-10-09 02:47:25.966 error at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:364:25)
                                    javascript.0 2019-10-09 02:47:25.965 error at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:973:38)
                                    javascript.0 2019-10-09 02:47:25.965 error at Object.<anonymous> (script.js.common.telegram.Tankstellenpreise:57:115)
                                    javascript.0 2019-10-09 02:47:25.965 error Error in callback: TypeError: getState(...).val.replace is not a function

                                    var preis2 = "Der aktuelle Preis für Diesel bei " + getState(idName2).val + " beträgt: " + getState(idPreis2).val.replace(/ /g , "\n")+"9€\n\n";
                                    
                                    
                                    

                                    Kann es sein das es mit den replace nicht mehr funktiniert?

                                    1 Reply Last reply
                                    0
                                    • J Offline
                                      J Offline
                                      jwerlsdf
                                      wrote on last edited by
                                      #28

                                      Hallo,
                                      hat jemand schon eine Lösung zu dem Problem mit dem Replace gefunden? Wenn nein, hat jemand eine alternative Lösung die Spritpreise an Telegram zu schicken?
                                      Vielen Dank schon einmal für eine Antwort!

                                      1 Reply Last reply
                                      0
                                      • I ignis-draco

                                        @4-Real said in Tankerkönig und Telegram:

                                        Wie kann ich jetzt ändern, das der Preis im Telegram als Dick / Fett angezeigt wird?

                                        Das geht entweder mittel HTML :

                                        output += "<b>Aktuelle Spritpreise:</b>\n\n"
                                        

                                        oder mit der Markdown Syntax

                                        **this is in bold**  and __so is this__
                                        

                                        wichtig ist das du beim sendTo den "parse_mode" passend einstellst. API.

                                        Übrigens du kannst mittels Schleifen und Arrays das ganze Skript deutlich kürzer fassen. Hier mal als Beispiel mein Script.
                                        Dort wird nicht nur einfach jeder Eintrag genommen der im tankerkoenig Adapter steht sonder auch noch nach dem Preis sortiert.

                                        on({ id: 'telegram.0.communicate.request', change: 'any' }, function (obj) {
                                            var stateval = getState('telegram.0.communicate.request').val;
                                            if (stateval.match(/tanken/i)) {
                                                var user_to_send = stateval.substring(1, stateval.indexOf("]"));
                                                var command = stateval.substring(stateval.indexOf("]") + 1, stateval.length).toLowerCase();
                                                var output = "";
                                                var list = new Array();
                                                for (var i = 0; i < 10; i++) {
                                                    if (getState("tankerkoenig.0.stations." + i + ".status").val == "open") {
                                                        list.push(new Array(getState("tankerkoenig.0.stations." + i + ".name").val,
                                                            getState("tankerkoenig.0.stations." + i + ".e5.short").val));
                                                    }
                                                }
                                                list = list.sort(function (a, b) {
                                                    return a[1] - b[1];
                                                });
                                                if (list.length == 0) {
                                                    output += "Alle Tankstellen in der Liste sind aktuell geschlossen";
                                                } else {
                                                    output += "<b>Aktuelle Spritpreise:</b>\n\n"
                                                    list.forEach(function (item) {
                                                        output += item[0] + " : " + item[1] + "€\n";
                                                    });
                                                }
                                                sendTo('telegram', {
                                                    user: user_to_send,
                                                    text: output,
                                                    parse_mode: "HTML"
                                                });
                                            }
                                        });
                                        
                                        

                                        Gruß
                                        Arne

                                        Stephan SchleichS Offline
                                        Stephan SchleichS Offline
                                        Stephan Schleich
                                        wrote on last edited by
                                        #29

                                        @ignis-draco Wie kann ich in deinem Script Diesel mit aufnehmen? (Diesel/Benzin)

                                        1 Reply Last reply
                                        0
                                        • I ignis-draco

                                          @4-Real said in Tankerkönig und Telegram:

                                          Wie kann ich jetzt ändern, das der Preis im Telegram als Dick / Fett angezeigt wird?

                                          Das geht entweder mittel HTML :

                                          output += "<b>Aktuelle Spritpreise:</b>\n\n"
                                          

                                          oder mit der Markdown Syntax

                                          **this is in bold**  and __so is this__
                                          

                                          wichtig ist das du beim sendTo den "parse_mode" passend einstellst. API.

                                          Übrigens du kannst mittels Schleifen und Arrays das ganze Skript deutlich kürzer fassen. Hier mal als Beispiel mein Script.
                                          Dort wird nicht nur einfach jeder Eintrag genommen der im tankerkoenig Adapter steht sonder auch noch nach dem Preis sortiert.

                                          on({ id: 'telegram.0.communicate.request', change: 'any' }, function (obj) {
                                              var stateval = getState('telegram.0.communicate.request').val;
                                              if (stateval.match(/tanken/i)) {
                                                  var user_to_send = stateval.substring(1, stateval.indexOf("]"));
                                                  var command = stateval.substring(stateval.indexOf("]") + 1, stateval.length).toLowerCase();
                                                  var output = "";
                                                  var list = new Array();
                                                  for (var i = 0; i < 10; i++) {
                                                      if (getState("tankerkoenig.0.stations." + i + ".status").val == "open") {
                                                          list.push(new Array(getState("tankerkoenig.0.stations." + i + ".name").val,
                                                              getState("tankerkoenig.0.stations." + i + ".e5.short").val));
                                                      }
                                                  }
                                                  list = list.sort(function (a, b) {
                                                      return a[1] - b[1];
                                                  });
                                                  if (list.length == 0) {
                                                      output += "Alle Tankstellen in der Liste sind aktuell geschlossen";
                                                  } else {
                                                      output += "<b>Aktuelle Spritpreise:</b>\n\n"
                                                      list.forEach(function (item) {
                                                          output += item[0] + " : " + item[1] + "€\n";
                                                      });
                                                  }
                                                  sendTo('telegram', {
                                                      user: user_to_send,
                                                      text: output,
                                                      parse_mode: "HTML"
                                                  });
                                              }
                                          });
                                          
                                          

                                          Gruß
                                          Arne

                                          Kay PoslovskyK Offline
                                          Kay PoslovskyK Offline
                                          Kay Poslovsky
                                          wrote on last edited by
                                          #30

                                          @ignis-draco ich habe dein Skript schon lange am laufen und finde es echt super. danke schon mal dafür. Kannst du mir sagen wie ich eine zweite Tankerkönig Instanz (tankerkoenig.1.stations.)hinzufügen kann?
                                          Meine JS Kenntnisse reichen bei weitem noch nicht dafür aus. habe auch schon einiges probiert da ich das meiste durch probieren lerne, aber ich komme nicht drauf. Danke im Voraus
                                          Gruß Kay

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          622

                                          Online

                                          32.7k

                                          Users

                                          82.5k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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