Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [Neu] Diverse async-Funktionen im JavaScript-Adapter

    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

    [Neu] Diverse async-Funktionen im JavaScript-Adapter

    This topic has been deleted. Only users with topic management privileges can see it.
    • AlCalzone
      AlCalzone Developer @noox last edited by

      @noox sagte in [Neu] Diverse async-Funktionen im JavaScript-Adapter:

      Während nämlich getValue('X') auf den HTTP-Response wartet, wird getValue('Y') ausgeführt und startet dann ebenfalls den HTTP-Request.

      Genau das verhindert await eigentlich (wenn die Funktion entweder async ist oder einen Promise zurück gibt). Ich gehe schwer davon aus, dass deine getValue-Funktion nicht richtig implementiert ist.

      @noox sagte in [Neu] Diverse async-Funktionen im JavaScript-Adapter:

      Etwas Änliches kann auch mit set/getStateAsync passieren.

      Eigentlich nicht. Zeig doch bitte mal ein Beispiel, wo das nachvollziehbar ist.

      N 1 Reply Last reply Reply Quote 0
      • N
        noox @AlCalzone last edited by

        @AlCalzone
        Ja, ich hab mich verwirren lassen. Sorry. Das Beispiel ist zu einfach.

        Passieren würde es aber meiner Meinung nach, wenn die Zugriffe unabhängig voneinander wären. Also z.B. einer von einer Subscription oder einem Timer (setTimeout) aus. Und in meinem Fall war es ein setTimeout.

        Aber selbst da befürchte ich, dass ich mich verschaut habe, da ich zwei Geräte parallel abfrage.

        Aber ich hatte früher schon mal das Problem, wo ein Script einen State schreibt, und ein anderes diesen abonniert hat. Und wo dann kurzzeitig der State öfter geändert wurde, als ihn die Subscription abarbeiten konnte. Damals habe ich es ohne Lock gelöst, aber sowas könnte ein Fall für Locks sein.
        Aber auch deswegen war ich diesmal etwas zu vorschnell. Sorry!

        N AlCalzone 2 Replies Last reply Reply Quote 0
        • N
          noox @noox last edited by

          Ui ... und ich hab mehrmals das await vergessen. Ich programmiere in Visual Studio Code.

          Bin's aber von C# und Visual Studio so gewohnt, dass man auf ein vergessenes await aufmerksam gemacht wird.

          AlCalzone 1 Reply Last reply Reply Quote 0
          • AlCalzone
            AlCalzone Developer @noox last edited by

            @noox sagte in [Neu] Diverse async-Funktionen im JavaScript-Adapter:

            Bin's aber von C# und Visual Studio so gewohnt, dass man auf ein vergessenes await aufmerksam gemacht wird.

            Das macht VSCode auch, wenn die Einstellungen entsprechend gesetzt sind (Typechecking aktiv)

            1 Reply Last reply Reply Quote 0
            • AlCalzone
              AlCalzone Developer @noox last edited by

              @noox sagte in [Neu] Diverse async-Funktionen im JavaScript-Adapter:

              Passieren würde es aber meiner Meinung nach, wenn die Zugriffe unabhängig voneinander wären. Also z.B. einer von einer Subscription oder einem Timer (setTimeout) aus. Und in meinem Fall war es ein setTimeout.

              Korrekt. Da kann dir aber kein so grundlegendes Sprachfeature helfen, das musst du selbst steuern.

              1 Reply Last reply Reply Quote 0
              • Rene55
                Rene55 last edited by Rene55

                Hallo Zusammen,
                ich übe mich auch gerade im Erstellen (und löschen) von Datenpunkten. Das Beispiel hier läuft ja grundsätzlich wunderbar. Da in meinem Projekt die Datenpunkte zur Laufzeit variieren, müssen die Datenpunkte auch wieder gelöscht werden. Dazu habe ich nun eine zweite Routine erstellt, mit der ich die Datenpunkte auch löschen kann. Danach sollten die Datenpunkte wieder neu erstellt werden. Öfters kommt es jedoch vor, dass der erste Datenpunkt im Admin/Objekte nicht angezeigt wird. Mir ist ja bekannt, dass manchmal im Admin die Objekte je nach Browser nicht immer direkt sauber dargestellt werden, sondern erst nach einem refresh.
                Ich hab meinen Test so gestaltet, dass ich durch einen Datenpunkt die Abfolge Löschen/Neu setzen immer wieder ausgelöst habe. Ich hatte ja gelesen, dass es per se mit einem Datenpunkt '0' nicht geht. Habe ich noch irgend etwas übersehen oder bin ich mit meinem Vorhaben zum scheitern verurteilt.

                //
                test();
                //
                //_________________________________________________
                async function test() {
                    try {
                        for (let i = 1; i < 12; i++) {
                           const id = `0_userdata.0.async-test.state_${i}`;
                            if (await existsStateAsync(id)) {
                                log(`State ${id} already exists`, 'warn');
                            } else {
                                await createStateAsync(id, {type:'number', read:true, write:true, def:i });
                                const stateObject = await getStateAsync(id);
                                if (stateObject && stateObject.val) {
                                    log(`State '${id}' created, value: '${stateObject.val}'`)
                                } else {
                                    log(`Unable to get state value of '${id}'.`, 'error');
                                }
                            }
                        }
                    } catch (error) {
                        log(`Unexpected error - ${error}`, 'error');
                    }
                }
                //
                //_________________________________________________
                // Beschreibe diese Funktion: Löschen aller Datenpunkte 'Timer.'
                function loesche_TestDP(){ 
                    for(var i = 1; i < 12; i++){  
                        const id = `0_userdata.0.async-test.state_${i}`;
                        if (existsState(id)) deleteState(id);
                        log('(f) loesche_TestDP -->' + id,'info');
                    }
                }
                //_________________________________________________
                // Beschreibe diese Funktion: Auslösen von Test bei Datenpunkts 'Test = 1'
                on({id: '0_userdata.0.Test', change: "ne"}, function (obj) { 
                    var value = obj.state.val;
                    var oldValue = obj.oldState.val;
                    if (value == 1){
                        log('================  Next Run ================','info');
                        loesche_TestDP();
                        sleep(5000);
                        test();
                    }
                    setState ('0_userdata.0.Test', 0,true);
                });
                //``` 
                [/s]
                Wie gesagt, das hier ist nur ein Test - nicht mein Projekt.
                LG Rainer
                liv-in-sky 1 Reply Last reply Reply Quote 0
                • liv-in-sky
                  liv-in-sky @Rene55 last edited by

                  @rene55 bitte nutze den code tag für scripte - sonst nicht gut lesbar

                  https://forum.iobroker.net/post/394912

                  kannst du auch im spoiler-tag zusätzlich zufügen

                  mit code tag
                  

                  Rene55 1 Reply Last reply Reply Quote 0
                  • Rene55
                    Rene55 @liv-in-sky last edited by

                    @liv-in-sky Hab ich das so richtig in Code Tags gesetzt?

                    1 Reply Last reply Reply Quote 1
                    • P
                      Pittini Developer last edited by Pittini

                      Hi Leute,
                      kleines Problem. Ich hab das in meinem neuen Skript auch mal versucht mit Datenpunkt anlegen und gleich auslesen (brauch ich zwar eigentlich nicht weil die Werte beim anlegen schon bekannt sind, aber ich wollts mal ausprobieren). Leider klappt das mal und mal nicht. Der Code is nahezu identisch mit dem Beispiel, und wird aufgerufen durch nen Trigger sobald das Object "Awtrix" befüllt wurde, und sieht so aus:

                      async function CreateDps() { //Wird durch Trigger aufgerufen sobald get settings ein Ergebnis liefert
                          log("Reaching CreateDps");
                          try {
                              for (let x in Awtrix) { //Alle properties durchgehen
                                  const id = praefix + ".Settings." + x;
                      
                                  if (await existsStateAsync(id)) {
                                      if (logging) log(`State ${id} already exists, nothing to do`, 'info');
                                  } else {
                                      await createStateAsync(id, { name: x, type: typeof Awtrix[x], read: true, write: true, def: Awtrix[x] });
                                      const stateObject = await getStateAsync(id);
                                      if (stateObject && stateObject.val) {
                                          log(`State '${id}' created, value: '${stateObject.val}'`)
                                      } else {
                                          log(`Unable to get state value of '${id}'.`, 'error');
                                      }
                                  }
                              }
                              InitInProgress = false;
                          } catch (error) {
                              log(`Unexpected error - ${error}`, 'error');
                          }
                      
                      }
                      
                      

                      Und was passiert ist dann das:

                      12:25:49.939	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Starting AwtrixControl V. 0.0.1
                      12:25:49.939	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Reaching init
                      12:25:49.939	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Reaching CreateTrigger
                      12:25:49.939	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: registered 8 subscriptions and 0 schedules
                      12:25:49.953	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Response triggered
                      12:25:49.954	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Reaching CreateDps
                      12:25:50.103	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.VerboseLog'.
                      12:25:50.115	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Reaching RefreshAwtrix
                      12:25:50.203	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.ScrollSpeed' created, value: '60'
                      12:25:50.213	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Reaching RefreshAwtrix
                      12:25:50.300	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.Brightness' created, value: '25'
                      12:25:50.447	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.YeeLightIP'.
                      12:25:50.551	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.AlarmFile' created, value: '2'
                      12:25:50.659	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.RemoveAccents'.
                      12:25:50.669	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Reaching RefreshAwtrix
                      12:25:50.759	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.AlarmIcon' created, value: '944'
                      12:25:50.855	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.noSleepSwitch'.
                      12:25:50.955	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.BrokerPort' created, value: '1884'
                      12:25:51.051	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.YeeLightActive'.
                      12:25:51.147	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.UppercaseLetters'.
                      12:25:51.243	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.CloudActive'.
                      12:25:51.347	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.SleepBrightness' created, value: '5'
                      12:25:51.475	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.MQTTport' created, value: '1885'
                      12:25:51.583	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.ACNActive' created, value: 'true'
                      12:25:51.593	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Reaching RefreshAwtrix
                      12:25:51.679	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.TextColor' created, value: '#bc0101'
                      12:25:51.779	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.SleepEnd' created, value: '05:00'
                      12:25:51.879	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.PushOver'.
                      12:25:51.975	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.offlineMode'.
                      12:25:52.075	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.MinLux'.
                      12:25:52.191	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.AlexaActive'.
                      12:25:52.287	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.DontUpdateLanguage' created, value: 'false'
                      12:25:52.383	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.MQTTssl'.
                      12:25:52.487	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.SleepStart' created, value: '23:00'
                      12:25:52.595	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.ACNProtocol' created, value: 'e131'
                      12:25:52.691	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.MQTTuser' created, value: 'Pittini'
                      12:25:52.787	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.TempCorrection' created, value: '10'
                      12:25:52.887	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.ChatID' created, value: '0'
                      12:25:52.987	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.AlarmDuration' created, value: '30'
                      12:25:53.083	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.POPass'.
                      12:25:53.179	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.TimeZone'.
                      12:25:53.191	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Reaching RefreshAwtrix
                      12:25:53.285	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.Volume' created, value: '10'
                      12:25:53.451	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.AlarmText' created, value: 'Alarm'
                      12:25:53.547	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.AlexaID'.
                      12:25:53.643	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.SleepAtDark' created, value: 'true'
                      12:25:53.755	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.FritzCaller'.
                      12:25:53.855	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.ControllerPort' created, value: '7001'
                      12:25:53.951	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.LanguageUpdated'.
                      12:25:54.051	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.RainbowText'.
                      12:25:54.151	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.WebserverPort' created, value: '7000'
                      12:25:54.255	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.USBMatrix'.
                      12:25:54.379	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.AutoBrightness'.
                      12:25:54.483	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.BootAnimation' created, value: 'true'
                      12:25:54.599	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.MQTTclient' created, value: 'true'
                      12:25:54.695	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.APIkey' created, value: 'f22289217384c106cdaae7c1'
                      12:25:54.791	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.Language' created, value: 'de'
                      12:25:55.215	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.MaxBrightness' created, value: '75'
                      12:25:55.311	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.SleepApp' created, value: 'Time'
                      12:25:55.411	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.AlarmTime' created, value: '07:00'
                      12:25:55.507	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.timerTicks' created, value: '20'
                      12:25:55.607	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.SleepMode'.
                      12:25:55.703	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.POMail'.
                      12:25:55.803	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.MaxLux' created, value: '25'
                      12:25:55.903	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.USBPort' created, value: 'None'
                      12:25:56.007	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.MQTTBroker'.
                      12:25:56.107	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.AlarmEnabled'.
                      12:25:56.207	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.Resistor' created, value: '1000'
                      12:25:56.264	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.MinBrightness' created, value: '10'
                      12:25:56.439	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.Telegram'.
                      12:25:56.512	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.SleepLux' created, value: '5'
                      12:25:56.623	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.RainbowDivider' created, value: '1'
                      12:25:56.719	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.UpdateInterval' created, value: '60'
                      12:25:56.819	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.FritzBoxIP' created, value: '192.168.178.1'
                      12:25:56.919	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.Analytics'.
                      12:25:57.015	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.LastVersion' created, value: '29112'
                      12:25:57.115	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.AlexaPort' created, value: '80'
                      12:25:57.211	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.AlarmVolume' created, value: '25'
                      12:25:57.311	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.MQTThost' created, value: '192.168.2.105'
                      12:25:57.415	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.TermsAccepted'.
                      12:25:57.515	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.weblogin'.
                      12:25:57.619	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.MQTTprefix' created, value: 'Awtrix1'
                      12:25:57.680	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.AppDuration' created, value: '60'
                      12:25:57.819	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.Animation' created, value: 'Pull (beta)'
                      12:25:57.919	info	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: State 'javascript.0.Awtrix1.Settings.AlexaName' created, value: 'AWTRIX'
                      12:25:58.023	error	javascript.0 (1314) script.js.common.VirtuelleDevices.Awtrix1: Unable to get state value of 'javascript.0.Awtrix1.Settings.PythonApps'.
                      

                      Tatsächlich angelegt wurden die States samt Inhalt aber (am Ende gekürzt):
                      2021-03-31 12_28_57-Window.png

                      Was ist, bzw. mache ich falsch?

                      F 1 Reply Last reply Reply Quote 0
                      • F
                        fastfoot @Pittini last edited by

                        @pittini sagte in [Neu] Diverse async-Funktionen im JavaScript-Adapter:

                        if (stateObject && stateObject.val) {

                        du möchtest prüfen ob ein Wert existiert, prüfst aber ob der Wert true bzw >0 bzw != "" ist

                        P 1 Reply Last reply Reply Quote 0
                        • P
                          Pittini Developer @fastfoot last edited by

                          @fastfoot sagte in [Neu] Diverse async-Funktionen im JavaScript-Adapter:

                          @pittini sagte in [Neu] Diverse async-Funktionen im JavaScript-Adapter:

                          if (stateObject && stateObject.val) {

                          du möchtest prüfen ob ein Wert existiert, prüfst aber ob der Wert true bzw >0 bzw != "" ist

                          Hm, ok, danke, ich ging davon aus das @Mic schon weis was er schreibt. Das ist 1:1 aus dem Beispiel. Mal guggen obs wirklich daran liegt.

                          F 1 Reply Last reply Reply Quote 0
                          • F
                            fastfoot @Pittini last edited by fastfoot

                            @pittini sagte in [Neu] Diverse async-Funktionen im JavaScript-Adapter:

                            Hm, ok, danke, ich ging davon aus das @Mic schon weis was er schreibt.

                            wusste er 🙂 Seine state values fangen im Beispiel bei 1 an

                            oder anders ausgedrückt: Wenn du deinen Wert prüfen willst, nimm

                            if (stateObject && stateObject.val == Awtrix[x]) {
                            
                            P 1 Reply Last reply Reply Quote 1
                            • P
                              Pittini Developer @fastfoot last edited by

                              @fastfoot sagte in [Neu] Diverse async-Funktionen im JavaScript-Adapter:

                              @pittini sagte in [Neu] Diverse async-Funktionen im JavaScript-Adapter:

                              Hm, ok, danke, ich ging davon aus das @Mic schon weis was er schreibt.

                              wusste er 🙂 Seine state values fangen im Beispiel bei 1 an

                              oder anders ausgedrückt: Wenn du deinen Wert prüfen willst, nimm

                              if (stateObject && stateObject.val == Awtrix[x]) {
                              
                              1. Du hattest recht.
                              2. Hab ich das zum testen grad so gemacht, das klappt auch:
                              if (stateObject && typeof stateObject.val != "undefined") {
                                                
                              
                              1. Danke.
                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              786
                              Online

                              31.8k
                              Users

                              80.0k
                              Topics

                              1.3m
                              Posts

                              javascript
                              12
                              39
                              6379
                              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