Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Anfänger braucht Hilfe bei einem Script

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Anfänger braucht Hilfe bei einem Script

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      stimezo Forum Testing last edited by

      Nimm getState und nicht getstate (das S groß)

      Gruß

      Christian

      1 Reply Last reply Reply Quote 0
      • T
        Torsten_MG last edited by

        @stimezo:

        Nimm getState und nicht getstate (das S groß)

        Gruß

        Christian `

        Super, vielen Dank!!!!

        Hat geklappt

        1 Reply Last reply Reply Quote 0
        • T
          Torsten_MG last edited by

          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 Reply Last reply Reply Quote 0
          • M
            mmtnrw last edited by

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

            1 Reply Last reply Reply Quote 0
            • T
              Torsten_MG last edited by

              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 Reply Last reply Reply Quote 0
              • M
                mmtnrw last edited by

                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 Reply Last reply Reply Quote 0
                • T
                  Torsten_MG last edited by

                  @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 Reply Last reply Reply Quote 0
                  • M
                    mmtnrw last edited by

                    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 Reply Last reply Reply Quote 0
                    • T
                      Torsten_MG last edited by

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

                      1 Reply Last reply Reply Quote 0
                      • M
                        mmtnrw last edited by

                        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 Reply Last reply Reply Quote 0
                        • T
                          Torsten_MG last edited by

                          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 Reply Last reply Reply Quote 0
                          • First post
                            Last post

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          842
                          Online

                          31.8k
                          Users

                          79.9k
                          Topics

                          1.3m
                          Posts

                          3
                          12
                          724
                          Loading More Posts
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes
                          Reply
                          • Reply as topic
                          Log in to reply
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                          The ioBroker Community 2014-2023
                          logo