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. JavaScript
  5. [gelöst] Ersetzen eines json Array elements

NEWS

  • wichtiges UPDATE für controller 7.2.2 im stable
    HomoranH
    Homoran
    10
    1
    2.8k

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    16
    1
    4.9k

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

[gelöst] Ersetzen eines json Array elements

Geplant Angeheftet Gesperrt Verschoben JavaScript
22 Beiträge 4 Kommentatoren 1.2k Aufrufe 1 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.
  • Ben1983B Ben1983

    @ticaki die Frage ist ja… Array ist so ok? Intern (im Skript) mi Objekten ist etwas komfortabler.
    Dann mit Object.values zum Array machen… weil nachher im State ist doch sicher einer Arraystruktur besser, als Objekte… die immer gleich sind, oder?

    T Nicht stören
    T Nicht stören
    ticaki
    schrieb am zuletzt editiert von ticaki
    #21

    @ben1983

    Ich finde array für die Ausgabe am passenden.

    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

    Spenden

    Ben1983B 1 Antwort Letzte Antwort
    1
    • T ticaki

      @ben1983

      Ich finde array für die Ausgabe am passenden.

      Ben1983B Offline
      Ben1983B Offline
      Ben1983
      schrieb am zuletzt editiert von Ben1983
      #22

      @ticaki OK, da bin ich ja beruhigt.

      Hier mein Komplettes Skript zum Zuweisen:

      // Id Deklaration der States (für spätere Abrufe)
      const idOffeneTueren = "0_userdata.0.Produktiv.Tueren.Innen.offeneTueren";
      const idGeschlosseneTueren = "0_userdata.0.Produktiv.Tueren.Innen.geschlosseneTueren";
      const idTueren = "0_userdata.0.Produktiv.Tueren.Innen.tueren";
      
      // Türobjekte definieren
      let tueren = {};
      let offeneTueren = {};
      let geschlosseneTueren = {};
      
      //Arrays bei Skriptstart anlegen
      $(`state(${enumtypeFunctions}=${enumTuerInnen})`).each((id)=>{
          //objekt und state holen
          let obj = getObject(id);
          let state = getState(id);
      
          // Objekte zuweisen
          assignObject(obj,state);
      
          // Arrays beschreiben
          setState(idTueren,JSON.stringify(Object.values(tueren)),true);
          setState(idOffeneTueren,JSON.stringify(Object.values(offeneTueren)),true);
          setState(idGeschlosseneTueren,JSON.stringify(Object.values(geschlosseneTueren)),true);
      
      });
      
      // Objekte zuweisen
      function assignObject(obj,state){
          // Zuweisen des allgemeinen Türobjekts
          tueren[obj._id] = {name:obj.common.name, zustand: state.val?"geschlossen": "offen"};
          
          // Zuweisen des Objekts für die offenen oder geschlossenen Türen
          if(state.val){
              geschlosseneTueren[obj._id] = tueren[obj._id];
              delete offeneTueren[obj._id];
          }
          else {
              offeneTueren[obj._id] = tueren[obj._id];
              delete geschlosseneTueren[obj._id];
          }    
      }
      
      /*********************************************************************************************************
       * *********************************** Ab hier bei Änderungen ********************************************
      ******************************************************************************************************* */
      
      // Abfrage, ob sich ein Türzustand geändert hat
      $(`state(${enumtypeFunctions}=${enumTuerInnen})`).on((dp)=>{
          // Objekt holen und zuweisen
          let obj = getObject(dp.id);
          assignObject(obj,dp.state);
      
          // Arrays beschreiben
          setState(idTueren,JSON.stringify(Object.values(tueren)),true);
          setState(idOffeneTueren,JSON.stringify(Object.values(offeneTueren)),true);
          setState(idGeschlosseneTueren,JSON.stringify(Object.values(geschlosseneTueren)),true);
      });
      
      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

      406

      Online

      33.0k

      Benutzer

      83.4k

      Themen

      1.3m

      Beiträge
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
      ioBroker Community 2014-2026
      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