Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Listen: Aus Objekt erstellen oder auf Objekt arbeiten?

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Listen: Aus Objekt erstellen oder auf Objekt arbeiten?

    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      CKassiopaia last edited by CKassiopaia

      Moin,

      vielleicht ist es eine "dumme" Frage, aber ich habe bisher keine Lösung gefunden und auch im Netz nichts passendes gefunden.

      Welche Möglichkeit gibt es eine Liste als Objekt zu speichern bzw. dann mit dem Objekt zu arbeiten? Genau genommen geht es mir darum, eine Liste aus einem Objekt einzulesen.

      Generell habe ich schon mit Listen gearbeitet und diese auch als Objekt gespeichert. Das funktioniert. Nun möchte ich aber meine Listen im Objekt speichern und beim nächsten Aufruf die selbe Liste aus dem Objekt wieder auslesen.

      Als Beispiel:
      Ich habe eine Liste erzeugt und in einem Objekt gespeichert:

      [
        Ventil1,
        Ventil2,
        Ventil3
      ]
      

      Beim nächsten Aufruf soll die Liste aus dem Objekt ausgelesen werden und geändert (z.B. 4 hinzugefügt werden). Dann soll diese wieder in dem Objekt gespeichert werden.

      [
        Ventil1,
        Ventil2,
        Ventil3,
        Ventil4
      ]
      

      Ich hab schon ein bisschen was getestet, aber irgendwie bekomme ich es nicht hin, aus einem Objekt die Liste vernünftig einzulesen:
      b7a304ad-365b-4c3c-8a11-1d92926c7189-grafik.png

      Vielleicht gibt es ja auch eine andere Lösung.... ich will für meine Gartenbewässerung in einem Objekt speichern, welche Kreise ich bewässern will. In meinem Fall als Liste. D.h. wenn die Witterung eine Bewässerung empfiehlt, will ich aus der Liste auslesen, welche Ventile bewässert werden sollen - z.B. muss das Gemüsebeet nicht bewässert werden, wenn kein Gemüse angepflanzt ist.

      Vielen Dank!

      paul53 3 Replies Last reply Reply Quote 0
      • paul53
        paul53 @CKassiopaia last edited by paul53

        @ckassiopaia
        Zu Beginn enthält "Test" einen String, zum Schluss wird eine Liste in den gleichen Datenpunkt geschrieben. Das kann nicht funktionieren. In einem Datenpunkt vom Typ "array" werden Listen als JSON gespeichert.
        Was soll der Datenpunkt enthalten?

        @ckassiopaia sagte in Listen: Aus Objekt erstellen oder auf Objekt arbeiten?:

        z.B. muss das Gemüsebeet nicht bewässert werden, wenn kein Gemüse angepflanzt ist.

        Wie soll diese Bedingung erfasst (eingegeben) werden?

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

          @ckassiopaia sagte: ich will für meine Gartenbewässerung in einem Objekt speichern, welche Kreise ich bewässern will.

          Nimm einen String-Datenpunkt und trage z.B. ein Beet3,Beet1. Dann wird mit dem folgenden Blockly erst Beet3 und dann Beet1 für jeweils 30 Minuten bewässert:

          Blockly_temp.JPG

          Die beiden Listen Beete und ids müssen korrespondieren.

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

            @ckassiopaia sagte: Ich habe eine Liste erzeugt und in einem Objekt gespeichert:

            In einem DP vom Typ "array" sieht die Liste so aus (JSON):

            ["Ventil1","Ventil2","Ventil3"]
            

            Wenn der DP vom Typ "array" ist, muss er ohne jegliche Wandlung eingelesen werden, denn die Wandlung von JSON in ein Array erledigt dann der Javascript-Adapter.

            Blockly_temp.JPG

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

              Danke für die vielen Antworten...

              @paul53
              Genau so hatte ich das, da ich auch bisher davon ausgegangen war. Ich habe mir eine Liste erzeugt und das als Objekt gespeichert. Das Ergebnis war wie von dir geschrieben ein Typ "array" und sah genau so aus, wie bei dir.

              Allerdings wurde beim Einlesen in die Variable "Liste" eben keine Liste erzeugt. Ich hatte genau den selben Test, wie du gepostet hattest, und das "füge als letzte ein" hat einen Fehler geworfen, da "Liste" keine Liste war. Bist du dir sicher, dass dein Beispiel funktioniert? Bei mir hat es nicht funktioniert... oder ich hatte irgendeinen anderen Konten im Script....

              Dann hatte ich auch mit Strings ausprobiert, aber das führte nicht zum Erfolg, da ich davon ausgegangen war (gehofft hatte), dass die "Listen"-Funktionen direkt mit Objekten arbeiten können.
              Ich hab es jetzt auch über einen String (also Objekt) gelöst und wie in dem ersten Beispiel von dir hat es funktioniert... Mit einem String finde ich es unleserlicher als mit einem Array, daher hatte ich gehofft, das ein Array ausreicht.

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

                @paul53 sagte in Listen: Aus Objekt erstellen oder auf Objekt arbeiten?:

                Was soll der Datenpunkt enthalten?

                @ckassiopaia sagte in Listen: Aus Objekt erstellen oder auf Objekt arbeiten?:

                z.B. muss das Gemüsebeet nicht bewässert werden, wenn kein Gemüse angepflanzt ist.

                Wie soll diese Bedingung erfasst (eingegeben) werden?

                Ich wollte dort "einfach" eine Liste mit den "Beeten" bzw. "Ventilen" anlegen. Wie du in einem letzten Beispiel auch gepostet hattest. Das hatte bei mir nicht funktioniert.

                Jetzt hab ich es wie in deinem 2. Beispiel. Allerdings direkt die Datenobjekte zu den Ventilen in den String eingetragen... vielleicht ändere ich das noch mal, so wie du es gepostet hast mir den Namen 🙂

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

                  @ckassiopaia sagte: oder ich hatte irgendeinen anderen Konten im Script....

                  In deinem gezeigten Skript hast du Text in Liste gewandelt. Es darf nicht gewandelt werden, wenn eine Liste eingelesen wird.

                  @paul53 sagte in Listen: Aus Objekt erstellen oder auf Objekt arbeiten?:

                  Wenn der DP vom Typ "array" ist, muss er ohne jegliche Wandlung eingelesen werden, denn die Wandlung von JSON in ein Array erledigt dann der Javascript-Adapter.

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  464
                  Online

                  31.6k
                  Users

                  79.5k
                  Topics

                  1.3m
                  Posts

                  2
                  7
                  78
                  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