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. [gelöst]Brauche Hilfe bei Script mit Schleife und mehr

NEWS

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

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

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

[gelöst]Brauche Hilfe bei Script mit Schleife und mehr

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
11 Beiträge 2 Kommentatoren 856 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.
  • paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von
    #2

    https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Statements/for

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

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

      @paul53:

      https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Statements/for `

      Ok, in die geschweifte Klammer kommt dann der Teil wo ich die Hochzählung haben möchte.

      Ich denke mal, daß ich dann überall wo ich [0] stehen habe mit [ i] ersetzen muß.

      Wie setze ich das aber bei

      Startzeit = result.raw[0].prev_route.sched_time;
      Verspaetung = result.raw[0].delay;
      Linie = result.raw[0].linie;
      
      setState("javascript.0.Verkehr.Haltestelle.Startzeit",Startzeit);
      setState("javascript.0.Verkehr.Haltestelle.Verspaetung",Verspaetung);
      setState("javascript.0.Verkehr.Haltestelle.Linie",Linie);
      
      

      Startzeit, Verspaetung & Linie um?

      Da sollte ja dann jeweils

      Startzeit0 bis Startzeit4

      usw stehen

      Gesendet von meinem SM-J730F mit Tapatalk

      1 Antwort Letzte Antwort
      0
      • paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #4

        @Torsten_MG:

        Wie setze ich das aber bei

        Startzeit = result.raw[0].prev_route.sched_time;
        Verspaetung = result.raw[0].delay;
        Linie = result.raw[0].linie;
        
        setState("javascript.0.Verkehr.Haltestelle.Startzeit",Startzeit);
        setState("javascript.0.Verkehr.Haltestelle.Verspaetung",Verspaetung);
        setState("javascript.0.Verkehr.Haltestelle.Linie",Linie);
        

        Startzeit, Verspaetung & Linie um?

        Da sollte ja dann jeweils

        Startzeit0 bis Startzeit4

        usw stehen `

        `Startzeit = result.raw[i].prev_route.sched_time;
        Verspaetung = result.raw[i].delay;
        Linie = result.raw[i].linie;
        
        setState("javascript.0.Verkehr.Haltestelle.Startzeit" + i,Startzeit);
        setState("javascript.0.Verkehr.Haltestelle.Verspaetung" + i,Verspaetung);
        setState("javascript.0.Verkehr.Haltestelle.Linie" + i,Linie);` [/i][/i][/i]
        

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

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

          Danke für die schnelle Hilfe!! Da ich ioBroker noch nicht permanent am laufen habe, werde ich es dann beim nächsten mal ausprobieren. Werde mich dann melden, ob es geklappt hat oder nicht

          Gesendet von meinem SM-J730F mit Tapatalk

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

            Habs jetzt mal ausprobiert.

            Funktioniert danke!!

            Aber eine Sache habe ich noch, das Script wird nur 1x ausgeführt. Wie kann ich es umsetzen, dass es im 1Minuten-Takt immer wieder aufgerufen wird?

            Hier nochmal mein Script:

            var request = require('request');
            var logging = true;
            var i = 0;
            
            createState('Verkehr.Aktualisieren', false, {
                    desc: 'Werte aktualisieren',
                    type: 'boolean',
                    def:  false,
                    role: 'indicator'    
            });
            for(let i = 0, i < 4, i++) {
            	createState('Verkehr.meine_Haltestelle.Startzeit'+(i), 0, {
            		});
            	createState('Verkehr.meine_Haltestelle.Verspaetung'+(i), 0, {
            		});		
            	createState('Verkehr.meine_Haltestelle.Haltestelle'+(i), 0, {
            		});
            	createState('Verkehr.meine_Haltestelle.Linie'+(i), 0, {
            		});	
            		}
            function datenlesen() {
                //Zuhause nach HBF
                var link = 'https://vrrf.finalrewind.org/xxx/xxx.json?frontend=json&backend=efa.VRR&platform=1' ;
                log('Verkehr Daten einlesen');
                request(link, function (error, response, body) {
                    if (!error && response.statusCode == 200) {
                        var result;
                        try{
                            result = JSON.parse(body);
            
                            if (logging) log('Kein Fehler beim Einlesen Verkehr Daten');
            
                        } catch (e) {
                            log('Parse Fehler (Roofi Modul):' + e);
                        }    
                        if (result) {
            
                            var Startzeit;
                            var Verspaetung;
                            var Haltestelle;
                            var Linie;
            				var j = 0;
            			for(let j = 0, j < 4, j++) {
            		//Startzeit
                            if (logging) log(result.raw[j].sched_time);
            		//Verspaetung
                            if (logging) log(result.raw[j].delay);
            		//Ziel Haltestelle
                            if (logging) log(result.raw[j].destination);
            		//Linie
                            if (logging) log(result.raw[j].line);
            
                            Startzeit = result.raw[j].sched_time;
                            Verspaetung = result.raw[j].delay;
                            Haltestelle = result.raw[j].destination;
                            Linie = result.raw[j].line;
            
                            setState("javascript.0.Verkehr.meine_Haltestelle.Startzeit"+j,Startzeit);
                            setState("javascript.0.Verkehr.meine_Haltestelle.Verspaetung"+j,Verspaetung);
                            setState("javascript.0.Verkehr.meine_Haltestelle.Haltestelle"+j,Haltestelle);
                            setState("javascript.0.Verkehr.meine_Haltestelle.Linie"+j,Linie);
                        }    
                            setState("javascript.0.Verkehr.Aktualisieren", false);
                            setState("javascript.0.VIS.Overlay", 5);
                        //    setState("javascript.0.VIS.Overlay_iPhoneX", 5);
                        }
                    } else log('Fehler (Verkehr Daten Abfrage: ' + error);
                });   // Ende request 
                log('Verkehr Daten eingelesen');
            }
            datenlesen ();
            
            1 Antwort Letzte Antwort
            0
            • paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #7

              @Torsten_MG:

              dass es im 1Minuten-Takt immer wieder aufgerufen wird? `

              schedule('* * * * *', datenlesen); // jede minute
              

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

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

                @paul53:

                @Torsten_MG:

                dass es im 1Minuten-Takt immer wieder aufgerufen wird? `

                schedule('* * * * *', datenlesen); // jede minute
                ```` `  
                

                Danke!!!

                Aber leider funktioniert es nicht zu 100%

                Beim 1. Start werden alle Datenpunkte erstellt. Hier nochmal das komplette aktuelle Script

                schedule('* * * * *', datenlesen); // jede minute
                var request = require('request');
                var logging = true;
                var i = 0;
                
                createState('Verkehr.Aktualisieren', false, {
                        desc: 'Werte aktualisieren',
                        type: 'boolean',
                        def:  false,
                        role: 'indicator'    
                });
                for(let i = 0; i < 4; i++) {
                	createState('Verkehr.meine_Haltestelle.Startzeit'+i, 0, {
                		});
                	createState('Verkehr.meine_Haltestelle.Verspaetung'+i, 0, {
                		});	
                    createState('Verkehr.meine_Haltestelle.inMinuten'+i, 0, {
                		});
                	createState('Verkehr.meine_Haltestelle.Haltestelle'+i, 0, {
                		});
                	createState('Verkehr.meine_Haltestelle.Linie'+i, 0, {
                		});
                	createState('Verkehr.meine_Haltestelle.tats_zeit'+i, 0, {
                		});
                		}
                function datenlesen() {
                    //Meine Haltestelle nach HBF
                    var link = 'https://vrrf.finalrewind.org/xxx/xxx.json?frontend=json&backend=efa.VRR&platform=1' ;
                    log('Verkehr Daten einlesen');
                    request(link, function (error, response, body) {
                        if (!error && response.statusCode == 200) {
                            var result;
                            try{
                                result = JSON.parse(body);
                
                                if (logging) log('Kein Fehler beim Einlesen Verkehr Daten');
                
                            } catch (e) {
                                log('Parse Fehler (Roofi Modul):' + e);
                            }    
                            if (result) {
                
                                var Startzeit;
                                var Verspaetung;
                                var Haltestelle;
                                var inMinuten;
                                var Linie;
                                var TatsZeit;
                			for(let j = 0; j < 4; j++) {
                				//Startzeit
                                if (logging) log(result.raw[j].sched_time);
                				//Verspaetung
                                if (logging) log(result.raw[j].delay);
                				//Ziel Haltestelle
                                if (logging) log(result.raw[j].destination);
                                //Bus kommt in Minuten
                                if (logging) log(result.raw[j].countdown);
                				//Linie
                                if (logging) log(result.raw[j].line);
                				//Tatsächliche Zeit
                                if (logging) log(result.raw[j].time);
                
                                Startzeit = result.raw[j].sched_time;
                                Verspaetung = result.raw[j].delay;
                                inMinuten = result.raw[j].countdown;
                                Haltestelle = result.raw[j].destination;
                                Linie = result.raw[j].line;
                                TatsZeit = result.raw[j].time;
                
                                setState("javascript.0.Verkehr.meine_Haltestelle.Startzeit"+j,Startzeit);
                                setState("javascript.0.Verkehr.meine_Haltestelle.Verspaetung"+j,Verspaetung);
                                setState("javascript.0.Verkehr.meine_Haltestelle.inMinuten"+j,inMinuten);
                                setState("javascript.0.Verkehr.meine_Haltestelle.Haltestelle"+j,Haltestelle);
                                setState("javascript.0.Verkehr.meine_Haltestelle.Linie"+j,Linie);
                                setState("javascript.0.Verkehr.meine_Haltestelle.tats_zeit"+j,TatsZeit);
                            }    
                
                                setState("javascript.0.Verkehr.Aktualisieren", false);
                                setState("javascript.0.VIS.Overlay", 5);
                            //    setState("javascript.0.VIS.Overlay_iPhoneX", 5);
                            }
                        } else log('Fehler (Verkehr Daten Abfrage: ' + error);
                    });   // Ende request 
                    log('Verkehr Daten eingelesen');
                }
                datenlesen ();
                

                Aber, wenn das 1. Mal neu eingelesen wird, werden nur noch die Datenpunkte 1-3 aktualisiert.

                Also:

                javascript.0.Verkehr.meine_Haltestelle.Startzeit1
                javascript.0.Verkehr.meine_Haltestelle.Verspaetung1
                javascript.0.Verkehr.meine_Haltestelle.inMinuten1
                javascript.0.Verkehr.meine_Haltestelle.Haltestelle1
                javascript.0.Verkehr.meine_Haltestelle.Linie1
                javascript.0.Verkehr.meine_Haltestelle.tats1
                
                javascript.0.Verkehr.meine_Haltestelle.Startzeit2
                javascript.0.Verkehr.meine_Haltestelle.Verspaetung2
                javascript.0.Verkehr.meine_Haltestelle.inMinuten2
                javascript.0.Verkehr.meine_Haltestelle.Haltestelle2
                javascript.0.Verkehr.meine_Haltestelle.Linie2
                javascript.0.Verkehr.meine_Haltestelle.tats2
                
                javascript.0.Verkehr.meine_Haltestelle.Startzeit3
                javascript.0.Verkehr.meine_Haltestelle.Verspaetung3
                javascript.0.Verkehr.meine_Haltestelle.inMinuten3
                javascript.0.Verkehr.meine_Haltestelle.Haltestelle3
                javascript.0.Verkehr.meine_Haltestelle.Linie3
                javascript.0.Verkehr.meine_Haltestelle.tats3
                
                
                1 Antwort Letzte Antwort
                0
                • paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #9

                  @Torsten_MG:

                  wenn das 1. Mal neu eingelesen wird, werden nur noch die Datenpunkte 1-3 aktualisiert. `
                  Das kann ich anhand des Skriptes nicht nachvollziehen, denn die Initialisierung der Zähl-/Indexvariablen erfolgt mit 0:

                  			for(let j = 0; j < 4; j++) {
                  
                  

                  Anmerkung: Du solltest besser strukturieren (Einrückungen), damit man sieht, welche Klammer wozu gehört.

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

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

                    @paul53:

                    @Torsten_MG:

                    wenn das 1. Mal neu eingelesen wird, werden nur noch die Datenpunkte 1-3 aktualisiert. `
                    Das kann ich anhand des Skriptes nicht nachvollziehen, denn die Initialisierung der Zähl-/Indexvariablen erfolgt mit 0:

                    			for(let j = 0; j < 4; j++) {
                    
                    

                    Anmerkung: Du solltest besser strukturieren (Einrückungen), damit man sieht, welche Klammer wozu gehört. `

                    Eben, deswegen bin ich ja auch verwirrt.

                    Kann es aber jetzt nicht weitertesten, mußte mein Fhem wieder aktivieren, damit die Lampen funktionieren :D

                    Falls doch noch von jemanden eine Idee kommt, gerne her damit!

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

                      Habe es mir jetzt nochmal angeschaut, hat mir keine Ruhe gelassen.

                      Also es werden alle Objekte refresht, die Werte werden kurzzeitig grün. Was gestern zwar bei den 0-er Objekten nicht so war aber jetzt :?

                      Aber was mich gestern noch irritiert hat, waren die Werte der Bus kommt in Minuten, die haben sich nicht minütlich geändert, sondern nur alle paar Minuten. Den Grund habe ich jetzt auch gefunden, die JSON-Datei wird nur alle 4 Minuten aktualisiert. Also wird diese Abfrage rausgeschmissen. Kann ich mit der aktuellen Systemzeit und der Uhrzeit, wann der Bus kommt diese Zeit Berechnen? wenn ja, wie?

                      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

                      595

                      Online

                      32.7k

                      Benutzer

                      82.5k

                      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