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. JavaScript
  5. [gelöst] delete und setObject führt zu keinem Ergebnis

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[gelöst] delete und setObject führt zu keinem Ergebnis

Geplant Angeheftet Gesperrt Verschoben JavaScript
2 Beiträge 1 Kommentatoren 131 Aufrufe 1 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.
  • Ben1983B Offline
    Ben1983B Offline
    Ben1983
    schrieb am zuletzt editiert von Ben1983
    #1

    Hallo,

    ich habe mehrere States einem customobjekt zugewiesen.

    Nun ist es so, dass der Adapter kein Custom mehr enthält und somit dies auch nicht in der UI angezeigt wird.
    Das Zahnrad ist aber aufgrund dessen noch blau.

    Ich würde nun gerne die Objekte der States per Skript entsprechend setzen.

    hier mein code: (Aktuell auf eine spezielle Id gemünzt, mit der ich es testen wollte.

    
    
    const selectorLorawan = $(`state[id=lorawan.1.bbea74d6-1fc5-4238-af20-d2aecdbb4f8e.devices.70b3d52dd302759e.uplink.decoded.targetTemperatureFloat]`);
    const CustomInstanz = 'lorawan.1';
    
    // Schedules beim Skriptstart erzeugen:
    selectorLorawan.each((id,i)=>{
        deleteCommonCustom(id);
    });
    
    
    function deleteCommonCustom(id) {
        const obj = getObject(id);
        log(JSON.stringify(obj.common.custom));
        delete obj.common.custom[CustomInstanz];
        log(JSON.stringify(obj.common.custom));
        setObject(id,obj);
    }
    

    Laut logging ist auch der entsprechende custom eintrag entfert, aber trotz des setObject verändert sich das Objekt nicht.
    Was kann ich tun, um nicht alle states einzeln durchschauen zu müssen?

    Ben1983B 1 Antwort Letzte Antwort
    0
    • Ben1983B Ben1983

      Hallo,

      ich habe mehrere States einem customobjekt zugewiesen.

      Nun ist es so, dass der Adapter kein Custom mehr enthält und somit dies auch nicht in der UI angezeigt wird.
      Das Zahnrad ist aber aufgrund dessen noch blau.

      Ich würde nun gerne die Objekte der States per Skript entsprechend setzen.

      hier mein code: (Aktuell auf eine spezielle Id gemünzt, mit der ich es testen wollte.

      
      
      const selectorLorawan = $(`state[id=lorawan.1.bbea74d6-1fc5-4238-af20-d2aecdbb4f8e.devices.70b3d52dd302759e.uplink.decoded.targetTemperatureFloat]`);
      const CustomInstanz = 'lorawan.1';
      
      // Schedules beim Skriptstart erzeugen:
      selectorLorawan.each((id,i)=>{
          deleteCommonCustom(id);
      });
      
      
      function deleteCommonCustom(id) {
          const obj = getObject(id);
          log(JSON.stringify(obj.common.custom));
          delete obj.common.custom[CustomInstanz];
          log(JSON.stringify(obj.common.custom));
          setObject(id,obj);
      }
      

      Laut logging ist auch der entsprechende custom eintrag entfert, aber trotz des setObject verändert sich das Objekt nicht.
      Was kann ich tun, um nicht alle states einzeln durchschauen zu müssen?

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

      @ben1983 Habe es heraus bekommen.
      Man muss hier den Wert zu null setzen, dann wird er gelöscht.

      const selectorLorawan = $(`state[id=lorawan.1.bbea74d6-1fc5-4238-af20-d2aecdbb4f8e.devices.70b3d52dd302759e.uplink.decoded.targetTemperatureFloat]`);
      const CustomInstanz = 'lorawan.1';
      
      // Schedules beim Skriptstart erzeugen:
      selectorLorawan.each((id,i)=>{
          deleteCommonCustom(id);
      });
      
      
      function deleteCommonCustom(id) {
          const obj = getObject(id);
          obj.common.custom[CustomInstanz] = null;
          setObject(id,obj);
      }
      
      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

      660

      Online

      32.6k

      Benutzer

      82.2k

      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