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. Objekt in Array und über Schleife auslesen...geht nicht!?

NEWS

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

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    9
    1
    282

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

Objekt in Array und über Schleife auslesen...geht nicht!?

Geplant Angeheftet Gesperrt Verschoben Blockly
4 Beiträge 3 Kommentatoren 322 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.
  • M Offline
    M Offline
    MDorf
    schrieb am zuletzt editiert von Homoran
    #1

    Hi,

    ich möchte im Falle von meiner Abwesenheit alle Fensterkontakte prüfen und mir ggf. eine Nachricht schicken.
    Damit das Ganze "elegant" wird, möchte ich mit einer Liste/Array in einer Schleife arbeiten.

    Liste also mit den Objekten aufgebaut und über Schleife den Wert versucht auszulesen...funzt irgendwie nicht...

    Aufbau:
    15fdb08e-aeda-42a8-bf9e-b56f3ed8a5bd-grafik.png

    a53cc6e6-4274-4b10-99a0-1a29556b5125-grafik.png

    b6e40afa-16e4-4ac4-92c6-0e6983ecfe57-grafik.png

    Java Script:

    var ObjektListe, FensterOffen, Meldungstext, i;
    
    
    // Wenn Handy nicht mehr im  WLAN ist, Fensterkontakte prüfen und ggf. Telegramm schicken
    on({ id: [].concat(['alias.0.presence.HandyMichael']), change: 'ne' }, async (obj) => {
      let value = obj.state.val;
      let oldValue = obj.oldState.val;
      ObjektListe = [getObject('openknx.0.Logik.Binär.EG_Flur_Haustür'), getObject('openknx.0.Logik.Binär.EG_Flur_Fenster'), getObject('openknx.0.Logik.Binär.EG_HWR_Fenster'), getObject('openknx.0.Logik.Binär.EG_WZ_Fenster_Garten'), getObject('openknx.0.Logik.Binär.EG_Essen_Tür_Garten'), getObject('openknx.0.Logik.Binär.EG_Küche_Fenster'), getObject('openknx.0.Logik.Binär.EG_WC_Fenster'), getObject('openknx.0.Logik.Binär.OG_Büro_DFF'), getObject('openknx.0.Logik.Binär.OG_Büro_Fenster'), getObject('openknx.0.Logik.Binär.OG_Bad_Fenster'), getObject('openknx.0.Logik.Binär.OG_Bad_DFF'), getObject('openknx.0.Logik.Binär.OG_SZ_DFF'), getObject('openknx.0.Logik.Binär.OG_SZ_Fenster'), getObject('openknx.0.Logik.Binär.OG_Gast_Fenster'), getObject('openknx.0.Logik.Binär.GA_Tür_Garten')];
      FensterOffen = 0;
      Meldungstext = 'ACHTUNG: Tür/Fenster offen';
      if (!getState('alias.0.presence.HandyMichael').val) {
        for (var i_index in ObjektListe) {
          i = ObjektListe[i_index];
          console.log((await getObjectAsync((ObjektListe[(i - 1)]))).common.name);
          if (getState((ObjektListe[(i - 1)])).val) {
            FensterOffen = (typeof FensterOffen === 'number' ? FensterOffen : 0) + 1;
            Meldungstext += '\r\n';
            Meldungstext += String((await getObjectAsync((ObjektListe[(i - 1)]))).common.name);
          }
        }
      }
    

    MOD-EDIT: Code in code-tags gesetzt!

    M MartinPM 2 Antworten Letzte Antwort
    0
    • M MDorf

      Hi,

      ich möchte im Falle von meiner Abwesenheit alle Fensterkontakte prüfen und mir ggf. eine Nachricht schicken.
      Damit das Ganze "elegant" wird, möchte ich mit einer Liste/Array in einer Schleife arbeiten.

      Liste also mit den Objekten aufgebaut und über Schleife den Wert versucht auszulesen...funzt irgendwie nicht...

      Aufbau:
      15fdb08e-aeda-42a8-bf9e-b56f3ed8a5bd-grafik.png

      a53cc6e6-4274-4b10-99a0-1a29556b5125-grafik.png

      b6e40afa-16e4-4ac4-92c6-0e6983ecfe57-grafik.png

      Java Script:

      var ObjektListe, FensterOffen, Meldungstext, i;
      
      
      // Wenn Handy nicht mehr im  WLAN ist, Fensterkontakte prüfen und ggf. Telegramm schicken
      on({ id: [].concat(['alias.0.presence.HandyMichael']), change: 'ne' }, async (obj) => {
        let value = obj.state.val;
        let oldValue = obj.oldState.val;
        ObjektListe = [getObject('openknx.0.Logik.Binär.EG_Flur_Haustür'), getObject('openknx.0.Logik.Binär.EG_Flur_Fenster'), getObject('openknx.0.Logik.Binär.EG_HWR_Fenster'), getObject('openknx.0.Logik.Binär.EG_WZ_Fenster_Garten'), getObject('openknx.0.Logik.Binär.EG_Essen_Tür_Garten'), getObject('openknx.0.Logik.Binär.EG_Küche_Fenster'), getObject('openknx.0.Logik.Binär.EG_WC_Fenster'), getObject('openknx.0.Logik.Binär.OG_Büro_DFF'), getObject('openknx.0.Logik.Binär.OG_Büro_Fenster'), getObject('openknx.0.Logik.Binär.OG_Bad_Fenster'), getObject('openknx.0.Logik.Binär.OG_Bad_DFF'), getObject('openknx.0.Logik.Binär.OG_SZ_DFF'), getObject('openknx.0.Logik.Binär.OG_SZ_Fenster'), getObject('openknx.0.Logik.Binär.OG_Gast_Fenster'), getObject('openknx.0.Logik.Binär.GA_Tür_Garten')];
        FensterOffen = 0;
        Meldungstext = 'ACHTUNG: Tür/Fenster offen';
        if (!getState('alias.0.presence.HandyMichael').val) {
          for (var i_index in ObjektListe) {
            i = ObjektListe[i_index];
            console.log((await getObjectAsync((ObjektListe[(i - 1)]))).common.name);
            if (getState((ObjektListe[(i - 1)])).val) {
              FensterOffen = (typeof FensterOffen === 'number' ? FensterOffen : 0) + 1;
              Meldungstext += '\r\n';
              Meldungstext += String((await getObjectAsync((ObjektListe[(i - 1)]))).common.name);
            }
          }
        }
      

      MOD-EDIT: Code in code-tags gesetzt!

      M Online
      M Online
      MCU
      schrieb am zuletzt editiert von
      #2

      @mdorf Nicht das Object nehmen, sondern die ObjectID
      3ba28b5f-0fad-4bef-bc7b-90e765ebfb2d-image.png

      NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
      Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

      M 1 Antwort Letzte Antwort
      0
      • M MDorf

        Hi,

        ich möchte im Falle von meiner Abwesenheit alle Fensterkontakte prüfen und mir ggf. eine Nachricht schicken.
        Damit das Ganze "elegant" wird, möchte ich mit einer Liste/Array in einer Schleife arbeiten.

        Liste also mit den Objekten aufgebaut und über Schleife den Wert versucht auszulesen...funzt irgendwie nicht...

        Aufbau:
        15fdb08e-aeda-42a8-bf9e-b56f3ed8a5bd-grafik.png

        a53cc6e6-4274-4b10-99a0-1a29556b5125-grafik.png

        b6e40afa-16e4-4ac4-92c6-0e6983ecfe57-grafik.png

        Java Script:

        var ObjektListe, FensterOffen, Meldungstext, i;
        
        
        // Wenn Handy nicht mehr im  WLAN ist, Fensterkontakte prüfen und ggf. Telegramm schicken
        on({ id: [].concat(['alias.0.presence.HandyMichael']), change: 'ne' }, async (obj) => {
          let value = obj.state.val;
          let oldValue = obj.oldState.val;
          ObjektListe = [getObject('openknx.0.Logik.Binär.EG_Flur_Haustür'), getObject('openknx.0.Logik.Binär.EG_Flur_Fenster'), getObject('openknx.0.Logik.Binär.EG_HWR_Fenster'), getObject('openknx.0.Logik.Binär.EG_WZ_Fenster_Garten'), getObject('openknx.0.Logik.Binär.EG_Essen_Tür_Garten'), getObject('openknx.0.Logik.Binär.EG_Küche_Fenster'), getObject('openknx.0.Logik.Binär.EG_WC_Fenster'), getObject('openknx.0.Logik.Binär.OG_Büro_DFF'), getObject('openknx.0.Logik.Binär.OG_Büro_Fenster'), getObject('openknx.0.Logik.Binär.OG_Bad_Fenster'), getObject('openknx.0.Logik.Binär.OG_Bad_DFF'), getObject('openknx.0.Logik.Binär.OG_SZ_DFF'), getObject('openknx.0.Logik.Binär.OG_SZ_Fenster'), getObject('openknx.0.Logik.Binär.OG_Gast_Fenster'), getObject('openknx.0.Logik.Binär.GA_Tür_Garten')];
          FensterOffen = 0;
          Meldungstext = 'ACHTUNG: Tür/Fenster offen';
          if (!getState('alias.0.presence.HandyMichael').val) {
            for (var i_index in ObjektListe) {
              i = ObjektListe[i_index];
              console.log((await getObjectAsync((ObjektListe[(i - 1)]))).common.name);
              if (getState((ObjektListe[(i - 1)])).val) {
                FensterOffen = (typeof FensterOffen === 'number' ? FensterOffen : 0) + 1;
                Meldungstext += '\r\n';
                Meldungstext += String((await getObjectAsync((ObjektListe[(i - 1)]))).common.name);
              }
            }
          }
        

        MOD-EDIT: Code in code-tags gesetzt!

        MartinPM Offline
        MartinPM Offline
        MartinP
        schrieb am zuletzt editiert von
        #3

        @mdorf Hättest Du die Code-Tags für das Listing genommen, wäre es einfacher gewesen, Zeile 14 Spalte 66 aufzufinden - da trat der Fehler auf ...

        Ich vermute nach Zählen der Zeilen, es ist dieses Statement hier

        if (getState((ObjektListe[(i - 1)])).val) {
        
        

        .

        Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
        Virtualization : unprivileged lxc container (debian 13) on Proxmox 9.1.5)
        Linux pve 6.17.9-1-pve
        6 GByte RAM für den Container
        Fritzbox 6591 FW 8.20 (Vodafone Leih-Box)
        Remote-Access über Wireguard der Fritzbox

        1 Antwort Letzte Antwort
        0
        • M MCU

          @mdorf Nicht das Object nehmen, sondern die ObjectID
          3ba28b5f-0fad-4bef-bc7b-90e765ebfb2d-image.png

          M Offline
          M Offline
          MDorf
          schrieb am zuletzt editiert von
          #4

          @mcu

          Oh Mann...natürlich!!!
          Ich spreche unten alles über die ObjektID an, also muss das Array auch die ID's enthalten.
          Manchmal sieht man den Wald vor lauter Bäumen nicht...🤕

          Danke euch!

          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

          560

          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