Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Selector greift nicht nach Umstellung auf redis?

    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

    Selector greift nicht nach Umstellung auf redis?

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

      Hallo zusammen,

      ich scheine irgendwo einen Denkfehler zu haben... Seit einiger Zeit läuft auf meinem ioBroker ein Javascript, welches auf Änderung des DP hm-rega.0.maintenance angestoßen wird. Es sammelt eigentlich über zwei Selektoren zwei Objekte, die dann in einer each()-Schleife abgefragt werden. Also kein Hexenwerk und das Script lief einwandfrei. Hier das Script:

      /*
      **
      ** Homematic CCU3 Servicemeldungen zählen und einlesen
      **
      */
      
      var dpCCU3State       = 'hm-rega.0.maintenance';
      
      var dpServiceCount    = '0_userdata.0.HmIP.Service.Count';
      var dpServiceMessages = '0_userdata.0.HmIP.Service.Messages';
       
      var selLowBat         = $('channel[state.id=hm-rpc.*.LOW_BAT_ALARM]');
      var selUnreach        = $('channel[state.id=hm-rpc.*.UNREACH_ALARM]');
      
      var mCount = 0;
      var mText  = '';
      
      //
      // Create Datapoints
      //
      createState(dpServiceCount,     0, { name: 'HmIP Servicemeldungen Anzahl', desc: 'HmIP Servicemeldungen Anzahl', type: 'number' });
      createState(dpServiceMessages, '', { name: 'HmIP Servicemeldungen Text',   desc: 'HmIP Servicemeldungen Text',   type: 'string' });
       
      //
      // Functions
      //
      function getHmIPDetail(objID, objText) {
          var aStatus = getState(objID).val;
          if(aStatus === 1) {
              var nameParts = getObject(objID).common.name.split(':');
              toLog('CCU3: Gerät ' + nameParts[0] + ' meldet ' + objText);
              mText = mText + '<span class="hmlistRow">Gerät <span class="hmlistDevice">' +
                      nameParts[0] + '</span> meldet <span class="hmlistType">' + objText +
                      '</span></span><br>';
              mCount++;
          }
      }
      
      function getHmIPData() {
          mCount = 0;
          mText  = '';
          selLowBat.each(  function (objID) { getHmIPDetail(objID, 'niedrigen Batteriestand');   });
          selUnreach.each( function (objID) { getHmIPDetail(objID, 'nicht erreichbar');          });
          if(mCount < 1) mText = '<span class="hmlistRow">Keine Servicemeldungen vorhanden</span>';
          setState(dpServiceCount,    mCount, true);
          setState(dpServiceMessages, mText,  true);
      }
      
      //
      // Subscriptions
      //
      getHmIPData();
      on ({ id: dpCCU3State }, function () { getHmIPData(); });
      
      

      Heute habe ich nun die ioBroker-Installation (alles aktuell) per "ioBroker custom" auf redis für die States umgestellt, die States nicht migriert und danach einen kompletten reboot durchgeführt. Das funktionierte alles ohne Probleme, alle Instanzen laufen wie ein Glöckchen und der Host (VM auf Synology) rennt wie Sau (Load unter 0.1 - vorher >1.0).

      Einzig mein Script schmeißt mir nun die folgenden Warnings heraus:

      javascript.0	2021-01-17 14:43:45.234	warn	(2038) at script.js.common.Info_CCU3:52:1
      javascript.0	2021-01-17 14:43:45.234	warn	(2038) at getHmIPData (script.js.common.Info_CCU3:43:16)
      javascript.0	2021-01-17 14:43:45.234	warn	(2038) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
      javascript.0	2021-01-17 14:43:45.233	warn	(2038) at script.js.common.Info_CCU3:43:41
      javascript.0	2021-01-17 14:43:45.233	warn	(2038) at getHmIPDetail (script.js.common.Info_CCU3:28:19)
      javascript.0	2021-01-17 14:43:45.231	warn	(2038) getState "hm-rpc.0.OEQ1902678.0.UNREACH_ALARM" not found (3) states[id]=null
      javascript.0	2021-01-17 14:43:45.231	warn	(2038) at script.js.common.Info_CCU3:52:1
      javascript.0	2021-01-17 14:43:45.231	warn	(2038) at getHmIPData (script.js.common.Info_CCU3:43:16)
      javascript.0	2021-01-17 14:43:45.231	warn	(2038) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
      javascript.0	2021-01-17 14:43:45.230	warn	(2038) at script.js.common.Info_CCU3:43:41
      javascript.0	2021-01-17 14:43:45.230	warn	(2038) at getHmIPDetail (script.js.common.Info_CCU3:28:19)
      javascript.0	2021-01-17 14:43:45.228	warn	(2038) getState "hm-rpc.0.00131709AE355A.0.UNREACH_ALARM" not found (3) states[id]=null
      javascript.0	2021-01-17 14:43:45.228	warn	(2038) at script.js.common.Info_CCU3:52:1
      javascript.0	2021-01-17 14:43:45.228	warn	(2038) at getHmIPData (script.js.common.Info_CCU3:43:16)
      javascript.0	2021-01-17 14:43:45.227	warn	(2038) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
      javascript.0	2021-01-17 14:43:45.227	warn	(2038) at script.js.common.Info_CCU3:43:41
      javascript.0	2021-01-17 14:43:45.224	warn	(2038) at getHmIPDetail (script.js.common.Info_CCU3:28:19)
      javascript.0	2021-01-17 14:43:45.207	warn	(2038) getState "hm-rpc.0.001158A98B2B4C.0.UNREACH_ALARM" not found (3) states[id]=null
      javascript.0	2021-01-17 14:43:45.207	warn	(2038) at script.js.common.Info_CCU3:52:1
      

      Kann mir da vielleicht jemand mal einen Tip geben? Die States werden doch abstrakt zur Verfügung gestellt, egal ob file oder redis, oder?

      Vielen Dank
      Levy

      Homoran 1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @LevyKo last edited by

        @levyko said in Selector greift nicht nach Umstellung auf redis?:

        Einzig mein Script schmeißt mir nun die folgenden Warnings heraus:

        ich kann zwwar kein js, aber der Fehler kam früher, die warn zeigen nur an wo sich der (hier nicht sichtbare, weil abgeschnittene) Fehler verbirgt.

        z.B.
        @levyko said in Selector greift nicht nach Umstellung auf redis?:

        at script.js.common.Info_CCU3:52:1

        in der Zeile 52 des genannten skripts

        beim holen des Wertes von:

        @levyko said in Selector greift nicht nach Umstellung auf redis?:

        getState "hm-rpc.0.001158A98B2B4C.0.UNREACH_ALARM" not found (3) states[id]=null

        er findet den Datenpunkt nicht
        existiert dieser?

        LevyKo 1 Reply Last reply Reply Quote 1
        • LevyKo
          LevyKo @Homoran last edited by

          @homoran
          Oh mann... Tatsächlich hatte er in der hm-rpc.0-Instanz noch Geräte drin, die gar nicht mehr existieren. Ich habe nun die entsprechenden Objekte gelöscht, die Geräte neu einlesen lassen, die Javascript-Instanz neu gestartet und siehe da: Keine Warnings oder Fehler mehr 🙂

          Vielen Dank! und +1

          Homoran 1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @LevyKo last edited by

            @levyko said in Selector greift nicht nach Umstellung auf redis?:

            Vielen Dank! und +1

            Gern geschehen - und das als js-Legastheniker 😉

            Mich würde nur noch die "echte" ERROR-Meldung, die vor den warn kam, interessieren

            LevyKo 1 Reply Last reply Reply Quote 0
            • LevyKo
              LevyKo @Homoran last edited by

              @homoran
              Da gab es keine 😕 Das machte mich ja so stutzig. Über den Objektbaum bzw. den Selektor konnte man den Datenpunkt finden, aber das Script konnte nicht darauf zugreifen. Er hat lediglich für die nicht ansprechbaren Datenpunkte die 6 Zeilen geloggt:

              javascript.0	2021-01-17 14:43:45.228	warn	(2038) at script.js.common.Info_CCU3:52:1
              javascript.0	2021-01-17 14:43:45.228	warn	(2038) at getHmIPData (script.js.common.Info_CCU3:43:16)
              javascript.0	2021-01-17 14:43:45.227	warn	(2038) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
              javascript.0	2021-01-17 14:43:45.227	warn	(2038) at script.js.common.Info_CCU3:43:41
              javascript.0	2021-01-17 14:43:45.224	warn	(2038) at getHmIPDetail (script.js.common.Info_CCU3:28:19)
              javascript.0	2021-01-17 14:43:45.207	warn	(2038) getState "hm-rpc.0.001158A98B2B4C.0.UNREACH_ALARM" not found (3) states[id]=null
              

              Beim nächsten Element in der Selektor-Kollektion wieder von vorne.

              Homoran 1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @LevyKo last edited by

                @levyko said in Selector greift nicht nach Umstellung auf redis?:

                Da gab es keine

                zeitlich vor der 14:43:45.207 warn gab es nichts? 😞

                Danke!

                LevyKo 1 Reply Last reply Reply Quote 0
                • LevyKo
                  LevyKo @Homoran last edited by

                  @homoran
                  Die erste "Warn"-Zeile fing mit einer "getState"-Warnung an. Davor waren nur die ganz normalen Info-Zeilen (Adapter gestartet, Log-Meldungen von meinen Scripten, etc.). Kein Fehler, kein gar nichts.

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  923
                  Online

                  31.8k
                  Users

                  80.0k
                  Topics

                  1.3m
                  Posts

                  javascript
                  2
                  7
                  312
                  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