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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    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

      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

                        838
                        Online

                        31.8k
                        Users

                        80.0k
                        Topics

                        1.3m
                        Posts

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