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) ID Selektoren bei True in Datenpunkt schreiben

    NEWS

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    (GELÖST) ID Selektoren bei True in Datenpunkt schreiben

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

      Hello,
      Ich steh auf der Leitung.
      Würde gerne bei einer meiner Aufzählungen gerne die "Namen" der Datenpunkte in einen Datenpunkt schreiben. Allerdings nur wenn diese TRUE sind (sind alles Logikwerte). Falls einer oder mehrere FALSE sind sollen diese "Namen" auch nicht im Datenpunkt erscheinen. Ich möchte das nicht als Liste sondern, wie gesagt, den Namen der jeweiligen Datenpunkte, evtl. Kommasepariert, in einen String schreiben. Anbei jetzt mal mein Blockly....

      Unbenannt.PNG

      SO kann das natürlich nicht funktionieren, also es wird mir in diesem Fall nur der letzte auf TRUE gesetzte Name des Datenpunktes in das Objekt geschrieben.
      Ziel ist es aus VIS per Checkboxen diese Werte in einen Datenpunkt zu schreiben um z.B. einen Value anzuzeigen oder/und per CRON als History in einem JSON zu visualisieren.

      Mir raucht grad schon der Kopf und wäre für HELP sehr dankbar.

      Merci

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

        @djmarc75
        Vorschlag:

        Bild_2022-04-12_185005681.png

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

          @paul53
          Habs jetzt mal 1:1 nachgebaut mit dem Ergebniss dass bei jedem Klick einfach nur alle Datenpunkte in das Objekt geschrieben werden... ABER mit Komma dazwischen 👍
          Habe auch schon ein bissle mit dem "ids vom Selektor-Block" rumgespielt aber ohne Erfolg.

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

            @djmarc75 sagte: bei jedem Klick einfach nur alle Datenpunkte in das Objekt geschrieben werden.

            Alle Datenpunkte mit dem Wert true, die "enum.functions.pepper" zugeordnet sind?

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

              @paul53 said in ID Selektoren bei True in Datenpunkt schreiben:

              Alle Datenpunkte mit dem Wert true, die "enum.functions.pepper" zugeordnet sind?

              Alle, auch die auf FALSE sind.

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

                @djmarc75 sagte: Alle, auch die auf FALSE sind.

                Das verhindert

                falls Wert vom Objekt ID id
                

                Oder ist "false" ein String?

                Poste mal den erzeugten Javascript-Code ohne die letzte Zeile in Code tags.

                DJMarc75 2 Replies Last reply Reply Quote 0
                • DJMarc75
                  DJMarc75 @paul53 last edited by DJMarc75

                  @paul53

                  var Liste, Futterliste, i;
                  
                  
                  Liste = Array.prototype.slice.apply($("*(functions=pepper)"));
                  on({id: Liste, change: "ne"}, async function (obj) {
                    var value = obj.state.val;
                    var oldValue = obj.oldState.val;
                    Futterliste = [];
                    for (var i_index in Liste) {
                      i = Liste[i_index];
                      if (getState(i).val == true) {
                        Futterliste.push((obj.common ? obj.common.name : ""));
                      }
                    }
                    setState("0_userdata.0.Pepper.Aufgaben.Frischfutter.Futterliste"/*Futterliste*/, (Futterliste.join(',')), true);
                  });
                  
                  paul53 1 Reply Last reply Reply Quote 0
                  • DJMarc75
                    DJMarc75 @paul53 last edited by DJMarc75

                    @paul53

                    Es verhält sich im Moment so, dass, immer wenn ich einen Datenpunkt auf ändere, die Anzahl der auf True gesetzten stimmt, aber es wird, als Beispiel dann dreimal "Tomate" angezeigt, obwohl Gurke, Tomate und Karotte ausgewählt sind. Quasi immer der zuletzt geänderte wird dann angezeigt.

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

                      @djmarc75 sagte: dreimal "Tomate" angezeigt, obwohl Gurke, Tomate und Karotte ausgewählt sind.

                      Sorry, mein Fehler: Name enthält den Namen des Trigger-Datenpunktes, der sich in der Schleife nicht ändert. Du benötigst anstelle von Name eine JS-Funktion getName(id) mit Ergebnis mit folgendem Inhalt:

                      return getObject(id).common.name;
                      

                      Bild_2022-04-12_192711354.png

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

                        @paul53
                        Du bist spitze !!!
                        Vielen Dank und ich setzte den Post gleich mal auf gelöst !!!!

                        MERCI

                        1 Reply Last reply Reply Quote 0
                        • DJMarc75
                          DJMarc75 last edited by

                          @paul53
                          Muss nochmal was nachfragen...

                          Gibt es auch die Möglichkeit den ganzen Objektpfad auszulesen und diesen dann in einen Datenpunkt zu schreiben ?

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

                            @djmarc75 sagte: Gibt es auch die Möglichkeit den ganzen Objektpfad auszulesen und diesen dann in einen Datenpunkt zu schreiben ?

                            Mit Objektpfad meinst Du die ID? Die liegt ja bereits als Variable id vor.

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

                              @paul53 said in (GELÖST) ID Selektoren bei True in Datenpunkt schreiben:

                              Mit Objektpfad meinst Du die ID? Die liegt ja bereits als Variable id vor.

                              0_userdata.0.Spotify.Variablen_zur_Steuerung.Headset
                              

                              z.B. diesen kompletten Pfad wenn Wert true in einen Datenpunkt schreiben.

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

                                @djmarc75 sagte: z.B. diesen kompletten Pfad wenn Wert true in einen Datenpunkt schreiben.

                                Das ist der Inhalt der Variablen id. Also einfach die Funktion getName(id) weglassen und id in die Liste schreiben.

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

                                  @paul53
                                  Perfekt, wie immer.
                                  Danke

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

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  829
                                  Online

                                  32.0k
                                  Users

                                  80.5k
                                  Topics

                                  1.3m
                                  Posts

                                  2
                                  15
                                  319
                                  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