Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. CreateStateAsync erzeugt Fehlermeldung

    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

    CreateStateAsync erzeugt Fehlermeldung

    This topic has been deleted. Only users with topic management privileges can see it.
    • Peoples
      Peoples last edited by Peoples

      HI,

      ich will eines meiner Scripte auf Async umbauen, um mir setTimeout zu ersparen. Leider bekomme ich immer einen Fehler aber mir ist nicht klar warum.
      Ich habe gelesen dass das Problem daher rührt dass i anfangs einen Wert von 0 hat.

      Aber warum ist das ein Problem und wie kann ich dieses beheben / umgehen?

      Mache ich anstelle von createStateAsync nur createState funktioniert alles

      Hier das Script:

      // *******************************************************************************************************
      //
      // SchaltUhr
      //
      //
      // v1.0   - 10.02.2022  init
      // 
      //
      
      // ********************************************************************************************************
      
      // -----------------------------------------------------------------------------
      // allgemeine Variablen
      // -----------------------------------------------------------------------------
      var loglevel = 2;                   // Loglevel 0 =  kein Logging / 1 -3 Logging wird genauer 
      var debugging = false;              // Debugging on/off - Bei On werden keine Aktoren geschalten nur Log-Ausgaben
      var Systemlog = true;               // Systemmeldungen anlegen ja/nein
      
      
      var instanz = '0_userdata.0'; instanz = instanz +'.';
      var pfad0 = 'DeviceSwitchingTimers'; pfad0 = pfad0 +'.';
      
      
      const devices = [
                          /*Device ID */                                                /*Device Name für Datenpunkt */                       /*Device Typ (state / level) */                            
          /*Doppelfenster Küche - Steckdose rechts - rechts*/
          {'deviceID':'shelly.0.xxxxxxx',                                 'deviceName':'Steckdose_Kueche_Doppelfenster_rechts-rechts',            'deviceType':'state'},                
          /*Doppelfenster Küche rechts - Steckdose rechts - links*/
          {'deviceID':'shelly.0.xxxxxxx',                                 'deviceName':'Steckdose_Kueche_Doppelfenster_rechts-links',             'deviceType':'state'},
          /*Doppelfenster Küche - Steckdose links - rechts*/
          {'deviceID':'hm-rpc.0.xxxxxxx',                                 'deviceName':'Steckdose_Kueche_Doppelfenster_links-rechts',             'deviceType':'state'},
          /*Doppelfenster Küche - Steckdose links - links*/
          {'deviceID':'hm-rpc.0.xxxxxxx',                                 'deviceName':'Steckdose_Kueche_Doppelfenster_links-links',              'deviceType':'state'}
      ];
      async function createDeviceStates(){
          try {
      
              for(var i = 0; i < Object.keys(devices).length; i++) { 
                  await createStateAsync(instanz + pfad0 + devices[i].deviceName +  '.switchingAutomatic', {name: 'Automatisches Schalten', type:'boolean', def:false, read:true, write:true});
                  await createStateAsync(instanz + pfad0 + devices[i].deviceName +  '.onTime1', {name: 'Einschaltzeit 1', type:'string', def:'00:00', read:true, write:true});
                  await createStateAsync(instanz + pfad0 + devices[i].deviceName +  '.onTime2', {name: 'Einschaltzeit 2', type:'string', def:'00:00' , read:true, write:true});
                  await createStateAsync(instanz + pfad0 + devices[i].deviceName +  '.offTime1', {name: 'Ausschaltzeit 1', type:'string', def:'23:59' , read:true, write:true});
                  await createStateAsync(instanz + pfad0 + devices[i].deviceName +  '.offTime2', {name: 'Ausschaltzeit 2', type:'string', def:'23:59' , read:true, write:true});
                  await createStateAsync(instanz + pfad0 + devices[i].deviceName +  '.reactOnSleepingMode', {name: 'Einschaltzeit 1', type:'boolean', def:false , read:true, write:true});
      
                  // Unterscheidung Typen (state / level)
                  switch(devices[i].deviceType){ 
                      case 'state': // Gerätetyp State
                          await createStateAsync(instanz + pfad0 + devices[i].deviceName +  '.stateSleepingModeOn', {name: 'Gerätestatus bei Schlafmodus ein', type:'boolean', def:false , read:true, write:true});
                          await createStateAsync(instanz + pfad0 + devices[i].deviceName +  '.stateSleepingModeOff', {name: 'Gerätestatus bei Schlafmodus aus', type:'boolean', def:true , read:true, write:true});
                      break;
                      case 'level': // Gerätetyp Level
                          await createStateAsync(instanz + pfad0 + devices[i].deviceName +  '.levelSleepingModeOn', {name: 'Gerätelevel bei Schlafmodus ein', type:'number', def:0 , read:true, write:true});
                          await createStateAsync(instanz + pfad0 + devices[i].deviceName +  '.levelSleepingModeOff', {name: 'Gerätelevel bei Schlafmodus aus', type:'number', def:100 , read:true, write:true});               
                      break;
                  }   
              }
          } catch (error) {
              log(`Unexpected error - ${error}`, 'error');
          }
      }
      
      createDeviceStates();
      
      /*
      on({id: devices[i].sensorID,  change:'any'}, function (dp) { 
                      
                  });
      */
      
      
      

      Hier die Fehlermeldung:

      2022-02-10 14:23:27.808 - warn: javascript.0 (694436) State "0_userdata.0.DeviceSwitchingTimers.Steckdose_Kueche_Doppelfenster_links-rechts.switchingAutomatic" not found
      2022-02-10 14:23:27.808 - warn: javascript.0 (694436) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1967:33)
      2022-02-10 14:23:27.808 - warn: javascript.0 (694436) at processImmediate (internal/timers.js:466:21)
      2022-02-10 14:23:27.808 - error: javascript.0 (694436) script.js.Wandtablet.Schaltuhr: Unexpected error - Error: State "0_userdata.0.DeviceSwitchingTimers.Steckdose_Kueche_Doppelfenster_links-rechts.switchingAutomatic" not found
      

      Hat hier jemand eine Idee?

      BananaJoe AlCalzone 2 Replies Last reply Reply Quote 0
      • BananaJoe
        BananaJoe Most Active @Peoples last edited by BananaJoe

        @peoples sagte in CreateStateAsync erzeugt Fehlermeldung:
        */

        Also bei mir hat er nur beim allerersten Start den Fehler gebracht, bei einem Restart / Neustart ging es ohne Fehler.
        Er bringt es ja auch nur beim 3. Element Steckdose_Kueche_Doppelfenster_links-rechts wobei er den State noch anlegt.

        Merkwürdig

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

          @peoples sagte in CreateStateAsync erzeugt Fehlermeldung:

          Mache ich anstelle von createStateAsync nur createState funktioniert alles

          Mach doch mal ein Issue im Adapter auf. Eigentlich sollte createStateAsync nur ein Wrapper um createState sein.

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

            @alcalzone
            Alles klar das mach ich morgen. Finde es auch komisch aber hatte da schon einen Beitrag aus 2020 gefunden der selbiges umschreibt.
            Such ich Mal raus und ergänze ihn hier dann

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

              Issue erstellt:
              https://github.com/ioBroker/ioBroker.javascript/issues/955

              peoples0815 created this issue in ioBroker/ioBroker.javascript

              closed CreateStateAsync generiert Fehlermeldungen innerhalb einer Schleife #955

              1 Reply Last reply Reply Quote 0
              • First post
                Last post

              Support us

              ioBroker
              Community Adapters
              Donate

              612
              Online

              31.8k
              Users

              80.0k
              Topics

              1.3m
              Posts

              javascript
              3
              5
              235
              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