Skip to content
  • 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
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Problem mit for schleife und exec

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Problem mit for schleife und exec

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
3 Beiträge 2 Kommentatoren 625 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.
  • F Offline
    F Offline
    Farmer-cb
    schrieb am zuletzt editiert von
    #1

    Hallo

    irgendwie will mein script nicht funktionieren,

    habe eine for schleife (die funktioniert) die eine exec-funktion (welche auch funktioniert) enthält,

    nun mein Problem

    in der for schleife (z.B zahl aus array auslesen an exec übergeben die in der exec-funktion auch benötigt wird) habe ich eine variable, die ich in der exec-funktion benötige., leider sieht es so aus, als ob zuerst die Schleife durchläuft und erst dann in die Exec gesprungen wird.

    `var raum_id=new Array(   '20'   //Küche 19
                                    ,'7'    //Schlafzimmer 6
                                    ,'8'    //Wohnzimmer 7
                                    ,'10'   //Bad 9
                                    ,'3'    //Büro 2
                                    ,'4'    //Kinderzimmer 3
                                    );
    
    function heizung()
    {
            var result      =getState("javascript.0.Daten.dss.heizung").val;    
            var daten       = JSON.parse(result);
            var raumname    =new Array();
            var raumfeuchte =new Array();
            var raumid      =new Array();
    
            for (var i = 0;i <raum_id.length;i++) {/raumname[i]="daten.result.zones[raum_id[i]].name;" if/(daten.result.zones[raum_id[i]].values.length="">1) {raumfeuchte[i] = daten.result.zones[raum_id[i]].values[1].HumidityValue;}else{raumfeuchte[i] =0;}
                    raumid    = daten.result.zones[raum_id[i]].id;
    
                    createState('javascript.0.Daten.dss.raum_'+raumid, false, {name: raumname[i]});
    
                    log(' raumid: '+raumid+' array_nr: '+raum_id[i]+' raumname: '+raumname[i]+'raumfeuchte: '+raumfeuchte[i]+'%');
    
                        exec('wget --no-check-certificate -O - -q "https://www.xxx.yyy.zz:8080/json/zone/getTemperatureControlStatus?token='+sesToken+'&id='+raumid+'"', 
                            function (error, result, stderr)
                                {   
                                raumdaten = JSON.parse(result);
                                raummodus = modus[raumdaten.result.OperationMode];
                                 solltemp = raumdaten.result.NominalValue;
                                  isttemp = raumdaten.result.TemperatureValue;
                                   ventil = raumdaten.result.ControlValue;
    
                                  log ('raumid:' +raumid+ ' raummodus: '+raummodus+' Soll: '+solltemp+'°C Ist: '+isttemp+'°C Ventilstellung: '+ventil+'%') ;
                                setState("javascript.0.Daten.dss.raum_"+raumid,result);
    
                                });
    
                }
    }</raum_id.length;i++)>` 
    
    im log steht:
    
    <u>~~[u]~~hier läuft die for-schleife:[/u]</u>
    
    20:44:26.896	[info]	javascript.0 script.js.common.dss.Heizung: **~~[b]~~raumid: 10[/b]** array_nr: 20 raumname: Kücheraumfeuchte: 38.975%
    
    20:44:26.896	[info]	javascript.0 script.js.common.dss.Heizung: **~~[b]~~raumid: 24[/b]** array_nr: 7 raumname: Schlafzimmerraumfeuchte: 57.325%
    
    20:44:26.897	[info]	javascript.0 script.js.common.dss.Heizung: **~~[b]~~raumid: 6[/b]** array_nr: 8 raumname: Wohnzimmerraumfeuchte: 35.375%
    
    20:44:26.897	[info]	javascript.0 script.js.common.dss.Heizung: **~~[b]~~raumid: 3[/b]** array_nr: 10 raumname: Badraumfeuchte: 0%
    
    20:44:26.898	[info]	javascript.0 script.js.common.dss.Heizung: **~~[b]~~raumid: 2[/b]** array_nr: 3 raumname: Büroraumfeuchte: 0%
    
    20:44:26.898	[info]	javascript.0 script.js.common.dss.Heizung: **~~[b]~~raumid: 8[/b]** array_nr: 4 raumname: Kinderzimmerraumfeuchte: 36.15%
    
    20:44:26.898	[info]	javascript.0 script.js.common.dss.Heizung: registered 0 subscriptions and 0 schedules
    
    <u>~~[u]~~hier die exec:[/u]</u>
    
    20:44:26.991	[info]	javascript.0 script.js.common.dss.Heizung: **~~[b]~~raumid:8[/b]** raummodus: Komfort Soll: 20°C Ist: 19.925°C Ventilstellung: 41%
    
    20:44:26.994	[info]	javascript.0 script.js.common.dss.Heizung: **~~[b]~~raumid:8[/b]** raummodus: Eco Soll: 20°C Ist: 20.375°C Ventilstellung: 15%
    
    20:44:27.032	[info]	javascript.0 script.js.common.dss.Heizung: **~~[b]~~raumid:8[/b]** raummodus: Komfort Soll: 22°C Ist: 21.95°C Ventilstellung: 74%
    
    20:44:27.069	[info]	javascript.0 script.js.common.dss.Heizung: **~~[b]~~raumid:8[/b]** raummodus: Komfort Soll: 23.5°C Ist: 24.15°C Ventilstellung: 38%
    
    20:44:27.070	[info]	javascript.0 script.js.common.dss.Heizung: **~~[b]~~raumid:8[/b]** raummodus: Kühl Soll: 5°C Ist: 16.925°C Ventilstellung: 0%
    
    20:44:27.166	[info]	javascript.0 script.js.common.dss.Heizung: **~~[b]~~raumid:8[/b]** raummodus: Eco Soll: 18°C Ist: 18°C Ventilstellung: 23%
    
    **~~[b]~~irgendwie kommt die variable raumid erst beim letzte schleifendurchlauf zur exec-funktion[/b]**
    
    was mach ich da verkehrt[/i][/i][/i][/i][/i][/i][/i]
    

    smartes Haus durch Digitalstrom, enocean, SPS S7-1215, Homematik, Motioneye, iobroker auf einem HP-mini mit Proxmox

    5 x Echo Show, 2 x Echo Dot

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

      @Farmer-cb:

      leider sieht es so aus, als ob zuerst die Schleife durchläuft und erst dann in die Exec gesprungen wird. `
      Die Exec-Funktion wird jedesmal nur angeschubst und es geht in der Schleife weiter. Die Schleife ist schneller durchlaufen als der erste Exec-Aufruf sein Ergebnis in der Callback-Funktion liefert.

      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
      • F Offline
        F Offline
        Farmer-cb
        schrieb am zuletzt editiert von
        #3

        ah so, jetzt geht ein lichtlein auf :shock:

        gibt es eine möglichkeit die schleife so lange anzuhalten bis die exec durch ist, oder so ähnlich

        smartes Haus durch Digitalstrom, enocean, SPS S7-1215, Homematik, Motioneye, iobroker auf einem HP-mini mit Proxmox

        5 x Echo Show, 2 x Echo Dot

        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

        664

        Online

        32.4k

        Benutzer

        81.4k

        Themen

        1.3m

        Beiträge
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
        ioBroker Community 2014-2025
        logo
        • Anmelden

        • Du hast noch kein Konto? Registrieren

        • Anmelden oder registrieren, um zu suchen
        • Erster Beitrag
          Letzter Beitrag
        0
        • Aktuell
        • Tags
        • Ungelesen 0
        • Kategorien
        • Unreplied
        • Beliebt
        • GitHub
        • Docu
        • Hilfe