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. [gelöst]Timingprobleme bei createState und setState im selben Skript

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    408

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

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

[gelöst]Timingprobleme bei createState und setState im selben Skript

Scheduled Pinned Locked Moved JavaScript
37 Posts 6 Posters 5.5k Views 5 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.
  • F Offline
    F Offline
    Fitti
    wrote on last edited by
    #6

    @fsjoke:

    bei Arduino läft nur ein Programm, und zwar deines auch dem Rechner.

    Nodejs ist komplett anders und javascript kommt aktuell vom Webbrowser der auch 100erte Sachen gleichzeitig (aber aeventuell nur auf einem Prozessor) machen muss. `
    Das weiß ich glücklicherweise. Ich programmiere schon weit über 20 Jahren, bin aber kein Entwickler - eher ein Anpasser.

    Jedoch vergeht quasi kein Tag, an dem ich nicht was Programmiere.

    Ich meinte es auch nur im Sinnbildlichen für die, die Wissen, wie der Arduino im Einfachen arbeitet. Also Einstieg, dann endlos while Schleife.

    Da ich auch noch aus Zeiten komme, wo jedes Bit und jeder Assemblerschritt gut zu überlegen war, kann ich meine Gewohnheiten nicht ganz ablegen.

    Somit suche ich also nach den BestPractizes, Du und Paul haben mir ja schon ein paar Beispiele genannt.

    Ich überlege halt einfach nur, auch ein vis. Widget zu schreiben, da das, was ich hier gerade mache bestimmt auch für andere nützlich ist.

    Oder zumindst einen Adapter - so aus reiner Lust und ich möchte der Community auch mal was geben.

    Und wenn dann ein Skript, mit dem es hier erst einmal beginnt einfach beim Erstlauf Schwierigkeiten macht, finde ich das gerade nicht schön. Nun wollte ich auch nicht gleich mit "try" rangehen, was ja auch eine Möglichkeit wäre.

    Ich frage mich also, wie ein Adapter das löst? Auf die Schnelle(!) habe ich nur festgestellt, dass es (fas leider) nun solch eine Flut an Anleitungen und Hinweisen überall im Netz gibt, die leider einen mehr erschlagen, als das dieses einem nützt. Oder sie sind veraltert - oder einfach noch zu neu. Ich habe da russische Dinge auf Youtube über iobroker gesehen… :shock:

    Aber ich sehe gerade in einem Adapter, dass vermutlich andere Funktionen wie .createDevice dieses durchführen.

    Somit soll also alles erst mal einen Schritt nach dem anderen passieren und ich möchte möglichst eine saubere Lösung als Skript haben, die ich ja so erst einmal vorstellen kann.

    Wenn das läuft (bin eigentlich schon fast fertig) möchte ich mir das ansehen, wie ein Adapter erstellt wird. Irgendwo gab es doch auch eine Anleitung von Bluefox, oder?....

    "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
    • AlCalzoneA Offline
      AlCalzoneA Offline
      AlCalzone
      Developer
      wrote on last edited by
      #7

      @Fitti:

      Ich frage mich also, wie ein Adapter das löst? `
      Ich überprüfe in der Regel dann wenn ein Objekt/State aktualisiert werden muss, ob er schon existiert und lege ihn ansonsten vor dem Schreiben an.

      Du kannst deine klassische "Init => Programm"-Struktur aber folgendermaßen nachbilden (schematisch, ungetestet). Die "…" musst du noch an deine Ansprüche anpassen:

      // Einmalig beim Programmstart alle States erzeugen, sofern nicht schon geschehen
      var states = [
        {id: "stateID1", initial: "Initialwert1", ...sonstiges},
        {id: "stateID2", initial: "Initialwert1", ...sonstiges}
      ];
      var numStates = states.length;
      states.each(function(state) {
      	createState(state.id, state.initial, ..., function() {
      		numStates--;
      		if (numStates === 0) {
      			// fertig!
      			main();
      		}
      	});
      });
      
      function main() {
          // hier der eigentliche Programmablauf
      }
      
      

      Ein fixer Timeout ist nicht zu empfehlen, für den Programmfluss sind die Callbacks in NodeJS nämlich da.

      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

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

        Das gefällt mir. Danke!

        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
        • AlCalzoneA AlCalzone

          @Fitti:

          Ich frage mich also, wie ein Adapter das löst? `
          Ich überprüfe in der Regel dann wenn ein Objekt/State aktualisiert werden muss, ob er schon existiert und lege ihn ansonsten vor dem Schreiben an.

          Du kannst deine klassische "Init => Programm"-Struktur aber folgendermaßen nachbilden (schematisch, ungetestet). Die "…" musst du noch an deine Ansprüche anpassen:

          // Einmalig beim Programmstart alle States erzeugen, sofern nicht schon geschehen
          var states = [
            {id: "stateID1", initial: "Initialwert1", ...sonstiges},
            {id: "stateID2", initial: "Initialwert1", ...sonstiges}
          ];
          var numStates = states.length;
          states.each(function(state) {
          	createState(state.id, state.initial, ..., function() {
          		numStates--;
          		if (numStates === 0) {
          			// fertig!
          			main();
          		}
          	});
          });
          
          function main() {
              // hier der eigentliche Programmablauf
          }
          
          

          Ein fixer Timeout ist nicht zu empfehlen, für den Programmfluss sind die Callbacks in NodeJS nämlich da.

          P Offline
          P Offline
          Pittini
          Developer
          wrote on last edited by Pittini
          #9

          @AlCalzone sagte in [gelöst]Timingprobleme bei createState und setState im selben Skript:

          Du kannst deine klassische "Init => Programm"-Struktur aber folgendermaßen nachbilden (schematisch, ungetestet). Die "…" musst du noch an deine Ansprüche anpassen:

          Ich weis, altes Thema, aber für mich grade topaktuell und ich stell mich zu blöd an, das anzupassen.
          Grundsätzlich werden die States angelegt, aber nichts aus dem "common" Bereich (name/read/write/def/usw.).
          Vieleicht mag @AlCalzone mal nen kurzen Blick drauf werfen.

          PS: Wenn ich Zeile 29 ändere, von:

              createState(state.id, state.initial, state.forceCreation,  function () {
          

          zu

              createState(state.id, state.initial, state.forceCreation, state.common, function () {
          

          werden zumindest die default Werte angelegt. Aber das state.common hat nen roten Kringel und der Name ist vollkommen falsch, nämlich die ID und nicht was in name definiert wurde.

          switch (ProfileType) {
              case "Mo - Su":
                  y = 0;
                  for (let x = 0; x <= NumberOfPeriods - 1; x++) {
                      states[y] = { id: praefix + "ProfileTypes.Mo-Su.Periods." + x + ".Temperature", initial: 20, forceCreation: false, read: true, write: true, name: "target temperature", type: "number", def: 20 };
                      y++
                      states[y] = { id: praefix + "ProfileTypes.Mo-Su.Periods." + x + ".time", initial: "00:00", forceCreation: false, read: true, write: true, name: "period from", type: "string", def: " 00:00" };
                      y++
                  };
                  break;
          
              //V2 Mo-Fr / Sa-So
              case "Mo - Fr / Sa - Su":
                  y = 0;
                  for (let x = 0; x <= NumberOfPeriods - 1; x++) {
                      states[y] = { id: praefix + "ProfileTypes.Mo-Fr.Periods." + x + ".Temperature", initial: 20, forceCreation: false, read: true, write: true, name: "target temperature", type: "number", def: 20 };
                      y++
                      states[y] = { id: praefix + "ProfileTypes.Mo-Fr.Periods." + x + ".time", initial: "00:00", forceCreation: false, read: true, write: true, name: "period from", type: "string", def: " 00:00" };
                      y++
                      states[y] = { id: praefix + "ProfileTypes.Sa-So.Periods." + x + ".Temperature", initial: 20, forceCreation: false, read: true, write: true, name: "target temperature", type: "number", def: 20 };
                      y++
                      states[y] = { id: praefix + "ProfileTypes.Sa-So.Periods." + x + ".time", initial: "00:00", forceCreation: false, read: true, write: true, name: "period from", type: "string", def: " 00:00" };
                      y++
                  };
                  break;
          };
          let numStates = states.length;
          states.forEach(function (state) {
              createState(state.id, state.initial, state.forceCreation,  function () {
                  numStates--;
                  if (numStates === 0) {
                      log("fertig!");
                      //main();
                  }
              });
          });
          
          
          C 1 Reply Last reply
          0
          • P Pittini

            @AlCalzone sagte in [gelöst]Timingprobleme bei createState und setState im selben Skript:

            Du kannst deine klassische "Init => Programm"-Struktur aber folgendermaßen nachbilden (schematisch, ungetestet). Die "…" musst du noch an deine Ansprüche anpassen:

            Ich weis, altes Thema, aber für mich grade topaktuell und ich stell mich zu blöd an, das anzupassen.
            Grundsätzlich werden die States angelegt, aber nichts aus dem "common" Bereich (name/read/write/def/usw.).
            Vieleicht mag @AlCalzone mal nen kurzen Blick drauf werfen.

            PS: Wenn ich Zeile 29 ändere, von:

                createState(state.id, state.initial, state.forceCreation,  function () {
            

            zu

                createState(state.id, state.initial, state.forceCreation, state.common, function () {
            

            werden zumindest die default Werte angelegt. Aber das state.common hat nen roten Kringel und der Name ist vollkommen falsch, nämlich die ID und nicht was in name definiert wurde.

            switch (ProfileType) {
                case "Mo - Su":
                    y = 0;
                    for (let x = 0; x <= NumberOfPeriods - 1; x++) {
                        states[y] = { id: praefix + "ProfileTypes.Mo-Su.Periods." + x + ".Temperature", initial: 20, forceCreation: false, read: true, write: true, name: "target temperature", type: "number", def: 20 };
                        y++
                        states[y] = { id: praefix + "ProfileTypes.Mo-Su.Periods." + x + ".time", initial: "00:00", forceCreation: false, read: true, write: true, name: "period from", type: "string", def: " 00:00" };
                        y++
                    };
                    break;
            
                //V2 Mo-Fr / Sa-So
                case "Mo - Fr / Sa - Su":
                    y = 0;
                    for (let x = 0; x <= NumberOfPeriods - 1; x++) {
                        states[y] = { id: praefix + "ProfileTypes.Mo-Fr.Periods." + x + ".Temperature", initial: 20, forceCreation: false, read: true, write: true, name: "target temperature", type: "number", def: 20 };
                        y++
                        states[y] = { id: praefix + "ProfileTypes.Mo-Fr.Periods." + x + ".time", initial: "00:00", forceCreation: false, read: true, write: true, name: "period from", type: "string", def: " 00:00" };
                        y++
                        states[y] = { id: praefix + "ProfileTypes.Sa-So.Periods." + x + ".Temperature", initial: 20, forceCreation: false, read: true, write: true, name: "target temperature", type: "number", def: 20 };
                        y++
                        states[y] = { id: praefix + "ProfileTypes.Sa-So.Periods." + x + ".time", initial: "00:00", forceCreation: false, read: true, write: true, name: "period from", type: "string", def: " 00:00" };
                        y++
                    };
                    break;
            };
            let numStates = states.length;
            states.forEach(function (state) {
                createState(state.id, state.initial, state.forceCreation,  function () {
                    numStates--;
                    if (numStates === 0) {
                        log("fertig!");
                        //main();
                    }
                });
            });
            
            
            C Offline
            C Offline
            CruziX
            wrote on last edited by
            #10

            @Pittini Du gibst den erzeugten states, so wie ich das sehe auch kein common attribut?
            Wo setzt du bsp. hierbei das attribut common, auf das du dann zugreifen möchtest?

            states[y] = { id: praefix + "ProfileTypes.Mo-Su.Periods." + x + ".Temperature", initial: 20, forceCreation: false, read: true, write: true, name: "target temperature", type: "number", def: 20 };
            

            state.id, state.initial und state.forceCreation gehen, weil du den Objekten diese Eigenschaften gegeben hast.

            P 1 Reply Last reply
            0
            • C CruziX

              @Pittini Du gibst den erzeugten states, so wie ich das sehe auch kein common attribut?
              Wo setzt du bsp. hierbei das attribut common, auf das du dann zugreifen möchtest?

              states[y] = { id: praefix + "ProfileTypes.Mo-Su.Periods." + x + ".Temperature", initial: 20, forceCreation: false, read: true, write: true, name: "target temperature", type: "number", def: 20 };
              

              state.id, state.initial und state.forceCreation gehen, weil du den Objekten diese Eigenschaften gegeben hast.

              P Offline
              P Offline
              Pittini
              Developer
              wrote on last edited by Pittini
              #11

              @CruziX
              Ich steh grad aufm Schlauch, was meinst Du? Beim normalen createState muß ich doch common auch ned separat definieren?
              Aber Versuch macht kluch, ich habs mal probiert, jetzt wird alles korrekt angelegt, aber nu mault er state.forceCreation an.

              AlCalzoneA 1 Reply Last reply
              0
              • P Pittini

                @CruziX
                Ich steh grad aufm Schlauch, was meinst Du? Beim normalen createState muß ich doch common auch ned separat definieren?
                Aber Versuch macht kluch, ich habs mal probiert, jetzt wird alles korrekt angelegt, aber nu mault er state.forceCreation an.

                AlCalzoneA Offline
                AlCalzoneA Offline
                AlCalzone
                Developer
                wrote on last edited by AlCalzone
                #12

                @Pittini sagte in [gelöst]Timingprobleme bei createState und setState im selben Skript:

                Ich steh grad aufm Schlauch, was meinst Du? Beim normalen createState muß ich doch common auch ned separat definieren?

                Wenn du willst, dass deine States nachher bestimmte common-Eigenschaften (z.B. Name) haben, musst du das beim createState mitgeben. Wie soll createState sonst wissen können, was du da für Eigenschaften haben willst?

                Ändere mal deine Objektdefinitionen von z.B.

                states[y] = { id: praefix + "ProfileTypes.Sa-So.Periods." + x + ".time", initial: "00:00", forceCreation: false, read: true, write: true, name: "period from", type: "string", def: " 00:00" }
                

                zu

                states[y] = { id: praefix + "ProfileTypes.Sa-So.Periods." + x + ".time", initial: "00:00", forceCreation: false, common: { read: true, write: true, name: "period from", type: "string", def: " 00:00" } }
                

                (also alles innerhalb common in ein Objekt gruppieren), dann sollte es auch mit dem createState inklusive common klappen.

                Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                P C 2 Replies Last reply
                0
                • AlCalzoneA AlCalzone

                  @Pittini sagte in [gelöst]Timingprobleme bei createState und setState im selben Skript:

                  Ich steh grad aufm Schlauch, was meinst Du? Beim normalen createState muß ich doch common auch ned separat definieren?

                  Wenn du willst, dass deine States nachher bestimmte common-Eigenschaften (z.B. Name) haben, musst du das beim createState mitgeben. Wie soll createState sonst wissen können, was du da für Eigenschaften haben willst?

                  Ändere mal deine Objektdefinitionen von z.B.

                  states[y] = { id: praefix + "ProfileTypes.Sa-So.Periods." + x + ".time", initial: "00:00", forceCreation: false, read: true, write: true, name: "period from", type: "string", def: " 00:00" }
                  

                  zu

                  states[y] = { id: praefix + "ProfileTypes.Sa-So.Periods." + x + ".time", initial: "00:00", forceCreation: false, common: { read: true, write: true, name: "period from", type: "string", def: " 00:00" } }
                  

                  (also alles innerhalb common in ein Objekt gruppieren), dann sollte es auch mit dem createState inklusive common klappen.

                  P Offline
                  P Offline
                  Pittini
                  Developer
                  wrote on last edited by
                  #13

                  @AlCalzone
                  Jap, so funktioniert das, besten DAnk. Allerdings passt ihm jetzt state.forceCreation nicht. Was hab ich da noch falsch?

                  2020-03-05 17_21_09-javascript - ioBroker.png

                  C 1 Reply Last reply
                  0
                  • AlCalzoneA AlCalzone

                    @Pittini sagte in [gelöst]Timingprobleme bei createState und setState im selben Skript:

                    Ich steh grad aufm Schlauch, was meinst Du? Beim normalen createState muß ich doch common auch ned separat definieren?

                    Wenn du willst, dass deine States nachher bestimmte common-Eigenschaften (z.B. Name) haben, musst du das beim createState mitgeben. Wie soll createState sonst wissen können, was du da für Eigenschaften haben willst?

                    Ändere mal deine Objektdefinitionen von z.B.

                    states[y] = { id: praefix + "ProfileTypes.Sa-So.Periods." + x + ".time", initial: "00:00", forceCreation: false, read: true, write: true, name: "period from", type: "string", def: " 00:00" }
                    

                    zu

                    states[y] = { id: praefix + "ProfileTypes.Sa-So.Periods." + x + ".time", initial: "00:00", forceCreation: false, common: { read: true, write: true, name: "period from", type: "string", def: " 00:00" } }
                    

                    (also alles innerhalb common in ein Objekt gruppieren), dann sollte es auch mit dem createState inklusive common klappen.

                    C Offline
                    C Offline
                    CruziX
                    wrote on last edited by
                    #14

                    @AlCalzone sagte in [gelöst]Timingprobleme bei createState und setState im selben Skript:

                    @Pittini sagte in [gelöst]Timingprobleme bei createState und setState im selben Skript:

                    Ich steh grad aufm Schlauch, was meinst Du? Beim normalen createState muß ich doch common auch ned separat definieren?

                    Wenn du willst, dass deine States nachher bestimmte common-Eigenschaften (z.B. Name) haben, musst du das beim createState mitgeben. Wie soll createState sonst wissen können, was du da für Eigenschaften haben willst?

                    Ändere mal deine Objektdefinitionen von z.B.

                    states[y] = { id: praefix + "ProfileTypes.Sa-So.Periods." + x + ".time", initial: "00:00", forceCreation: false, read: true, write: true, name: "period from", type: "string", def: " 00:00" }
                    

                    zu

                    states[y] = { id: praefix + "ProfileTypes.Sa-So.Periods." + x + ".time", initial: "00:00", forceCreation: false, common: { read: true, write: true, name: "period from", type: "string", def: " 00:00" } }
                    

                    (also alles innerhalb common in ein Objekt gruppieren), dann sollte es auch mit dem createState inklusive common klappen.

                    Jep, genau das meinte ich ^^

                    1 Reply Last reply
                    0
                    • P Pittini

                      @AlCalzone
                      Jap, so funktioniert das, besten DAnk. Allerdings passt ihm jetzt state.forceCreation nicht. Was hab ich da noch falsch?

                      2020-03-05 17_21_09-javascript - ioBroker.png

                      C Offline
                      C Offline
                      CruziX
                      wrote on last edited by
                      #15

                      @Pittini zeig doch nochmal bitte das setzen der states

                      P 1 Reply Last reply
                      0
                      • C CruziX

                        @Pittini zeig doch nochmal bitte das setzen der states

                        P Offline
                        P Offline
                        Pittini
                        Developer
                        wrote on last edited by
                        #16

                        @CruziX

                        states[y] = { id: praefix + "ProfileTypes.Sun.Periods." + x + ".time", initial: "00:00", forceCreation: false, common: { read: true, write: true, name: "period from", type: "string", def: " 00:00" } }; // 
                        
                        
                            createState(state.id, state.initial, state.forceCreation, state.common, function () {
                        
                        
                        C 1 Reply Last reply
                        0
                        • P Pittini

                          @CruziX

                          states[y] = { id: praefix + "ProfileTypes.Sun.Periods." + x + ".time", initial: "00:00", forceCreation: false, common: { read: true, write: true, name: "period from", type: "string", def: " 00:00" } }; // 
                          
                          
                              createState(state.id, state.initial, state.forceCreation, state.common, function () {
                          
                          
                          C Offline
                          C Offline
                          CruziX
                          wrote on last edited by
                          #17

                          @Pittini funktioniert es denn trotzdem? Habe in meinen Srkipts auch manchmal was rot aber es geht

                          P 1 Reply Last reply
                          0
                          • C CruziX

                            @Pittini funktioniert es denn trotzdem? Habe in meinen Srkipts auch manchmal was rot aber es geht

                            P Offline
                            P Offline
                            Pittini
                            Developer
                            wrote on last edited by
                            #18

                            @CruziX sagte in [gelöst]Timingprobleme bei createState und setState im selben Skript:

                            funktioniert es denn trotzdem? Habe in meinen Srkipts auch manchmal was rot aber es geht

                            Ja, hab ich oben ja geschrieben dass es funktioniert. Und ja, ich kenn das auch mit den roten Kringeln gelegntlich, aber meist sind die immer da und kommen nicht erst wenn mans richtig macht.

                            AlCalzoneA 1 Reply Last reply
                            0
                            • P Pittini

                              @CruziX sagte in [gelöst]Timingprobleme bei createState und setState im selben Skript:

                              funktioniert es denn trotzdem? Habe in meinen Srkipts auch manchmal was rot aber es geht

                              Ja, hab ich oben ja geschrieben dass es funktioniert. Und ja, ich kenn das auch mit den roten Kringeln gelegntlich, aber meist sind die immer da und kommen nicht erst wenn mans richtig macht.

                              AlCalzoneA Offline
                              AlCalzoneA Offline
                              AlCalzone
                              Developer
                              wrote on last edited by
                              #19

                              @Pittini sagte in [gelöst]Timingprobleme bei createState und setState im selben Skript:

                              meist sind die immer da und kommen nicht erst wenn mans richtig macht.

                              Dann schick mir bitte mal ein paar Beispiele wo du denkst dass sie nicht angebracht sind. Eigentlich sollten die auf Fehler hinweisen.
                              Z.B. was kommt beim ForceCreation-Fehler wenn du mit der Maus drüber gehst?

                              Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                              P 2 Replies Last reply
                              0
                              • AlCalzoneA AlCalzone

                                @Pittini sagte in [gelöst]Timingprobleme bei createState und setState im selben Skript:

                                meist sind die immer da und kommen nicht erst wenn mans richtig macht.

                                Dann schick mir bitte mal ein paar Beispiele wo du denkst dass sie nicht angebracht sind. Eigentlich sollten die auf Fehler hinweisen.
                                Z.B. was kommt beim ForceCreation-Fehler wenn du mit der Maus drüber gehst?

                                P Offline
                                P Offline
                                Pittini
                                Developer
                                wrote on last edited by
                                #20

                                @AlCalzone sagte in [gelöst]Timingprobleme bei createState und setState im selben Skript:

                                Z.B. was kommt beim ForceCreation-Fehler wenn du mit der Maus drüber gehst?

                                2020-03-06 08_36_34-javascript - ioBroker.png

                                AlCalzoneA 1 Reply Last reply
                                0
                                • AlCalzoneA AlCalzone

                                  @Pittini sagte in [gelöst]Timingprobleme bei createState und setState im selben Skript:

                                  meist sind die immer da und kommen nicht erst wenn mans richtig macht.

                                  Dann schick mir bitte mal ein paar Beispiele wo du denkst dass sie nicht angebracht sind. Eigentlich sollten die auf Fehler hinweisen.
                                  Z.B. was kommt beim ForceCreation-Fehler wenn du mit der Maus drüber gehst?

                                  P Offline
                                  P Offline
                                  Pittini
                                  Developer
                                  wrote on last edited by Pittini
                                  #21

                                  @AlCalzone sagte in [gelöst]Timingprobleme bei createState und setState im selben Skript:

                                  Dann schick mir bitte mal ein paar Beispiele wo du denkst dass sie nicht angebracht sind.

                                  Z.b. bei mehrdimensionalen Array mault er fast immer.
                                  2020-03-06 09_00_16-javascript - ioBroker.png

                                  siehe auch hier:
                                  2020-03-06 09_20_21-javascript - ioBroker.png
                                  Oder hier mault er die enumNames an:
                                  2020-03-06 08_59_58-javascript - ioBroker.png

                                  Alle Beispiele sind aus Skripts die einwandfrei funktionieren.

                                  AlCalzoneA 1 Reply Last reply
                                  0
                                  • C Offline
                                    C Offline
                                    CruziX
                                    wrote on last edited by
                                    #22

                                    Wenn ich zu Hause bin geb ich hier auch mal ein paar Beispiele.
                                    Was mir direkt einfällt.
                                    In einem Global Skript erweiter ich die Klasse Date um eine function.

                                    Date.diffBetween =

                                    Und in skripten wo ich da verwende, wird diese Funktion auch als Fehler angemerkt

                                    AlCalzoneA 1 Reply Last reply
                                    0
                                    • P Pittini

                                      @AlCalzone sagte in [gelöst]Timingprobleme bei createState und setState im selben Skript:

                                      Dann schick mir bitte mal ein paar Beispiele wo du denkst dass sie nicht angebracht sind.

                                      Z.b. bei mehrdimensionalen Array mault er fast immer.
                                      2020-03-06 09_00_16-javascript - ioBroker.png

                                      siehe auch hier:
                                      2020-03-06 09_20_21-javascript - ioBroker.png
                                      Oder hier mault er die enumNames an:
                                      2020-03-06 08_59_58-javascript - ioBroker.png

                                      Alle Beispiele sind aus Skripts die einwandfrei funktionieren.

                                      AlCalzoneA Offline
                                      AlCalzoneA Offline
                                      AlCalzone
                                      Developer
                                      wrote on last edited by AlCalzone
                                      #23

                                      @Pittini Ok, das sind beides Beispiele, die sich nicht unbedingt beheben lassen. Beim Array zum Beispiel ändert sich durch die Zuweisung der Typ - das mag die Typprüfung nicht, auch wenn es valide ist.

                                      Bei Funktionsaufrufen solltest du aber relativ safe sein, dass wenn etwas gemeckert wird, es wirklich nicht stimmt.

                                      Das Beispiel mit forceCreate muss ich mir mal anschauen, scheint erst mal unplausibel.

                                      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                                      1 Reply Last reply
                                      0
                                      • C CruziX

                                        Wenn ich zu Hause bin geb ich hier auch mal ein paar Beispiele.
                                        Was mir direkt einfällt.
                                        In einem Global Skript erweiter ich die Klasse Date um eine function.

                                        Date.diffBetween =

                                        Und in skripten wo ich da verwende, wird diese Funktion auch als Fehler angemerkt

                                        AlCalzoneA Offline
                                        AlCalzoneA Offline
                                        AlCalzone
                                        Developer
                                        wrote on last edited by
                                        #24

                                        @CruziX sagte in [gelöst]Timingprobleme bei createState und setState im selben Skript:

                                        In einem Global Skript erweiter ich die Klasse Date um eine function.

                                        Ok, noch ein Spezialfall. Dazu müsste man auch die Definition der Klasse ergänzen, damit die Typprüfung das versteht.

                                        Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                                        C 1 Reply Last reply
                                        0
                                        • AlCalzoneA AlCalzone

                                          @CruziX sagte in [gelöst]Timingprobleme bei createState und setState im selben Skript:

                                          In einem Global Skript erweiter ich die Klasse Date um eine function.

                                          Ok, noch ein Spezialfall. Dazu müsste man auch die Definition der Klasse ergänzen, damit die Typprüfung das versteht.

                                          C Offline
                                          C Offline
                                          CruziX
                                          wrote on last edited by
                                          #25

                                          @AlCalzone Was genau ist daran ein Spezialfall, dass sich die Funktion im global Skript befindet?

                                          AlCalzoneA 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

                                          563

                                          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