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 @Waly_de last edited by

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

      Über ein MQTT-Gateway sammle ich Bluetooth-ID's ein. Ich lese damit Pflanzensensoren und ein paar Bacons zur Positionsbestimmung aus

      Hast du schon mal den BLE-Adapter probiert? Da kannst du zumindest deaktivieren, dass neue Objekte angelegt werden.

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

                            817
                            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