Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Zuviel fuer JS ?

    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

    Zuviel fuer JS ?

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

      das log sagt ja, dass alle möglichen Adapter Fehler melden.

      aber du hast ja wieder mal recht. GetObjekt hatte ich noch nicht umgestellt auf die neue Programmstuktur.

      Ich hätte mit solchen Auswirkungen nicht gerechnet. Das scheint es gewesen zu sein.

      puuuuuuuhhh, das war heftig

      Danke dir 1000x

      Looxer

      1 Reply Last reply Reply Quote 0
      • L
        looxer01 last edited by

        Hi,

        leider habe ich das Problem immer noch.

        Und ich verstehe überhaupt nicht warum das so passiert.

        Ich habe das Stück Coding durch BF Hinweis isoliert und es ist jederzeit nachvollziebar.

        Obwohl in dem Coding keine Schleife eingebaut ist fängt JS an zu loopen sobald das Programm aufgerufen wird

        es ist so als wenn die on({id: sequenzen immer wieder aufgerufen werden. Anders ist das für mich nicht zu erklären.

        Hat jemand eine Erklärung bzw. eine Lösung wie ich das Problem umgehen kann ?

        vG Looxer

        resultat im Log:

        ! javascript-0 2016-02-03 10:55:31 info Stop script script.js.ZZZTestGetObjekt javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found javascript-0 2016-02-03 10:55:31 info script.js.ZZZTestGetObjekt: Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe undefined javascript-0 2016-02-03 10:55:31 warn State "undefined" not found !

        und hier ist das Stück Coding:

        ! var SpaceChk = new RegExp(/\s/); var Gruppen = []; ! Gruppen[0] = ['hm-rpc.0.JEQ003xxxx.1.STATE' ]; Gruppen[1] = ['hm-rpc.0.JEQ0199xxx.1.LEVEL' ]; Gruppen[2] = ['hm-rpc.0.IEQ037xxxx.1.STATE' ]; Gruppen[3] = ['hm-rpc.0.JEQ003xxxx.1.STATE' ]; Gruppen[4] = ['hm-rpc.0.JEQ029xxxx.1.STATE' ]; Gruppen[5] = ['hm-rpc.0.KEQ017xxxx.1.STATE' ]; Gruppen[6] = ['hm-rpc.0.JEQ005xxxx.1.STATE' ]; Gruppen[7] = ['modbus.0.holdingRegisters.26_FA1_STATE' ]; Gruppen[8] = ['' ]; Gruppen[9] = ['' ]; Gruppen[10] = ['' ]; Gruppen[11] = ['' ]; Gruppen[12] = ['' ]; Gruppen[13] = ['' ]; Gruppen[14] = ['' ]; Gruppen[15] = ['' ]; Gruppen[16] = ['' ]; Gruppen[17] = ['' ]; Gruppen[18] = ['' ]; Gruppen[18] = ['' ]; Gruppen[19] = ['' ]; Gruppen[20] = ['' ]; //------------------------------------------------------------------------------- // var objGruppe = "hm-rpc.0.IEQ0379466.2.STATE"; var objGruppe = Gruppen[1][0]; log("check gestartet "+Gruppen[1][0] ,"info"); if(ObjectExists(objGruppe)) { log("object existiert","info") } ! //----------------------------------------------------------------------------------------------------- // Funktion zur Ueberpruefung ob die angegebenen Geraete exisiteren //----------------------------------------------------------------------------------------------------- function ObjectExists(objGruppe) { var back = false; ! if (SpaceChk.test(objGruppe)) { // objIDGruppe darf kein space enthalten // ist ein Geraet ueberhaupt zugeordnet ? // log("Geraet hat kein assignment - Gruppe " + objGruppe, "info"); return back; } // endif IDGruppe hat kein assignment ! if (getState(objGruppe)) { // Existiert das Geraet ? back = true; } else { log("Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe " + objGruppe, "info"); } // endif check on Geraet exists ! return back; } // ende Funktion ! function GeraetUpdate(nummer) { var objGruppe = Gruppen[nummer[0]]; if(ObjectExists(objGruppe)) { log("object existiert","info") } } // ende Funktion ! on({id: Gruppen[0][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( 0 ); } }); // ende on id on({id: Gruppen[1][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( 1 ); } }); // ende on id on({id: Gruppen[2][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( 2 ); } }); // ende on id on({id: Gruppen[3][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( 3 ); } }); // ende on id on({id: Gruppen[4][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( 4 ); } }); // ende on id on({id: Gruppen[5][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( 5 ); } }); // ende on id on({id: Gruppen[6][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( 6 ); } }); // ende on id on({id: Gruppen[7][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( 7 ); } }); // ende on id on({id: Gruppen[8][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( 8 ); } }); // ende on id on({id: Gruppen[9][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( 9 ); } }); // ende on id on({id: Gruppen[10][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate(10); } }); // ende on id on({id: Gruppen[11][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate(11); } }); // ende on id on({id: Gruppen[12][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate(12); } }); // ende on id on({id: Gruppen[13][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate(13); } }); // ende on id on({id: Gruppen[14][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate(14); } }); // ende on id on({id: Gruppen[15][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate(15); } }); // ende on id on({id: Gruppen[16][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate(16); } }); // ende on id on({id: Gruppen[17][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate(17); } }); // ende on id on({id: Gruppen[18][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate(18); } }); // ende on id on({id: Gruppen[19][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate(19); } }); // ende on id on({id: Gruppen[20][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate(20); } }); // ende on id !

        1 Reply Last reply Reply Quote 0
        • P
          pix last edited by

          Hallo Looxer,

          probier mal statt

          if  (getState(objGruppe))   { // Existiert das Geraet ?
          
          if  (getState(objGruppe).val)   { // Existiert das Geraet ?
          

          Gruß

          Pix

          1 Reply Last reply Reply Quote 0
          • P
            pix last edited by

            Hier ist auch noch ein Fehler:````
            function GeraetUpdate(nummer) {
            var objGruppe = Gruppen[nummer[0]];

            
            ****EDIT: ist natürlich quatsch, jetzt sehe ich es auch :oops: Oops****
            
            Und in den Subscriptions verwendest du obj.state.ack. in den If-Abfragen. Allerdings liefert das Callback der Subscription keinen "state", wenn man nach [https://github.com/iobroker/ioBroker.javascript#on–-subscribe-on-changes-or-updates-of-some-state](https://github.com/iobroker/ioBroker.javascript#on–-subscribe-on-changes-or-updates-of-some-state) geht, sondern nur oldState und newState.
            
            Gruß
            
            Pix
            1 Reply Last reply Reply Quote 0
            • L
              looxer01 last edited by

              Hi Pix,

              das bringt leider keine Aenderung. Anscheinend gibt es Problem mit on id, weil ja quasi ein permanenter loop das log vollmüllt und wie BF auch schon sagte scheint es ein Problem bei GetState/GetObject zu geben, wenn das Geraet nicht exisitiert.

              Könntest du bei dir mal ckecken ob esbei dir auch loooed ? Wenn er anfängt zu loopen, dann deaktiviere ich das script und alles ist gut. Sollte also kein problem geben.

              ich bin mir übrigens auch gar nicht sicher, ob ich nicht zwei Probleme habe. Das Loop Problem und das getObject Problem naemlich.

              vG Looxer

              1 Reply Last reply Reply Quote 0
              • L
                looxer01 last edited by

                zu ack.

                das stück code habe ich von BF und eingefügt weil on id immer zweimal ausgefürt wurde.

                einmal für false und einmal für true. Im script Betriebsstundenzähler funktioniert da auch einwandfrei.

                vG Looxer

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

                  @pix:

                  Und in den Subscriptions verwendest du obj.state.ack. in den If-Abfragen. Allerdings liefert das Callback der Subscription keinen "state", wenn man nach dieser Doku geht, sondern nur oldState und newState. `
                  obj.state.ack ist zwar nicht dokumentiert, funktioniert aber: Es entspricht obj.newState.ack.

                  1 Reply Last reply Reply Quote 0
                  • L
                    looxer01 last edited by

                    ich habe einen Zusammenhang gefunden, der aber noch nicht die Reaktion erklärt.

                    Das loopen fängt an mit der neunten 9. Subscription, die einen initialen Wert enthaelt nämlich zwei Hochkomma.

                    also so: Gruppen[8] = ['' ];

                    Ersetze ich die z.B. durch 'initial' dann gibt es keinen Loop mehr und auch der object check funktioniert. 😮

                    es sind also die initialen Werte die hier JS bis zum Absturz bringen

                    Kann das jemand erklären ?

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

                      @paul53:

                      @pix:

                      Und in den Subscriptions verwendest du obj.state.ack. in den If-Abfragen. Allerdings liefert das Callback der Subscription keinen "state", wenn man nach dieser Doku geht, sondern nur oldState und newState. obj.state.ack ist zwar nicht dokumentiert, funktioniert aber: Es entspricht obj.newState.ack.
                      Ja ich habe entschieden state zu verwenden, statt newState.

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

                        @looxer01:

                        ich habe einen Zusammenhang gefunden, der aber noch nicht die Reaktion erklärt.

                        Das loopen fängt an mit der neunten 9. Subscription, die einen initialen Wert enthaelt nämlich zwei Hochkomma.

                        also so: Gruppen[8] = ['' ];

                        Ersetze ich die z.B. durch 'initial' dann gibt es keinen Loop mehr und auch der object check funktioniert. 😮

                        es sind also die initialen Werte die hier JS bis zum Absturz bringen

                        Kann das jemand erklären ? `

                        on({id: '', valNe: 1000 }, function(obj)    {
                            log(obj.id);
                        });
                        

                        passt einfach zu jeder Zustandsänderung. Ich habe jetzt gesperrt, dass man ID:'' eingeben kann.

                        1 Reply Last reply Reply Quote 0
                        • L
                          looxer01 last edited by

                          aaah- jetzt hab ichs verstanden. oh mann. Danke dir

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          688
                          Online

                          31.9k
                          Users

                          80.2k
                          Topics

                          1.3m
                          Posts

                          6
                          32
                          2606
                          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