Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Javascript: nicht erwünschte Einträge im Log

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst] Javascript: nicht erwünschte Einträge im Log

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

      Ich habe ein Phänomen, dass ich mir nicht erklären kann. Ich bastle gerade an einem Script, dass mir den Status eines Datenpunkts auslesen soll. Der Code ist unspektakulär und macht was er soll.


      /*
      Checkt, ob HUE oder Zigbee - Leuchtmittel ungewollt
      z.B. nach Stromausfall leuchten und schaltet die wieder aus.
      Überwachte Leuchtmittel haben die Funktion 'lightingcheck'.

      */
      //
      const logging = true;
      const debugging = false;
      //
      const dp_Prefix = '0_userdata.0';
      const dp_Monitor = '0_userdata.0.Monitor_Lights.'; // mit Punkt
      const dp_CheckLights = '0_userdata.0.Information.Check_Lights';
      //
      //
      let monitoredLights = [];
      getDevices();
      //
      //
      //___________________________
      // Beschreibe diese Funktion: jede Minute prüfen
      let schedule_1minute = schedule('33 * * * * *', async () => {
      if (debugging) log ('(s) schedule_1minute');
      checkDevices();
      });
      //
      //___________________________
      // Beschreibe diese Funktion: Holen der zu überwachenden Devices
      function getDevices(){
      const watchedDevices = getObject("enum.functions.lightingcheck").common.members;
      if (debugging) log('(f) getDevices| BeleuchtungCheck Anzahl: '+ watchedDevices.length);
      //
      monitoredLights = [];
      for (const element of watchedDevices) {
      if (debugging) log((f) getDevices| ${element});
      const sepDevice = element.split('.');
      const sepPart = sepDevice.length - 2;
      if (debugging) log((f) getDevices| ${sepDevice} [${sepPart}] >> ${sepDevice[sepPart]});
      const jsonObj = {id: element, name: sepDevice[sepPart]};
      if (debugging) log((f) getDevices| ${JSON.stringify(jsonObj)});
      monitoredLights.push(jsonObj);
      }
      }
      //
      //___________________________
      // Beschreibe diese Funktion: Prüfen, ob ein Leuchtmittel ungewollt leuchtet
      function checkDevices(){
      if (debugging) log((f) checkDevices| Anzahl Leuchten: ${monitoredLights.length});
      for (const element of monitoredLights) {
      if (debugging) log((f) checkDevices| ${JSON.stringify(element)});
      //
      const deviceState = getState(element.id).val;
      if (logging) log((f) checkDevices| ${element.name} State -> ${deviceState});

      }
      

      }
      //___________________________
      // #
      // # E N D E
      // #


      Nur im Log wird nach meinem Verständnis ein bischen viel mitgeschrieben. Bei jeder Abfrage sehe ich:

      script.js.background.Check_Lights: getState(id=hue.0.Deckenstrahler23.on, timerId=undefined) => {"val":false,"ack":true,"ts":1736094193724,"q":0,"from":"system.adapter.hue.0","user":"system.user.admin","lc":1736094193252}
      

      diesen Eintrag. Wo kommt der her und wie kann ich den abstellen? Ich vermute eine (tief versteckte) Einstellung.

      Codierknecht 1 Reply Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @Rene55 last edited by

        @rene55

        Was erwartetst Du denn im Log?
        Soll das ${element.name} ein Platzhalter sein? Dann fehlen da noch die Rückwärts-Hochkomma.

        log(`(f) checkDevices| ${element.name} State -> ${deviceState}`);
        
        Rene55 1 Reply Last reply Reply Quote 0
        • Rene55
          Rene55 @Codierknecht last edited by Rene55

          @codierknecht Wie schon geschrieben, der Code macht was er soll. Die hier nicht erwähnten Werte werden weiter oben im Script ermittelt. (die Backticks sind beim einfügen verloren gegangen).
          Was mich stört ist das mitloggen was der hier bei jedem 'getState' macht.

          Codierknecht 1 Reply Last reply Reply Quote 0
          • Codierknecht
            Codierknecht Developer Most Active @Rene55 last edited by

            @rene55 sagte in Javascript: nicht erwünschte Einträge im Log:

            Was mich stört ist das mitloggen was der hier bei jedem 'getState' macht.

            Das macht das Script vermutlich nicht ohne Grund.
            Wäre möglicherweise hilfreich, mehr vom Script zu zu sehen um den Kontext herzustellen.

            Wird denn "Deine" Logausgabe auch so ausgeführt wie erwartet?

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

              @codierknecht Das Script ist ja auch noch nicht fertig, aber bis hierhin macht es was es soll. Zum Gegencheck habe ich das Script auf einem Test-ioBroker laufen: Hier kommt dieser 'Extraeintrag' nicht. Daher vermute ich irgendeine Einstellung. Ich habe auf beiden Rechnern die Einstellungen verglichen und kann nichts feststellen.

              Codierknecht paul53 2 Replies Last reply Reply Quote 0
              • Codierknecht
                Codierknecht Developer Most Active @Rene55 last edited by

                @rene55
                Hast Du mal getestet, ob ein ganz einfaches

                const test = getState('javascript.0.variables.isDayTime').val
                

                Diesen Eintrag auch produziert?

                Ich habe das auf keinem meiner Systeme ... würde mir auch das Log komplett zumüllen.

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

                  @codierknecht Habs gerade mal getestet. Hierbei kommt kein Extraeintrag. Danke schon mal. Ich stell mal mein Script in Gänze oben rein.

                  Codierknecht 1 Reply Last reply Reply Quote 0
                  • Codierknecht
                    Codierknecht Developer Most Active @Rene55 last edited by

                    @rene55 sagte in Javascript: nicht erwünschte Einträge im Log:

                    Ich stell mal mein Script in Gänze oben rein

                    Pack das bitte in Code-Tags. So kann das keiner lesen.

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

                      @rene55 sagte: Daher vermute ich irgendeine Einstellung.

                      Verbose- oder Debug-Modus aktiviert (rechts oben)?

                      Rene55 1 Reply Last reply Reply Quote 1
                      • Rene55
                        Rene55 @paul53 last edited by

                        @paul53 sagte in Javascript: nicht erwünschte Einträge im Log:

                        Verbose-

                        Ja Danke, das wars. Ich hab überall woanders gesucht - nur da oben nicht.
                        Jetzt ist das Log friedlich. Danke euch beiden.

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        693
                        Online

                        31.7k
                        Users

                        79.7k
                        Topics

                        1.3m
                        Posts

                        3
                        10
                        241
                        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