Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • 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

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    883

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

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

Geplant Angeheftet Gesperrt Verschoben Blockly
4 Beiträge 3 Kommentatoren 296 Aufrufe 3 Watching
  • Ä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 12 on Proxmox 8.4.14)
        Linux pve 6.8.12-16-pve
        6 GByte RAM für den Container
        Fritzbox 6591 FW 8.03 (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...:face_with_head_bandage:

          Danke euch!

          1 Antwort Letzte Antwort
          0
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          741

          Online

          32.6k

          Benutzer

          82.1k

          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