Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Neue und gelöschte States in Script erst nach Neustart?

    NEWS

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    Neue und gelöschte States in Script erst nach Neustart?

    This topic has been deleted. Only users with topic management privileges can see it.
    • AlCalzone
      AlCalzone Developer @paul53 last edited by

      @paul53 sagte in Neue und gelöschte States in Script erst nach Neustart?:

      Habe es mal mit Erzeugen eines DP per Admin

      Es könnte mit der Struktur device.channel.state zusammen hängen. Ich konnte das vor einer halben Ewigkeit wie folgt reproduzieren:
      https://github.com/ioBroker/ioBroker.javascript/issues/109

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

        @AlCalzone sagte:

        Es könnte mit der Struktur device.channel.state zusammen hängen.

        Gerade getestet: "ESP_Easy_1" ist device, "GARTEN_Stromsensor" ist channel, "Power" ist gerade per Admin erzeugter Datenpunkt.

        Selector_test.JPG

        Das synchrone existsState(id) zeigt übrigens, dass der Puffer der JS-Instanz aktualisiert wurde, sonst wäre nicht gelöscht worden.

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

          @paul53
          Bei per Admin angelegten Datenpunkten hatte ich die Probleme auch nicht.

          hier was zum rekonstruieren:

          zunächst ein paar states Anlegen:

          createState("Personen.Test.sub.sub1",false,false,{role: 'state', type: 'boolean'});
          createState("Personen.Test.sub.sub2",false,false,{role: 'state', type: 'boolean'});
          createState("Personen.Test.sub3","Testwert",false);
          

          dann durchlaufen und löschen:

          
          $('channel[state.id=javascript.0.Personen.Test.*]').each(function (id, i) {
                      log(i + " - " + id + " existsObject: " + existsObject(id))
                      deleteObject(id,true);
          });
          
          

          Ester Aufruf der schleife:

          16:33:26.060	info	javascript.0 (22097) Start javascript script.js.common.StateDeleteTest
          16:33:27.316	info	javascript.0 (22097) script.js.common.StateDeleteTest: 0 - javascript.0.Personen.Test.sub.sub1 existsObject: true
          16:33:27.319	info	javascript.0 (22097) script.js.common.StateDeleteTest: 1 - javascript.0.Personen.Test.sub.sub2 existsObject: true
          16:33:27.320	info	javascript.0 (22097) script.js.common.StateDeleteTest: 2 - javascript.0.Personen.Test.sub3 existsObject: true
          

          zweiter bis x-ter Aufruf der Schleife:

          16:33:48.202	info	javascript.0 (22097) Start javascript script.js.common.StateDeleteTest
          16:33:49.081	info	javascript.0 (22097) script.js.common.StateDeleteTest: 0 - javascript.0.Personen.Test.sub.sub1 existsObject: false
          16:33:49.083	info	javascript.0 (22097) script.js.common.StateDeleteTest: 1 - javascript.0.Personen.Test.sub.sub2 existsObject: false
          16:33:49.084	info	javascript.0 (22097) script.js.common.StateDeleteTest: 2 - javascript.0.Personen.Test.sub3 existsObject: false
          

          nach Neustart von Javascript:

          6:36:15.855	info	javascript.0 (26064) Start javascript script.js.common.StateDeleteTest
          

          Bei Euch auch so?

          AlCalzone paul53 2 Replies Last reply Reply Quote 0
          • AlCalzone
            AlCalzone Developer @Waly_de last edited by

            @Waly_de sagte in Neue und gelöschte States in Script erst nach Neustart?:

            createState("Personen.Test.sub.sub1"

            Hast du die Objekte für die "Zwischenstufen" auch angelegt? Personen, Personen.Test, Personen.Test.sub?

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

              @AlCalzone nein... sind automatisch da..

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

                @Waly_de Nur als Ordner sichtbar oder auch mit einem Objekt (device, channel) versehen?

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

                  @AlCalzone Nur als Ordner....

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

                    @Waly_de Du selektierst aber channel. Wir hatten grade vorhin erst unter den Devs die Diskussion, dass der JS-Adapter von der "klassischen" Struktur device.channel.state ausgeht und sich sonst extrem komisch verhält.
                    Daher gehts in @paul53 seinem Beispiel, er befolgt die Struktur.

                    Bei dir nicht. Probier mal, Personen als device-Objekt und Personen.Test als channel-Objekt anzulegen, und ob es dann auf der Ebene von Personen.Test.sub mit dem Löschen und selektieren geht.

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

                      @Waly_de sagte:

                      Bei Euch auch so?

                      Ja, da falscher Selektor. So funktioniert es wie erwartet:

                      Selector_test.JPG

                      Seltsamerweise gibt der falsche Selektor nicht vorhandene Datenpunkte aus. Da wurde wohl eine Initialisierung vergessen ?

                      W 1 Reply Last reply Reply Quote 1
                      • W
                        Waly_de @paul53 last edited by

                        @paul53
                        Klasse, das ist die Lösung für mich! Wusste garnicht das es auch so geht.

                        Danke Euch!

                        LG Markus

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        495
                        Online

                        32.0k
                        Users

                        80.5k
                        Topics

                        1.3m
                        Posts

                        4
                        20
                        863
                        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