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.
    • paul53
      paul53 @paul53 last edited by

      @paul53 sagte:

      Allerdings glaube ich, dass der $Selector auch auf den Puffer zurück greift.

      Habe es mal mit Erzeugen eines DP per Admin, dem $Selector und Löschen per Script getestet: Ohne Instanz-Neustart hat der $Selector den neuen DP gefunden und nach dem Löschen nicht mehr.

      AlCalzone 1 Reply Last reply Reply Quote 0
      • 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

        AlCalzone created this issue in ioBroker/ioBroker.javascript

        closed $(...) selector misses states #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

                          741
                          Online

                          32.1k
                          Users

                          80.6k
                          Topics

                          1.3m
                          Posts

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