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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Anfänger braucht Hilfe bei einem Script

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    998

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

Anfänger braucht Hilfe bei einem Script

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
12 Beiträge 3 Kommentatoren 868 Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • T Offline
    T Offline
    Torsten_MG
    schrieb am zuletzt editiert von
    #1

    Hallo Leute, ich habe mehrere Datenpunkte angelegt, die ich mit Hilfe eines Scriptes in HTML-Code für mein Vis zusammenfügen möchte.
    Wie im Betreff schon erwähnt, bin ich noch totaler Anfänger
    Ich habe mich durch verschiedene Scripts die hier im Forum veröffentlicht wurden durchgesucht, bekomme es aber leider nicht hin.
    Es soll später so aussehen:

    ```
    Ziel
    Linie
    Uhrzeit
    Verspätung
    
    Mön. Clemens-August-Str.
    001
    16:16
    3
    
    `
    Zur Zeit sieht es aber leider so aus:
    
    Ziel
    Linie
    Uhrzeit
    Verspätung
    
    javascript.0.Verkehr.Richtung_MG.Haltestelle0
    javascript.0.Verkehr.Richtung_MG.Linie0
    javascript.0.Verkehr.Richtung_MG.Startzeit0
    javascript.0.Verkehr.Richtung_MG.Verspaetung0
    
    `
    Der Code sieht so aus:
    
    var linie1 = getstate('javascript.0.Verkehr.Richtung_MG.Linie0').val;
    var zeit1 = getstate('javascript.0.Verkehr.Richtung_MG.Startzeit0').val;
    var versp1 = getstate('javascript.0.Verkehr.Richtung_MG.Verspaetung0').val;
    
    var html = "ZielLinieUhrzeit1Verspätung
    
    ";
    
    createState('Verkehr.MG', " ");
    
    html+="";
    html+=""+ziel1+""
    html+=""+linie1+"";
    html+=""+zeit1+"";
    html+=""+versp1+""
    html+="
    
    ";
    html+="";    
        setState('Verkehr.MG', html);`
    Was muß ich wo ändern, damit es klappt. Ich vermute mal es liegt an den ersten 4 Zeilen, aber ich weiß nicht was ich da ändern muß.
    1 Antwort Letzte Antwort
    0
    • S Offline
      S Offline
      stimezo
      Forum Testing
      schrieb am zuletzt editiert von
      #2

      Nimm getState und nicht getstate (das S groß)

      Gruß

      Christian

      1 Antwort Letzte Antwort
      0
      • T Offline
        T Offline
        Torsten_MG
        schrieb am zuletzt editiert von
        #3

        @stimezo:

        Nimm getState und nicht getstate (das S groß)

        Gruß

        Christian `

        Super, vielen Dank!!!!

        Hat geklappt

        1 Antwort Letzte Antwort
        0
        • T Offline
          T Offline
          Torsten_MG
          schrieb am zuletzt editiert von
          #4

          Ich möchte das jetzt ein bisschen umbauen und statt html json verwenden.

          Das erstellen funktioniert bis auf ein kleines Problem auch super.

          Hier der Code:````
          var ziel1 = getState('javascript.0.Verkehr.Richtung_MG.Haltestelle0').val;
          var linie1 = getState('javascript.0.Verkehr.Richtung_MG.Linie0').val;
          var zeit1 = getState('javascript.0.Verkehr.Richtung_MG.Startzeit0').val;
          var versp1 = getState('javascript.0.Verkehr.Richtung_MG.Verspaetung0').val;

          createState('Verkehr.MG1', " ");

          var html ="[{'Zielhaltestelle':'"+ziel1+"','Linie':'"+linie1+"','Uhrzeit':'"+zeit1+"','Verspätung':'"+versp1+"'}]"

          setState('Verkehr.MG1', html);
          
          
          Das Ergebnis sieht so aus:````
          [{'Zielhaltestelle':'Mön. Clemens-August-Str.','Linie':'001','Uhrzeit':'16:16','Verspätung':'3'}]
          

          Leider akzeptiert das VIS ja nicht, da es so aussehen muß:````
          [{"Zielhaltestelle":"Mön. Clemens-August-Str.","Linie":"001","Uhrzeit":"16:16","Verspätung":"3"}]

          
          Wie kann ich das so umsetzen? Also Doppeltes Hochkomma, statt einfaches.
          
          EDIT: Habs hinbekommen:
          

          var ziel1 = getState('javascript.0.Verkehr.Richtung_MG.Haltestelle0').val;
          var linie1 = getState('javascript.0.Verkehr.Richtung_MG.Linie0').val;
          var zeit1 = getState('javascript.0.Verkehr.Richtung_MG.Startzeit0').val;
          var versp1 = getState('javascript.0.Verkehr.Richtung_MG.Verspaetung0').val;

          createState('Verkehr.MG1', " ");

          var json ="[{"Zielhaltestelle":""+ziel1+"","Linie":""+linie1+"","Uhrzeit":""+zeit1+"","Verspätung":""+versp1+""}]"

          setState('Verkehr.MG1', json);
          
          1 Antwort Letzte Antwort
          0
          • M Offline
            M Offline
            mmtnrw
            schrieb am zuletzt editiert von
            #5

            ' " ' dürfte auch gehen dann sparst du dir die cryptischen backslashes

            1 Antwort Letzte Antwort
            0
            • T Offline
              T Offline
              Torsten_MG
              schrieb am zuletzt editiert von
              #6

              Brauche jetzt doch nochmal Hilfe.

              Möchte in der Tabelle nachher 4 Zeiten drin haben. Meine Lösung funktioniert auch, nur es geht einfacher, bekomme es aber leider nicht hin. Wie muß ich das umsetzen, wenn ich das mit Schleifen machen möchte.````
              var ziel1 = getState('javascript.0.Verkehr.Richtung_MG.Haltestelle0').val;
              var linie1 = getState('javascript.0.Verkehr.Richtung_MG.Linie0').val;
              var zeit1 = getState('javascript.0.Verkehr.Richtung_MG.Startzeit0').val;
              var versp1 = getState('javascript.0.Verkehr.Richtung_MG.Verspaetung0').val;
              var ziel2 = getState('javascript.0.Verkehr.Richtung_MG.Haltestelle1').val;
              var linie2 = getState('javascript.0.Verkehr.Richtung_MG.Linie1').val;
              var zeit2 = getState('javascript.0.Verkehr.Richtung_MG.Startzeit1').val;
              var versp2 = getState('javascript.0.Verkehr.Richtung_MG.Verspaetung1').val;
              var ziel3 = getState('javascript.0.Verkehr.Richtung_MG.Haltestelle2').val;
              var linie3 = getState('javascript.0.Verkehr.Richtung_MG.Linie2').val;
              var zeit3 = getState('javascript.0.Verkehr.Richtung_MG.Startzeit2').val;
              var versp3 = getState('javascript.0.Verkehr.Richtung_MG.Verspaetung2').val;
              var ziel4 = getState('javascript.0.Verkehr.Richtung_MG.Haltestelle3').val;
              var linie4 = getState('javascript.0.Verkehr.Richtung_MG.Linie3').val;
              var zeit4 = getState('javascript.0.Verkehr.Richtung_MG.Startzeit3').val;
              var versp4 = getState('javascript.0.Verkehr.Richtung_MG.Verspaetung3').val;
              var json /
              createState('Verkehr.MG1', " ");

              json ="[{"Zielhaltestelle":""+ziel1+"","Linie":""+linie1+"","Uhrzeit":""+zeit1+"","Verspätung in min.":""+versp1+""},"
              json +="{"Zielhaltestelle":""+ziel2+"","Linie":""+linie2+"","Uhrzeit":""+zeit2+"","Verspätung in min.":""+versp2+""},"
              json +="{"Zielhaltestelle":""+ziel3+"","Linie":""+linie3+"","Uhrzeit":""+zeit3+"","Verspätung in min.":""+versp3+""},"
              json +="{"Zielhaltestelle":""+ziel4+"","Linie":""+linie4+"","Uhrzeit":""+zeit4+"","Verspätung in min.":""+versp4+""}]"

              setState('Verkehr.MG1', json);
              
              
              Habe es versucht, aber ich komme da leider nicht weiter. Weiß absolut nicht, wie ich das mit den Variablen umsetzen muß.
              1 Antwort Letzte Antwort
              0
              • M Offline
                M Offline
                mmtnrw
                schrieb am zuletzt editiert von
                #7

                Musst du mal prüfen so.

                var pre='javascript.0.Verkehr.Richtung_MG.';
                var ka=['Haltestelle', 'Linie', 'Startzeit', 'Verspaetung'];
                
                for(  var i=0,json='['; i<4; i++ )
                {
                    json+='"Ziehaltestelle":"' + getState(pre+ka[0]+i.toString() ).val + 
                            '","Linie":"' + getState(pre+ka[1]+i.toString() ).val + 
                            '","Uhrzeit":"' +getState(pre+ka[2]+i.toString() ).val +
                            '","Verspätung":"' +getState(pre+ka[3]+i.toString() ).val + '"';
                }
                    json+=']';
                
                createState('Verkehr.MG1', " ");
                setState('Verkehr.MG1', json);
                
                

                Aber so war kacke:

                
                var ziel1 = getState('javascript.0.Verkehr.Richtung_MG.Haltestelle0').val;
                var linie1 = getState('javascript.0.Verkehr.Richtung_MG.Linie0').val;
                var zeit1 = getState('javascript.0.Verkehr.Richtung_MG.Startzeit0').val;
                var versp1 = getState('javascript.0.Verkehr.Richtung_MG.Verspaetung0').val;
                var ziel2 = getState('javascript.0.Verkehr.Richtung_MG.Haltestelle1').val;
                var linie2 = getState('javascript.0.Verkehr.Richtung_MG.Linie1').val;
                var zeit2 = getState('javascript.0.Verkehr.Richtung_MG.Startzeit1').val;
                var versp2 = getState('javascript.0.Verkehr.Richtung_MG.Verspaetung1').val;
                var ziel3 = getState('javascript.0.Verkehr.Richtung_MG.Haltestelle2').val;
                var linie3 = getState('javascript.0.Verkehr.Richtung_MG.Linie2').val;
                var zeit3 = getState('javascript.0.Verkehr.Richtung_MG.Startzeit2').val;
                var versp3 = getState('javascript.0.Verkehr.Richtung_MG.Verspaetung2').val;
                var ziel4 = getState('javascript.0.Verkehr.Richtung_MG.Haltestelle3').val;
                var linie4 = getState('javascript.0.Verkehr.Richtung_MG.Linie3').val;
                var zeit4 = getState('javascript.0.Verkehr.Richtung_MG.Startzeit3').val;
                var versp4 = getState('javascript.0.Verkehr.Richtung_MG.Verspaetung3').val;
                var json /
                json ="[{\"Zielhaltestelle\":\""+ziel1+"\",\"Linie\":\""+linie1+"\",\"Uhrzeit\":\""+zeit1+"\",\"Verspätung in min.\":\""+versp1+"\"},"
                json +="{\"Zielhaltestelle\":\""+ziel2+"\",\"Linie\":\""+linie2+"\",\"Uhrzeit\":\""+zeit2+"\",\"Verspätung in min.\":\""+versp2+"\"},"
                json +="{\"Zielhaltestelle\":\""+ziel3+"\",\"Linie\":\""+linie3+"\",\"Uhrzeit\":\""+zeit3+"\",\"Verspätung in min.\":\""+versp3+"\"},"
                json +="{\"Zielhaltestelle\":\""+ziel4+"\",\"Linie\":\""+linie4+"\",\"Uhrzeit\":\""+zeit4+"\",\"Verspätung in min.\":\""+versp4+"\"}]"
                
                    setState('Verkehr.MG1', json);
                
                
                1 Antwort Letzte Antwort
                0
                • T Offline
                  T Offline
                  Torsten_MG
                  schrieb am zuletzt editiert von
                  #8

                  @mmtnrw:

                  Musst du mal prüfen so.

                  var pre='javascript.0.Verkehr.Richtung_MG.';
                  var ka=['Haltestelle', 'Linie', 'Startzeit', 'Verspaetung'];
                  
                  for(  var i=0,json='['; i<4; i++ )
                  {
                      json+='"Ziehaltestelle":"' + getState(pre+ka[0]+i.toString() ).val + 
                              '","Linie":"' + getState(pre+ka[1]+i.toString() ).val + 
                              '","Uhrzeit":"' +getState(pre+ka[2]+i.toString() ).val +
                              '","Verspätung":"' +getState(pre+ka[3]+i.toString() ).val + '"';
                  }
                      json+=']';
                  
                  createState('Verkehr.MG1', " ");
                  setState('Verkehr.MG1', json);
                  
                  ```` `  
                  

                  Funktioniert nicht zu 100%

                  Da es so aussieht:

                  ["Zielhaltestelle":"Mönchengl. Am Hommelsbach","Linie":"002","Uhrzeit":"17:40","Verspätung":"6""Zielhaltestelle":"Mönchengl. Künkelstraße","Linie":"001","Uhrzeit":"17:52","Verspätung":"0""Zielhaltestelle":"Mönchengl. Am Hommelsbach","Linie":"002","Uhrzeit":"18:10","Verspätung":"1""Zielhaltestelle":"Mönchengl. Künkelstraße","Linie":"001","Uhrzeit":"18:22","Verspätung":"0"]
                  

                  aber es müßte so aussehen:

                  [{"Zielhaltestelle":"Mönchengl. Am Hommelsbach","Linie":"002","Uhrzeit":"17:40","Verspätung":"6"};{"Zielhaltestelle":"Mönchengl. Künkelstraße","Linie":"001","Uhrzeit":"17:52","Verspätung":"0"};{"Zielhaltestelle":"Mönchengl. Am Hommelsbach","Linie":"002","Uhrzeit":"18:10","Verspätung":"1"};{"Zielhaltestelle":"Mönchengl. Künkelstraße","Linie":"001","Uhrzeit":"18:22","Verspätung":"0"}]
                  

                  Ich habe deinen Code etwas angepasst, klappt aber leider immer noch nicht ganz

                  var pre='javascript.0.Verkehr.Richtung_MG.';
                  var ka=['Haltestelle', 'Linie', 'Startzeit', 'Verspaetung'];
                  
                  for(  var i=0,json='['; i<4; i++ )
                  {
                      json+='{"Zielhaltestelle":"' + getState(pre+ka[0]+i.toString() ).val + 
                              '","Linie":"' + getState(pre+ka[1]+i.toString() ).val + 
                              '","Uhrzeit":"' +getState(pre+ka[2]+i.toString() ).val +
                              '","Verspätung":"' +getState(pre+ka[3]+i.toString() ).val + '"};';
                  }
                      json+=']';
                  
                  createState('Verkehr.MG1', " ");
                  setState('Verkehr.MG1', json);
                  
                  

                  Es sieht nämlich nun so aus

                  [{"Zielhaltestelle":"Mönchengl. Am Hommelsbach","Linie":"002","Uhrzeit":"17:40","Verspätung":"6"};{"Zielhaltestelle":"Mönchengl. Künkelstraße","Linie":"001","Uhrzeit":"17:52","Verspätung":"0"};{"Zielhaltestelle":"Mönchengl. Am Hommelsbach","Linie":"002","Uhrzeit":"18:10","Verspätung":"1"};{"Zielhaltestelle":"Mönchengl. Künkelstraße","Linie":"001","Uhrzeit":"18:22","Verspätung":"0"};]
                  

                  Es muß das Semikolon am Ende zwischen den beiden schließenden Klammern weg

                  1 Antwort Letzte Antwort
                  0
                  • M Offline
                    M Offline
                    mmtnrw
                    schrieb am zuletzt editiert von
                    #9

                    Mir fehlen halt die Werte :)

                    So besser :)

                    var pre='javascript.0.Verkehr.Richtung_MG.';
                    var ka=['Haltestelle', 'Linie', 'Startzeit', 'Verspaetung'];
                    
                    for(  var i=0,json='['; i<4; i++ )
                    {
                        json+='{"Ziehaltestelle":"' + getState(pre+ka[0]+i.toString() ).val + 
                                '","Linie":"' + getState(pre+ka[1]+i.toString() ).val + 
                                '","Uhrzeit":"' +getState(pre+ka[2]+i.toString() ).val +
                                '","Verspätung":"' +getState(pre+ka[3]+i.toString() ).val + '"};';
                    }
                        json=json.substr( 0, json.length-1 ) + ']';
                    
                    createState('Verkehr.MG1', " ");
                    setState('Verkehr.MG1', json);
                    
                    
                    1 Antwort Letzte Antwort
                    0
                    • T Offline
                      T Offline
                      Torsten_MG
                      schrieb am zuletzt editiert von
                      #10

                      Super!!! Vielen, vielen Dank für die Hilfe!!!

                      1 Antwort Letzte Antwort
                      0
                      • M Offline
                        M Offline
                        mmtnrw
                        schrieb am zuletzt editiert von
                        #11

                        Und noch kleiner wenn man auf das 'Ä' verzichtet müsste dann so sein

                        var pre='javascript.0.Verkehr.Richtung_MG.';
                        var ka=['Haltestelle', 'Linie', 'Startzeit', 'Verspaetung'];
                        
                        for(  var i=0,json='[{'; i<4; i++, json+='};' )
                        {
                            for( var j=0; j<4 )
                                json+='"'+ka[j]+'":"+getState( pre+ka[j] + i.toString() ).val + '",';
                        }
                            json=json.substr( 0, json.length-1 ) + ']';
                        
                        createState('Verkehr.MG1', " ");
                        setState('Verkehr.MG1', json);
                        
                        1 Antwort Letzte Antwort
                        0
                        • T Offline
                          T Offline
                          Torsten_MG
                          schrieb am zuletzt editiert von
                          #12

                          Ich versuche gerade hinter den Code zu steigen, um ihn zu verstehen. Da JSON noch Neuland für mich ist, verstehe ich natürlich noch nicht alles.

                          var pre='javascript.0.Verkehr.Richtung_MG.';
                          var ka=['Haltestelle', 'Linie', 'Startzeit', 'Verspaetung'];
                          
                          for(  var i=0,json='['; i<4; i++ )
                          {
                              json+='{"Ziehaltestelle":"' + getState(pre+ka[0]+i.toString() ).val + 
                                      '","Linie":"' + getState(pre+ka[1]+i.toString() ).val + 
                                      '","Uhrzeit":"' +getState(pre+ka[2]+i.toString() ).val +
                                      '","Verspätung":"' +getState(pre+ka[3]+i.toString() ).val + '"};';
                          }
                              json=json.substr( 0, json.length-1 ) + ']';
                          

                          Was ich noch nicht verstehe, was genau bedeutet.toString()und````
                          .val

                          1 Antwort Letzte Antwort
                          0
                          Antworten
                          • In einem neuen Thema antworten
                          Anmelden zum Antworten
                          • Älteste zuerst
                          • Neuste zuerst
                          • Meiste Stimmen


                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          603

                          Online

                          32.5k

                          Benutzer

                          81.6k

                          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