Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Zuviel fuer JS ?

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    924

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Zuviel fuer JS ?

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
32 Beiträge 6 Kommentatoren 2.7k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • L Offline
    L Offline
    looxer01
    schrieb am zuletzt editiert von
    #22

    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 Antwort Letzte Antwort
    0
    • L Offline
      L Offline
      looxer01
      schrieb am zuletzt editiert von
      #23

      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 Antwort Letzte Antwort
      0
      • P Offline
        P Offline
        pix
        schrieb am zuletzt editiert von
        #24

        Hallo Looxer,

        probier mal statt

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

        Gruß

        Pix

        ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

        1 Antwort Letzte Antwort
        0
        • P Offline
          P Offline
          pix
          schrieb am zuletzt editiert von
          #25

          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

          ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

          1 Antwort Letzte Antwort
          0
          • L Offline
            L Offline
            looxer01
            schrieb am zuletzt editiert von
            #26

            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 Antwort Letzte Antwort
            0
            • L Offline
              L Offline
              looxer01
              schrieb am zuletzt editiert von
              #27

              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 Antwort Letzte Antwort
              0
              • paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #28

                @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.

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                1 Antwort Letzte Antwort
                0
                • L Offline
                  L Offline
                  looxer01
                  schrieb am zuletzt editiert von
                  #29

                  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. :o

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

                  Kann das jemand erklären ?

                  1 Antwort Letzte Antwort
                  0
                  • BluefoxB Offline
                    BluefoxB Offline
                    Bluefox
                    schrieb am zuletzt editiert von
                    #30

                    @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 Antwort Letzte Antwort
                    0
                    • BluefoxB Offline
                      BluefoxB Offline
                      Bluefox
                      schrieb am zuletzt editiert von
                      #31

                      @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. :o

                      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 Antwort Letzte Antwort
                      0
                      • L Offline
                        L Offline
                        looxer01
                        schrieb am zuletzt editiert von
                        #32

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

                        1 Antwort Letzte Antwort
                        0
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        702

                        Online

                        32.6k

                        Benutzer

                        82.2k

                        Themen

                        1.3m

                        Beiträge
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Anmelden

                        • Du hast noch kein Konto? Registrieren

                        • Anmelden oder registrieren, um zu suchen
                        • Erster Beitrag
                          Letzter Beitrag
                        0
                        • Home
                        • Aktuell
                        • Tags
                        • Ungelesen 0
                        • Kategorien
                        • Unreplied
                        • Beliebt
                        • GitHub
                        • Docu
                        • Hilfe