Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Liste mit "SVerweis"

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Liste mit "SVerweis"

    This topic has been deleted. Only users with topic management privileges can see it.
    • Codierknecht
      Codierknecht Developer Most Active @Asgothian last edited by Codierknecht

      @asgothian
      Alternative (quick & dirty) ohne Selektor:
      f57085e9-b53d-417f-bf46-f43c78b3fa79-grafik.png

      Asgothian 1 Reply Last reply Reply Quote 0
      • Asgothian
        Asgothian Developer @Codierknecht last edited by

        @codierknecht hab ich auch drüber nachgedacht. Macht aber in der Situation wo die DP's vom OP einer so schönen Regelmässigkeit folgen weniger sinn. Warum 13 DP's einzeln per gui heraussuchen wenn man das mit einem Aufruf "automatisch" machen kann 🙂

        Dabei dann gleich auch noch was über den Selektor gelernt. Win Win 😉

        A.

        Codierknecht 1 Reply Last reply Reply Quote 1
        • Codierknecht
          Codierknecht Developer Most Active @Asgothian last edited by

          @asgothian
          Wenn es wirklich alle DP aus dem Kanal sind, geht das mit diesem Selektor.
          Hat der Kanal noch weitere DP, die hier nicht zu berücksichtigen sind, müsste man mit 'ner Aufzählung arbeiten.

          Kleiner Schnitzer in Deiner Schleife:
          Gesetzt den Fall, die Werte wären [20, 30, 10], würde zuerst die 20 in minval wandern, da minval im ersten Durchlauf noch -99999999 wäre.
          Im zweiten Durchlauf würde die 30 genommen, da 20 < 30 ist.
          Im dritten Durchlauf würde das if schiefgehen, da 30 nicht kleiner als 10 ist.

          Asgothian 1 Reply Last reply Reply Quote 0
          • Asgothian
            Asgothian Developer @Codierknecht last edited by Asgothian

            @codierknecht sagte in Liste mit "SVerweis":

            @asgothian
            Wenn es wirklich alle DP aus dem Kanal sind, geht das mit diesem Selektor.
            Hat der Kanal noch weitere DP, die hier nicht zu berücksichtigen sind, müsste man mit 'ner Aufzählung arbeiten.

            das Hängt davon ab ob es ein eindeutiges Muster gibt die DP's zu identifizieren. Sie müssen nicht aus dem gleichen Kanal kommen.

            wenn ich davon ausgehe das die Benennung ein Teil der State-Struktur ist könnten die dp's heissen:

            adaptername.0.watchdog_1.data.zelle_01 .. ...zelle_15

            In dem fall könnte der Selektor sein

            state[state.id=adaptername.0.watchdog.data.zelle_*]

            Kleiner Schnitzer in Deiner Schleife:
            Gesetzt den Fall, die Werte wären [20, 30, 10], würde zuerst die 20 in minval wandern, da minval im ersten Durchlauf noch -99999999 wäre.
            Im zweiten Durchlauf würde die 30 genommen, da 20 < 30 ist.
            Im dritten Durchlauf würde das if schiefgehen, da 30 nicht kleiner als 10 ist.

            korrekt, das war falsch. Wird oben korrigiert.

            war mal eben zusammen geklöppelt

            A.

            Codierknecht 1 Reply Last reply Reply Quote 0
            • Codierknecht
              Codierknecht Developer Most Active @Asgothian last edited by

              @asgothian sagte in Liste mit "SVerweis":

              war mal eben zusammen geklöppelt

              Ach, machst Du das auch so? 😁 😁 😁

              Asgothian 1 Reply Last reply Reply Quote 0
              • Asgothian
                Asgothian Developer @Codierknecht last edited by

                @codierknecht sagte in Liste mit "SVerweis":

                @asgothian sagte in Liste mit "SVerweis":

                war mal eben zusammen geklöppelt

                Ach, machst Du das auch so? 😁 😁 😁

                Am Wochenende immer 🙂

                D 1 Reply Last reply Reply Quote 0
                • D
                  dan11hh @Asgothian last edited by

                  @asgothian @Codierknecht
                  1000 Dank für Eure Hilfe! Was ist / macht denn die ID? Ich steige da leider noch nicht ganz durch...

                  Nochmals Danke für die Hilfe!

                  Das JS sieht so aus:

                  var Intervall, AkkuMin;
                  
                  
                  AkkuMin = [getState("mqtt.1.BMS_Watchdog_1.Data.Zelle_01").val, getState("mqtt.1.BMS_Watchdog_1.Data.Zelle_02").val, getState("mqtt.1.BMS_Watchdog_1.Data.Zelle_03").val, getState("mqtt.1.BMS_Watchdog_1.Data.Zelle_04").val, getState("mqtt.1.BMS_Watchdog_1.Data.Zelle_05").val, getState("mqtt.1.BMS_Watchdog_1.Data.Zelle_06").val, getState("mqtt.1.BMS_Watchdog_1.Data.Zelle_07").val, getState("mqtt.1.BMS_Watchdog_1.Data.Zelle_08").val, getState("mqtt.1.BMS_Watchdog_1.Data.Zelle_09").val, getState("mqtt.1.BMS_Watchdog_1.Data.Zelle_10").val, getState("mqtt.1.BMS_Watchdog_1.Data.Zelle_11").val, getState("mqtt.1.BMS_Watchdog_1.Data.Zelle_12").val, getState("mqtt.1.BMS_Watchdog_1.Data.Zelle_13").val, getState("mqtt.1.BMS_Watchdog_1.Data.Zelle_14").val, getState("mqtt.1.BMS_Watchdog_1.Data.Zelle_15").val, getState("mqtt.1.BMS_Watchdog_1.Data.Zelle_16").val];
                  console.log(AkkuMin);
                  console.log(Math.round((Math.min.apply(null, AkkuMin))*1000)/1000);
                  
                  
                  Codierknecht Asgothian paul53 3 Replies Last reply Reply Quote 0
                  • Codierknecht
                    Codierknecht Developer Most Active @dan11hh last edited by

                    @dan11hh

                    Die "ID" enthält z.B. mqtt.1.BMS_Watchdog_1.Data.Zelle_01 usw.
                    Es hilft ja nicht, eine Liste nur aus den Werten zu bauen, da dann der Bezug zum Objekt fehlt.
                    Die Liste muss also das komplette Objekt ansprechen können. Hat man dann in der Liste einen Wert gefunden der kleiner als der letzte ist, merkt man sich den Wert und die ID des DP.
                    Damit kann man dann jederzeit wieder auf das Objekt zugreifen und dort lesen was man so braucht.

                    1 Reply Last reply Reply Quote 0
                    • Asgothian
                      Asgothian Developer @dan11hh last edited by

                      @dan11hh bei dem JS sollte der selektor den folgenden Text beinhalten:

                      state[state.mqtt.1.BMS_Watchdog_1.Data.Zelle_*]

                      A.

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

                        @dan11hh sagte: Das JS sieht so aus:

                        Dann versuche es mal so (triggert jede volle Stunde):

                        Bild_2023-01-08_143853510.png

                        Zum Test lass erst einmal den Trigger weg.

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        600
                        Online

                        32.0k
                        Users

                        80.5k
                        Topics

                        1.3m
                        Posts

                        4
                        12
                        411
                        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