Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Objekte aufräumen

    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

    Objekte aufräumen

    This topic has been deleted. Only users with topic management privileges can see it.
    • ?
      A Former User @liv-in-sky last edited by

      @liv-in-sky sagte in Objekte aufräumen:

      @nis nein - die braucht man eigentlich nur für die "monsterprüfung" - dort sind mir diese sache erst aufgefallen - ich werd das erst morgen nochmal ansehen

      Warum nur für die Monsterprüfung?

      liv-in-sky 1 Reply Last reply Reply Quote 0
      • ?
        A Former User @liv-in-sky last edited by

        @liv-in-sky sagte in Objekte aufräumen:

        @nis ah - jetzt kommt der adapter profi zum vorschein

        Naja, nicht wirklich. Ich sehe nur täglich welche Probleme entstehen wenn das alles wild durcheinander verwendet wird...

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

          @nis

          ich wollte eigentlich nur eigene und die javascript datenpunkte checken - da hatte ich bei keine probleme - wurde alles gefunden - dann fiel mir ein , ich könnte ja mal versuchen alle instanzen abzuchecken - und dann gab es halt plötzlich enorm viele warnungen und dateityp vertauschungen - und script abstürze, weil ein fehlender "type" das script crashte - ich arbeite micht halt stück für stück vor und bin froh um input

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

            @nis sagte in Objekte aufräumen:

            Rollen mit sensor.* müssen boolean und read-only sein.
            Rollen mit button.* müssen boolean und write-only sein.
            usw...

            Gute Idee, das wird ein mächtiges Skript wenn es fertig ist.

            @liv-in-sky
            Überlegung:
            Wäre da vielleicht nicht ein Adapter interessant?

            ? liv-in-sky 2 Replies Last reply Reply Quote 0
            • ?
              A Former User @sigi234 last edited by

              @sigi234 Oder es wird direkt in ioBroker bereitgestellt. Finde es nur sinnvoll, wenn das eigentliche ioBroker System auch die erstellten Regeln auf Einhaltung prüft.

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

                @sigi234 mal sehen, wie sich das weiterentwickelt - wer weiß, vielleicht komme ich ja an grenzen bei der programmierung

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

                  @nis sagte in Objekte aufräumen:

                  @sigi234 Oder es wird direkt in ioBroker bereitgestellt. Finde es nur sinnvoll, wenn das eigentliche ioBroker System auch die erstellten Regeln auf Einhaltung prüft.

                  hat schon jemand vorgeschlagen - aber lass mal erst das script etwas wachsen und sehen, ob es wirklich gebraucht wird

                  sigi234 1 Reply Last reply Reply Quote 0
                  • sigi234
                    sigi234 Forum Testing Most Active @liv-in-sky last edited by

                    @liv-in-sky sagte in Objekte aufräumen:

                    ob es wirklich gebraucht wird

                    Na sicher! Ich schon.😀

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

                      eventuell für den info adapter interessant ?

                      1 Reply Last reply Reply Quote 1
                      • paul53
                        paul53 @Guest last edited by paul53

                        @nis sagte:

                        oftmals entdecke ich solche Angaben die falsch sind:

                        Es ist insofern falsch, als die states (Zustandstexte) nicht direkt unter common, sondern unter common.states deklariert werden müssen. Sie werden als JSON im Datenpunkt gepeichert, aber als Objekt zur Verfügung gestellt.

                        ? 1 Reply Last reply Reply Quote 0
                        • ?
                          A Former User @paul53 last edited by

                          @paul53 Da war ich zu schnell im Tippen. Hab's oben korrigiert. Der angesprochene Fehler ist der falsche Datentyp.

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

                            @nis sagte:

                            Fehler ist der falsche Datentyp.

                            Es ist JSON. Die ersten beiden Beispiele wirst Du in Datenpunkten nicht finden.

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

                              @paul53

                              könntest du das bitte noch kurz erklären

                              https://forum.iobroker.net/post/312032

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

                                @nis sagte in Objekte aufräumen:

                                Weitere Prüfungen könnten noch sein:

                                Prüfen der einzelnen Angaben unter obj.common.states
                                boolean müsset sein:

                                {
                                 id: "irgendetwas mit fenster",
                                common: {
                                type: "boolean",
                                states: {
                                true: "offen",
                                false: "geschlossen"
                                }}}
                                

                                number:

                                {
                                 id: "irgendetwas mit fenster",
                                common : {
                                type: "number",
                                states: {
                                0: "offen",
                                1: "geschlossen",
                                2: "gekippt"
                                }}}
                                

                                oftmals entdecke ich solche Angaben die falsch sind da die Werte 0,1,2 String sind:

                                {
                                 id: "irgendetwas mit fenster",
                                common : {
                                type: "number",
                                states: {
                                "0": "offen",
                                "1": "geschlossen",
                                "2": "gekippt"
                                }}}
                                

                                @nis - verstehe ich dich richtig:

                                du würdest gerne eine prüfung haben, indem das zweite beispiel richtig ist - unter states sollen immer an erster stelle zahlen stehen, die nicht in anführungszeichen sind - also sicherstellen, das dort number-werte anstatt strings stehen

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

                                  @sigi234 sagte in Objekte aufräumen:

                                  Bei über 21000 Objekte es händisch zu machen ist sehr aufwendig.

                                  Hast du den BLE-Adapter ohne Filter laufen lassen? 😬

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

                                    @AlCalzone sagte in Objekte aufräumen:

                                    Hast du den BLE-Adapter ohne Filter laufen lassen?

                                    Hab den nicht.

                                    1 Reply Last reply Reply Quote 0
                                    • ?
                                      A Former User @liv-in-sky last edited by

                                      @liv-in-sky Ich muss nochmal nachsehen welche Fehler genau auftreten. Ich glaube dass @paul53 Recht hat und es ein JSON Objekt immer Attribute vom Typ String hat.

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

                                        @nis ok - geb mir bescheid, wenn du näheres weißt

                                        ihr kennt euch da besser aus - wenn man einen datenpunkt als auswahlliste anlegt, sieht das wieder anders aus:

                                        Image 1.png

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

                                          @liv-in-sky sagte:

                                          wenn man einen datenpunkt als auswahlliste anlegt, sieht das wieder anders aus:

                                          Das ist die ebenfalls zulässige String-Schreibweise für states. Wenn man states manuell eingibt, ist diese Schreibweise einfacher zu handhaben.
                                          Admin berücksichtigt automatisch die Schreibweise. In Javascript sollte man eine Wandlung in ein Objekt vornehmen.

                                          function statesStr2Obj(states) {
                                              if (typeof states == 'string') {
                                                  var arr = states.split(';');
                                                  states = {};
                                                  for(var i = 0; i < arr.length; i++) {
                                                      var ele = arr[i].split(':');
                                                      states[ele[0]] = ele[1];
                                                  }
                                              }
                                              return states;
                                          }
                                          
                                          1 Reply Last reply Reply Quote 0
                                          • paul53
                                            paul53 @liv-in-sky last edited by paul53

                                            @liv-in-sky sagte:

                                            darin sind object-werte geschrieben obwohl string,number oder boolean im dp deklariert ist

                                            console.log(typeof null); // ist object 
                                            

                                            Wenn leere Datenpunkte beim Typvergleich nicht auftauschen sollen, dann fasse die Prüfungen zusammen.

                                            function checkTypes(select) {
                                                $(select).each(function (id, i) {
                                                    var ida = id.split('.');
                                                    if(ida[2] != 'scriptEnabled' && ida[2] != 'scriptProblem') {
                                                        if(getState(id).val === null) console.log(id + ': Leer !');
                                                        else {
                                                            var dpType = getObject(id).common.type;
                                                            var valType = typeof getState(id).val;
                                                            if(dpType != valType && !(dpType == 'array' && valType == 'object')) {
                                                                console.log(id + ': Datenpunkttyp: ' + dpType + ', Wert: ' + valType);
                                                            }
                                                        }
                                                    }
                                                });
                                            }
                                            
                                            checkTypes('javascript.*');
                                            

                                            oder filtere die leeren Datenpunkte aus

                                            function checkTypes(select) {
                                                $(select).each(function (id, i) {
                                                    var ida = id.split('.');
                                                    if(ida[2] != 'scriptEnabled' && ida[2] != 'scriptProblem' && getState(id).val !== null) {
                                                        var dpType = getObject(id).common.type;
                                                        var valType = typeof getState(id).val;
                                                        if(dpType != valType && !(dpType == 'array' && valType == 'object')) {
                                                            console.log(id + ': Datenpunkttyp: ' + dpType + ', Wert: ' + valType);
                                                        }
                                                    }
                                                });
                                            }
                                             
                                            checkTypes('javascript.*');
                                            
                                            liv-in-sky 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            455
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            aufräumen objekte admin
                                            8
                                            100
                                            5273
                                            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