Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst]State per Script löschen

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst]State per Script löschen

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

      @dslraser
      Du kannst die Datenpunkte unter "javascript.0" und "0_userdata.0" so löschen:

      if(existsState(id)) {
          if(id.substring(0, 11) == 'javascript.') deleteState(id.substring(13));
          else deleteState(id);
      }
      
      dslraser TG70 2 Replies Last reply Reply Quote 1
      • dslraser
        dslraser Forum Testing Most Active @paul53 last edited by

        @paul53 sagte in State per Script löschen:

        Du kannst die Datenpunkte unter "javascript.0" und "0_userdata.0" so löschen:

        Danke, das funktioniert.

        Wie kann ich mehrere auf einmal löschen, also z.B. alles ab Batterien_zaehlen (einschließlich Batterien_zaehlen)

        Bildschirmfoto 2020-06-11 um 17.08.18.png

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

          @dslraser sagte:

          Wie kann ich mehrere auf einmal löschen, also z.B. alles ab Batterien_zaehlen

          Mittels $Selector.

          const ids = $('javascript.0.xxx.Batterien_zaehlen.*'); // xxx ersetzen !
          
          ids.each(function(id, i) {
             if(existsState(id)) deleteState(id.substring(13));
          });
          
          dslraser 2 Replies Last reply Reply Quote 1
          • dslraser
            dslraser Forum Testing Most Active @paul53 last edited by

            @paul53 sagte in State per Script löschen:

            Mittels $Selector.

            vielen Dank, mal wieder 👍

            1 Reply Last reply Reply Quote 0
            • dslraser
              dslraser Forum Testing Most Active @paul53 last edited by

              @paul53 sagte in [gelöst]State per Script löschen:

              Mittels $Selector.

              das geht mit substring nur in javascript.x (in 0_userdata.0 funktioniert es bei mir nicht, da kommt dann auch Not found)

              ich mache es aktuell so

              javascript Instanz

              const idsjs = $('javascript.*.Geraete_zaehlen_optional_Ansagen.Geraete_zaehlen.Batterien*'/*Batterien Zaehlen*/);
               
              idsjs.each(function(id, i) {
                 if(existsState(id)) deleteState(id.substring(13));
              });
              

              0_userdata.0

              const idsud = $('0_userdata.0.Geraete_zaehlen_optional_Ansagen.Geraete_zaehlen.Batterien*'/*Batterien Zaehlen*/);
               
              idsud.each(function(id, i) {
                 if(existsState(id)) deleteState(id);
              });
              

              Oder habe ich was falsch gemacht ?

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

                @dslraser sagte:

                Oder habe ich was falsch gemacht ?

                Nein, siehe hier. Wenn Du nur eine .each-Schleife haben möchtest, dann bau die Abfrage mit ein. Oder so:

                const ids = $('javascript.0.*.Batterien_zaehlen.*'); 
                 
                ids.each(function(id, i) {
                   if(existsState(id)) {
                      if(id.startsWith('0_userdata.0.')) deleteState(id);
                      else deleteState(id.substring(13));
                   }
                });
                
                dslraser 2 Replies Last reply Reply Quote 1
                • dslraser
                  dslraser Forum Testing Most Active @paul53 last edited by

                  @paul53 sagte in [gelöst]State per Script löschen:

                  Nein, siehe hier. Wenn Du nur eine .each-Schleife haben möchtest, dann bau die Abfrage mit ein. Oder so:

                  Danke, das funktioniert so, aber mir ist eben erst aufgefallen das dann unter javascript.x auch scriptEnabled gelöscht wird.

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

                    @dslraser sagte:

                    unter javascript.x auch scriptEnabled gelöscht wird.

                    Wenn "Batterien_zaehlen" auch als Skript-Name verwendet wurde, dann darf man mit dem "*" nicht so großzügig umgehen, sondern muss genauer selektieren.

                    dslraser 1 Reply Last reply Reply Quote 0
                    • dslraser
                      dslraser Forum Testing Most Active @paul53 last edited by

                      @paul53
                      Es werden alle scriptEnabled gelöscht, auch die, die nichts mit dem Namen zu tun haben.

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

                        @dslraser sagte:

                        auch die, die nichts mit dem Namen zu tun haben.

                        Das wundert mich und kann ich bei mir mit dem $Selector nicht nachvollziehen.
                        Ein Buchstabe != "s" direkt hinter "javascript.0." sollte ausreichen, dies zu verhindern.

                        dslraser 1 Reply Last reply Reply Quote 0
                        • dslraser
                          dslraser Forum Testing Most Active @paul53 last edited by

                          @paul53
                          ich probiere nochmal.

                          dslraser 1 Reply Last reply Reply Quote 0
                          • dslraser
                            dslraser Forum Testing Most Active @dslraser last edited by

                            @dslraser sagte in [gelöst]State per Script löschen:

                            @paul53
                            ich probiere nochmal.

                            ich jetzt auch nicht mehr, bleibt alles da. Da werde ich dann wohl beim probieren was falsch gehabt haben.

                            1 Reply Last reply Reply Quote 0
                            • dslraser
                              dslraser Forum Testing Most Active @paul53 last edited by

                              @paul53 sagte in [gelöst]State per Script löschen:

                              @dslraser sagte:

                              Oder habe ich was falsch gemacht ?

                              Nein, siehe hier. Wenn Du nur eine .each-Schleife haben möchtest, dann bau die Abfrage mit ein. Oder so:

                              const ids = $('javascript.0.*.Batterien_zaehlen.*'); 
                               
                              ids.each(function(id, i) {
                                 if(existsState(id)) {
                                    if(id.startsWith('0_userdata.0.')) deleteState(id);
                                    else deleteState(id.substring(13));
                                 }
                              });
                              

                              Ich habe jetzt eine Weile an einem Blockly was gemacht und als Ort zum erstellen und löschen der Datenpunkte immer javascript.0 benutzt, da funktioniert das löschen.
                              Eben habe ich dann mal die gleichen Datenpunkte in 0_userdata.0 erstellt und wollte diese anschließend mit dieser Schleife löschen, dort wird nicht gelöscht.
                              Nehme ich die zwei Schleifen wie hier funktioniert an beiden Orten das löschen.

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

                                @dslraser sagte:

                                Datenpunkte in 0_userdata.0 erstellt und wollte diese anschließend mit dieser Schleife löschen, dort wird nicht gelöscht.

                                Habe es gerade getestet und die 3 Datenpunkte unter "0_userdata.0", die ".on_off" in der ID hatten, wurden gelöscht:

                                const ids = $('0_userdata.0.*.on_off*'); 
                                 
                                ids.each(function(id, i) {
                                   if(existsState(id)) {
                                      if(id.startsWith('0_userdata.0.')) deleteState(id);
                                      else deleteState(id.substring(13));
                                   }
                                });
                                
                                1 Reply Last reply Reply Quote 0
                                • liv-in-sky
                                  liv-in-sky last edited by

                                  @paul53

                                  verstehe ich das richtig, das man datenpunkte, die nicht in javascript.x oder 0_userdata... niemals mit einem script löschen kann ?

                                  warum ich frage:
                                  der unifi adapter löscht keine datenpunkte, da er nicht entscheiden kann, ob das ein "falscher" client ist - also z.b ein gast, der nur einmal im netz eingloggt war, und für ewig in den datenpunkten bleibt
                                  habe ein tabellen script, welches mir alle clients anzeigt und wollte über dieses script/tabelle, die datenpunkte löschen lassen

                                  paul53 1 Reply Last reply Reply Quote 0
                                  • paul53
                                    paul53 @liv-in-sky last edited by

                                    @liv-in-sky sagte:

                                    datenpunkte, die nicht in javascript.x oder 0_userdata... niemals mit einem script löschen kann ?

                                    Doch, mit deleteObject(id).

                                    liv-in-sky 2 Replies Last reply Reply Quote 0
                                    • liv-in-sky
                                      liv-in-sky @paul53 last edited by

                                      @paul53

                                      danke dir - funktioniert aber im editor wird das als fehler (cannot find name) angezeigt

                                      Image 5.png

                                      1 Reply Last reply Reply Quote 0
                                      • liv-in-sky
                                        liv-in-sky @paul53 last edited by

                                        @paul53

                                        könntest du mir nochmal helfen - das funktioniert doch nicht richtig

                                        wie genau muss der befehl heißen, damit ich diese struktur wegbekomme (unifi.0.default.clients.b8:27:eb:57:0a:a7)

                                        Image 6.png

                                        paul53 1 Reply Last reply Reply Quote 0
                                        • paul53
                                          paul53 @liv-in-sky last edited by

                                          @liv-in-sky sagte:

                                          wie genau muss der befehl heißen, damit ich diese struktur wegbekomme

                                          Laut Doku

                                          deleteObject('unifi.0.default.clients.b8:27:eb:57:0a:a7', true);
                                          

                                          Selbst habe ich es noch nicht getestet.

                                          liv-in-sky 1 Reply Last reply Reply Quote 1
                                          • liv-in-sky
                                            liv-in-sky @paul53 last edited by

                                            @paul53 oh - das isrecursive=true hat gefehlt

                                            das schaut jetzt schon besser aus

                                            danke

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            443
                                            Online

                                            32.0k
                                            Users

                                            80.5k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly javascript
                                            4
                                            29
                                            2654
                                            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