Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Liste mit "SVerweis"

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    467

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    385

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    976

Liste mit "SVerweis"

Geplant Angeheftet Gesperrt Verschoben Blockly
12 Beiträge 4 Kommentatoren 738 Aufrufe 3 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • AsgothianA Asgothian

    @dan11hh sagte in Liste mit "SVerweis":

    Jetzt würde ich gerne in einer Liste den Minimalsten Wert heraussuchen (das klappt schon) und mir dann das zum Wert gehörende Objekt ausgeben lassen. Quasi wie ein SVERWEIS in Excel. Geht das irgendwie? Aktuell sieht es so aus:

    in js würde das warscheinlich gehen. In Blockly ist meiner Meinung nach ein anderer Ansatz sinnvoll:

    Screenshot 2023-01-07 at 13.26.33.png

    Wichtig ist das du den Selektor für deine Watchdog Zellen sauber setzt. Wenn du mal das JS von deinem Blockly postest kann auch der sauber gefüllt werden.

    A.

    CodierknechtC Offline
    CodierknechtC Offline
    Codierknecht
    Developer Most Active
    schrieb am zuletzt editiert von Codierknecht
    #3

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

    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

    Proxmox 9.1.1 LXC|8 GB|Core i7-6700
    HmIP|ZigBee|Tasmota|Unifi
    Zabbix Certified Specialist
    Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

    AsgothianA 1 Antwort Letzte Antwort
    0
    • CodierknechtC Codierknecht

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

      AsgothianA Offline
      AsgothianA Offline
      Asgothian
      Developer
      schrieb am zuletzt editiert von
      #4

      @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.

      ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
      "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

      CodierknechtC 1 Antwort Letzte Antwort
      1
      • AsgothianA Asgothian

        @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.

        CodierknechtC Offline
        CodierknechtC Offline
        Codierknecht
        Developer Most Active
        schrieb am zuletzt editiert von
        #5

        @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.

        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

        Proxmox 9.1.1 LXC|8 GB|Core i7-6700
        HmIP|ZigBee|Tasmota|Unifi
        Zabbix Certified Specialist
        Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

        AsgothianA 1 Antwort Letzte Antwort
        0
        • CodierknechtC Codierknecht

          @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.

          AsgothianA Offline
          AsgothianA Offline
          Asgothian
          Developer
          schrieb am zuletzt editiert von Asgothian
          #6

          @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.

          ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
          "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

          CodierknechtC 1 Antwort Letzte Antwort
          0
          • AsgothianA 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.

            CodierknechtC Offline
            CodierknechtC Offline
            Codierknecht
            Developer Most Active
            schrieb am zuletzt editiert von
            #7

            @asgothian sagte in Liste mit "SVerweis":

            war mal eben zusammen geklöppelt

            Ach, machst Du das auch so? 😁 😁 😁

            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

            Proxmox 9.1.1 LXC|8 GB|Core i7-6700
            HmIP|ZigBee|Tasmota|Unifi
            Zabbix Certified Specialist
            Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

            AsgothianA 1 Antwort Letzte Antwort
            0
            • CodierknechtC Codierknecht

              @asgothian sagte in Liste mit "SVerweis":

              war mal eben zusammen geklöppelt

              Ach, machst Du das auch so? 😁 😁 😁

              AsgothianA Offline
              AsgothianA Offline
              Asgothian
              Developer
              schrieb am zuletzt editiert von
              #8

              @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 :)

              ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
              "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

              D 1 Antwort Letzte Antwort
              0
              • AsgothianA Asgothian

                @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 Offline
                D Offline
                dan11hh
                schrieb am zuletzt editiert von
                #9

                @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);
                
                
                CodierknechtC AsgothianA paul53P 3 Antworten Letzte Antwort
                0
                • D dan11hh

                  @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);
                  
                  
                  CodierknechtC Offline
                  CodierknechtC Offline
                  Codierknecht
                  Developer Most Active
                  schrieb am zuletzt editiert von
                  #10

                  @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.

                  "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                  Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                  HmIP|ZigBee|Tasmota|Unifi
                  Zabbix Certified Specialist
                  Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                  1 Antwort Letzte Antwort
                  0
                  • D dan11hh

                    @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);
                    
                    
                    AsgothianA Offline
                    AsgothianA Offline
                    Asgothian
                    Developer
                    schrieb am zuletzt editiert von
                    #11

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

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

                    A.

                    ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                    "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                    1 Antwort Letzte Antwort
                    0
                    • D dan11hh

                      @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);
                      
                      
                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #12

                      @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.

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      1 Antwort Letzte Antwort
                      0

                      Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                      Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                      Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                      Registrieren Anmelden
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      506

                      Online

                      32.8k

                      Benutzer

                      82.8k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe