Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst] delete und setObject führt zu keinem Ergebnis

    NEWS

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    This topic has been deleted. Only users with topic management privileges can see it.
    • Ben1983
      Ben1983 last edited by 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?

      Ben1983 1 Reply Last reply Reply Quote 0
      • Ben1983
        Ben1983 @Ben1983 last edited by

        @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 Reply Last reply Reply Quote 0
        • First post
          Last post

        Support us

        ioBroker
        Community Adapters
        Donate

        517
        Online

        32.1k
        Users

        80.6k
        Topics

        1.3m
        Posts

        1
        2
        53
        Loading More Posts
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes
        Reply
        • Reply as topic
        Log in to reply
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
        The ioBroker Community 2014-2023
        logo